ffmpeg 多分辨率切片

摘要

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


正文

首先先生成一个加密key,

openssl rand 16 > enc.key

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

enc.keyinfo 内容就是

https://域名/enc.keyenc.key

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

 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 多分辨率切片的内容,欢迎小伙伴们交流讨论。

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...