Как объединить 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.