如何重命名 m3u8 播放列表中的 ts 文件

Posted

技术标签:

【中文标题】如何重命名 m3u8 播放列表中的 ts 文件【英文标题】:How can I rename ts files in a m3u8 playlist 【发布时间】:2013-11-22 16:02:20 【问题描述】:

我有一个将 rtmp 流转换为 http 实时流的 ffmpeg 命令:

ffmpeg.exe -loglevel info -i %stream_input% -g 250 -r 15 -sc_threshold 0 -preset slow -keyint_min 15 -c:v libx264 -ar 44100 -b:v 200k -b:a 64k -profile:v baseline -level 3.0 -s 400x224 -aspect 16:9 -maxrate 200k -bufsize 1000k -map 0 -flags -global_header -f segment -segment_time 10 -segment_wrap 3 -segment_list_flags +live -segment_list_type m3u8 -segment_list playlist.m3u8 -segment_format mpegts segment%05d.ts 1>output.txt

此命令创建 ts 文件和 m3u8 播放列表。我想要做的是保持 ts 文件名相同,但在播放列表中重命名它们。例如Segment文件:segment00000.ts,在播放列表中:Segment.aspx?ts=00000

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:17
#EXTINF:16.692244,
segment00000.ts -> Rename it to Segment.aspx?ts=00000
#EXTINF:16.680789,
segment00001.ts

ffmpeg 可以吗?

【问题讨论】:

【参考方案1】:

我假设您这样做是因为您在服务器前面运行服务来管理内容权限或其他内容。在这种情况下,我会让服务器处理对 .m3u8 的请求,并使用您要查找的文件名生成一个新请求。它是一种简单的文件格式,您使用的任何语言都应该很容易做到这一点。

【讨论】:

【参考方案2】:

不,这在 ffmpeg 中是不可能的。更改文件名的生成方式并重新编译它是相当简单的。

【讨论】:

如果他将来想更新到新版本的 FFmpeg,这似乎会导致很多问题...... 是的,维护 1 行补丁是“成吨”的问题。

以上是关于如何重命名 m3u8 播放列表中的 ts 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 m3u8 播放列表中循环播放 TS 文件

安卓手机播放M3U8视频文件的方法

m3u8网页视频怎么打开

网页视频经过m3u8 技术切片且加密的TS文件在播放时有缓存文件,但提取出来就无法播放了,这种情况

如何使用 FFMPEG 创建持续时间恒定的 m3u8 播放列表和 mpeg-ts 块?

从 ts 文件列表创建 m3u8 文件