在shell脚本中管道LAME和SOX togteher。有可能吗?

时间:2016-04-05 22:48:35

标签: linux bash shell

我在shell脚本中使用以下内容:

##For ease of understanding I'll declare the $1 variable here even though it's actually arriving remotely via an ssh2_exec command.

$1="my.mp3"

lame --decode /root/incoming/shows/$1 - | /root/incoming/stereo_tool_cmd_64 - - -s /usr/incoming/settings/setting.sts | lame -b 128 - /root/incoming/processing/$1;

那发生了什么? LAME将mp3文件解码为wav,然后通过管道输入STEREO TOOL(音频处理脚本),然后返回LAME,将其重新编码为mp3文件,并将结果写入不同的目录。

这一切都很好但我想在这个管道中使用SOX来删除文件开头和结尾的所有静音,同时在它击中STEREO TOOL之前它处于解码的wav状态。

我已经尝试了这个但它不起作用(SOX打破了管道):

lame --decode /root/incoming/shows/$1 - | sox silence 1 0.1 0.1% reverse silence 1 0.1 0.1% reverse | /root/incoming/stereo_tool_cmd_64 - - -s /usr/incoming/settings/setting.sts | lame -b 128 - /root/incoming/processing/$1;

我知道使用SOX的标准方法是:

sox input.wav output.wav silence 1 0.1 0.1% reverse silence 1 0.1 0.1% reverse;

但我不能在这里声明wav文件,因为它是由LAME动态创建的。

我尝试做的事情是不可能的,还是有一个解决方案可以让我这样做?

0 个答案:

没有答案