Imagine Computing创新技术大赛赛道2:设计低延时高体验的实时音视频应用
比赛链接:https://tianchi.aliyun.com/competition/entrance/532034/forum
参赛者需要设计一个视频实时转码应用开发以本次大赛提供的本地操作系统镜像进行环境开发调试,开发调试涉及到的文件说明如下:
文件名 | 路径 | 作用 |
---|---|---|
input.mp4 | /eval_data/ | 转码视频源文件,用于本地调测使用 |
ffmpeg | /home/admin/FFmpeg | 程序源代码 |
run. sh | /home/admin/scripts | 编译测试 |
参赛选手需要基于ffmpeg文件所提供代码框架进行开发,通过运行run.sh可以输出获得延时、CPU占用率、fps、输出视频、画质、码率等结果信息,选手可以根据输出的结果信息进行各项指标调优。
提交说明
平台提供基础容器镜像(详见容器镜像页),选手可基于基础镜像进行本地开发,开发完成后将本地代码打包成镜像提交,推送至阿里云容器镜像仓库后,在天池提交页面中输入镜像地址、用户名和仓库密码。由比赛平台拉取镜像运行,运行结束即可在成绩页面查询评测结果和日志。参赛选手基于镜像包本地进行编译提交,通过天池页面进行镜像提交,提交成功后,大赛评测服务器将调用30Mbps的视频源,对选手提交镜像文件进行调用测评,转码成20Mbps的视频,计算3项指标(延时、CPU占用率、画质)。
docker学习
资料
ffmpeg和x264参数的对照表:
https://blog.51cto.com/xcshen/624178
https://blog.csdn.net/byxdaz/article/details/80663718
h264 h265 VP9编码对比
VP9与H.265的6个不同点
互动场景下的低延迟编码技术
下载x264后,执行
x264 --fullhelp # 查看帮助文档
ffmpeg -loglevel repeat+level+verbose -threads 4 -re -i /eval_data/input.mp4 -threads 4 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 18 -x264-params lookahead_threads=0 -y /eval_output/temp.mp4
最好的:ffmpeg -threads 4 -re -i $inputs -threads 4 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 18 -y $outputs.
直播
ffmpeg命令参数说明
-crf
- 量化参数(QP)反映了空间细节压缩情况,如 QP 小,大部分的细节都会被保留,码 率增大。QP 增大,一些细节丢失,码率降低,但图像失真加强和质量下降。也就是说,QP 和比特率成反比的关系。
码率控制
x264 vbv-maxrate与vbv-bufsize对码率控制
-x264-param使用实例:
ffmpeg -i input.mp4 -c:v libx264 -x264-param "level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000" -g 30 -b:v 1000k output.mp4