Ffmpeg在转换为hls时,字幕不同步。

问题描述 投票:0回答:1

我有一个文件,有字幕刻录到它,他们是完全同步的。

这里是文件。https:/983yqbz442.s3.amazonaws.comlittle-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缺少的一个设置,但真的被卡住了,希望得到任何启示。

谅谅

更多信息。

这里是一个链接到直接.m3u8这可以在Safari打开。

https:/983yqbz442.s3.amazonaws.comhlstestsmaster.m3u8。

生成的vtt文件在这里。

https:/983yqbz442.s3.amazonaws.comhlstestssubs-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 http-live-streaming webvtt hls.js vtt
1个回答
2
投票

由于某些原因,FFMPEG在写入MPEG-2传输流时,会将MPEG-2传输流的呈现时间增加约1.4秒。所以,你的视频和音频是晚了。-muxdelay 0 到你的FFMPEG命令行,同步问题应该可以解决。

© www.soinside.com 2019 - 2024. All rights reserved.