1

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

ffmpeg -i stream.m3u8 vid.mp4

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

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

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

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

3 ответа3

3

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

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

0

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

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

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

-1

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

Скриншот

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .