2017-01-30 11 views
1

여러 오디오 트랙이있는 MKV 파일에서 언어 코드를 가져 오는 방법이 필요합니다.여러 오디오 트랙이있는 MKV 파일에서 언어 코드를 가져 오는 가장 우아한 방법은 무엇입니까?

ffmpeg 난 다음 정규식을 사용하여 필터링 할 수있는 출력을 생성하지만 그것은 매우 우아하지 않는 것 :

$ ffmpeg -i file.mkv 2>&1 | grep Audio 
Stream #0:1(eng): Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s (default) 
Stream #0:2(nar): Audio: mp2, 48000 Hz, mono, s16, 64 kb/s (default) 

mediainfo 언어 정보하지만 여러 트랙 파일을 추출 할 수있는 능력을 가지고, 그것은 코드를 연결합니다 단일 문자열로 :

$ mediainfo file.mkv --inform="Audio;%Language%" 
ennar 

는 도구 나 더 좋은 방법으로 여러 트랙에 대한 언어 코드를 반환 명령, 또는 나 트랙 번호 a를 지정할 것 도구가 있습니까 해당 트랙의 언어 코드 만 반환합니까?

답변

0

이 출력 첫번째 필드는 모든 종류의 V/A/S를 카운팅 절대 스트림 인덱스, 즉이다

1|eng 
2|deu 
3|eng 
4|eng 
5|fre 

생산할 예정이 ffprobe 명령을

ffprobe in.mp4 -show_entries stream=index:stream_tags=language -select_streams a -v 0 -of compact=p=0:nk=1 

실행 0을 기반.

ffprobe in.mp4 -show_entries stream=index:stream_tags=language -select_streams a:2 -v 0 -of compact=p=0:nk=1 

에는 세 번째 오디오 스트림 만 표시됩니다.

ffprobe in.mp4 -show_entries stream=index:stream_tags=language -select_streams 2 -v 0 -of compact=p=0:nk=1 

에는 세 번째 스트림 만 표시됩니다.

+0

감사합니다. 트랙 번호를 지정하고 해당 트랙의 언어 코드를 수신하는 방법이 있습니까? – WackGet

+0

위의 주석을 보았습니다. 예, 세 번째 오디오 스트림의 경우 -select_streams a : 2, 여섯 번째 스트림의 경우 -select_streams 5 (유형에 관계없이) – Mulvya