您将如何将 AAC 文件转换(解码)为 WAV 格式?(或者,如果您愿意,如何将它们解码并重新编码为 MP3 或 Ogg Vorbis?但是 WAV 就足够了,因为我已经有了用于 WAV 的好工具?MP3/Ogg 转换。)
我最感兴趣的是 Mac 或 Linux 解决方案,但也可以随意提及 Windows 解决方案。
(用例:我有一些用 iPhone 录制的语音备忘录(“Apple 无损音频文件”),我想以比 AAC 更常见的格式分享。)
有一个 MP4 视频文件,我只想得到它的音轨。让我的问题与其他问题不同的是,我不想将其转换(例如转换为 MP3 或任何东西)-我更愿意保留嵌入在 MP4 文件中的完全相同的 AAC 音频流,而无需重新编码。
我过去常常在台式 PC 上使用音频播放器(foobar2000,它忽略其中的视频轨道)播放此类 MP4 文件,但我想去掉视频轨道以节省掌上电脑的空间和电池电量。
我应该使用什么命令将mp3文件转换为wav比特率可变的文件。或者更好的是我如何知道源音频是fixed比特率还是比特率variable?
我可以发出这个命令:
ffmpeg -i input.mp3 -acodec alac -ab 128k -ar 48000 -ac 2 -y output.m4a
Run Code Online (Sandbox Code Playgroud)
创建一个 m4a 文件。
但是当我发出这个命令时
ffmpeg -i input.mp3 -acodec alac -ab 128k -ar 48000 -ac 2 -y output.aac
Run Code Online (Sandbox Code Playgroud)
ffmpeg 抛出一个错误说
无法为输出文件 #0 写入标头(编解码器参数不正确?)。
还有,m4a文件的大小真的比原文件大了将近5.8倍,这绝对不是我想要的,也是我想转换成AAC的原因。
我正在使用 ffmpeg 从视频文件中提取音频流:
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
Run Code Online (Sandbox Code Playgroud)
这会产生一个干净的音频文件,但没有任何元数据。
要添加元数据,ffmpeg 有一个命令行选项:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac
Run Code Online (Sandbox Code Playgroud)
这运行没有错误,但是当使用 ffprobe 检查输出文件时,它根本没有元数据标签。
如果将输出容器更改为 mp4,则可以设置元数据并出现在输出文件中:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4
Run Code Online (Sandbox Code Playgroud)
这是有趣的一点;如果我使用 Banshee 编辑现有 .aac 文件的元数据,然后使用 ffmpeg 以相同的方式处理文件,原始元数据将成功复制到新的 .aac 文件。
ffmpeg -i metadata.aac -vn -acodec copy audio.aac
Run Code Online (Sandbox Code Playgroud)
但是,尝试更改元数据无效:
ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac
Run Code Online (Sandbox Code Playgroud)
因此,似乎 .aac 容器可以保存元数据,而 ffmpeg 可以将其从输入复制到输出,但在使用复制编解码器时无法更改它。
有没有人知道一种让 ffmpeg 在不重新编码的情况下更改 aac 容器中的元数据的方法?
或者,在处理文件后,我可以使用另一个通用工具来设置元数据吗?
非常感谢。克里斯。
我有以下 FFmpeg 设置:
ffmpeg version N-54790-g1816f55-syslint Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 17 2013 21:34:32 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
configuration: --prefix=/usr/local/cpffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib --enable-version3 --extra-version=syslint
libavutil 52. 40.100 / 52. 40.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.102 / 55. 12.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 81.101 / 3. 81.101
libswscale 2. 4.100 / 2. …Run Code Online (Sandbox Code Playgroud) 我有一部 4.3 GB 720p 电影,想将此带有 DTS 声音的 MKV 转换为带有 AAC 或 AC3 音频的 MP4 视频。
我有时会得到:
ffmpeg: unrecognized option '-c:v'
Run Code Online (Sandbox Code Playgroud)
…和:
aac unrecognized
Run Code Online (Sandbox Code Playgroud)
¬和其他类似的东西。
我希望这部电影像在 torrent 网站上找到的那样小。
我知道这听起来很主观,但并不意味着如此。我对使用 iTunes 翻录 CD 非常陌生,我对可用的不同格式感到困惑。我已阅读有关 AAC 和 Apple 无损格式 (ALAC) 的维基百科。
我读到 Apple 声称 ALAC 的大小约为其他格式的 1/2,但通过我的测试,ALAC 文件很大!我无法将它们全部翻录,也无法以这些尺寸在手机上为我的所有音乐留出空间。
然而,我确实认为它们听起来比 AAC 或 MP3 好。iTunes 中翻录 CD 的最佳格式/比特率是多少,还要考虑空间和质量因素?另外,使用 AAC 或 MP3 时,我真的会失去任何质量吗?
我有一个 AAC 文件,我想用信息标记它(艺术家、标题、曲目编号、专辑标题等);不幸的是 - 似乎 AAC 不支持大多数标签,并且标签应用程序拒绝编写它们。
我是否可以将文件转换为不同的格式,进行无损转换(希望仅复制),以便我可以拥有这种替代格式的标签?并且还可以在各种媒体播放器中轻松打开它?
编辑:至于这是什么类型的AAC:
$ mediainfo myfile.aac
Complete name : myfile.aac
Format : ADTS
Format/Info : Audio Data Transport Stream
File size : 1.23 MiB
Overall bit rate mode : Variable
Audio
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Format version : Version 4
Codec ID : 2
Bit rate mode : Variable
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 …Run Code Online (Sandbox Code Playgroud)