두 개의 파일을 덮어쓰려고 합니다(동시에 배치되도록 하나로 병합).
옵션에는 sox --combine
시퀀스, 연결, 혼합, 혼합 거듭제곱, 결합 및 곱셈이 포함됩니다. 나는 문서를 읽었습니다.여기어느 것을 사용해야 하는지는 완전히 명확하지 않습니다. 시퀀스와 연결의 샘플 속도가 다를 때 작동하지만 덮어쓰지는 않습니다.
믹스를 사용하려고 하는데 샘플 속도를 41k로 설정할 수 없습니다(제가 이해한 바에 따르면 mp3의 올바른 샘플 속도입니다).
샘플 속도가 달라지는 것을 방지하기 위해 입력 파일을 반복하고 모든 샘플 속도를 41k로 설정했습니다. 이 작업을 수행하려면 다음 코드가 있습니다.
sox -r 44.1k input1.mp3 output1.mp3
sox -r 44.1k input2.mp3 output2.mp3
알겠습니다(파일마다 다름)
sox WARN formats: can't set sample rate 44100; using 24000
sox WARN formats: can't set sample rate 44100; using 48000
그런 다음 다음을 사용하여 덮어쓰려고 할 때:
sox --combine mix output1.mp3 output2.mp3 output3.mp3
나는 이것을 본다:
sox FAIL sox: Input files must have the same sample-rate
우분투 16.04를 사용하고 있습니다.
해결 방법으로 여기에 표시된 ffmpeg 명령을 사용합니다.https://stackoverflow.com/questions/14498539/how-to-overlay-two-audio-files-using-ffmpeg
양말이 왜 작동하지 않는지 알고 싶지만 이것은 실제로 나에게 잘 작동하고 작업을 완료합니다.
답변1
Change Sample Rate 를 사용하려면 효과를 사용하여 리샘플링 sox
해야 합니다 rate
(품질이 약간 저하됨). -r
파일 형식을 사용할 수 없거나 여러 가지 가능한 속도(예: 장치)가 있는 경우 속도만 지정됩니다.
MP3에는 "올바른" 샘플링 속도가 없습니다. 두 개의 입력 MP3가 동일한 샘플링 속도를 갖고 해당 샘플링 속도를 유지하는 경우 최상의 결과를 얻을 수 있습니다. 한 요율이 다른 요율의 배수인 경우(예: 48000 및 24000) 더 큰 요율(48000)을 사용하십시오.
샘플 속도를 쿼리하는 도구는 다양합니다(예: mediainfo
.