我在 Windows 命令行中编写了一个批处理程序来获取立体声 wav 文件并使用 sox v.14.4.0 音频程序将左右声道拆分为单独的 FLAC 文件。像这样。。
for /r %%n in (*.wav) do (
C:\sox\sox.exe %%n -c 1 %%n.left.flac remix 1
C:\sox\sox.exe %%n -c 2 %%n.right.flac remix 2)
但是,这比我想要的要长一点。我对此进行了更多研究,看来我可以使用 SOX_OPTS 和 --multi-thread 选项以及 --buffer 以同时执行两个 sox 操作。
Sox 文档说明了这一点:
SOX_OPTS 环境变量可用于为 SoX 的全局选项提供替代默认值。例如:
SOX_OPTS="−−buffer 20000 −−play−rate−arg −hs −−temp /mnt/temp"
请注意,设置环境变量的方式因系统而异。以下是一些示例: MS-DOS/MS-Windows:
set SOX_OPTS=−V −−no-clobber −−buffer BYTES, −−input−buffer BYTES
设置用于处理音频的缓冲区的大小(默认为 8192)。
−−buffer适用于输入、效果和输出处理;
−−input−buffer 仅适用于输入处理(如果两者都给定,它将覆盖−−buffer)。
请注意,−−buffer 的较大值将导致 SoX 响应终止或跳过当前输入文件的请求变得缓慢。
两个问题。
- 是否可以使用 --multi-thread 如上所述或其他方式同时将 1 个输入文件拆分为 2 个输出文件?
- 如果是这样,怎么做?(注意:我无法找出正确的语法来从上面的文档中获取 SOX_OPTS 以自行处理,不要介意在批处理文件中)
另外:我发现了一些与此类似的其他 stackoverflow 问题,但总是使用 java、php、linux 等。不幸的是,我对这些程序一无所知。请同情我的编程无知。