Перекодируйте HLS m3u8 в MP4 и включите текстовую дорожку

возможно ли с помощью FFMPEG конвертировать m3u8 в MP4 и сохранять субтитры (текст)?

смотря поток Яблока, https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8 я вижу, что видеопоток упоминает закрытые субтитры, но я не могу найти способ извлечь их.

Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte1
70m/smpte170m/bt709), 400x300, Closed Captions, 29.92 fps, 29.92 tbr, 90k tbn, 1
80k tbc

несколько попыток, которые я сделал для перекодирования в mp4, но он отбрасывает подписи.

I использовал VLC на манифест и "субтитры", но после перекодировки в МР4 не.

используется команды:
ffmpeg -i https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8 -c copy -bsf:a aac_adtstoasc out.mp4

1
задан Justin
24.12.2022 20:20 Количество просмотров материала 2825
Распечатать страницу

2 ответа

мне удалось собрать достаточно информации, чтобы завершить это. Это комбинация из 3 команд.

использование ffmpeg версии 2.8.4

во-первых, сегменты плейлиста должны быть объединены в один MPEG-TS файл:

ffmpeg -i [playlist_url].m3u8 -c copy [filename].ts

Далее нам нужно извлечь субтитры из файла:

ffmpeg -f lavfi -i "movie=[filename_from_last_step].ts[out0+subcc]" [filename].srt

Примечание: я смог только получить, что его работал если архив ts и текущий путь cmd совпадает.

наконец, вы объединить ts и srt файл и перекодировать в MP4:

ffmpeg -i [filename_from_first_step].ts -i [captions].srt -c:v copy -bsf:a aac_adtstoasc -c:s mov_text [out_file_name].mp4

это даст вам MP4 со встроенными субтитрами, а также автономный файл srt, если ваш плеер не поддерживает встроенные субтитры.

2
отвечен Justin 2022-12-26 04:08

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

вы можете попробовать использовать CCextractor извлечь их. Если он не работает на потоке. Скачать отдельные сегменты, конкат их и попробовать с этим.

после извлечения их можно кодировать с помощью -c:s mov_text в MP4.

1
отвечен Gyan 2022-12-26 06:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх