x264低时延低码率高质量调参

h264解码延迟优化_H264编码参数优化:
参考文章:Video Codecs Analysis and Tuning ,文档下载地址:http://www.yuvsoft.com/pdf/x264_parameters_comparison.pdf
文章中详细比较了48种不同x264参数组合,比较得到如下6类最优的x264编译参数,我将文章中的x264参数转化为ffmpge命令参数如下:
1)fastest preset
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -me_method dia -directpred 1 -me_range 16 -subq 1 -b_qfactor 1.5 -bf 1 -acodec libfaac sample_fastest.mp4

2)fast preset
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -subq 1 -acodec libfaac sample_fast.mp4
3)tradeoff preset
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -subq 3 -acodec libfaac sample_tradeoff.mp4
4)good preset
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -bf 3 -bframebias 5 -flags2 +dct8x8+wpred+bpyramid -trellis 1 -acodec libfaac sample_good.mp4

5)best preset
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -bf 4 -flags2 +dct8x8+wpred+bpyramid -trellis 1 -refs 10 -directpred 3 -me_method umh -subq 7 -acodec libfaac sample_best.mp4

6)extra quality preset
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -bf 4 -flags2 +dct8x8+wpred+bpyramid -refs 8 -directpred 3 -me_method umh -subq 7 -pass 1 -acodec libfaac > dev&null
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264 -bf 4 -flags2 +dct8x8+wpred+bpyramid -refs 8 -directpred 3 -me_method umh -subq 7 -pass 2 -acodec libfaac sample_extra.mp4
下面表格显示在默认参数情况下编码速度以及平均码率相对百分比:
Preset Name Speed, % Average bitrate%
Fastest 47 114
Fast 56 109
Tradeoff 70 102
Good 121 89
Best 369 77
Extra Quality 710 72

我测试分辨率1280 x 720,20帧的赛车视频,视频原始大小100442K,视频使用Sorenson Video 3编码,音频使用
MPEG-1 Layer
3编码,使用上诉5种参数分别编码得到53897K、59303K、60251K、63670K、55405K、55405K。我个人比较倾向于best
preset参数。
在使用使用如下best参数编码的h264视频,播放时最高CPU利用率不超过4%,但效果明显比FLV效果高
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f mp4 -vcodec libx264
-bf 4 -flags2 +bpyramid+wpred+8x8dct -trellis 1 -refs 10 -directpred 3
-me_method umh -subq 7 -s 352*288 -r 7.5 -aspect 16:9 -acodec libfaac
-ab 32k sample_best_352_288_7.mp4
ffmpeg -i NFSCAR_x360_trackDrift_HD720P.mov -f flv -vcodec flv -acodec libmp3lamesample_352_288.flv
视频大小分别为4212K(x264)、4816K(Flash/Sorenson)

归纳:x264:
profile:baseline
preset:ultrafast
tune:zerolatency
恒定码率crf:28
GOP:50
帧率:25
码率如下表格
1)x264 --preset ultrafast --tune zerolatency --bframes 0 --qp 20 --keyint 60 --min-keyint 60 --bitrate 1024 --vbv-maxrate 1024 --vbv-bufsize 1024 --profile baseline --level 3 --input-res 1920x1080 --fps 30 --output output.h264 input.mp4
x264 --preset ultrafast --tune zerolatency --bframes 0 --qp 20 --keyint 60 --min-keyint 60 --bitrate 1024 --vbv-maxrate 1024 --vbv-bufsize 1024 --profile baseline --level 3 --input-res 1080x720 --fps 30 --output output.h264 input.mp4

2)ffmpeg -i input.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -profile:v baseline -b:v 1500k -s 1280x720 -r 25 -c:a aac -b:a 128k -f flv rtmp://yourserver.com/app/streamkey

