我有一个m3u8文件和几个TS文件。
下面是m3u8文件的实际输出。
#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完全一样。但是,视频回放不能像预期的那样工作,并且会被卡住。
#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文件吗?
发布于 2022-01-28 17:09:43
恐怕您不允许手动编辑播放列表(或者使用ffmpeg命令重新生成它)。由于HLS协议(RFC8216)的限制,当您在ffmpeg命令中将event或vod设置为-hls_playlist_type选项时,不能删除中间的媒体段(在您的情况下是.ts文件),即使没有-hls_playlist_type,它仍然仅限于更改播放列表(不包括自由删除任何媒体段)。
来自RFC8216中的一般服务器职责的报价
服务器不得更改媒体播放列表文件,除非更改为:
如果一个媒体播放列表包含一个EXT-X播放列表类型的标签,那么它的更新将受到的进一步限制。具有VOD值的EXT-X播放列表类型标记指示播放列表文件不得更改。带有事件值的EXT-X播放列表类型标记指示服务器不得更改或删除播放列表文件的任何部分;它可以在其上追加行。
请注意,播放列表中的EXT-X-PLAYLIST-TYPE与ffmpeg中的-hls_playlist_type相关。
https://stackoverflow.com/questions/70870529
复制相似问题