如何在FFMPEG导出HLS流时设置自定义输出文件夹名称
FFMPEG HLS自定义分辨率文件夹名称解决方案
可以直接在FFmpeg命令内完成配置,不需要执行完命令后手动修改文件夹名和master播放列表。
核心修改逻辑
- HLS的
-var_stream_map参数支持给每个流组添加name自定义属性,设置后占位符%v会自动替换为你定义的name值,而非默认的流索引0/1 - 执行命令前需要提前创建
480p、360p两个空文件夹,避免FFmpeg因输出路径不存在报错 - 原命令存在参数索引错误:
-crf:v:1 30、-crf:v:2 30的流索引和实际视频流不匹配,已同步修正
修改后完整命令
ffmpeg -i vid.mp4 \ -filter_complex \ "[0:v]split=2[v2][v3]; \ [v2]scale=720:-2[v2out]; [v3]scale=360:-2[v3out]" \ -map [v2out] -c:v:0 libx265 -sc_threshold 0 -crf:v:0 30 -level:v:0 3.0 -keyint_min:v:0 48 -g:v:0 48 \ -map [v3out] -c:v:1 libx265 -sc_threshold 0 -crf:v:1 30 -level:v:1 3.0 -keyint_min:v:1 48 -g:v:1 48 \ -map a:0 -c:a:0 aac -b:a:0 96k -ac:a:0 2 \ -map a:0 -c:a:1 aac -b:a:1 48k -ac:a:1 2 \ -f hls \ -hls_time 6 \ -hls_list_size 0 \ -hls_segment_filename "%v/segment_%d.ts" \ -master_pl_name master.m3u8 \ -var_stream_map "v:0,a:0,name:480p v:1,a:1,name:360p" \ "%v/stream.m3u8"
内容的提问来源于stack exchange,提问作者Rohan Deuskar
相关产品推荐
相关产品推荐