3)更高视频质量:
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -level 3.0 -preset ultrafast -tune zerolatency -b:v 2M -maxrate 2M -bufsize 1M -c:a aac -b:a 128k -f flv rtmp://server/live/stream
这个命令使用了x264编码器,设置了Baseline Profile和Level 3.0,使用了ultrafast预设和zerolatency选项以达到更低的时延,同时设置了恒定码率和最大码率,以保证视频质量和压缩码率的平衡。需要根据具体情况进行调整。在这个命令中,输出格式是FLV,可以通过RTMP协议将视频流推送到指定的服务器上。

4)这个命令使用了x264编码器,设置了较低的CRF值和最大码率,通过调整QP参数来控制编码质量和码率,同时使用了一些其他参数以达到更好的性能和效果。需要根据具体情况进行调整。在这个命令中,输出格式是H.264,可以根据需要进行转换。
x264 --preset faster --tune film --crf 28 --vbv-maxrate 1000 --vbv-bufsize 2000 --level 3.1 --profile baseline --output output.h264 input.mp4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT数据库编程

ui界面 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QButtonGroup> #include <QFileDialog> #include <QMessageBox> MainWindow::MainWindow(QWidget* parent): QMainWindow(parent), ui(new Ui::M…

FFmpeg 音视频开发工具

目录 FFmpeg 下载与安装 ffmpeg 使用快速入门 ffplay 使用快速入门 FFmpeg 全套下载与安装 1、FFmpeg 是处理音频、视频、字幕和相关元数据等多媒体内容的库和工具的集合。一个完整的跨平台解决方案&#xff0c;用于录制、转换和流式传输音频和视频。 官网&#xff1a;http…

uni-ajax网络请求库使用

uni-ajax网络请求库使用 uni-ajax是什么 uni-ajax是基于 Promise 的轻量级 uni-app 网络请求库,具有开箱即用、轻量高效、灵活开发 特点。 下面是安装和使用教程 安装该请求库到项目中 npm install uni-ajax编辑工具类request.js // ajax.js// 引入 uni-ajax 模块 import ajax…

微信小程序测试要点

一、什么是小程序&#xff1f; 可以将小程序理解为轻便的APP&#xff0c;不用安装就可以使用的应用。用户通过扫一扫或者搜索的方式&#xff0c;就可以打开应用。 小程序最主要的特点是内嵌于微信之中&#xff0c;而使用小程序的目的是为了能够方便用户不在受下载多个APP的烦…

【序列化工具JdkSerialize和Protostuff】

序列化工具对比 JdkSerialize&#xff1a;java内置的序列化能将实现了Serilazable接口的对象进行序列化和反序列化&#xff0c; ObjectOutputStream的writeObject()方法可序列化对象生成字节数组 Protostuff&#xff1a;google开源的protostuff采用更为紧凑的二进制数组&#…

自动化测试——接口测试

一、接口分类 1.内部接口&#xff1a;测试被测系统各个子模块之前的接口&#xff0c;或者测试被测系统提供给内部用户系统使用的接口。 2、外部接口&#xff1a;被测系统调用外部的接口&#xff1b;系统对外提供的接口 接口测试重点&#xff1a;检查结论参数传递的正确性&…

5.2.16.静态映射操作LED3

5.2.16.静态映射操作LED3 5.2.16.1、添加驱动中的写函数 (1)先定义好应用和驱动之间的控制接口&#xff0c;这个是由自己来定义的。譬如定义为&#xff1a;应用向驱动写"on"则驱动让LED亮&#xff0c;应用向驱动写"off"&#xff0c;驱动就让LED灭 1. 驱动文…

计算机网络(2) --- 网络套接字

计算机网络&#xff08;1&#xff09; --- 网络介绍_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131967378?spm1001.2014.3001.5501 目录 1.端口号 2.TCP与UDP协议 1.TCP协议介绍 1.TCP协议 2.UDP协议 3.理解 2.网络字节序 发送逻辑…

微信小程序 背景图片如何占满整个屏幕

1. 在页面的wxss文件中&#xff0c;设置背景图片的样式&#xff1a; page{background-image: url(图片路径);background-size: 100% 100%;background-repeat: no-repeat; } 2. 在页面的json文件中&#xff0c;设置背景图片的样式&#xff1a; {"backgroundTextStyle&qu…

