Quería saber si hay una manera de dividir el estéreo en dos archivos mono wav. Mi primera suposición fue
ffmpeg -threads "16" -i "$2" -map 0:1:1 "$3"
porque mi video de ejemplo tiene la siguiente información:
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
Así que tengo esta transmisión de audio con dos canales y quiero dos canales mono. Al principio lo probé con map_channel, pero eso no funcionó, en cambio recibí un mensaje de error:
Syntax error, mapchan usage: [file.stream.channel|-1][:syncfile:syncstream]
Así que lo intenté nuevamente con el código mencionado anteriormente y al menos ffmpeg hizo algo, pero el resultado no fue lo que esperaba, en lugar de dividirlo en dos archivos mono wav, el resultado fue:
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
de nuevo con dos canales de audio, entonces, ¿dónde me equivoqué?
fuente
-map_channel
no usaba puntos simples, sino que usaba puntos dobles, así que no es de extrañar que no funcionó. ¡Ahora funciona!-layouts
pero no hay ningún ejemplo de cómo funciona. Lo he intentado y el mensaje que recibo esMissing argument for option 'layouts'
¿qué argumento espera ffmpeg?Audio ID : 2 Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE
pero creo que ya he encontrado una solución por este problemaDeberías usar el filtro de ChannelSplit para eso. -map no puede hacer esto. Por ejemplo:
Verifique el enlace a la documentación que he proporcionado.
fuente