在终端中合并 M4A 文件

Posted

技术标签:

【中文标题】在终端中合并 M4A 文件【英文标题】:Merge M4A files in Terminal 【发布时间】:2013-08-28 09:29:23 【问题描述】:

我在 Mac 上有几个 M4A(声音)文件,我想将它们组合成一个声音文件。这可以通过终端命令完成吗?有这种事吗?

【问题讨论】:

apple.stackexchange.com/questions/48866/… 你可能想看看ffmpeg tool。 @Hahnemann,你找到解决方案了吗? 嗨 @jagdish 很遗憾没有。 感谢@Hahnemann 的回复。 :( 【参考方案1】:

是的,ffmpeg 不起作用,这与互联网回声室告诉你的相反。至少不是那样。令人难以置信的是,有多少人不得不流口水,浪费大家的时间。

这里。用链接证明我错了,但这就是你想要的,这是你唯一能看到它的地方。很简单。

ffmpeg -i file1.m4a -acodec copy file1.aac

ffmpeg -i file2.m4a -acodec copy file2.aac

cat file1.aac file2.aac >>filenew.aac

ffmpeg -i filenew.aac -acodec copy -bsf:a aac_adtstoasc filenew.m4a

我为额外的库编译了自己的 ffmpeg,所以我希望这是默认库之一。如果没有,那绝对值得麻烦。我无法在第二个系统上验证上述内容,但在我的旧 Hardy Heron Ubuntu grunt 系统上,连接的文件具有所有正确的 m4a 元数据和标签,并且音频质量没有变化。

【讨论】:

这仅在我没有跳过任何步骤时才对我有用;) 一步一步的工作;这应该是公认的答案。 在 2018 年 3 月,这对我有用,可以将多个 m4a 文件转换为 mp3 格式的连续录音。最后一行是ffmpeg -i audio-all.aac -acodec libmp3lame audio-all.mp3 不适用于 ffmpeg 版本 3.4.2(2018 年 6 月);创建 aac 文件的第一个命令中的文件大小为零。尼克哈达德的答案中链接到的 concat 方法对我有用。 按照 ffmpeg 版本 4.2.2 的规定工作 -- 使用 Homebrew 安装。【参考方案2】:

FFMPEG 可以帮助您解决这个问题。查看他们的How To Contatenate media files 文章。

【讨论】:

我使用 Brew 安装了 FFMPEG 并运行了以下命令:ffmpeg -i "concat:first.m4a|second.m4a" -c copy out.m4a 但是,out.m4a 仅包含 first.m4a。声音 second.m4a 不见了。当我通过cat 命令执行此操作时,也会发生同样的情况。 另一种方法:ffmpeg -f concat -i <(for f in ./*.m4a; do echo "file '$PWD/$f'"; done) -c copy output.m4a 确实有效。 @Rmano 它给了我像[concat @ 0x7ff8ec802600] Unsafe file name '/.../audio/1.m4a' /dev/fd/63: Operation not permitted这样的错误 @Arefly 在较新版本的 ffmpeg 中需要添加 -safe 0 参数。 concat 选项与-safe 0 一起为我工作。事实上,我的最终公式使用了@Rmano 建议的过程替换。【参考方案3】:

您是要一个接一个地播放音频,还是一个接一个地播放?

无论哪种方式,FFmpeg 都可以做到这一点。按照我阅读您问题的方式,您希望它们同时播放...如果是这种情况,请尝试:

ffmpeg -i [input1] -i [input2] -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map [a] -c:a libfdk_aac out.m4a

注意:这会将音频压缩为 AAC。它是最好的音频编码器之一,因此您不会真正注意到差异,但如果您需要保持质量,您可以随时使用pcm_s16le 进行未压缩。但是,我认为您最好还是使用 .wav 文件。

【讨论】:

【参考方案4】:

github.com/mifi/lossless-cut 用于使用 ffmpeg 进行音频/视频编辑。适用于通过拖放合并 mp3/mp4/m4a。

sudo snap install losslesscut

【讨论】:

以上是关于在终端中合并 M4A 文件的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不重新编码的情况下将立体声合并/缩混为单声道(m4a 或 opus)

需要水平合并两个 .TXT 文件,没有空格,结果在终端中不可见

合并音频和视频 Swift

Ubuntu如何使用终端将多个文本文件合并为一个

ExtAudioFileWrite 创建静音 m4a

linux文件怎么合并