Мне нужно извлечь каналы из 5.1 aud ios. Эти аудиодорожки содержатся в файле MKV. Структура файла "mov ie .mkv" такая:
Input #0, matroska,webm, from 'movie.mkv':
Duration: 00:40:38.08, start: 0.000000, bitrate: 21128 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x800 [SAR 1:1 DAR 12:5], 24 fps, 24 tbr, 1k tbn, 48 tbc
Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:2(ger): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s
Stream #0:3(eng): Subtitle: subrip
Но синтаксис очень запутанный, поэтому я не понял, как правильно извлекать каналы.
Это код для первой звуковой дорожки работает нормально:
ffmpeg -i "movie.mkv" -map_channel 0.1.0 "eng channel 1.wav"
ffmpeg -i "movie.mkv" -map_channel 0.1.1 "eng channel 2.wav"
ffmpeg -i "movie.mkv" -map_channel 0.1.2 "eng channel 3.wav"
ffmpeg -i "movie.mkv" -map_channel 0.1.3 "eng channel 4.wav"
ffmpeg -i "movie.mkv" -map_channel 0.1.4 "eng channel 5.wav"
ffmpeg -i "movie.mkv" -map_channel 0.1.5 "eng channel 6.wav"
Я считаю, что 0.1.0 это: input # 0 (mov ie .mkv); затем поток 1 (аудио англ.); затем канал 0 (самый первый канал).
Но когда я пытаюсь извлечь каналы из второй звуковой дорожки ...
ffmpeg -i "movie.mkv" -map_channel 0.2.0 "ger channel 1.wav"
ffmpeg -i "movie.mkv" -map_channel 0.2.1 "ger channel 2.wav"
ffmpeg -i "movie.mkv" -map_channel 0.2.2 "ger channel 3.wav"
ffmpeg -i "movie.mkv" -map_channel 0.2.3 "ger channel 4.wav"
ffmpeg -i "movie.mkv" -map_channel 0.2.4 "ger channel 5.wav"
ffmpeg -i "movie.mkv" -map_channel 0.2.5 "ger channel 6.wav"
... извлекается не немецкий звук, а вместо этого получаются те же каналы eng (которые также звучат немного громче, чем в предыдущем случае). В этом коде 0.2.0 выглядит так: input # 0 (mov ie .mkv); затем поток 2 (аудиогер); затем канал 0 (самый первый канал).
Так что я делаю не так? : -)