2013-05-04 100 views
5

我完全瞭解使用libfaac時的法律限制,但這僅用於測試目的。無法使用ffmpeg將.mp3轉換爲.m4a

我已編譯ffmpegfaac啓用。所以當我試圖將.mp3轉換爲.m4a時,這是我得到的錯誤。請提供解決此問題的方法。我嘗試了兩個不同的.mp3源文件,但我仍然遇到同樣的錯誤。

[[email protected] ~]$ ffmpeg -i Kalimba.mp3 -c:a libfaac Kalimba.m4a 
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers 
    built on May 4 2013 09:33:27 with gcc 4.4.6 20120305 (Red Hat 4.4.6-4) 
    configuration: --enable-libfaac --enable-nonfree --disable-yasm 
    libavutil  51. 54.100/51. 54.100 
    libavcodec  54. 23.100/54. 23.100 
    libavformat 54. 6.100/54. 6.100 
    libavdevice 54. 0.100/54. 0.100 
    libavfilter  2. 77.100/2. 77.100 
    libswscale  2. 1.100/2. 1.100 
    libswresample 0. 15.100/0. 15.100 
[mp3 @ 0x2464680] Header missing 
[mp3 @ 0x2463100] max_analyze_duration 5000000 reached at 5015510 
[mp3 @ 0x2463100] Estimating duration from bitrate, this may be inaccurate 
Input #0, mp3, from 'Kalimba.mp3': 
    Metadata: 
    publisher  : Ninja Tune 
    track   : 1 
    album   : Ninja Tuna 
    artist   : Mr. Scruff 
    album_artist : Mr. Scruff 
    title   : Kalimba 
    genre   : Electronic 
    composer  : A. Carthy and A. Kingslow 
    date   : 2008 
    Duration: 00:05:50.60, start: 0.000000, bitrate: 191 kb/s 
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16, 192 kb/s 
    Stream #0:1: Video: mjpeg, yuvj420p, 512x512, 90k tbr, 90k tbn, 90k tbc 
    Metadata: 
     title   : thumbnail 
     comment   : Cover (front) 
Output #0, ipod, to 'Kalimba.m4a': 
    Metadata: 
    publisher  : Ninja Tune 
    track   : 1 
    album   : Ninja Tuna 
    artist   : Mr. Scruff 
    album_artist : Mr. Scruff 
    title   : Kalimba 
    genre   : Electronic 
    composer  : A. Carthy and A. Kingslow 
    date   : 2008 
    Stream #0:0: Video: none, q=2-31, 128 kb/s, 90k tbn 
    Metadata: 
     title   : thumbnail 
     comment   : Cover (front) 
    Stream #0:1: Audio: none, 0 channels, 128 kb/s 
Stream mapping: 
    Stream #0:1 -> #0:0 (mjpeg -> ?) 
    Stream #0:0 -> #0:1 (mp3 -> libfaac) 
Encoder (codec none) not found for output stream #0:0 

MP3文件是在http://db.tt/HtpEBpFU

而且在使用FAAC獨立,我得到的任何文件這個奇怪的錯誤。

Freeware Advanced Audio Coder 
FAAC 1.28 

Couldn't open input file sample.mp3 
+0

請提供完整未切割的'ffmpeg'輸出,以及可能無法轉換的示例文件。 – slhck 2013-05-04 12:40:16

+0

令人驚訝的是,將它轉換爲.aac可以正常工作,即幾乎相同的命令'ffmpeg -i Kalimba.mp3 -c:libfaac Kalimba.aac' – rahulg 2013-05-04 16:20:20

+0

感謝您提供信息。請注意,有關'ffmpeg'命令行用法的問題是堆棧溢出的主題,所以我已經投票將您的問題遷移到[SU],在那裏他們更適合。不需要重新提問,它會被移動。 – slhck 2013-05-04 16:52:47

回答

12

的問題是,你的輸入包含專輯封面,這ffmpeg解析視頻。

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16, 192 kb/s 
Stream #0:1: Video: mjpeg, yuvj420p, 512x512, 90k tbr, 90k tbn, 90k tbc 

它試圖要轉換的視頻,但沒有找到的MPEG-4格式的有效輸出編解碼器(M4A只是另一個名字)。這是因爲您編輯ffmpeg而沒有libx264,在這種情況下ffmpeg需要,因爲它沒有原生的H.264編碼器。

無論如何,您需要阻止它嘗試轉換作品/視頻。添加-vn的選項:

ffmpeg -i Kalimba.mp3 -c:a libfaac -vn Kalimba.m4a 

一些提示:

  • 隨着FAAC你應該使用-q:a選項來控制VBR質量 - 值的範圍從10到500,其中100是默認的。
  • 在FFmpeg中,質量最好的AAC編碼器是libfdk_aac,其次是libfaac。我不知道這裏的授權,但也值得嘗試。有關更多信息,請參閱AAC Encoding Guide
  • 編碼爲.aac的原因是輸出格式不能包含視頻,因此ffmpeg不會嘗試首先轉換視頻/藝術品流。
+0

我有錯誤使用它的未知編碼器'libfaac'。 – 2014-04-15 10:59:29

+1

使用其他編碼器,請參閱:http://superuser.com/questions/370625/ffmpeg-command-to-convert-mp3-to-aac – slhck 2014-04-15 11:02:20

+0

這對我來說工作得很好! – Rubyrider 2015-12-25 20:54:08