我正在尝试使用以下命令将.mov文件转换为mp4文件。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" >
<LinearLayout
android:id="@+id/cases_actions_row"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/case_action_item_1"
style="@style/card_action_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<Button
android:id="@+id/case_action_item_2"
style="@style/card_action_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/cases_expand_button"
style="@style/card_action_button"
android:layout_height="20dp"
android:layout_width="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/ic_arrow" />
</RelativeLayout>
当我运行时,我收到以下错误:
未知编码器'libvo_aacenc'
所以我试图安装以下内容:
ffmpeg -i sample_iTunes.mov -c:v libx264 -vb 800k -c:a libvo_aacenc -ab 128k -ac 2 test.mp4
但遗憾的是我仍然得到错误。
有人可以帮助我吗?
航空回答
以下是您要求我检查的事项的日志:
我的操作系统是sudo apt-get install libavcodec-extra
ubuntu 14.04
的输出:
ffmpeg -codecs | grep aac
out put of:
ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
DEA.L. aac AAC (Advanced Audio Coding)
D.A.L. aac_latm AAC LATM (Advanced Audio Coding LATM syntax)
是:
avconv -codecs | grep aac
我仍然得到同样的错误。
答案 0 :(得分:8)
您可以-c:a aac
让ffmpeg
使用其内置的aac
编码器。内置编码器可能会产生更高的质量,因此libvo_aacenc
已从预编译的二进制文件中删除。
适用于我的命令行是:
ffmpeg -y -i infile.mov -f mp4 -r 29.97 -vcodec libx264 -preset slow -b:v 3800k -flags +loop -cmp chroma -b:v 4000k -maxrate 4300k -bufsize 4M -bt 256k -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -c:a aac -b:a 125k -ar 48000 -ac 2 outfile.mp4
要获得更高的视频质量,您可以执行-b:v 8000k -maxrate 8500k
(如果源文件具有11000k
,则更高),以及使用-b:a 192k
更好的音频
答案 1 :(得分:5)
Ubuntu Trusty中的libavcodec_extra包是一个Libav附加编解码器库。 Libav是FFmpeg的一个分支。
您似乎已在系统上安装了这两个程序。如果您自己编译ffmpeg
,则需要安装libvo-aacenc-dev
并使用--enable-libvo-aacenc --enable-version3
重新配置ffmpeg。
对于AAC
,推荐的lib是libfdk_aac
。请参阅AAC Encoding Guide和FFmpeg Compilation Guide。
答案 2 :(得分:0)
在你的/home/yourname/.winff/文件夹中,将presets.xml复制到presets.xml.old,然后编辑presets.xml:用-acodec libfaac替换-acodec libvo_aacenc的每个实例你可以将所有内容保留为 - 是。保存并退出。运行Winff并转换视频。