Используйте кодек 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 с использованием кодека копирования?

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 исправляет его.

  • Встраивать srt в mp4 / m4v
  • Как я могу объединить два файла mp4 без потери качества?
  • Преобразование FLV в MP4 с использованием FFMPEG и сохранение качества
  • Преобразование субтитров DVD в текст
  • Так как вы не можете писать FFMpeg в stdout с flv в mp4, есть ли обходной путь?
  • Любой способ восстановить поврежденный mp4?
  • Как открыть и восстановить видеофайл m4v или mp4?
  • Google Chrome не воспроизводит файлы mp4
  • FFMPEG: конвертировать MP4 в тот же MP4 (в другом контейнере) и добавлять субтитры
  • Как удалить несколько сегментов из видео с помощью FFmpeg?
  • Какую команду FFmpeg я использую для перехода через FLV в MP4?
  • Как я могу преобразовать .mov в mp4?
  • Interesting Posts

    Есть ли команда «sudo» для Windows?

    Как я могу физически уничтожить данные с отказавшего жесткого диска?

    Зафиксировать верхнюю строку и несколько столбцов в Excel

    Подключение к Windows 7?

    Формат времени ffmpeg в filter_complex

    Тайм-аут учетной записи пользователя?

    Легкий текстовый редактор для CSV-файла?

    Как проанализировать аргументы командной строки в Bash?

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

    Заполнение пустой таблицы данными из таблицы oter на основе выбора списка

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

    Команда командной строки (cmd) для блокировки машины Windows

    Как я могу использовать Kik на ПК Win7Pro без телефона или учетной записи Google, например, возможно, с эмулятором Windows Phone?

    Как заблокировать определенный сайт с помощью файла hosts, даже если я подключен к VPN?

    Почему это не работает для цикла?

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