Eu queria saber se existe uma maneira de dividir o estéreo em dois arquivos WAV mono. Meu primeiro palpite foi
ffmpeg -threads "16" -i "$2" -map 0:1:1 "$3"
porque meu exemplo de vídeo tem as seguintes informações:
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 39mn 0s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Então, eu tenho esse fluxo de áudio com dois canais e quero dois canais mono. No começo, tentei com o map_channel, mas isso não funcionou, pois estava recebendo uma mensagem de erro:
Syntax error, mapchan usage: [file.stream.channel|-1][:syncfile:syncstream]
Então, tentei novamente com o código mencionado acima e pelo menos o ffmpeg fez alguma coisa, mas o resultado não era o que eu esperava, em vez de dividi-lo em dois arquivos mono wav, o resultado foi:
info.system.container = WAVE
info.system.size = 449413166 Bytes
info.system.size = 428.59 MiB
info.system.playtime = 2340.69 s
info.audio0.codec = PCM
info.audio0.desc =
info.audio0.format_endianness = Little
info.audio0.format_sign = Signed
info.audio0.format_resolution = 16 bits
info.audio0.samprate = 48000 Hz
info.audio0.channels = 2
novamente com dois canais de áudio, então onde eu errei?
fonte
-map_channel
, não usei pontos únicos, mas usei pontos duplos, por isso não é de admirar que não funcionasse. Agora funciona!-layouts
mas não há exemplo de como isso funciona. Eu tentei e a mensagem que recebo éMissing argument for option 'layouts'
qual argumento o ffmpeg está esperando?Audio ID : 2 Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE
mas acho que já encontrei uma solução para este problema.Você deve usar o filtro de canal dividido para isso. -map não pode fazer isso. Por exemplo:
Verifique o link da documentação que eu forneci.
fonte