使用ffmpeg将视频转换为mp4格式时,音频被跳过,因为音频与视频不同步。
可以看看下面的视频: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
你知道为什么会发生这种情况吗?
我做了很多研究,玩了ffmpeg的异步选项,我发现口型同步问题正在发生,因为音频正在被libfaac下采样,所以我改变了选项——codec复制,这有效地意味着不要下采样,把它放在原始格式。
在此之后,问题就消失了。
/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.html3)在UBUNTU上安装FFMPEG: http://ubuntuforums.org/showpost.php?p=6963607&postcount=360
当我遇到类似的问题时,你的答案对我来说也是一个很好的解决方案。然而,复制音轨对我来说不是一个选择,因为我希望它被压缩,而原始音轨可能有384kbps。
但是你提到的重要问题是降采样的问题。那,和这个线程(http://doom10.org/index.php?topic=1639.0)让我思考和尝试aac编解码器。它被认为是实验性的,但对我来说效果很好!-async, -vsync没有做任何事情,但-acodec - aac -strict experimental(对于ffmpeg不警告你它是实验性的)创造了奇迹!强烈推荐这个解决方案,任何人谁有音频/视频同步问题,其中复制音频不是一个选项和普通的解决方案不起作用。Aac是一个很棒的编解码器。我仍然要使用libfaac作为我的主要aac编解码器,因为aac是实验性的,但我很确定现在acc可以在生产中产生很好的结果,并且是一致的。