使用 ffmpeg 从流中提取隐藏式字幕 VTT



我可以使用 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] 无法avformat_open_input 'http'[lavfi @ 0x2647e80] 使用 args 'http://example.com/stream.m3u8'movie

=http://example.com/stream.m3u8[out+subcc]初始化过滤器"movie"时出错:没有这样的文件或目录

当我从流中捕获视频时,如下所示:

ffmpeg -i http://example.com/stream.m3u8 /tmp/output.mp4

FFMPEG 报告流确实包含隐藏式字幕(这是捕获的视频文件示例.mp4获得它们的地方(:

流 #0:0: 视频: h264 (高( ([27][0][0][

0]/0x001B(, yuv420p(电视, bt709(, 480x270 [SAR 1:1 DAR 16:9], 隐藏式字幕, 14.99 fps, 14.99 tbr, 90k tbn, 29.97 tbc

可以这样做吗? 感谢您的任何指示。

电影过滤器可以接受你只需要转义":"的URL。 据 https://ffmpeg.org/ffmpeg-filters.html#Notes-on-filtergraph-escaping

此命令应该有效

ffmpeg -f lavfi -i movie="http\://example.com/stream.m3u8[out+subcc]" -map 0:0 -c:s webvtt /tmp/output.vtt

相关内容

  • 没有找到相关文章

最新更新