Используйте кодек ffmpeg для объединения файлов * .ts в один mp4

У меня есть куча сегментов ts, описанных одним файлом index.m3u8:

index.m3u8 segment1_0_av.ts segment2_0_av.ts segment3_0_av.ts segment4_0_av.ts segment5_0_av.ts 

Я знаю, что все они закодированы одинаково. Ffprobe дает мне следующее:

 Input #0, mpegts, from 'segment1_0_av.ts': Duration: 00:00:10.00, start: 0.100511, bitrate: 1251 kb/s Program 1 Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 960x540 [SAR 1:1 DAR 16:9], 12.50 fps, 25 tbr, 90k tbn, 25 tbc Stream #0:1[0x101]: Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 105 kb/s Stream #0:2[0x102]: Unknown: none ([21][0][0][0] / 0x0015) 

Я хотел бы объединить их в один контейнер mp4. Но когда я пробую команды вроде:

 ffmpeg -f concat -i filelist.txt -c copy output.mp4 

Где сгенерирован файл filelist.txt из файла index.m3u8, он жалуется на невозможность чтения различных файлов. Но преобразование самих файлов ts, похоже, отлично работает. Я думаю, что неправильно использую ffmpeg.

Как использовать ffmpeg для объединения файлов ts, описанных в index.m3u8, в один контейнер mp4 с использованием кодека копирования?

  • Ffmpeg: Ошибка входа в трубу
  • FFMPEG разделяет MP4 с тем же качеством
  • Google Chrome не воспроизводит файлы mp4
  • Как я могу объединить два файла mp4 без потери качества?
  • Какую команду FFmpeg я использую для перехода через FLV в MP4?
  • Какой самый простой способ сохранить GIFV как простой GIF?
  • Как я могу преобразовать .mov в mp4?
  • Так как вы не можете писать FFMpeg в stdout с flv в mp4, есть ли обходной путь?
  • 3 Solutions collect form web for “Используйте кодек ffmpeg для объединения файлов * .ts в один mp4”

    Я не уверен, почему ffmpeg дает вам ошибку. Однако ts является одним из немногих форматов, которые можно просто конкатенировать. Затем, как только у вас будет один тс, трансмукс к mp4.

    Под окнами:

     copy /b segment1_0_av.ts+segment2_0_av.ts+segment3_0_av.ts all.ts ffmpeg -i all.ts -acodec copy -vcodec copy all.mp4 

    В GNU / Linux, используя bash:

     cat segment1_0_av.ts segment2_0_av.ts segment3_0_av.ts > all.ts ffmpeg -i all.ts -acodec copy -vcodec copy all.mp4 

    Использование копии или кошки для объединения файлов, таких как текущий верхний ответ szatmary, может оставить вас с файлом, который играет далеко за пределом и не может искать проблемы с воспроизведением.

    Вместо этого, чтобы правильно комбинировать эти файлы, используйте ffmpeg, как указано в https://trac.ffmpeg.org/wiki/Concatenate . (Установите ffmpeg здесь, если у вас еще нет https://github.com/adaptlearning/adapt_authoring/wiki/Installing-FFmpeg .)

    Если вы слишком ленивы, чтобы прочитать мою первую ссылку, вам в основном нужно создать файл .txt, в котором перечислены все файлы, которые вы хотите объединить (так, как моя первая ссылка дает инструкции о том, как сделать это легко) в папке, Повторяя конкатенацию:

     file '/path/to/file1' file '/path/to/file2' file '/path/to/file3' 

    Вот скопировать копию из моей первой ссылки на один способ создания текстового файла, если у вас есть Windows в командной строке, но, очевидно, вы можете сделать файл вручную или, как вы хотите:

     (for %i in (*.ts) do @echo file '%i') > mylist.txt 

    Дважды проверьте, что ваш .txt-файл выглядит хорошо и отформатирован правильно!

    После этого в командной строке выполните:

     ffmpeg -f concat -i mylist.txt -c copy all.ts 

    Где «mylist.txt» – это файл .txt, который вы только что создали.

    Проверьте правильность воспроизведения результирующего файла. Отсюда вы можете преобразовать в mp4 как обычно, если хотите:

     ffmpeg -i all.ts -acodec copy -vcodec copy all.mp4 

    2017 ответ

    Но когда я пробую команды вроде ... , он жалуется, что не умеет читать разные файлы.

    Когда я ffmpeg -i some.ts -c copy some.mp4 на определенное видео, я получаю это сообщение об ошибке:

     Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg) av_interleaved_write_frame(): Operation not permitted 

    Неудивительно, что выполнение ffmpeg -i some.ts -c copy -bsf:a aac_adtstoasc some.mp4 исправляет его.

    Interesting Posts

    Инкрементное резервное копирование образа для Windows 7

    У SSDs фрагментированы, и если они это делают, это проблема?

    «Не удалось настроить» цикл перезагрузки с обновлениями Windows 7

    Что вы делаете, когда вам нужен поиск целых слов в Firefox?

    Воспроизведение видеофайлов в медиаплеере VLC из-за базовых URL-адресов аутентификации HTTP без пароля

    Как я могу скрыть часть заголовка в документе, но показать его в содержимом?

    Kubuntu 9.04 – Невозможно перетащить приложение с одного экрана на другой при настройке нескольких мониторов

    Как регулярные выражения работают в htaccess для перенаправления диапазона IP

    Бесплатный конвертер изображений в командной строке

    Как запустить мой раздел ubuntu в Windows? VMware?

    Фильтрация вывода верхней команды

    Как указать вручную установленные пакеты программного обеспечения в Ubuntu?

    Перетащите формулу, чтобы она увеличивалась на 17 каждый раз

    Bootmgr отсутствует на ноутбуке Toshiba с Windows 7

    Могу ли я установить Windows 10 на ноутбук с Windows 8, используя тот же ключ продукта

    Давайте будем гением компьютера.