转:MediaCoder H.264格式编码参数设置及详解
转: http://mediacoder.com.cn/node/81
由于现在大部分视频转码都选择H.264格式进行编码,同时CUDA编码的画质还达不到x264软编码的质量(如果你对画质无要求,可以直接忽略该教程。)所以该教程对Mediacoder H.264格式编码参数设置进行一次详解,希望对画质有一定要求编码爱好者有所帮助。
视频选项栏界面:

视频质量/码率比例 可选百分比,选择是否对原始视频码率进行压缩。如果对画质要求较高,建议选择100%,即不对原始视频码率进行压缩。
码率模式:设置转换视频时所采用的编码方式。可选项:
1. 平均码率模式;
2. 固定质量模式;
3. 恒定码率模式;
4. 恒定量化参数;
5. 2次编码模式;
6. 3次编码模式;
建议:选择固定质量模式
即对原始视频画质质量进行固定,编码后视频大小不可控。
格式:设置转换后临时的视频文件(未与音频文件封装之前)的格式。可选项:XviD、H.264、MPEG1、MPEG2、MPEG4、Theora、Flash Video、Dirac Video、Windows Media Video、RealMedia、H.263、H.263+、H.261、MS-MPEG4-V2、DV Video、Motion JPEG、Lossless JPEG、Huffyuv、Snow、AMV、Raw Video
建议:选择H.264
(注意:格式的选择会影响下面容器的选择,不是所有的格式都能封装到一个容器中的!)
容器:最后进行封装时使用的容器,如XXXX.AVI就是使用的AVI作为容器。可选项:Default、AVI、MP4、Matroska、MPEG1、MPEG2、MPEG2-TS、Flash Video、ASF、3GP、3GP2、MOV、MJPEG、RealMedia、DV Forma、OGG、NUT、PMP、Raw Stream
建议:选择MP4(MP4具有良好的播放兼容性,iphone、ipad等均可以直接点播)如果对兼容性没要求,建议选择MKV
(注意:很多转换任务一开始就报有关容器的错误,是因为混流软件对转换后的音频文件或视频文件无法混流所致.具体MediaCoder的混流器能封装什么格式的视频文件和音频文件,请参考其他有关资料!)
复制视屏流:当勾选参数时,MediaCoder不会对原始视频进行转换,而是直接无损提取。
建议:不勾选 
编码器:设置MediaCoder对视频编码时所使用的编码器。可选项:MEncoder、FFmpeg、x264、JM Encoder、XviD、Theora Encoder、Dirac、WM Encoder、VFW Encoder、AMV Encoder、Stream Dumper、Frame Dumper、x264 Remote
建议:选择x264
对画质有要求的同学无视后面的
吧,目前用CPU软编码还是无奈的唯一选择。
(注意:只有不勾选自动选择后才能选择以上编码器。不正确选择会导致转换失败.)
来源:设置MediaCoder对原视屏解码时所使用的解码方式。可选项:Bypass、MPlayer、MEncoder、FFmpeg、WM Decoder、JM Decoder、AviSynth、File Stream
建议:勾选自动选择 
(注意:只有不勾选自动选择时才能选择以上解码方式,不正确的选择会导致文件转换失败!)
x264编码器选项栏界面:

规格:压缩时使用规格模式。可选项:Auto、Baseline、Main、High、High10。具体各规格概况如下图:(图片来源于网络)

