X264编码测试验证
之前在做一个rtsp直播需求,其中一个方案是要用的x264来对摄像头数据进行实时编码推流,摄像头帧率是25fps,为了验证方案的可行性,先对x264的编码速度进行一个测试研究,再确认是否要采用此方案。
我移植的x264是x264-snapshot-20180829-2245
作为实时流的编码有几个参数一定要注意
x264_param_default(pParm);
.....................................
pParam->b_repeat_headers = 1; // 重复SPS/PPS 放到关键帧前面 保证播放不会解析错误
pParam->rc.b_mb_tree=0;//不为0,将导致编码延时帧
bitrate设置为2M,第一次测试下来编码一分钟的yuv数据花了十多分钟,
然后一直吧bitrate降低到 200k编码还是需要花上超过一分钟,也就是编码速度大大大的低过摄像头数据产生速度,
后来上网搜索了对比了一遍各种参数发现有一个参数对编码速度是很有贡献的
设置如下,其中两个参数的解释参考h264.h文件解释
x264_param_default_default_preset(pParm,“ultrafast”,"zerolatency");
/* x264_param_default_preset:
* The same as x264_param_default, but also use the passed preset and tune
* to modify the default settings.
* (either can be NULL, which implies no preset or no tune, respectively)
*
* Currently available presets are, ordered from fastest to slowest: */
static const char * const x264_preset_names[] = { "ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "s
lower", "veryslow", "placebo", 0 }; /* The presets can also be indexed numerically, as in:
* x264_param_default_preset( ¶m, "3", ... )
* with ultrafast mapping to "0" and placebo mapping to "9". This mapping may
* of course change if new presets are added in between, but will always be
* ordered from fastest to slowest.
*
* Warning: the speed of these presets scales dramatically. Ultrafast is a full
* 100 times faster than placebo!
*
* Currently available tunings are: */
static const char * const x264_tune_names[] = { "film", "animation", "grain", "stillimage", "psnr", "ssim", "fastdecode", "zer
olatency", 0 }; /* Multiple tunings can be used if separated by a delimiter in ",./-+",
* however multiple psy tunings cannot be used.
* film, animation, grain, stillimage, psnr, and ssim are psy tunings.
*
* returns 0 on success, negative on failure (e.g. invalid preset/tune name). */
int x264_param_default_preset( x264_param_t *, const char *preset, const char *tune );
第二个参数可选参数如下,其中ultrafast的速度比placebo块100倍
"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "s
lower", "veryslow", "placebo",
于是修改之后在验证编码速度一分钟的yuv数据花费了大概65s的时间,但是还是没法满足我的需求,估计只能编码12fps的数据。
这样看来x264软编码的实时效率对于我目前的需求实现确实没什么价值,只能放弃此方案。
X264编码测试验证的更多相关文章
- Android camera采集视频 X264编码
参考 http://blog.csdn.net/zblue78/article/details/6058147 感谢 ExperiencesOfCode 硬件平台:CPU Intel G630 @2. ...
- 18、x264编码在zedboard上的实现(软编码)
一.x264开源包获取 x264-snapshot提供了开源x264源代码,已经在X86和ARM架构下均已实现.linux下可以使用git获得最新的代码包 git clone git://git.vi ...
- WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码
转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...
- inner join on (程序测试验证结果。) _学习贴
inner join on 两张表:机制就是第一张表的每一条数据,都会去和第二章表的每一条数据 依次进行匹配.匹配成功,就会显示出来. (程序测试验证结果.) 数据库连接 1 对 1 create ...
- spring事务详解(四)测试验证
系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...
- Spring_Four -- 团队项目设计完善&编码测试
团队项目设计完善&编码测试 1.文档<软件设计方案说明书>github地址:https://github.com/gzyt/SRS 2.项目集成开发环境 数据库:Mysql 5.0 ...
- 实验十一 团队作业7—团队项目设计完善&编码测试
实验十一 团队作业7—团队项目设计完善&编码测试 实验时间 2018-6-8 Deadline: 2018-6-20 10:00,以团队随笔博文提交至班级博客的时间为准. 评分标准: 按时交 ...
- x264编码的图像出现乱码的问题
将YUV进行x264编码的时候,建议将 i_threads 参数设置成 X264_SYNC_LOOKAHEAD_AUTO//* 取空缓冲区继续使用不死锁的保证. 否则有可能编码出来的数据会出现IDR_ ...
- 《F4+2—团队项目设计完善&编码测试》
1:根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明 a.软件系统设计说明书的完善 将测试启动准则,测试结束准则,测试暂停/中止标准加到了测试计划中.将把在测试中会 ...
随机推荐
- PHP的zlib压缩工具扩展包学习
总算到了我们压缩相关扩展的最后一篇文章了,最后我们要学习的也是 Linux 下非常常用的一种压缩格式:.gz 的压缩扩展.作为 PHP 的自带扩展,就像 zip 一样,zlib 扩展是随着 PHP 的 ...
- js 签字插件
1.jq-signature http://bencentra.github.io/jq-signature/ 支持的jquery版本低 2.HTML5 canvas http://www ...
- ecshop调用商品的购买次数方法
这时候我们修改一下 写成一个函数放到lib_goods.php 这样就可以随便调用了 --------------------------------------------------------- ...
- 开源ASR服务器vosk
概述 近几年由于AI的迅速发展,语音相关的自然语言处理NLP项目也变多了,新的技术也越来越成熟,其中TTS(语音生成)和ASR(语音识别)是NLP中非常重要的环节. 今天我们介绍一个开源的ASR项目v ...
- Docker系类(25)- 发布镜像到DockerHub
# step-1 注册账号 https://hub.docker.com/# step-2 在服务器尚提交我们的镜像[root@localhost WEB-INF]# docker login --h ...
- Docker系列(7)- 常用命令(3) | 容器命令
容器命令 说明: 有了镜像才可以创建容器:下载一个centos镜像进行练习,相当于在Linux里面再见一个Linux虚拟机 [root@localhost ~]# docker pull centos ...
- Mybatis中使用级联查询,一对多的查询
一.需求描述 自己在开发一个小程序的过程中,需要做的一个查询是稍微比较复杂的查询,根据用户信息去查询用户所对应的宠物信息. 一个用户可能对应多个宠物,所以在用户和宠物信息的对应关系就是一对多的关系. ...
- 11.2.0.4 ORA-15025 ORA-27041 IBM AIX RISC System/6000 Error: 13: Permission denied
ASM device error ORA-27041 ORA-15025 ORA-15081 (Doc ID 1487475.1) 描述总结:数据库的alert中发现大量ORA-27041 ORA-1 ...
- nodejs 安装 报错解决方案
win10安装nodejs之后,查看版本号在终端输入node -v成功输出版本号,输入npm -v 之后报错...... 反复安装卸载之后,有点奔溃,最后的解决方案是:手动删除"C:\Use ...
- tomcat unkonwhost
服务器能ping通域名,tomcat死活不行,重启tomcat解决