Je voulais savoir s'il existe un moyen de diviser la stéréo en deux fichiers wav mono. Ma première supposition était
ffmpeg -threads "16" -i "$2" -map 0:1:1 "$3"
car mon exemple de vidéo contient les informations suivantes:
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
J'ai donc un flux audio avec deux canaux et je veux deux canaux mono. Au début, je l'ai essayé avec map_channel, mais cela n'a pas fait l'affaire à la place, j'ai reçu un message d'erreur:
Syntax error, mapchan usage: [file.stream.channel|-1][:syncfile:syncstream]
J'ai donc essayé à nouveau avec le code mentionné ci-dessus et au moins ffmpeg a fait quelque chose, mais le résultat n'était pas ce à quoi je m'attendais, au lieu de le décomposer en deux fichiers wav mono, le résultat était:
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
encore une fois avec deux canaux audio, alors où je me suis trompé?
la source
-map_channel
je n'utilisais pas de points simples, mais à la place, j'utilisais des points doubles, il n'est donc pas étonnant que cela n'ait pas fonctionné. Maintenant ça marche!-layouts
mais il n'y a pas d'exemple comment cela fonctionne. Je l'ai essayé et le message que je reçois estMissing argument for option 'layouts'
quel argument attend ffmpeg?Audio ID : 2 Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE
mais je pense avoir déjà trouvé une solution pour ce problème.Vous devez utiliser le filtre channelplit pour cela. -map ne peut pas faire cela. Par exemple:
Vérifiez le lien vers la documentation que j'ai fournie.
la source