如何让GStreamer生成仅含文件名的m3u8播放列表?
解决GStreamer生成m3u8包含完整TS路径的问题
核心思路是让hlssink的片段路径(location)相对于播放列表的存储路径,同时明确指定播放列表的输出位置,这样生成的m3u8就只会保留TS片段的文件名。
关键配置要点:
- 用
playlist-location指定播放列表的完整输出路径(比如C:\Users\user\Desktop\4\stream.m3u8),确保播放列表生成在目标目录。 - 将
location设置为相对于播放列表所在目录的片段文件名模板(比如stream%d.ts),不要写绝对路径。 - 不要设置
playlist-root属性(或设为空字符串),避免给片段路径添加额外前缀。
- 用
示例命令:
如果目标输出目录是C:\Users\user\Desktop\4\,执行以下命令:gst-launch-1.0 videotestsrc ! x264enc ! h264parse ! mpegtsmux ! hlssink location="stream%d.ts" playlist-location="C:\\Users\\user\\Desktop\\4\\stream.m3u8"执行后,TS片段和m3u8都会生成在
C:\Users\user\Desktop\4\目录下,且m3u8里的条目只会是stream0.ts、stream1.ts这类纯文件名。简化场景:
如果先通过命令行切换到目标目录(比如cd C:\Users\user\Desktop\4\),可以省略路径,直接用相对路径配置:gst-launch-1.0 videotestsrc ! x264enc ! h264parse ! mpegtsmux ! hlssink location="stream%d.ts" playlist-location="stream.m3u8"
内容的提问来源于stack exchange,提问作者Matew Sticker
相关产品推荐
相关产品推荐