Go 下载安装教程

1. 下载地址&#xff1a;The Go Programming Language (google.cn) 2. 下载安装包 3. 安装 &#xff08;1&#xff09;下一步 &#xff08;2&#xff09;同意 &#xff08;3&#xff09;修改安装路径&#xff0c;如果不修改&#xff0c;直接下一步 更改后&#xff0c;点击下一…

代码随想录算法训练营第三十天 | 单调栈系列复习

单调栈系列复习 每日温度未看解答自己编写的青春版重点题解的代码日后再次复习重新写 下一个更大元素 I未看解答自己编写的青春版重点题解的代码日后再次复习重新写 下一个更大元素II未看解答自己编写的青春版重点题解的代码日后再次复习重新写 接雨水未看解答自己编写的青春版…

Maven 插件安装 Maven Helper插件安装 成功解决IDEA2022 Plugins 连不上、打不开

IDEA Maven Helper插件&#xff08;详细使用教程&#xff09;_程序之大道至简的博客-CSDN博客 成功解决IDEA2022 Plugins 连不上、打不开_idea插件市场连不上_loulanyue_的博客-CSDN博客

计算机毕设 深度学习卫星遥感图像检测与识别 -opencv python 目标检测

文章目录 0 前言1 课题背景2 实现效果3 Yolov5算法4 数据处理和训练5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长…

《数据同步-NIFI系列》Nifi配置DBCPConnectionPool连接SQL Server数据库

Nifi配置DBCPConnectionPool连接SQL Server数据库 一、新增DBCPConnectionPool 在配置中新增DBCPConnectionPool&#xff0c;然后配置数据库相关信息 二、配置DBCPConnectionPool 2.1 DBCPConnectionPool介绍 主要介绍以下五个必填参数 Database Connection URL&#xff1…

iOS开发-实现自定义Tabbar及tabbar按钮动画效果

iOS开发-实现自定义Tabbar及tabbar按钮动画效果 之前整理了一个继承UITabbarController的Tabbar效果 查看 https://blog.csdn.net/gloryFlow/article/details/132012628 这里是继承与UIViewController的INSysTabbarViewController实现及点击tabbar按钮动画效果。 一、INSysT…

修改内核驱动之后-如何给内核打补丁

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言思路步骤1.进入下面路径2.修改文件calibrate.c3.使用git工具生产补丁文件4.移动补丁文件到自己的Linux的recipem目录下总结前言 本文来学习如何使用YOCTO修改Linux内核驱动之后,如何通过打补…

Android开发——SQLite数据库的使用

Android开发——SQLite数据库的使用 文章目录&#xff1a; Android开发——SQLite数据库的使用一、认识SQLite1、SQLite的特性2、SQLite的适用场景 二、SQLite在Android开发中的应用1、工具类的编写2、信息的插入3、信息的读取 一、认识SQLite 1、SQLite的特性 SQLite是一个进…

qt源码--事件系统之QAbstractEventDispatcher

1、QAbstractEventDispatcher内容较少&#xff0c;其主要是定义了一些注册接口&#xff0c;如定时器事件、socket事件、注册本地事件、自定义事件等等。其源码如下&#xff1a; 其主要定义了大量的纯虚函数&#xff0c;具体的实现会根据不同的系统平台&#xff0c;实现对应的方…

软件测试员的非技术必备技能

成为软件测试人员所需的技能 非技术技能 以下技能对于成为优秀的软件测试人员至关重要。 将您的技能组合与以下清单进行比较&#xff0c;以确定软件测试是否适合您 - 分析技能&#xff1a;优秀的软件测试人员应具备敏锐的分析能力。 分析技能将有助于将复杂的软件系统分解为…

leetcode300. 最长递增子序列 子序列(不连续)

https://leetcode.cn/problems/longest-increasing-subsequence/ 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#x…