Я загружаю много потоков, так как скорость интернета слишком низкая, чтобы смотреть в высоком разрешении. Когда я загружаю поток, я нахожу файл .m3u8, который указывает на файлы TS. Затем я использую следующую команду:
ffmpeg -i stream.m3u8 vid.mp4
Это работает. Но это занимает очень много времени, потому что он в основном перекодирует все, даже если это уже правильный формат. Чтобы избежать перекодирования, я могу использовать эту команду:
ffmpeg -i stream.m3u8 -vcodec copy -acodec copy vid.mp4
Это прекрасно работает, когда я играю от начала до конца без перерыва. Но когда я пропускаю назад или вперед, у vlc возникают проблемы при создании образа. Он не может правильно отображаться в течение нескольких секунд. Это очень раздражает.
Мой вопрос: Как я могу создать видео без полного перекодирования, но с хорошим рендерингом vlc в любой момент?
источник
Ответы:
Вы просите ffmpeg кодировать файлы в mp4, а не объединять их в один поток. Вам нужно объединить в,
temp.ts
а затем преобразовать это в.mp4
с-codec copy
.Кроме того , я считаю , что вам нужно преобразовать ,
adts
чтобыaac
на втором этапе-bsf:a aac_adtstoasc
.источник
Если вы не перекодируете, вы не сможете изменить ключевые кадры и т. Д. Видео, что приведет к описанному вами поведению. Вы можете попробовать что-то вроде
Имейте в виду, что то, что вы набираете в скорости, вы теряете в качестве, поэтому «быстрая» может быть лучше ...
источник
Смотрите мой вариант с ffmpeg mp4joiner
источник