mp4 비디오 파일에서 오디오 트랙을 제거하는 방법?


답변:


110

먼저 ffmpeg -i file.mp4파일에 어떤 스트림이 있는지 확인하십시오. 다음과 같이 보일 것입니다 :

Stream #0.0: Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s

그런 다음를 실행 ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4하여 비디오 스트림과 두 번째 오디오 스트림을에 복사하십시오 new_file.mp4.


3
Windows에서이 명령은 다음과 같은 오류를 발생 Option map (set input stream mapping) cannot be applied to input file file.mp4 new_file.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.시켰습니다. 간단히 수정하려면 인수 순서를 변경하십시오.ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
MrLore

OS X의 @MrLore와 같은 오류.
Oskar Persson

1
우분투에서도 마찬가지입니다!
Tommaso

MKV 형식에서도 작동
user3405291

1
보다 일반적인 옵션 -c copy을 사용하면 오디오, 비디오 및 자막에 동일한 스트림을 사용할 수 있습니다 ffmpeg -i input.mp4 -map 0:0 -map 0:2 -c copy output.mp4.
Futal

97

관련 문제 —mp4 파일에서 모든 오디오 트랙을 제거 할 수 있습니다.

ffmpeg -i input_file.mp4 -vcodec copy -an output_file.mp4

1
이것은 나에게 오류를 제공 The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.하지만 그 플래그를 추가 했는데 여전히 동일합니다 ...?
poshaughnessy


Re poshaughnessy의 의견 : 여기에 몇 가지 정보가있는 것 같습니다 : stackoverflow.com/questions/32931685/… 토론에서는 ffmpeg의 최신 버전이 "aac Experimental"문제를 경험하지 않는다고 제안합니다. 일반적으로 사용중인 소프트웨어의 버전과 오류 (플래그를 추가 한 후)의 정확한 구문 구문 (예 : freeseek의 답변 loc. cit)을 명시하면 문제를 진단하는 데 도움이됩니다. ). 이 경우 입력 파일의 비디오 정보도 도움이 될 수 있습니다.
그렉 마크

8

스트림 번호를 식별하십시오.

$ ffmpeg -i in.mp4
   ...
   Stream #0:0: Video: ...
   Stream #0:1: Audio: ...
   Stream #0:2: Audio: ...

-map _file_:_stream_처리 및 출력 할 스트림을 선택하는 데 사용

$ ffmpeg -i in.mp4 -map 0:0 -map 0:2 -vcodec copy -acodec copy out.mp4

참조 : https://ffmpeg.org/ffmpeg.html#Advanced-options


4

avidemux내부적으로 하나의 오디오 파일 만 처리 할 수 있습니다 (따라서 하나의 특정 트랙을 선택하도록 강요). .mp4로 시도한 적이 없지만 다른 형식과 작동합니다.


잘 작동하지 않습니다. 어쩌면 버그 일 수도 있지만 오디오는 엉망이되어 다시 작동하지만 오디오 트랙의 나머지 부분을 제거하십시오.
tshepang

3

내가 사용 Avidemux (GUI)를 여러 번, 그리고 는 FFmpeg (콘솔).

Avidemux에서는 메인 메뉴에서 "오디오"-> "트랙 선택"을 선택합니다. 그런 다음 비디오를 새 파일로 저장하십시오.

흥미롭게도 일부 경우 Avidemux는 ffmpeg보다 "더 나은"출력을 생성했습니다.

Avidemux와 ffmpeg는 표준 Fedora Linux 저장소에 있습니다. (다른 Linux에서도 표준이라고 확신합니다.)


1

-vn또는 -an모든 비디오 또는 오디오 트랙을 제거합니다. 공급 -vn -acodec copy하면 비디오가 제거됩니다. -an -vcodec copy모든 오디오를 제거합니다.

-vcodec copyffmpeg가 기존 비디오 트랙을 직선으로 복사하고 처리 / 인코딩하지 않아야 함을 지정합니다. 지정하지 않으면 여전히 작동하지만 ffmpeg는 기존 비디오 트랙을 다시 인코딩 할 수 있으며 작업에 더 많은 CPU가 사용되며 상당히 오래 걸릴 수 있습니다.


0

명령 행에서 avidemux 사용.

Avidemux GUI에서 https://unix.stackexchange.com/a/85834/4319에 설명 된대로 오디오 트랙을 선택 / 선택 취소하고 파일을 저장하면됩니다 (모든 것이 새로운 AVI로 복사됩니다).

내 작업을 위해 어떤 종류의 프로젝트가 SpiderMonkey 또는 TinyPy projetcs로 저장되는지 살펴 봤는데 SpiderMonkey (JavaScript) 프로젝트에는 필요한 오디오 트랙 선택 작업이 부족하지만 TinyPy (Python) 프로젝트에는 그들.

나는 관련이없는 모든 것을 제거했습니다 (수십 개의 불필요한 줄). 그리고 이것이 내 안에 있습니다 some_series.py.

#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()

adm.audioClearTracks()
adm.audioAddTrack(1)

트랙 1을 떠나지 만 트랙 0을 떨어 뜨립니다.

그런 다음 다음과 같은 명령으로 많은 파일의 일괄 변환을 실행했습니다.

for f in *.avi; do avidemux3_cli --nogui --load "$f" --run ../some_series.py --save ../some_series/"${f%%.rus.eng.avi}".eng.avi --quit; done

모든 것을 복사하지만 필요한 오디오 트랙을 제외하고 모두 삭제합니다.

커맨드 라인에서 avidemux를 실행하는 방법은 https://www.avidemux.org/admWiki/doku.php?id=tutorial:batch_processing 에서 배웠습니다 .하지만 Python 스크립트는 언급하지 않지만 JS 스크립트 만 언급합니다. 그것은 나를 위해 작동하지 않았다).


-1

GUI 프로그램이 마음에 들지 않는다면 Blender 의 비디오 편집기를 사용하면 훨씬 더 많은 일을 할 수 있습니다.


-2

ffmpeg프로그램으로 대체되었습니다 avconv. avconv의 사용법과 매우 유사하므로이 ffmpeg게시물의 모든 명령은 다음과 같습니다.

avconv <old ffpmeg command line options>

Ubuntu를 사용중인 경우이 링크 를 따라 설치 avconv하십시오.


-3

FFMPEG가 도움이 될 수 있습니다.

$ man ffmpeg

나는 짧은 표정을 가지고 있었고, 그것은 매우 조밀합니다. "오디오"와 "오디오 트랙"을 검색했는데 아무것도 보이지 않았습니다.
tshepang

@Tshepang, "트랙"은 모호하므로 FFmpeg가 더 정확한 용어를 선호하는 이유 일 것입니다. FFmpeg는 오디오가 각각 "하나 이상의"채널 "을 포함하는"스트림 "으로 들어오는 것으로 간주합니다. AFAICT에서 각 채널은 모노이며 기본적으로 어떤 출력을 보내야하는지 설명하는 스트림과 함께 스트림입니다. 예를 들어, 스테레오 스트림은 기본적으로 사운드 카드의 왼쪽 출력으로 전송되는 채널과 기본적으로 사운드 카드의 오른쪽 출력으로 전송되는 두 개의 채널로 구성됩니다.
sampablokuper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.