Tengo un montón de archivos de video con 2 pistas de audio. Son archivos avi. Las pistas de audio no tienen etiquetas y cuando intento reproducirlas, la pista predeterminada no tiene audio. Hay 2 pistas más, la segunda es la que tiene audio.
¿Existe algún comando que pueda ejecutar para eliminar las pistas 1 y 3 de cada archivo?
Están en un servidor Ubuntu. Solo CLI.
avprobe version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2007-2014 the Libav developers
built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[mpeg4 @ 0xd1dac0] Invalid and inefficient vfw-avi packed B frames detected
Input #0, avi, from 'Video004.avi':
Metadata:
encoder : VirtualDubMod 1.5.10.2 (build 2540/release)
Duration: 00:49:16.99, start: 0.000000, bitrate: 1937 kb/s
Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [PAR 1:1 DAR 4:3], 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
Stream #0.2: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
Stream #0.3: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
# avprobe output
Respuesta1
avconv parece ser la solución
avconv -i $file -map 0:0 -map 0:2 -acodec copy -vcodec copy $outfile
puse esto en un bucle
dir="*.avi"
for file in $dir
do
avconv -i $file -map 0:0 -map 0:2 -acodec copy -vcodec copy $outfile
done
No intenté guardar con el mismo nombre de archivo pero supongo que no funcionaría. Puede hacer que esto elimine fácilmente el archivo antiguo y cambie el nombre del nuevo. Simplemente envié a un directorio temporal con los mismos nombres y luego los moví todos sobrescribiendo los originales.
Para explicar El mapa arg. le dice a avconv qué pistas copiar. 0:0 es el vídeo y 0:2 es la segunda pista de audio. Luego, acodec y vcodec están configurados para copiar, lo que significa que copia el audio y el video sin cambiarlos.
Respuesta2
Prueba estoenlace. Desplázate hacia abajo hasta llegarConvierta audio mono a estéreo y viceversay prueba eso. Le permite convertir una pista estéreo en una pista mono eligiendo uno de los canales.