【问题标题】:With FFMPEG, can I rewrite a .ts specific segment in an HLS m3u8 format?使用 FFMPEG,我可以用 HLS m3u8 格式重写 .ts 特定段吗?
【发布时间】:2015-01-28 20:16:12
【问题描述】:

我是 FFMPEG 的新手,并开始深入挖掘我的经验。是否可以重写 1 个或多个任意 .ts 文件段(例如,如果我编辑了一个场景)而无需重新编码整个电影?

另外,如果那个segment的长度发生了变化,是不是就像在m3u8文件中改变segment长度一样简单?例如这是原文:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:8
#EXTINF:7.007000,
file0.ts
#EXTINF:5.964292,
file1.ts
#EXTINF:1.876875,
file2.ts
#EXTINF:2.293958,
file3.ts
etc...

改为:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:8
#EXTINF:7.007000,
file0.ts
#EXTINF:12.023,
modified1.ts
#EXTINF:1.876875,
file2.ts
#EXTINF:2.293958,
file3.ts
etc...

您可以看到我想将file1.ts更改为更长的长度并修改文件名。任何提示将不胜感激。

【问题讨论】:

    标签: ffmpeg mp4 m3u8 http-live-streaming


    【解决方案1】:

    您真的应该阅读 pantos 规范。 https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-14

    但要更直接地回答,您应该将#EXT-X-TARGETDURATION 增加到最大的段持续时间(向上取整)。在您的情况下 13. 接下来,每当您的编解码器或连续性计数器重置时,您都需要放置一个不连续性指示器。 例如

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-ALLOW-CACHE:YES
    #EXT-X-TARGETDURATION:13
    #EXTINF:7.007000,
    file0.ts
    #EXTINF:12.023,
    #EXT-X-DISCONTINUITY
    modified1.ts
    #EXTINF:1.876875,
    #EXT-X-DISCONTINUITY
    file2.ts
    #EXTINF:2.293958,
    file3.ts
    

    【讨论】:

      猜你喜欢
      • 2018-11-18
      • 2016-07-27
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2023-02-04
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多