无法使用 ffmpeg 将 .mp3 转换为 .m4a [关闭]
Posted
技术标签:
【中文标题】无法使用 ffmpeg 将 .mp3 转换为 .m4a [关闭]【英文标题】:Unable to convert .mp3 to .m4a using ffmpeg [closed] 【发布时间】:2013-04-28 17:59:11 【问题描述】:我完全了解使用libfaac
的法律限制,但这只是为了我的测试目的。
我已编译 ffmpeg
并启用 faac
。因此,当我尝试将 .mp3 转换为 .m4a 时,我遇到了错误。请提供此问题的解决方案。我在两个不同的 .mp3 源上尝试过,但仍然遇到相同的错误。
[user@ip-10-161-13-26 ~]$ 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
【问题讨论】:
请提供完整的、未删减的ffmpeg
输出,以及可能无法转换的示例文件。
令人惊讶的是,将其转换为 .aac 效果很好,即几乎相同的命令 ffmpeg -i Kalimba.mp3 -c:a libfaac Kalimba.aac
感谢您提供信息。请注意,有关 ffmpeg
命令行使用的问题与 Stack Overflow 无关,因此我投票决定将您的问题转移到更适合它们的 Super User。不过无需重新询问:它会被移走。
【参考方案1】:
问题是您的输入包含专辑封面,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 aac -vn Kalimba.m4a
一些提示:
ffmpeg 不再支持 FAAC。请改用内置 AAC 编码器。 编码为.aac
有效,因为输出格式不能包含视频,所以ffmpeg
首先不会尝试转换视频/艺术作品流。
【讨论】:
我有错误 Unknown encoder 'libfaac' using it. 使用另一个编码器,见:superuser.com/questions/370625/… 这对我来说很好用! 有趣的是,我可以将带有专辑封面的 mp3 转换为带有 ffmpeg 3.4 的 m4a,但不能使用从源代码构建的 ffmpeg 4.0 或更高版本。我在 iPod 上使用 libfdk_aac 以获得最佳效果 @Pedro 如果您对 ffmpeg 有特定问题,请提出有关该问题的新问题。没有理由它不应该工作。请包括所有命令行输出。以上是关于无法使用 ffmpeg 将 .mp3 转换为 .m4a [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中使用 ffmpeg 将音频文件转换为 mp3