FFmpeg를 사용하여 비디오 파일에서 오디오 제거

FFmpeg를 사용하여 비디오 파일에서 오디오 제거

FFmpeg를 사용하여 비디오 파일에서 오디오 트랙을 제거하려면 어떻게 해야 합니까?

답변1

플래그를 사용하여 오디오를 제거합니다 -an.

input_file=example.mkv
output_file=example-nosound.mkv

ffmpeg -i $input_file -c copy -an $output_file

이 ffmpeg 플래그는 문서화되어 있습니다.여기.

답변2

비디오를 다시 인코딩하고 싶지 않을 수도 있으므로(느리고 손실이 많은 프로세스) 다음을 시도해 보십시오.

input_file=example.mkv
output_file=example-nosound.mkv

ffmpeg -i $input_file -vcodec copy -an $output_file

(일부 Linux 배포판에는 이제ffmpeg의 avconv 포크)

답변3

avconv -i [input_file] -vcodec copy -an [output_file]

ffmpeg기존 버전 때문에 설치할 수 없다면 avconv시도해 보세요.

답변4

또한 최종 비디오 컨테이너에 정확히 무엇이 들어갈지 더 효과적으로 제어하기 위해 -map옵션을 사용할 수도 있습니다 .ffmpeg

예를 들어 비디오 파일이 my_video.mp4다음과 같이 구성되어 있다고 가정해 보겠습니다.

Input #0
  Stream #0:0 Video: h264
  Stream #0:1 Audio: English
  Stream #0:2 Audio: German
  Stream #0:3 Audio: Japanese
  Stream #0:4 Audio: Spanish
  Stream #0:5 Audio: Italian

제거모두오디오 트랙( -an옵션과 유사):

ffmpeg -i my_video.mp4 -map 0 -map -0:a -c copy my_video.noaudio.mp4`

-map 0전체 입력(비디오, 오디오, 자막, 메타데이터, 챕터 등)을 가져옵니다.
-map -0:a 모든 오디오 트랙을 제거합니다.입력 0에서 ( -부호 확인).
-c copy다시 인코딩하지 않고 그대로 복사합니다.

제거하려면일본어그리고스페인의트랙:

ffmpeg -i my_video.mp4 -map 0 -map -0:3 -map -0:4 -c copy my_video.nojap.noesp.mp4`

-map -0:3일본어 오디오인 입력 0에서 세 번째 트랙을 제거합니다.
-map -0:4스페인어 오디오인 입력 0에서 네 번째 트랙을 제거합니다.

모든 오디오 트랙을 제거하려면이탈리아 사람:

ffmpeg -i my_video.mp4 -map 0 -map -0:a -map 0:5 -c copy my_video.ita.mp4`

-map -0:a입력 0에서 모든 오디오 트랙을 제거합니다.
-map 0:5입력 0에서 5번째 트랙을 삽입합니다. 이는 이탈리아 오디오입니다( -이 경우에는 부호 없음에 유의하세요).


이는 하나 이상의 파일을 처리할 때도 매우 유용합니다.
예를 들면 다음과 같습니다.

  • 하나의 파일에서 오디오 가져오기
  • 다른 오디오 트랙
  • 세 번째 자막 및 메타데이터

관련 정보