
答えたらクッキーをあげる!
私はsox
すぐにMP3ファイルをWAV形式に変換するために使用していますpifm
。唯一の問題は、MP3ディレクトリ全体に対してこれを実行しており、すべてのディレクトリのサンプルレートが同じではないため、コマンドが失敗することです。
オーディオファイルをリサンプリングして転送する方法はありますか?wavに即座に変換そして、それをパイプで接続しますかpifm
?
私の現在のコマンドは次のとおりです。
sox -t mp3 /home/pi/Desktop/music/*.mp3 -t wav - |
sudo ./pi_fm_rds -freq 94.5 -audio - -ps ZSFM -rt ZSFM
しかし、これは私に次のことを与えます:
sox WARN mp3-util: MAD lost sync
sox WARN mp3-util: MAD lost sync
sox FAIL sox: Input files must have the same sample-rate
だから私はsoxが各ファイルを即座にリサンプリングし、すぐに変換のためにsoxにパイプしたいと思います。
また、試してみると次のようになります。
sox -r 44100-t mp3 /home/pi/Desktop/music/*.mp3 -t wav - |
sudo ./pi_fm_rds -freq 94.5 -audio - -ps ZSFM -rt ZSFM
そのディレクトリ内のファイルのサンプルレートが同じではないため、まだ機能しません。
答え1
@dirktと@Thorに感謝します。
@dirktが返信しました。
sox -t mp3 /home/pi/Desktop/music/*.mp3 -t wav -r 44100 - | sudo ./pi_fm_rds -freq 94.5 -audio - -ps ZSFM -rt ZSFM
@Thorが答えた。
for tune in *.mp3; do
sox $tune -t wav - rate 44100
done |
sudo ./pi_fm_rds -freq 94.5 -audio - -ps ZSFM -rt ZSFM
どちらも動作します!
答え2
利用可能な回避策は次のとおりです(ファイル名が適切に指定されていると仮定)。
for tune in *.mp3; do
sox $tune -t wav - rate 44100
done |
sudo ./pi_fm_rds -freq 94.5 -audio - -ps ZSFM -rt ZSFM
...