2011-04-20 139 views
1

使用ffmpeg将视频转换为mp4格式时,会跳过音频,因为音频会与视频不同步。ffmpeg转换跳过音频

我们可以看看下面的视频: https://vialogues.com/vialogues/play/486

我使用下列选项转换

/usr/local/bin/ffmpeg -y -i $inputfile -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile 

而且ffmpeg的版本是

ffmpeg 
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers 
    built on Feb 19 2011 19:03:56 with gcc 4.4.5 
    configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab 
    libavutil  50.15. 1/50.15. 1 
    libavcodec 52.72. 2/52.72. 2 
    libavformat 52.64. 2/52.64. 2 
    libavdevice 52. 2. 0/52. 2. 0 
    libswscale  0.11. 0/0.11. 0 
    libpostproc 51. 2. 0/51. 2. 0 
Hyper fast Audio and Video encoder 

任何想法,为什么会发生这种情况?

回答

2

我做了大量的研究,并使用ffmpeg的异步选项,我发现嘴唇同步问题发生了,因为音频被libfaac下采样,所以我将--acodec选项改为副本,这意味着不要缩减采样并将其放入原始格式。

之后,问题消失了。

/usr/local/bin/ffmpeg -y -i $inputfile -acodec copy -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile 

夫妇的这是一种有益搞清楚有关ffmpeg的环节更是:

1)关于FFmpeg中是如何工作会谈:http://howto-pages.org/ffmpeg/ 2)将视频转换为QuickTime:http://ubuntuforums.org/archive/index.php/t-387640.html 3)安装FFMPEG在UBUNTU上:http://ubuntuforums.org/showpost.php?p=6963607&postcount=360

+0

那么,如果有人需要缩减采样,该如何去做呢? – Dmitry 2012-03-10 01:00:19

0

您的答案是一种解决方案,对我来说也很好,当我遇到类似问题时也是如此。但是,复制音轨对我来说不是一种选择,因为我希望压缩它,而原件可能有384kbps音轨。

但是你提到的重要的是降采样问题。那,这个线程(http://doom10.org/index.php?topic=1639.0)让我思考和尝试一个编解码器。它被认为是实验性的,但它对我很好! -async,-vsync什么也没做,但-acodec aac-strict实验(为ffmpeg不警告你,它是实验)奇迹!强烈向任何有音频/视频同步问题的人士推荐此解决方案,并且无法复制音频,而普通解决方案无法正常工作。 aac是一个很棒的编解码器。我仍然会使用libfaac作为我的主要aac编解码器,因为aac是实验性的,但我很肯定现在acc可以在生产中产生出色的结果并且保持一致。