2015-11-25 57 views
3

我想使用以下命令將.mov文件轉換爲mp4文件。未知編碼器libvo_aacenc

ffmpeg -i sample_iTunes.mov -c:v libx264 -vb 800k -c:a libvo_aacenc -ab 128k -ac 2 test.mp4 

當我運行此我得到以下錯誤:

Unknown encoder 'libvo_aacenc'

所以我試圖安裝以下軟件:

sudo apt-get install libavcodec-extra 

然而可悲的是IM仍然得到錯誤。

任何人都可以幫助我嗎?

aergistal答案

以下是東西你已要求我檢查日誌:

我的操作系統是ubuntu 14.04輸出的ffmpeg -codecs | grep aac

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 

是:

avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers 
    built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) 
DEA.L. aac     AAC (Advanced Audio Coding) (encoders: aac libvo_aacenc) 
D.A.L. aac_latm    AAC LATM (Advanced Audio Coding LATM syntax) 

我仍然得到同樣的錯誤。

+0

@aergistal香港專業教育學院增加了兩個命令 –

回答

4

Ubuntu Trusty中的libavcodec_extra包是一個Libav附加編解碼器庫。 Libav是FFmpeg的一個分支。

你似乎已經安裝在你的系統上。如果您自己編譯ffmpeg,則需要安裝libvo-aacenc-dev並用--enable-libvo-aacenc --enable-version3重新配置ffmpeg。對於AAC,推薦的lib是libfdk_aac。請參閱AAC Encoding GuideFFmpeg Compilation Guide

+0

我得到以下錯誤的輸出: 馬克@ MARC-X550JK:〜$ --enable-的libvo-aacenc --enable-版本3 --enable-的libvo-aacenc :命令未找到 換句話說,我得到的命令沒有找到 - 啓用 –

+0

不,你需要用'./configure'然後'make'來重新配置它。你是如何安裝它的? – aergistal

5

您可以通過-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更好的音頻

0

在您的/home/yourname/.winff/文件夾中將presets.xml複製到presets.xml.old,然後編輯presets.xml:將-acodec libvo_aacenc的每個實例替換爲-acodec libfaac您可以將所有內容都作爲-is。保存並退出。運行Winff並轉換視頻。