Bem, encontramos algo com os arquivos ffmpeg
/ avconv
e .wav; não é exatamente automático, mas é uma linha extraída do áudio. Primeiro, use ffprobe
/ avprobe
como no OP ou ffmpeg -i
/ avconv -i
para obter as informações do fluxo; do OP:
Stream #0:0(eng): Video:
Stream #0:1(eng): Audio:
Stream #0:2(eng): Audio:
Stream #0:3(eng): Data:
Assim, os fluxos de áudio são 0: 1 e 0: 2 (observe ffprobe
/ avprobe
escreve ponto .
como separador, ffmpeg -i
/ avconv -i
escreve dois pontos :
) e os fluxos queremos salvar como .wav
arquivos - então este é o comando:
avconv -i test.mov \
-map '0:1' -vn -acodec copy test-01.wav \
-map '0:2' -vn -acodec copy test-02.wav
... e pelo menos neste caso meu, os wavs resultantes têm propriedades idênticas com os fluxos:
$ mediainfo *.wav
...
Channel(s) : 1 channel
Sampling rate : 48.0 KHz
Bit depth : 16 bits
...
Channel(s) : 1 channel
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Agora parece que esses dois canais "mono" são canais da esquerda e da direita - e o fluxo 3, mesmo que seja chamado de "Audio", ainda é tipo "data", e talvez seja apenas um descritor de como esses canais mono L e R são multiplexados (como no relatório mediainfo
"modo Muxing, mais informações") ?!
Ainda assim, seria ótimo saber se há uma ferramenta que possa fazer esse tipo de coisa automaticamente ...
Eu teria pensado que é preciso usar filtros, então eu tentei isso: avconv -i test.mov -filter_complex '[0:1] copy [a1]; [0:2] copy [a2]' \
... mas isso falha com
-map '[a1]' -acodec copy test-01.wav \
-map '[a2]' -acodec copy test-02.wavStream specifier ':1' in filtergraph description [0:1] copy [a1]; [0:2] copy [a2] matches no streams.
, realmente não entendo porquê.