转换为 hls 时,Ffmpeg 刻录的字幕不同步
Ffmpeg burnt in subtitles out of sync when converting to hls
我有一个刻录了字幕的文件,它们完全同步。
这是文件。 https://983yqbz442.s3.amazonaws.com/little-mermaid-captions.mp4
我 运行 此命令转换为 hls 并创建 .ts 文件和 .vtt 文件。
ffmpeg -i little-mermaid-captions.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8
然后我还在同一文件夹中创建一个 master.m3u8 文件,其中包含以下内容。
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360,SUBTITLES="subtitles"
index.m3u8
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="ENG",URI="index_vtt.m3u8"
现在,如果我播放 master.m3u8 文件,字幕现在会不同步,并且快约 1 秒。我知道这可能是我通过 FFmpeg 缺少的一个设置,但我真的坚持这一点,并希望有任何见解。
谢谢
更多信息。
这里有一个link直接.m3u8这个可以在Safari中打开
https://983yqbz442.s3.amazonaws.com/hlstests/master.m3u8
生成的vtt文件在这里
https://983yqbz442.s3.amazonaws.com/hlstests/subs-0.vtt
如果您查看 .vtt 文件的开头,您会看到这一点。
WEBVTT
00:06.840 --> 00:10.320
once long ago in the deep blue below
它应该从 00:06.840 开始,但是当在 Safari 中播放 .m3u8 文件时,您应该看到它在 5 秒左右开始,而不是 6 秒左右,太早了。
出于某种原因,FFMPEG 在写入时将 MPEG-2 传输流的呈现时间增加了大约 1.4 秒。所以你的视频和音频都晚了。
如果您将 -muxdelay 0
添加到您的 FFMPEG 命令行,同步问题应该得到解决。
我有一个刻录了字幕的文件,它们完全同步。
这是文件。 https://983yqbz442.s3.amazonaws.com/little-mermaid-captions.mp4
我 运行 此命令转换为 hls 并创建 .ts 文件和 .vtt 文件。
ffmpeg -i little-mermaid-captions.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8
然后我还在同一文件夹中创建一个 master.m3u8 文件,其中包含以下内容。
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360,SUBTITLES="subtitles"
index.m3u8
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="ENG",URI="index_vtt.m3u8"
现在,如果我播放 master.m3u8 文件,字幕现在会不同步,并且快约 1 秒。我知道这可能是我通过 FFmpeg 缺少的一个设置,但我真的坚持这一点,并希望有任何见解。
谢谢
更多信息。
这里有一个link直接.m3u8这个可以在Safari中打开
https://983yqbz442.s3.amazonaws.com/hlstests/master.m3u8
生成的vtt文件在这里
https://983yqbz442.s3.amazonaws.com/hlstests/subs-0.vtt
如果您查看 .vtt 文件的开头,您会看到这一点。
WEBVTT
00:06.840 --> 00:10.320
once long ago in the deep blue below
它应该从 00:06.840 开始,但是当在 Safari 中播放 .m3u8 文件时,您应该看到它在 5 秒左右开始,而不是 6 秒左右,太早了。
出于某种原因,FFMPEG 在写入时将 MPEG-2 传输流的呈现时间增加了大约 1.4 秒。所以你的视频和音频都晚了。
如果您将 -muxdelay 0
添加到您的 FFMPEG 命令行,同步问题应该得到解决。