_溯_ 2023-07-10 17:30 采纳率: 0%
浏览 4

ffmpeg如何为主播放文件的子播放列表生成前缀

我现在在使用ffmpeg的时候使用了master_pl_name来生成主播放列表,然后使用了hls_base_url来设置每一个分片的前缀,但是命令hls_base_url对主播放列表不生效,请问一下如何设置才能使主播放列表中每一个子m3u8可以有前缀
我使用的命令如下:

D:\work\vod\vod-service\src\main\resources\bin\Windows-amd64\ffmpeg.exe -i "D:\temp\test_file.mp4" 
 -map 0 -c:v:0 libx264 -c:a:0 aac -filter:v:0 scale=-1:1080 
 -map 0 -c:v:1 libx264 -c:a:1 aac -filter:v:1 scale=-1:720 
 -map 0 -c:v:2 libx264 -c:a:2 aac  -var_stream_map "v:0,a:0,name:1080P v:1,a:1,name:720P v:2,a:2,name:original"
 -start_number 10 -hls_time 10 -hls_list_size 0 -hls_start_number_source 1  -hls_base_url "http://localhost/m3u8/test/"   -master_pl_name "index.m3u8" 
 -hls_segment_filename "D:\nginx-1.24.0\html\m3u8\index_%v-%09d.ts" "D:\nginx-1.24.0\html\m3u8\index_%v.m3u8"

我进行了尝试后,目前采用的方法是通过代码为主m3u8文件中的不同子m3u8手写前缀,询问一下是否有更好的方式方法

  • 写回答

2条回答 默认 最新

  • 断水流大撕兄 HarmonyOS创作领域新星创作者 2023-07-10 17:45
    关注

    要实现这个效果,可以使用ffmpeg的-hls_segment_filename选项,它可以为ts分片文件和m3u8索引文件指定不同的输出路径和文件名格式。可以修改为:

    -hls_segment_filename "D:\nginx-1.24.0\html\m3u8\%v\index_%09d.ts" "D:\nginx-1.24.0\html\m3u8\%v\index.m3u8"  
    

    这里%v会被自动替换为不同的variant名称,如1080p。然后不同variant的ts分片和m3u8索引文件会按照指定路径输出到不同目录,实现了基础URL的效果。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月10日

悬赏问题

  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度
  • ¥25 主成分分析中的第一第二主成分分别代表哪些参数
  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退