FFmpeg制作mpeg2 ts而不中断

use*_*162 5 ffmpeg http-live-streaming

我有很多用 iPhone 录制的 MOV 文件,我想将它们转换为 mpeg2 TS。我想使用它们通过 HTTP Live Streaming 协议进行实时视频流。

我将 iPhone 设置为连续发送 MOV 文件到服务器。每个视频片段时长 5 秒。我想用它们制作 mpeg2 TS 并将它们的 url 添加到 m3u8 播放列表中。我设法做到了所有这些,但是当我尝试播放流时,VLC 播放器仅播放播放列表中的前两个文件,以及播放列表中的最后一个文件。我在网上搜索了一下,我认为这与不连续性有关。

有没有办法将多个 MOV 文件转换为多个 mpeg2 TS 片段而不出现中断?

或者也许我做错了什么?这是我的 ffmpeg 命令:

ffmpeg.exe -i input,MOV -f mpegts output.ts
Run Code Online (Sandbox Code Playgroud)

这是我的 m3u8 列表:

#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10,
fileSequence0.ts
#EXTINF:10,
fileSequence1.ts
#EXTINF:10,
fileSequence2.ts
Run Code Online (Sandbox Code Playgroud)

提前致谢

vip*_*ipw 3

问题是您的系列电影不是流。当您创建单独的 mpeg2ts 片段时,每次运行 ffmpeg 时时间戳都会重新设置为 0。您可以尝试使用 setpts过滤器来调整每个段的起始时间戳。但首先你需要知道上一部分的最后分数。

  • 我正在尝试这样做,但没有运气。我尝试在每个段之前设置#EXT-X-DISCONTINUITY,但这没有什么区别。我从 VLC 播放器收到此消息: TS 不连续(收到 0,预期 8) 我检查了上一个片段,最后一个 PTS 是 446696,正确调整下一个片段的 pts 的 ffmpeg 命令是什么? (2认同)