Как объединить TS файлы вместе в MP4 с FFmpeg?


1

Я загружаю много потоков, так как скорость интернета слишком низкая, чтобы смотреть в высоком разрешении. Когда я загружаю поток, я нахожу файл .m3u8, который указывает на файлы TS. Затем я использую следующую команду:

ffmpeg -i stream.m3u8 vid.mp4

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

ffmpeg -i stream.m3u8 -vcodec copy -acodec copy vid.mp4

Это прекрасно работает, когда я играю от начала до конца без перерыва. Но когда я пропускаю назад или вперед, у vlc возникают проблемы при создании образа. Он не может правильно отображаться в течение нескольких секунд. Это очень раздражает.

Мой вопрос: Как я могу создать видео без полного перекодирования, но с хорошим рендерингом vlc в любой момент?


Вам конкретно нужен формат контейнера MP4? Пожалуйста, покажите полный вывод консоли из вашей второй команды.
— Llogan

Мне конкретно не нужен контейнер mp4. MKV будет сифилисом. Это не избавляет от проблемы, хотя
— Никки Смитс

Ответы:


3

Вы просите ffmpeg кодировать файлы в mp4, а не объединять их в один поток. Вам нужно объединить в, temp.tsа затем преобразовать это в .mp4с -codec copy.

Кроме того , я считаю , что вам нужно преобразовать , adtsчтобы aacна втором этапе -bsf:a aac_adtstoasc.


Я попробовал это, и результат не удовлетворяет. У звука никогда не было проблем в формате MKV, только у видео потока были сбои. И с этим я получаю то же самое, выполняя три отдельных шага.
— Ники Смитс

0

Если вы не перекодируете, вы не сможете изменить ключевые кадры и т. Д. Видео, что приведет к описанному вами поведению. Вы можете попробовать что-то вроде

ffmpeg -i stream.m3u8 -codec:v" "libx264" "-preset" "ultrafast" vid.mp4

Имейте в виду, что то, что вы набираете в скорости, вы теряете в качестве, поэтому «быстрая» может быть лучше ...


-1

Смотрите мой вариант с ffmpeg mp4joiner

Скриншот


2
Возможно, стоит добавить немного больше, чем скриншот - вот руководство о том, как рекомендовать программное обеспечение . Я также заметил, что ваше имя пользователя и имя в учетной записи github совпадают - необходимо указать вашу принадлежность к программному обеспечению,
— Journeyman Geek
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.