我可以使用 ffmpeg v. 3.4.7 从 mp4 文件中提取关闭字幕信息,方法如下:
但是电影过滤器无法识别URL,尽管FFmpeg 过滤器文档表明电影过滤器的文件名“不一定是一个文件;它也可以是通过某些协议访问的设备或流”:
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] Failed to avformat_open_input 'http'
[lavfi @ 0x2647e80] Error initializing filter 'movie' with args '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(High)([27] [0] [0] [0] / 0x001B),yuv420p(tv,bt709),480x270 [SAR 1:1 DAR 16:9],关闭的字幕,14.99 fps,14.99 tbr,90k tbn,29.97 tbc
是否可能实现此功能?感谢任何指导。