在终端中合并 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)