Concatenando archivos AVI con múltiples pistas

2

Tengo un directorio de archivos AVI que me gustaría combinar en un solo archivo AVI. Estos archivos AVI provienen de una cámara de tablero y tienen dos pistas de video: una cámara frontal y una trasera.

Intenté usar la sugerencia aquí para combinar los videos. Específicamente:

ffmpeg -f concat -i <(for f in $PWD/*.avi;do echo "file '$f'";done) -c copy output.avi

Esto funciona muy bien para la primera pista de video (delantera) pero elimina completamente la segunda pista de video (trasera).

¿Cómo puedo concatenar estos archivos y conservar ambas pistas de video? Alternativamente, ¿hay una manera en que pueda especificar la pista de video para concatenar?

    
pregunta Erik 26.04.2015 - 06:22

1 respuesta

1

Básicamente, lo que debe hacer es demultiplexar cada archivo, luego concatenar los archivos resultantes. Hay una manera de hacer esto con el filtro concat , pero requiere volver a codificar todo a medida que avanza.

Entonces necesitas hacer dos operaciones. Primero, demultiplexar. (Tenga en cuenta que esto no se ha probado con ffmpeg, ya que no tengo ningún archivo de video para probar, pero en teoría debería funcionar).

I=0;J=1;for f in $PWD/*.avi;do ffmpeg -i "$f" -map 0:v:0 -codec copy output$I.avi -map 0:v:1 -codec copy output$J.avi && I=$(($I+1)) && J=$(($J+1));done

Luego puedes usar el demonio de concat como de costumbre:

ffmpeg -f concat -i <(for f in $PWD/*.avi;do echo "file '$f'";done) -c copy output.avi
    
respondido por el tubedogg 26.04.2015 - 19:24

Lea otras preguntas en las etiquetas