モノラル44kHzオーディオファイルを16kHzオーディオファイルにリサンプリングするために、「sox」ユーティリティを2つのパイプコマンドに入れようとします。
単一のパイプでうまく機能します。
$ speexdec toto.oga - | sox -V -t raw -b 16 -e signed -c 1 -r 44.1k - -r 16k toto.wav
しかし、別のパイプを追加すると、soxユーティリティは次のように文句を言います。
$ speexdec toto.oga - | sox -V -t raw -b 16 -e signed -c 1 -r 44.1k - -r 16k - | cat - > toto.wav
sox FAIL formats: can't determine type of `-'
どんなアイデアがありますか?
ベストアンサー1
-t wav
2番目の出力の前に追加してsox出力タイプを宣言する必要があります-
。
ファイル名の場合、soxは名前を見てそこから型を推論しますが、stdoutの場合は型を宣言する必要があります。
最後に、指定された-b 16 -e signed -c 1
出力の前に入力から送信されたと仮定する代わりに、他のすべての設定()を宣言することもできます。-