[Linux 音视频技术] mencoder处理出来的视频声音和视频不同步的处理方法

Jun 13th, 2009

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2009/06/13/mencoder_av_sync.html

大量大量的视频,处理完发现声音和视频不同步,害我所有的声音都要重新处理,总结一下,可以加什么参数来解决

-mc 0  

这是告诉mencoder在自动调整影音同步时,每帧不要超过0秒,每帧的最大A-V同步修正(以秒为单位).,这个是让mencoder不自己做声音和视频的同步调整,他也能去除转换过程中的一些“Skipping frame!”、“1 duplicate frame(s)!”之类的提示.大多不同步的问题,用这个可以解决.

-autosync

基于音频延迟的检测逐步调整A/V同步. 设定;autosync 0, 也就是默 认 值, 将导致帧记时完全基于音频延迟的检测. 设定;autosync 1也是一 样, 但将会微妙的改变所使用的A/V修正算法. 设置大于1的值对那些 视频 帧速率不均匀, 但用−nosound可以正常播放的电影一般会有帮助. 这个值越大, 记时方法越接近于−nosound. 对于没有好的音频延迟检测功能的声卡驱动试试用−autosync 30来平滑这个问题. 使用这个值时, 如 果出现大的A/V同步偏移, 只需要1或2秒就可以摆平. 对于任何声卡 驱 动, 打开这个选项的唯一缺点就是对于突然的A/V偏移的反应延迟时间.

-bps/-nobps 


是否使用平均比特率值来维持   A-V   同步.介绍上好象只对avi有用,不过我测试,好象对ts也有用.

-vf harddup

这个选项非常有用,当我们使用 -ofps 来设置时帧率时,但加大  fps 时才建议使用,小于不建议使用,可以加上去掉使用 softskip,pullup 的过滤器来测试一下.在改变帧率时,不能输出成 raw video.改变帧率常常是不能同步的原因之一.当然有时-vf scale or cropp 的选项也会让声音视频不同步.

有人讲noskip 也有用,不过我测试,好象没有什么用.不过1 duplicate frame的提示会没有,可能是真的不跳过重复的frame.

 

PS.最重要一点,看源视频是不是也不同步….nnd有个视频我处理了一天半,后来发现源视频也不同步

 

mencoder 的输出解读

内容大约是这样

Pos: 422.8s 317f (19%) 48fps Trem: 0min 3mb a-v:-0.003 [122:102]

这些内容,最重要是括号里面的,小括号是转换的进度,中括号中,122表示视频率,102表示音频码率.

 

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
Tags:
  1. ALLEN
    Jan 15th, 2010 at 03:36
    Reply | Quote | #1

    我用的是VFP6,自己编程,目的 DVD to AVI。
    但不知道如何能取得进度的信息?
    请帮助我 panzilun@126.com