대답하면 쿠키를 줄게!
나는 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
...