【问题标题】:Appending .ts video clip to m3u8 HLS stream将 .ts 视频剪辑附加到 m3u8 HLS 流
【发布时间】:2018-06-21 21:11:59
【问题描述】:

我正在尝试将多个流连接在一起,而无需使用 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。

提前致谢。

【问题讨论】:

    标签: video ffmpeg http-live-streaming flowplayer m3u8


    【解决方案1】:

    这里的问题可能源于 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

    与您的情况相关的片段

    EXT-X-DISCONTINUITY 标签表示 紧随其后的媒体片段和之前的媒体片段。

    它的格式是:

    #EXT-X-DISCONTINUITY

    EXT-X-DISCONTINUITY 标记必须存在,如果有变化 任何以下特征:

    o 文件格式

    o 曲目的编号、类型和标识符

    o 时间戳序列

    尝试修改您的 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
    

    【讨论】:

    • 非常感谢@tbucher,我感激不尽,这为我节省了很多时间!辉煌
    • 播放每个不连续标签后的剪辑时,播放会有短暂的间隙。任何想法为什么?见here。谢谢!
    • 不幸的是,这就是不连续性的缺点,尽可能平滑地附加具有不同属性的块的能力会因不同的客户端而异。在 html5 模式下,您会看到不同播放器和不同浏览器的不同结果。
    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 2019-09-03
    相关资源
    最近更新 更多