linux - descargar - ffmpeg divide avi en cuadros con una velocidad de cuadros conocida
ffmpeg video converter (3)
Creo que hay un concepto erróneo aquí: es poco probable que la salida de un sistema de video HS tenga una velocidad de cuadros de salida de 1000 fps, pero es algo normal como 30 (o 50/60) fps. Además de sobrecargar a la mayoría de los reproductores de video con este tipo de velocidad, sería contraproducente mostrar la secuencia a la misma velocidad que se grabó. Básicamente: la entrada de 1 seg @ 1000 fps es algo así como la salida de 33 seg @ 30 fps.
¿La duración de la escena grabada fue realmente 2:29 min (lo que resultó en un video ~ 82 min a una velocidad normal) o duró aproximadamente 4,5 segundos (4472 cuadros) que son 2:29 min en la reproducción normal?
Publiqué esto como comentarios en este hilo relacionado . Sin embargo, parecen haber pasado desapercibidos = (
he usado
ffmpeg -i myfile.avi -f image2 image-%05d.bmp
para dividir myfile.avi
en marcos almacenados como archivos .bmp
. Parecía funcionar excepto que no del todo. Al grabar mi video, grabé a una velocidad de 1000fps
y el video resultó tener 2min29sec
duración de 2 2min29sec
a 2min29sec
. Si mis cálculos son correctos, eso debería sumar un total de 149,000 cuadros para todo el video. Sin embargo, cuando corrí
ffmpeg -i myfile.avi -f image2 image-%05d.bmp
Solo obtuve 4472 archivos. ¿Cómo puedo obtener los marcos originales 149k?
También intenté convertir la velocidad de fotogramas de mi AVI original a 1000 fps haciendo
ffmpeg -i myfile.avi -r 1000 otherfile.avi
Pero esto no parece arreglar mi preocupación.
La primera parte de tus matemáticas es buena, los 2 minutos y 29 segundos son aproximadamente 149 segundos. Con 1000 fps que hace 149000 cuadros. Sin embargo, su nombre de archivo de salida solo tiene 5 posiciones para el número donde 149000 tiene 6 posiciones, así que intente "image-% 06d.bmp".
Luego está el tamaño del disco: ¿Encajan sus imágenes en el disco? Con bmp cada imagen utiliza su propio tamaño. Puede intentar usar imágenes jpeg, se comprimen unas 10 veces mejor.
Otra idea: si ffmpeg no encuentra una velocidad de cuadros (razonable), cae a 25 o 30 cuadros por segundo. Es posible que tenga que especificarlo. Hágalo tanto para el origen como para el destino, vea la página del manual ( man ffmpeg
en unix):
To force the frame rate of the input file (valid for raw formats
only) to 1 fps and the frame rate of the output file to 24 fps:
ffmpeg -r 1 -i input.m2v -r 24 output.avi
Para lo que vale: uso ffmpeg -y -i "video.mpg" -sameq "video.%04d.jpg"
para dividir mi video en imágenes. El -sameq es forzar el jpeg en una calidad razonable, el -y es evitar permitir sobrescribir preguntas. Para ti:
ffmpeg -y -r 1000 -i "myfile.avi" -sameq "imagen.% 06d.jpg"
ffmpeg -i myfile.avi -r 1000 -f image2 image-%07d.png
No estoy seguro de que sacar archivos de 150k bmp sea una buena idea. Tal vez png es lo suficientemente bueno?