zop*_*eux 7 audio merge delay pad sox
我正在使用该sox
工具,我想合并两个音频文件,让我们说long.ogg
并short.ogg
输出一个文件output.ogg
.这很容易使用$ sox -m long.ogg short.ogg output.ogg
.
事情是,我想short.ogg
将n秒后打(而long.ogg
应该从一开始就启动).为此,我找到了垫效果.但我不理解只延迟short.ogg
输入文件的语法,而不是延迟输入文件的语法long.ogg
.
我找到了一种(脏)方式(n = 6):
$ sox short.ogg delayed.ogg pad 6
$ sox -m long.ogg delayed.ogg output.ogg
Run Code Online (Sandbox Code Playgroud)
我不想创建一个中间文件.在此先感谢您的帮助.
你应该可以这样做:
sox short.ogg -p pad 0 6|sox - long.ogg output.ogg
Run Code Online (Sandbox Code Playgroud)
-p
sox的选项用于管道 - 基本上,它告诉sox使用stdout作为输出.使用-
作为第二个sox的输入实际上是说输入是stdin(恰好是前一个sox的标准输出,正如我们所说的那样|
).pad 0 6
告诉垫在开始时0秒,在结束时6秒.
希望这可以帮助.
感谢icyrock,我设法找到了解决方案.我正在使用:
$ sox short.ogg -p pad 6 0 | sox - -m long.ogg output.ogg
Run Code Online (Sandbox Code Playgroud)
对于多曲目(奥兰多学分):
$ sox starts-last.mp3 -p pad 2 0 | sox - -m starts-second.mp3 -p pad 2 0 | sox - -m starts-first.mp3 combined.mp3
Run Code Online (Sandbox Code Playgroud)