FFMPEG - 정의된 중첩 시간으로 두 개의 오디오 파일을 병합합니다.

FFMPEG - 정의된 중첩 시간으로 두 개의 오디오 파일을 병합합니다.

요구 사항

미리 정의된 중첩 시간을 사용하여 두 개의 오디오 파일을 연결하고 싶습니다.

예를 들어 10초 중첩이 정의되면 첫 번째 오디오의 끝 10초와 두 번째 오디오의 시작 10초가 출력에서 ​​중첩됩니다.

|<---- 1st mp3 file -------------------->                       |
|                        <-----------2nd mp3 file ------------->|

result:
|<-----------------------(overlap 10 sec )--------------------->|

답변1

  1. 사용ffprobe지속시간을 얻기 위해첫 번째 mp3 파일.

  2. ffmpeg다음을 사용하여 실행지연오디오를 지연시키려면혼합두 개의 오디오 스트림을 하나로 혼합하려면 다음을 수행하십시오.

    ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex "[1]adelay=Ns|Ns[a1];[0:a][a1]amix=inputs=2[a]" -map "[a]" output.mp3
    
    • Ns= 1.mp3 duration- overlap duration. 예를 들어 1.mp3길이가 30초이고 10초 오버레이를 원하는 경우 를 사용합니다 20s|20s.

    • 이것은 2.mp3스테레오라고 가정합니다.

    • 버전 4.2보다 오래된 경우 ffmpeg처럼 adelay에 초 대신 밀리초를 사용하세요 20000|20000.

    • -map "[a]"ffmpeg임의로 레이블이 지정된 amix의 출력을 사용하도록 지시합니다 [a]. 그렇지 않으면,기본 스트림 선택 동작사용하게 될 것이다. 괜찮고 의미를 이해하고 있다면 레이블 및 -map(예 ...amix=inputs=2" output.mp3: )을 생략해도 됩니다. 또한 참조하십시오-map선적 서류 비치.

관련 정보