【发布时间】:2021-07-26 15:44:54
【问题描述】:
我目前正在开发一个视频管道,该管道将接收一个 mp4 文件和 n 个 webvtt 文件,并输出一个带有可选字幕轨道的 m3u8 文件,我在用 ffmpeg 找出正确的咒语时遇到了一些困难。
以下是我现在使用的命令,用于在将所有内容集成到我的项目之前对其进行测试:
ffmpeg -i sample.mp4 -i sample-vtt-en.vtt -i sample-vtt-es.vtt \
-map 0:v -map 0:a -map 1 -map 2 \
-c:v copy -c:a copy -c:s webvtt \
-metadata:s:s:0 language=en \
-metadata:s:s:1 language=es \
-start_number 0 -hls_time 10 -hls_list_size 0 -f hls \
-master_pl_name master.m3u8 \
out/sample.m3u8
运行上述程序时,出现以下错误
[webvtt @ 0x7fb6c6075a00] Exactly one WebVTT stream is needed.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:3 --
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #1:0 -> #0:2 (webvtt (native) -> webvtt (native))
Stream #2:0 -> #0:3 (webvtt (native) -> webvtt (native))
Last message repeated 1 times
此外,当我使用单个 webvtt 文件处理它时,它不会出错,但输出不太正确。最大的问题是主播放列表不包含任何字幕信息,也不识别任何曲目。 sample.m3u8 播放列表似乎确实了解字幕轨道,但它们以各种奇怪的方式分割。
有人可以帮助我完成我想要完成的事情吗?
【问题讨论】:
标签: ffmpeg http-live-streaming m3u8