FFMPEG는 비디오 형식을 변환하는 동안 오디오 트랙을 추가합니다.

FFMPEG는 비디오 형식을 변환하는 동안 오디오 트랙을 추가합니다.

배경

AVI 파일을 H264(MP4)로 변환해야 합니다. 나는 다음을 성공적으로 수행하고 있습니다.

-i mymovie.avi -c:v libx264 -crf 19 -preset slow -c:a libfaac -pix_fmt yuv420p -f mp4 -b:a 192k -y -an output.mp4

C# .Net Winforms 애플리케이션을 통해 명령을 호출하고 있지만 이것이 답변에 거의 영향을 미치지 않을 것으로 생각됩니다.

질문

오디오 트랙을 어떻게 추가하나요? Instagram에 비디오를 업로드할 수 있어야 하기 때문에 하나를 추가해야 합니다. 이 경우 오디오 트랙이 없는 파일은 거부되는 것 같습니다(불쾌합니다). 실제로는 매우 긴 오디오 트랙이 필요하지 않습니다. 내 생각은 MP3 형식의 몇 초의 "침묵"이었습니다.

출력으로 AAC 오디오가 필요할 것 같아요.

기록을 위해 나는 -an명령이 오디오를 제공하지 않는다는 것을 알고 있으며 나중에 시도할 때 이 기능을 제거했습니다.

지금까지의 시도

-shortest오디오가 비디오보다 짧기 때문에 명령을 사용해야 할 것입니다 . 실제로는 인코딩하는 동안 비디오에 오디오 스트림이 포함되도록 빈 MP3(또는 유사한)를 추가할 것입니다.

나는 또한 명령을 사용해 보았지만 -map성공하지 못했습니다.

답변1

좋아, 여기에 내가 작업한 명령이 있습니다. libfaac내 ffmpeg 빌드에 없는 것을 발견하여 전환했습니다. -mapFFMPEG는 추가 구성 없이 2개의 입력을 잘 처리할 수 있으므로 옵션이 필요하지 않았습니다 .

-i test.avi -i music.mp3 -c:v libx264 -crf 19 -preset slow -c:a libvo_aacenc -pix_fmt yuv420p -f mp4 -b:a 192k -y -shortest output.mp4

내 원본과 작품의 차이점은 다음과 같습니다.

  • libvo_aacenc가 대체됩니다.libfaac
  • -shortest비디오보다 짧은 오디오를 처리하기 위해 추가되었습니다.
  • -i오디오 입력을 제공하는 데 사용됩니다.

업데이트

주석에 훌륭한 입력을 한 후의 명령은 이제

-i test.avi -i music.mp3 -c:v libx264 -crf 19 -preset slow -c:a aac -strict experimental -pix_fmt yuv420p -f mp4 -b:a 192k -y -shortest output.mp4

답변2

다음을 사용하여 자동 오디오 스트림을 생성할 수 있습니다.aevalsrc오디오 소스:

ffmpeg -y -i test.avi -f lavfi -i aevalsrc=0 -c:v libx264 -crf 19 -preset slow \
-pix_fmt yuv420p -shortest output.mp4

이는 빈 오디오 파일을 입력으로 사용하는 것보다 쉽습니다.

관련 정보