将 .ts 视频剪辑附加到 m3u8 HLS 流
Appending .ts video clip to m3u8 HLS stream
我正在尝试将多个流连接在一起,而无需使用 m3u8 清单重新编码视频。
每个视频的开头和结尾都是一样的,只有一个简短的中间部分,有超过 7000 种变化。我想要做的是创建 7000 多个 m3u8 文件,每个文件都将通用介绍、定制中间部分和通用结尾合并在一起,形成一个 HLS 流。这可能吗?
这是由 ffmpeg 生成的 m3u8 文件:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.520000,
3_1080p_000.ts
#EXTINF:9.600000,
3_1080p_001.ts
#EXTINF:9.600000,
3_1080p_002.ts
#EXTINF:9.600000,
3_1080p_003.ts
#EXTINF:11.520000,
3_1080p_004.ts
#EXTINF:8.440000,
3_1080p_005.ts
#EXT-X-ENDLIST
我尝试在末尾(也在开头)添加一个额外的剪辑,其持续时间也为 8.440000 秒,如下所示:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.520000,
3_1080p_000.ts
#EXTINF:9.600000,
3_1080p_001.ts
#EXTINF:9.600000,
3_1080p_002.ts
#EXTINF:9.600000,
3_1080p_003.ts
#EXTINF:11.520000,
3_1080p_004.ts
#EXTINF:8.440000,
3_1080p_005.ts
#EXTINF:8.440000,
4_1080p_005.ts
#EXT-X-ENDLIST
当我尝试 运行 时,flowplayer 检测到更新后的长度并开始播放流,但是当它开始播放附加剪辑时,它会跳回开头,就好像它已停止一样。任何帮助将不胜感激,否则我将不得不完整渲染每个视频,还有 7000 多个视频要完成!
问题流可供查看 here。它恰好在 1 分钟结束,而不是去 1:08。
提前致谢。
这里的问题可能源于 4_1080p_005.ts 块不是 3_1080p_005.ts 时间戳方面的直接延续。解码器检测到这些块之间的流中断,无法继续。
请查看 HTTP Live Streaming 规范,它考虑了这些情况并为 m3u8 清单提供了 EXT-X-DISCONTINUITY 标签,指示解码器存在这种不连续性https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.3
与您的情况相关的片段
The EXT-X-DISCONTINUITY tag indicates a discontinuity between the
Media Segment that follows it and the one that preceded it.
Its format is:
#EXT-X-DISCONTINUITY
The EXT-X-DISCONTINUITY tag MUST be present if there is a change in
any of the following characteristics:
o file format
o number, type and identifiers of tracks
o timestamp sequence
尝试修改您的 m3u8 清单并在这两个受影响的块之间添加标签,如下所示:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.520000,
3_1080p_000.ts
#EXTINF:9.600000,
3_1080p_001.ts
#EXTINF:9.600000,
3_1080p_002.ts
#EXTINF:9.600000,
3_1080p_003.ts
#EXTINF:11.520000,
3_1080p_004.ts
#EXTINF:8.440000,
3_1080p_005.ts
#EXT-X-DISCONTINUITY
#EXTINF:8.440000,
4_1080p_005.ts
#EXT-X-ENDLIST
我正在尝试将多个流连接在一起,而无需使用 m3u8 清单重新编码视频。
每个视频的开头和结尾都是一样的,只有一个简短的中间部分,有超过 7000 种变化。我想要做的是创建 7000 多个 m3u8 文件,每个文件都将通用介绍、定制中间部分和通用结尾合并在一起,形成一个 HLS 流。这可能吗?
这是由 ffmpeg 生成的 m3u8 文件:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.520000,
3_1080p_000.ts
#EXTINF:9.600000,
3_1080p_001.ts
#EXTINF:9.600000,
3_1080p_002.ts
#EXTINF:9.600000,
3_1080p_003.ts
#EXTINF:11.520000,
3_1080p_004.ts
#EXTINF:8.440000,
3_1080p_005.ts
#EXT-X-ENDLIST
我尝试在末尾(也在开头)添加一个额外的剪辑,其持续时间也为 8.440000 秒,如下所示:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.520000,
3_1080p_000.ts
#EXTINF:9.600000,
3_1080p_001.ts
#EXTINF:9.600000,
3_1080p_002.ts
#EXTINF:9.600000,
3_1080p_003.ts
#EXTINF:11.520000,
3_1080p_004.ts
#EXTINF:8.440000,
3_1080p_005.ts
#EXTINF:8.440000,
4_1080p_005.ts
#EXT-X-ENDLIST
当我尝试 运行 时,flowplayer 检测到更新后的长度并开始播放流,但是当它开始播放附加剪辑时,它会跳回开头,就好像它已停止一样。任何帮助将不胜感激,否则我将不得不完整渲染每个视频,还有 7000 多个视频要完成!
问题流可供查看 here。它恰好在 1 分钟结束,而不是去 1:08。
提前致谢。
这里的问题可能源于 4_1080p_005.ts 块不是 3_1080p_005.ts 时间戳方面的直接延续。解码器检测到这些块之间的流中断,无法继续。
请查看 HTTP Live Streaming 规范,它考虑了这些情况并为 m3u8 清单提供了 EXT-X-DISCONTINUITY 标签,指示解码器存在这种不连续性https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.3
与您的情况相关的片段
The EXT-X-DISCONTINUITY tag indicates a discontinuity between the Media Segment that follows it and the one that preceded it.
Its format is:
#EXT-X-DISCONTINUITY
The EXT-X-DISCONTINUITY tag MUST be present if there is a change in any of the following characteristics:
o file format
o number, type and identifiers of tracks
o timestamp sequence
尝试修改您的 m3u8 清单并在这两个受影响的块之间添加标签,如下所示:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.520000,
3_1080p_000.ts
#EXTINF:9.600000,
3_1080p_001.ts
#EXTINF:9.600000,
3_1080p_002.ts
#EXTINF:9.600000,
3_1080p_003.ts
#EXTINF:11.520000,
3_1080p_004.ts
#EXTINF:8.440000,
3_1080p_005.ts
#EXT-X-DISCONTINUITY
#EXTINF:8.440000,
4_1080p_005.ts
#EXT-X-ENDLIST