首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在m3u8中重新排列ts文件的顺序会导致它们在播放过程中卡住

在m3u8中重新排列ts文件的顺序会导致它们在播放过程中卡住
EN

Stack Overflow用户
提问于 2022-01-26 21:33:12
回答 1查看 302关注 0票数 1

我有一个m3u8文件和几个TS文件。

下面是m3u8文件的实际输出。

代码语言:javascript
复制
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:5
#EXTINF:4.027222,
test0000.ts
#EXTINF:4.004000,
test0001.ts
#EXTINF:4.004000,
test0002.ts
#EXTINF:4.004000,
test0003.ts
#EXT-X-ENDLIST

我用以下格式重写了这个m3u8,保存了它,并播放了它。然后,视频的播放顺序与我更改的m3u8完全一样。但是,视频回放不能像预期的那样工作,并且会被卡住。

代码语言:javascript
复制
#extm3u.
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:5
#EXTINF:4.027222,
test0003.ts
#EXTINF:4.004000,
test0002.ts
#EXTINF:4.004000,
test0001.ts
#EXTINF:4.004000,
test0000.ts 
#EXT-X-ENDLIST

如果我想像这样更改TS文件的顺序,如何编辑m3u8文件?或者我可以使用ffmpeg命令更改ts文件的顺序,然后重新创建m3u8文件吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-28 17:09:43

恐怕您不允许手动编辑播放列表(或者使用ffmpeg命令重新生成它)。由于HLS协议(RFC8216)的限制,当您在ffmpeg命令中将eventvod设置为-hls_playlist_type选项时,不能删除中间的媒体段(在您的情况下是.ts文件),即使没有-hls_playlist_type,它仍然仅限于更改播放列表(不包括自由删除任何媒体段)。

来自RFC8216中的一般服务器职责的报价

服务器不得更改媒体播放列表文件,除非更改为:

  • (第6.2.1节)。
  • 按照播放列表中显示的顺序从播放列表中删除媒体段URI,以及仅适用于这些片段的任何标记(第6.2.2节)。
  • 增加EXT-X-媒体序列或EXT-X-间断序列标记的值(第6.2.2节).
  • 在播放列表中添加一个EXT-标记(第6.2.1节).

如果一个媒体播放列表包含一个EXT-X播放列表类型的标签,那么它的更新将受到的进一步限制。具有VOD值的EXT-X播放列表类型标记指示播放列表文件不得更改。带有事件值的EXT-X播放列表类型标记指示服务器不得更改或删除播放列表文件的任何部分;它可以在其上追加行。

请注意,播放列表中的EXT-X-PLAYLIST-TYPEffmpeg中的-hls_playlist_type相关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70870529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档