Tengo un video largo con diferentes escenas. Quiero extraer y concatenar 2 escenas del video (que no comienzan en un cuadro I) usando ffmpeg 2.1.4.
Para argumentar, digamos que quiero 5 segundos de 01:00 a 02:00.
Puedo hacer esto:
ffmpeg -ss 01:00 -i in.mkv -ss 02:00 -i in.mkv -filter_complex "
[0:v]select='lt(t,5)'[v0];
[0:a]aselect='lt(t,5)'[a0];
[v0][a0][1:v][1:a]concat=n=2:v=1:a=1
" -c:a libvorbis -t 10 out.mkv
Eso me da la película que quiero, pero seleccionar en realidad obliga a ffmpeg a decodificar el resto de la película. Entonces, ¿cómo le digo que trunca la primera película en lugar de decodificarla?
Preferiría hacer esto con un filtro complejo ffmpeg, si es posible. Sé que -t
primero puedo usar para recodificar películas separadas, pero el paso de codificación adicional es muy lento en mi caso y también pierde una buena cantidad de calidad para este video.
Parece que no puedo encontrar un filtro que trunca la longitud de un vapor. ¿Hay nodos de filtro que corresponden a los parámetros -t
o -ss
?
-filter_complex
funciona, pero losconcat
archivos no, es decir, el primer video se ve bien, pero la calidad del segundo es horrible. Tenga en cuenta que copié estos comandos exactamente para ambos (excepto para el archivo de entrada).Esto debería funcionar más rápido ...
No es necesario especificar -t en la salida. No es necesario dividir el audio y el video antes del concat.
fuente