zoukankan      html  css  js  c++  java
  • Mencoder常用视频转换参数

    mencoder -ofps 15 -vf-add scale=176:144 -vf-add expand=176:144:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=500:max_bframes=0:quant_type=h263:me_quality=0 -oac lavc -lavcopts acodec=mp2:abitrate=96 "input.avi" -o "output.avi"

    参数详解:
    1、-ofps 15 :帧速率15fps
    2、scale=176:144 :图像原始比例,如4:3/16:9
    3、expand=176:144:转换后的分辨率
    4、-srate 44100 :声音采样率44100Hz
    5、-ovc xvid :视频编码格式XVID
    6、-xvidencopts bitrate=500:视频编码率500Kbps
    7、max_bframes=0:禁用BFrame
    8、quant_type=h263:XVID编码的量化方式(建议改为mpeg)
    9、me_quality=0:VHQ模式参数,动态搜索精度(6为精度最大值)
    10、-lavcopts acodec=mp2:音频编码为MP2
    11、abitrate=96 :音频编码率96Kbps

    这样对于一个15fps视频最佳参数为:
    max_key_interval=150:max_bframes=0:profile=sp3:trellis:chroma_me:chroma_opt:hq_ac:quant_type=h263:me_quality=6:vhq=4

    Xvid编码高级参数:
    压缩过程中的视频码率建议不要超过192Kbps(因为对于加入了手动参数的Xvid编码器,画质提升是相当明显的),强烈建议用2-Pass压缩!
    首先介绍一下这些高级参数的作用:
    cartoon:卡通模式,非卡通则去掉此参数
    vhq=4:VHQ MODE(动态搜索算法),有0-4五个值,越大画质越好,但是编码速度越慢 
    me_quality=6: 动态搜索精度(6为精度最大值)
    chroma_me:动态检索 ,色彩动态评估
    max_bframes=0 :B帧最大间距,设为0表示关闭B帧功能
    profile=XXX :小于等于15fps设置为sp3,大于15fps设置为asp3
    max_key_interval=XXX :最大I帧(关键帧)间隔,一般设置成帧数的10倍
    Quant_type=mpeg:量化矩阵,Mpeg模式,如果压缩时去掉这段就默认量化矩阵为H.263 
    trellis:高质量量化模式 
    GMC:全域动态补偿 
    qpel:四分之一像素精确动态补偿(如果使用了该功能则可能降低解码速率,建议不用) 
    bvhq=1:在B帧上启用VHQ 
    lumi_mask:加大画面明暗部分压缩率(一般不用,有时会导致画面失真) 
    greyscale:使用灰度,但是便出来的画面是黑白的(一般不使用) 
    interlacing:隔行处理,适用于交错片源(一般不使用) 
    chroma_opt:色度优化 ,色彩最佳化
    Quantization量化选项(关键的关键就在这里!)
      量化器级别(quantizer level)即Q值越高画面细节越丰富,但是在低码率下越高的量化器级别,会带来越低的画面质量,Q 值越小,质量越好,码率越大;Q 值越大,质量越差,码率越小。(实际上,它的原始概念更复杂,我们干脆简单地认为1就是100%原质量,31就是1/31的原质量好了)。P-frame(即未来单项预测帧)建议设置在1--15之间,(它的作用是只储存与之前一个已解压画面的差值。即仅仅描述它与前一帧的区别)。I-frame(即关键帧)的Q值只用能作用于2pass-second压制上,在VirtualDub被标示为 [K],关键帧是构成一个帧组(GOP,Group of Picture)的第一个帧。I-Frame 保留了一个场景的所有信息(Keyframe原意是指可以单独解码、用于同步的frame,不过在MPEG系统中只有I-frame有这个特性,因为BF和PF都是预测帧,要靠I-Frame来还原)。B-frame(即双向预测帧)除了参考之前解压过了的画面外,亦会参考后面一帧中的画面信息。这三个设置的范围都是1-31,应该注意的是在场景昏暗的条件下不要让B-frame过低。 
    min_iquant=1——IF的量化最低值(取值范围在1-31之间) 
    max_iquant=10——IF的量化最高值(取值范围在1-31之间) 
    min_pquant=1——PF的量化最低值(取值范围在1-31之间) 
    max_pquant=10——PF的量化最高值(取值范围在1-31之间) 
    min_bquant=1——BF的量化最低值(取值范围在1-31之间) 
    max_bquant=30——BF的量化最低值(取值范围在1-31之间)

    -sws 9 取值范围在(0-9)之间,不同值代表不同的Resize算法!建议用 -sws 9 
    0 快速二次线性(默认)(速度较快) 
    1 二次线性 
    2 二次立方(质量很好) 
    3 实验中 
    4 最短距离 (bad quality) 
    5 区域 
    6 亮度二次立方 度二次线性 
    7 高斯 
    8 sincR 
    9 lanczos(速度较快,而且画面锐利) 
    10 双三次样条曲线

    实际应用举例:
    vhq=4:cartoon:chroma_me:min_iquant=1:chroma_opt:min_iquant=1:max_iquant=12:min_pquant=1:max_pquant=12:bvhq=1:min_bquant=1

    添加到WisMencoder的手动参数中的视频编码处,然后再把 -sws 9 参数添加到视频滤镜处即可!记得-sws 9前一定加个空格,要不编码器不会启动!当然你也可以自己摸索适合的方案,做出效果更佳的方案!
  • 相关阅读:
    HIbernate小结
    玩耍Hibernate之缓存
    Java学习之IO流总结
    java基础学习之对象转型
    玩耍Hibernate系列(一)补充--基础知识
    玩耍Hibernate系列(二)--基础知识
    玩耍Hibernate系列(一)--基础知识
    Struts2拦截器的使用 (详解)
    struts1 和 struts2中Action什么时候实例化
    Java基础学习总结--Java对象的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/top5/p/1685459.html
Copyright © 2011-2022 走看看