답변:
먼저 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
.
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
-c copy
을 사용하면 오디오, 비디오 및 자막에 동일한 스트림을 사용할 수 있습니다 ffmpeg -i input.mp4 -map 0:0 -map 0:2 -c copy output.mp4
.
관련 문제 —mp4 파일에서 모든 오디오 트랙을 제거 할 수 있습니다.
ffmpeg -i input_file.mp4 -vcodec copy -an output_file.mp4
The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
하지만 그 플래그를 추가 했는데 여전히 동일합니다 ...?
스트림 번호를 식별하십시오.
$ 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
명령 행에서 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 스크립트 만 언급합니다. 그것은 나를 위해 작동하지 않았다).
FFMPEG가 도움이 될 수 있습니다.
$ man ffmpeg