ffmpeg 多分辨率切片

2022-04-25 18:55:37 浏览数 (1)

摘要

基于HLS流媒体技术,可以使单一的播放连接根据带宽选择自适应分辨率的效果。

正文

首先先生成一个加密key,

代码语言:javascript复制
openssl rand 16 > enc.key

然后新建一个enc.keyinfo文件,把enc.key上传网页播放器的运行目录下

enc.keyinfo 内容就是

代码语言:javascript复制
https://域名/enc.keyenc.key

之后再直接用下面的代码进行转码就可以生成1080P 720P 480P三种分辨率了。

代码语言:javascript复制
 ffmpeg -y -i 1.mp4 -preset slow -g 48 -sc_threshold 0 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -s:v:0 1920*1080 -b:v:0 1800k -s:v:1 1280*720 -b:v:1 1200k -s:v:2 858*480 -b:v:2 750k -s:v:3 630*360 -b:v:3 550k -s:v:4 426*240 -b:v:4 400k -s:v:5 256*144 -b:v:5 200k -c:a copy -var_stream_map "v:0,a:0,name:1080p v:1,a:1,name:720p v:2,a:2,name:480p v:3,a:3,name:360p v:4,a:4,name:240p v:5,a:5,name:144p" -master_pl_name master.m3u8 -f hls -hls_time 10 -hls_key_info_file enc.keyinfo -hls_playlist_type vod -hls_list_size 0 -hls_segment_filename "v%v/segment%d.ts" v%v/index.m3u8

完事之后会生成6个分辨率文件夹,以及一个主m3u8文件。上传到存储节点即可。

一般的HLS播放器都会自动切换分辨率不需要手动切换。

PS: 首次加载必定会加载最高清的内容,从第二个TS文件起才能切换分辨率。

拓展

一、《FFmpeg常用命令》

二、《使用ffmpeg提取视频文件中的音频》

三、《通过Ffmpeg把M3u8格式转换成Mp4》

完结

以上就是ffmpeg 多分辨率切片的内容,欢迎小伙伴们交流讨论。

0 人点赞