Я могу извлечь информацию о закрытых титрах из файла mp4, используя ffmpeg v. 3.4.7, таким образом:
ffmpeg -f lavfi -i movie="sample.mp4[out+subcc]" -map 0:1 -c:s webvtt /tmp/output.vtt
Файл был получен путем захвата живого потока HLS, содержащего скрытые субтитры. Я хотел бы извлечь закрытые титры непосредственно из потока, а не после сохранения видео в файле. Я пробовал разные вещи, в том числе:
ffmpeg -f lavfi -i movie="http://example.com/stream.m3u8[out+subcc]" -map 0:0 -c:s webvtt /tmp/output.vtt
Но фильтр фильмов не распознает URL-адрес, хотя документация по фильтру ffmpeg говорит, что имя файла для кинофильтра не обязательно является файлом; это также может быть устройство или поток, доступ к которому осуществляется через какой-либо протокол:
[Parsed_movie_0 @ 0x264ad80] Не удалось выполнить avformat_open_input 'http'
[lavfi @ 0x2647e80] Ошибка инициализации фильтра 'movie' с аргументами 'http://example.com/stream.m3u8'
movie=http://example .com/stream.m3u8[out+subcc]: нет такого файла или каталога
Когда я захватываю видео из потока следующим образом:
ffmpeg -i http://example.com/stream.m3u8 /tmp/output.mp4
ffmpeg сообщает, что поток содержит скрытые титры (откуда их взял захваченный видеофайл sample.mp4):
Поток #0:0: Видео: h264 (высокий) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 480x270 [SAR 1:1 DAR 16:9], скрытые титры , 14,99 к/с, 14,99 тбр, 90к тбн, 29,97 тбк
Можно ли сделать это? Спасибо за любые указатели.