建议:选择Main及以上(考虑到编码后视频的兼容性,不建议选择Main以下的规格。如果你对编码时间无要求,同时又是画质的骨灰级发烧友,那请你选择High及以上。)
级别:表示编、解码等级
建议:选择级别4.0 
预设:x264为我们提供了预设这么一个选项,总共有placebo、veryslow、slower、slow、medium、fast、faster、veryfast、ultrafast、custom这几个预设,不同的预设编码出来的视频效果自然不同,当然编码时间也大不相同。
如果您的CPU好,或者视频时间较短,码率和分辨率较低,请尽可能使用较高的预设,如果视频时间较长,码率和分辨率较低,或者您的CPU较为一般,可以适当降低预设来帮助您压制。以我来说,我压1080P一般用slower。有骨灰玩家说了:“那我选择custom呢?怎么设置呢?”好吧,给大家些资料参考一下吧,篇幅有限,各个参数请大家自己查阅相关资料了。
运动估算模式:--me:对全像素块动态预测搜索的方式,可选项:
Diamond:菱形搜索;
Hexagonal:正六边形搜索;
Uneven Multi-Hexagon:可变半径六边形搜索;
Exhaustive:全面搜索;
Hadamard Exhaustive:用Hadamard方式进行全面搜索,比Exhaustive更慢。
建议:选择Uneven Multi-Hexagon
(注意:建议设为Uneven Multi-Hexagon;Exhaustive和Hadamard Exhaustive实在太慢了,而且画面质量提高极不明显。除非你不怕浪费时间且追求高质量画面的骨灰级玩家并且很相信自己机器配置那么就选Hadamard Exhaustive吧!)。
范围:运动估算半径:--merange:4-64。计算机对像素块进行预测搜索的半径。
建议:设置为16
参考帧数:参考帧数:--ref:最大参考帧数,范围0-16。该参数对质量和压缩比都有提高
建议:设置大于1
子像素优化::--subme:动态预测和分区方式,可选项1-9
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
4:用快速模式进行四分之一像素块精确搜索
5:用质量模式进行四分之一像素块精确搜索
6:进行I、P帧像素块的速率失真最优化(rdo)
7:进行全部帧像素块的速率失真最优化
8:进行I、P帧运动矢量及块内部的速率失真最优化
9:进行全部帧运动矢量及块内部的速率失真最优化
建议:选择7
(注意:该选项选择的数值越大画面质量越好,而编码的速度越慢!)
优化:对特定视频进行算法优化。选项有:normal(普通)、film(电影)、animation(动画)、grain(颗粒)、stillimage(静态图像)、psnr(PSNR测试)、ssim(SSIM测试)、fastdecode(快速解码)、zerolatency(零延迟)。
建议:一般选择normal。
B帧数:--bframes:在I帧与P帧之间可插入B帧数量的最大值,范围0-16。
直观的说,对于大多数视频,绝大多数的冗余资源在离帧最近的位置被编码。 这就是说,只要设置这个值超过4或者5,就会增加编码时间,同时带来的价值并不大。 我通常使用的值是4.
建议:设置大于1
上述就是Mediacoder H.264格式编码参数设置的一些有关建议,当然高级选项里还有很多对视频编码画质和编码效率有关的选项,这里就不一一给大家解释了。如果感兴趣的话,多多查阅一些相关资料吧。祝大家编码愉快!
转:MediaCoder H.264格式编码参数设置及详解的更多相关文章
- 【流媒体】 Android 实时视频编码—H.264硬编码
[流媒體] Android 实时视频编码—H.264硬编码 SkySeraph Apr 4th 2012 Email:skyseraph00@163.com 1 硬编码 & 软编码 硬编码: ...
- H.264格式,iOS硬编解码 以及 iOS 11对HEVC硬编解码的支持
H.264格式,iOS硬编解码 以及 iOS 11对HEVC硬编解码的支持 1,H.264格式 网络表示层NAL,如图H.264流由一帧一帧的NALU组成: SPS:序列参数集,作用于一系列连续的编码 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- linux mount命令参数及用法详解
linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...
- (转)Memcached用法--参数和命令详解
Memcached用法--参数和命令详解 1. memcached 参数说明: # memcached -h 1.1 memcached 的参数 常用参数 -p <num> 监听的TCP端 ...
- (转)linux traceroute命令参数及用法详解--linux跟踪路由命令
linux traceroute命令参数及用法详解--linux跟踪路由命令 原文:http://blog.csdn.net/liyuan_669/article/details/25362505 通 ...
- linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...
- SUBLIME TEXT 2 设置文件详解
SUBLIME TEXT 2 设置文件详解 Preferences.sublime-settings文件: // While you can edit this file, it’s best to ...
随机推荐
- ORA-04091: 表 发生了变化, 触发器/函数不能读它
触发器中新调用了一个存储过程. 触发器: create or replace trigger tr_credits_wzclorder_clwzjk after update on app_wzclo ...
- Nginx系列~Nginx服务启动不了
Nginx服务有时起动不了了,原因是80端口为其它应用程序占用了,这时,我们需要查看是哪个程序占用了它,可能是IIS的某个站点,或者Tomat,Apache等,都有可能,所以,我们需要查看一下电脑80 ...
- 为什么SSL证书流量暴增?
网络服务提供商 Sandvine 近日发布了一份报告,中提到了一个非常有趣的现象:和去年的数据相比,加密网络流量(SSL)在今年正在呈现出爆发式增长. 这个变化在欧洲表现得十分明显:和去年的 1.47 ...
- 理解Web标准(网站标准)
我觉得一名Web前端应该好好理解Web标准到底是什么,为什么要在我们的实际实践中遵循Web标准. 什么是Web标准.百度百科的解释是: WEB标准不是某一个标准,而是一系列标准的集合.网页主要由三部分 ...
- Windows Server Backup 2008 R2 备份Hyper-V
要备份 Hyper-V 虚拟机从父分区在 Windows Server 2008 上使用 Windows 服务器备份,您必须注册 Microsoft Hyper-V VSS 编写器 Windows 服 ...
- CF B. Kolya and Tandem Repeat
Kolya got string s for his birthday, the string consists of small English letters. He immediately ad ...
- Spring MVC 3.0 请求转发和重定向
首先看一下如何获得request对象.session对象: 普通的Controller类,示例代码如下: @Controller @RequestMapping(value = "user& ...
- 开机就提示“请安装TCP/IP协议,error=10106”的解决的方法
一.问题描写叙述: 今天开机时提示"请安装TCP/IP协议,error=10106",现象是popo,qq等登录不了,IE浏览器等连不了网,使用ping命令ping其它机器和路由器 ...
- Spring.NET 与 NHibernate
回到 Spring.NET & NHibernate of C#.NET 技术论坛 实战C#.NET编程----Spring.NET & NHibernate从入门到精通 您可以从以下 ...
- 高级Swing——列表
1. 列表 1.1 JList构件 JList可以将多个选项放置在单个框中.为了构建列表框,首先需要创建一个字符串数组,然后将这个数组传递给JList构造器. String[] words= { &q ...