0

我已经下载了 Apple 的示例代码 AVFoundationExporter(可从 Apple 开发网站获得)。该项目的标题是“AVFoundationExporter:导出和转码电影”,但我正在尝试使用它将 AIFF 文件更改为 AAC (M4A) 文件。

在桌面上,我有一个文件“testfile.aiff”。我用命令调用它...

AVFoundationExporter "/Users/rbell/Desktop/testfile.aiff" "/Users/rbell/Desktop/testfile.m4a" -preset AVAssetExportPresetAppleM4A -f public.mpeg-4-audio"

(或只是 [AVFoundationExporter “/Users/rbell/Desktop/testfile.aiff” “/Users/rbell/Desktop/testfile.m4a”])

...我确实在我的桌面上得到了一个名为“testfile.m4a”的文件。我确实可以使用 Finder 的空格键预览或使用 QuickTime 来播放它。

但是,我无法使用 iTunes 打开或将其导入 iTunes。它根本不会去。我可以很好地打开 .aiff 文件,并且播放愉快。但是,当我尝试强制 .m4a 文件“在... iTunes 中打开”时,iTunes 会打开并且没有任何反应。.m4a 文件不会出现在任何地方的 iTunes 中。

我试着换行

var destinationFileType = AVFileTypeQuickTimeMovie

var destinationFileType = AVFileTypeAppleM4A

现在它失败了

错误:操作已停止:此媒体不支持该操作。程序以退出代码结束:1

我已经摆弄了很多设置,但似乎没有任何效果。-inject-metadata 标志没有任何区别。也不使用 -preset。-fileType com.apple.m4a-audio 没有帮助。奇怪的是,我确实得到了我想要的文件。它只是无法正常工作。如果我在 QuickTime 中打开我的“testfile.m4a”文件并再次导出它,那么我最终会得到一个比特率不同的 .m4a 文件,但这个文件确实在 iTunes 中打开。

4

1 回答 1

1

文件类型public.mpeg-4-audio(来自kUTTypeMPEG4Audio?)错误。您需要com.apple.m4a-audio(对应于AVFileTypeAppleM4A)。

不要忘记先删除现有m4a文件!

所以你的命令应该是

rm -f out.m4a  # AVFoundation doesn't like overwriting existing files.
AVFoundationExporter in.aiff out.m4a -preset AVAssetExportPresetAppleM4A -f public.mpeg-4-audio
于 2016-02-15T00:44:28.067 回答