【发布时间】:2021-08-12 06:41:01
【问题描述】:
我有一个视频 (video.mp4) 和一个字幕文件 (subtitle.srt)。
我正在尝试使用 FFmpeg 为视频生成具有 3 种不同分辨率的 VoD HLS 播放列表;而且我还想让字幕文件变成分段的.vtt文件。
我尝试了以下命令,但它不起作用,它给我一个“转换失败!”没有任何进一步信息的消息:
ffmpeg -i video.mp4 -i subtitle.srt \
-preset slow -g 60 -sc_threshold 0 \
-map 0 -map 0 -map 0 -map 1 \
-s:v:0 640x360 -c:v:0 h264 -b:v:0 500k \
-s:v:1 854x480 -c:v:1 h264 -b:v:1 1000k \
-s:v:2 1280x720 -c:v:2 h264 -b:v:2 2000K \
-c:a copy -c:s webvtt \
-f hls -hls_playlist_type vod -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2" \
-master_pl_name master.m3u8 -hls_time 6 -hls_list_size 0 -hls_allow_cache 1 -start_number 1 \
-hls_segment_filename "output/hls/%v/seg-%d.ts" output/hls/%v/index.m3u8
我很难在 FFmpeg 文档或其他任何地方找到有关如何将字幕添加到 HLS 播放列表的任何有用信息。命令应该是什么样的?我缺少什么?
【问题讨论】:
-
对于将来访问此问题并遇到类似问题的任何人:使用 Shaka Packager 而不是 FFmpeg 来完成此任务,使用起来更容易,而且总体上是一个更理智的工具,FFmpeg 是纯粹的头痛,我最终选择了 Shaka Packager,我不会回去了。
-
你好,你锻炼了这个命令吗?对我来说,它仍然说
[hls @ 000002689df607c0] Same elementary stream found more than once in two different variant definitions #0 and #1 [hls @ 000002689df607c0] Variant stream info update failed with status ffffffea Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:5 -- -
@jeff 不,不幸的是我放弃了 FFmpeg 并开始使用 Shaka Packager。看看我之前的评论。
-
我明白了,谢谢您的回复。顺便说一句,如果你有兴趣,我得到了你的命令:reddit.com/r/ffmpeg/comments/mfybas/comment/gssvbsg/…我不确定它是否正确。
标签: ffmpeg http-live-streaming hls.js