Todas buenas ideas sobre cómo reparar el índice AVI roto (mi preferencia es ffmpeg
), pero contribuyendo aquí con una forma de encontrar archivos avi que tengan el índice roto para probarlos y repararlos proactivamente. Después de intentar sin éxito usar mediainfo
ffprobe
y otros para detectar archivos de los que vlc se quejaría, finalmente decidí usarlos, vlc
ya que era el que se quejaba. Aquí hay un fragmento que puede ser útil como parte de un script de escaneo y reparación automática.
if grep -q "avi demux error" \
<(cvlc --vout null --aout null --stop-time 2 "${VIDFILE}" vlc://quit 2>&1 )
# alternate ways to stop after two seconds
#<(timeout 2 cvlc --vout null --aout null "${VIDFILE}" 2>&1)
#<(cvlc --vout null --aout null "${VIDFILE}" 2>&1 & sleep 2; kill $!)
then
echo "avi demux error: ${VIDFILE}"
exit 1
fi
Nota: se incluyen los métodos alternativos de detención (para que no reproduzca todo el video antes de salir) porque algunas versiones de VLC tienen un error en el tiempo de parada y otros sistemas pueden no tenerlo timeout
.