ffmpeg转换会跳过音频

时间:2011-04-20 05:35:22

标签: ffmpeg x264 libx264

使用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

关于为什么会发生这种情况的任何想法?

2 个答案:

答案 0 :(得分: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)在UBUNTU上安装FFMPEG:http://ubuntuforums.org/showpost.php?p=6963607&postcount=360

答案 1 :(得分:0)

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

但你提到的重要的是下采样的问题。那个,这个帖子(http://doom10.org/index.php?topic=1639.0)让我思考并尝试了aac编解码器。它被认为是实验性的,但对我来说效果很好! -async,-vsync什么也没做,但-acodec aac -strict experimental(对于ffmpeg不警告你它是实验性的)确实有奇迹!强烈推荐这个解决方案给任何有音频/视频同步问题的人,以及复制音频不是一种选择而普通解决方案不起作用的人。 aac是一个很棒的编解码器。我仍然会使用libfaac作为我的主要aac编解码器,因为aac是实验性的,但我很确定现在acc可以在生产中产生很好的结果并保持一致。