ffmpeg를 사용하여 트랙 사이에 특정 길이의 무음을 추가하려면 어떻게 해야 합니까?

ffmpeg를 사용하여 트랙 사이에 특정 길이의 무음을 추가하려면 어떻게 해야 합니까?

여러 개의 오디오 파일을 배경 이미지와 결합하여 비디오를 만들고 싶습니다. 다음과 같이 지도와 함께 오디오 파일을 추가할 수 있다는 것을 알고 있습니다.

-i audio1.mp3 -i audio2.mp3 -map 0 -map 1 -map 2

하지만 단일 이미지를 배경으로 사용하면서 오디오 트랙 사이에 특정 길이의 무음을 추가하려면 어떻게 해야 합니까?

답변1

귀하의 질문을 올바르게 이해하지 못했다면 여러 입력을 제공하고 연결할 수 있습니다.

ffmpeg \
  -loop 1 -i image.jpg
  -i audio1.wav \
  -f lavfi -t 5 -i anullsrc \
  -i audio2.wav \
  -filter_complex "[1:a][2:a][3:a]concat=n=3:v=0:a=1[outa]" \
  -map 0:v -c:v copy \
  -map "[outa]" -c:a aac -b:a 192k \
  -shortest \
  out.mkv

이것이 하는 일:

  • 이는 단일 이미지를 입력 #0으로 사용합니다(그러나 -f lavfi -i testsrc실제 비디오 파일과 교환할 수 있습니다). 입력 #1과 #3은 사용하려는 두 개의 오디오 파일입니다.

  • 입력 #2는 5초 동안의 무음을 생성하는 필터입니다.

  • 그런 다음 모든 오디오 스트림을 필터와 연결합니다 concat.

  • 예를 들어 세 번째 오디오 파일을 추가하려면 두 개의 추가 오디오 입력(무음 및 실제 트랙)을 지정하고 필터에 대한 입력 레이블 concat(예: [4:a][5:a]) 을 추가한 n=3다음 로 늘립니다 n=5.

  • 출력 파일은 입력 비디오를 그대로 사용하고( -c:v copy), 오디오는 192kbit/s의 AAC로 다시 인코딩됩니다. 필터를 적용하고 있으므로 오디오 스트림을 다시 인코딩해야 합니다.

  • -shortest옵션을 사용하면 가장 짧은(비디오 또는 오디오) 스트림이 끝날 때 인코딩이 종료됩니다.

관련 정보