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

  • Присоединяйтесь к файлам mp4 в linux
  • Конвертировать Mp4 в Mp3 с миниатюрой
  • Какую команду FFmpeg я использую для перехода через FLV в MP4?
  • Ffmpeg: Ошибка входа в трубу
  • Извлечение аудио из MP4-видео в MP3
  • Как удалить несколько сегментов из видео с помощью FFmpeg?
  • Как преобразовать .iso в .mp4 без установки с помощью ffmpeg
  • Есть ли способ мягко вставлять субтитры в файл mp4 без повторного кодирования?
  • Как добавить еще один аудиопоток в файл MP4?
  • Конвертировать mp4 в mp3
  • Присоединение H264 * без * повторного кодирования
  • Как удалить несколько сегментов из видео с помощью FFmpeg?
  • Interesting Posts

    Экран не выдает pty

    В чем разница между «STL» и «C ++ Standard Library»?

    Установка ядер процессора не зависит от всех потоков, не указанных (предпочтительно в Windows 7)

    Как удалить старую ОС из меню загрузки

    Есть ли способ «отключить» подключенный сетевой диск, но НЕ удалять сопоставление?

    Матрица мощности питания применяется к видовым карточкам?

    Динамические изображения, переданные через HTTPS, отображают сломанное изображение в слове при открытии HTTP-документа

    Как изменить разделитель при копировании из Excel и вставить в блокнот

    Как использовать цикл for и вывод в другой каталог

    Программное обеспечение для телефона для ПК

    Использование Ctrl + Alt для замены функции третьего уровня AltGr на xorg

    Правильная видеокарта не используется

    Windows 7 показывает диск как полный в резюме, но файлы, показанные на диске, очень малы

    Могу ли я использовать память, отличную от ECC, в машине, на которой уже есть память DDR2 ECC?

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

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