使用ffmpeg从流中提取关闭字幕VTT

3
我可以使用 ffmpeg v. 3.4.7 从 mp4 文件中提取关闭字幕信息,方法如下:
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

是否可能实现此功能?感谢任何指导。

1个回答

3

刚刚测试了一下,它可以正常工作。非常感谢! - EK0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接