ffmpeg的转码延时测试与设置优化
来源:互联网 发布:ppt怎么弄数据展现 编辑:程序博客网 时间:2024/05/18 16:36
我测试了下ffmpeg直播流的转码延时,这些参数对文件的转码也是通用的;
测试环境:
. ffmpeg 版本为v3.0.2
.从同一台服务器拉流,转码再推送到同一台服务器上,这样减少了服务器与网络影响;
. 播放器使用实时模式,不缓冲
1. 设置slow参数
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -presetslow -b:v 400k -s 720x576 -r 25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
设置了这个参数(-preset slow)后,延时大概在10.6 -- 12.1 秒,
但它的图像质量会好
Fig-1 slow-3
2. 不设置优化参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -b:v400k -s 720x576 -r 25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
延时大概在1.6 -- 2.6秒
测试环境:
1. 设置slow参数
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -presetslow -b:v 400k -s 720x576 -r 25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
设置了这个参数(-preset slow)后,延时大概在10.6 -- 12.1 秒,
但它的图像质量会好
Fig-1 slow-3
2. 不设置优化参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -b:v400k -s 720x576 -r 25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
延时大概在1.6 -- 2.6秒
Fig-2 no-setting-3
3.设置fast参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -presetfast -b:v 400k -s 720x576 -r 25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
延时大概在2.1 -- 2.2秒
3.设置fast参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -presetfast -b:v 400k -s 720x576 -r 25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
延时大概在2.1 -- 2.2秒
Fig-3 fast-2
4. 设置ultrafast参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -presetultrafast -b:v 400k -s 720x576 -r25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
这样设置后延时会大大减小,但图像质量会变差得很明显;
延时大概在0.6 -- 0.8 秒
4. 设置ultrafast参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx264 -presetultrafast -b:v 400k -s 720x576 -r25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
这样设置后延时会大大减小,但图像质量会变差得很明显;
延时大概在0.6 -- 0.8 秒
Fig-4 ultrafast-3
5. 设置zerolatency和ultrafast参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -tune zerolatency-vcodec libx264 -preset ultrafast -b:v 400k -s 720x576 -r25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
这样设置后延时还会减小,但图像质量会变差得很明显;
延时大概在0.2 -- 0.6 秒
Fig-5 zerolatency-ultrafast-2
总结:
ffmpeg设置转码延时的参数和步骤如下:
. 关闭sync-lookahead
. 降低rc-lookahead,但别小于10,默认是-1
. 降低threads(比如从12降到6)
. 禁用rc-lookahead
. 禁用b-frames
. 缩小GOP,
. 开启x264的 -presetfast/faster/verfast/superfast/ultrafast参数
. 使用-tune zerolatency 参数
5. 设置zerolatency和ultrafast参数
ffmpeg命令行:
$ ./ffmpeg -i rtmp://192.168.1.12/live/src -tune zerolatency-vcodec libx264 -preset ultrafast -b:v 400k -s 720x576 -r25
-acodec libfaac -b:a 64k -f flvrtmp://192.168.1.12/live/dst
这样设置后延时还会减小,但图像质量会变差得很明显;
延时大概在0.2 -- 0.6 秒
Fig-5 zerolatency-ultrafast-2
总结:
ffmpeg设置转码延时的参数和步骤如下:
阅读全文
0 0
- ffmpeg的转码延时测试与设置优化
- ffmpeg的转码延时测试与设置优化
- ffmpeg的转码延时测试与设置优化
- ffmpeg的转码延时测试与设置优化
- ffmpeg与x264编码指南 转码优化
- FFmpeg MP3解码器的研究与优化
- timer的延时和优化
- 基于opencl的ffmpeg视频优化处理设计与实现
- ffmpeg编码延时问题解决
- Android ViewPager与Fragment的延时切换,取消预加载优化
- 滤波器的响应与延时
- FFmpeg转码指令(测试通过)
- FFMPEG的编码延时,avcodec_encode_video2出帧慢,实时编码
- ffmpeg+x264编码,AVCodecContext的gop_size与max_b_frames设置无效
- rt5350 h264 sn9c291 的RTSP 延时测试
- Espresso IdlingResource 测试延时操作的使用
- SRS rtmp http-flv流低延时设置、测试
- ffmpeg学习---11.ffmpeg的流媒体服务器与播放器的设置
- Mac OS 环境下go语言的安装
- java环境变量及maven环境变量的设…
- JS导出Table为excel的三种可行性方案
- HTML5新特性之文件和二进制数据的…
- 玩游戏的时候怎么没觉得补刀这么难…
- ffmpeg的转码延时测试与设置优化
- 8球胜负(eight)
- 使用ffmpeg对视频进行TS切片
- BiliBili, ACFun… And More!
- 七种转化RTSP屏显示到web页面的方…
- 点球大战(penalty)
- 对Class.forName()用法详解
- mac 安装node环境
- Android App自动化测试: OPEN-STF环境搭建