¿Cómo *integrar* cada dos cuadros de un video existente en uno solo para compensar la poca iluminación?

Algunos teléfonos móviles pueden compensar las condiciones de poca iluminación integrando cada dos o más fotogramas en uno. El resultado es un video con velocidad de cuadros variable, donde cada imagen tiene su marca de tiempo particular. Este tipo de material de archivo muestra sujetos correctamente iluminados, pero se nota la caída en la velocidad de fotogramas porque el movimiento no es fluido y también las imágenes se vuelven más ruidosas (porque también se agrega el ruido producido por la electrónica). De todos modos me parece un milagro tecnológico, teniendo en cuenta que la pupila de entrada de este tipo de dispositivos no puede tener más de 1 mm de diámetro.

Pero digamos que obligaste al teléfono a grabar a una velocidad de fotogramas fija (por ejemplo, 1280x720p30 con OpenCamera en Android). Debería ser posible convertir, por ejemplo, 30p a 15p sumando los valores almacenados en los píxeles correspondientes de cada dos cuadros en uno. Sé que este proceso es posible porque es habitual en otros contextos, por ejemplo, cuando se trata de imágenes astronómicas.

Mis herramientas son ffmpeg y Blender. Estaría agradecido si alguien pudiera restringir la respuesta a estas herramientas, aunque otras soluciones también son bienvenidas porque podrían ponerme en el camino correcto para buscar alternativas adecuadas.

Respuestas (3)

Como observa, simplemente agregar (integrar) cada par de cuadros adyacentes para crear un nuevo cuadro disminuye la velocidad de cuadro.

Pero si todo lo que desea hacer es integrar cuadros adyacentes, considere duplicar el video en una línea de tiempo separada, desplazada exactamente un cuadro. La integración de estas dos transmisiones le daría un nuevo video con la misma velocidad de fotogramas, pero más corto en un fotograma en general.

El resto de los problemas señalados podrían surgir, pero al menos la velocidad de fotogramas no cambiaría.

Esta es una idea inteligente, pero ¿la has probado? Será mejor que me interese si hay algún resultado inesperado.
@DigiVisionMedia - No, no lo he probado. Si tuviera los medios para probarlo, lo haría, como cualquiera podría hacerlo. Como dije, cualquiera de los otros problemas mencionados podría surgir, y estoy seguro de que el "éxito" dependerá del contenido. Pero lograría el objetivo declarado sin cambiar la velocidad de fotogramas.

Mi propia respuesta, no completamente satisfactoria, que podría ser útil:

Esta línea muy simple hace el truco:

ffmpeg -i input vf "tblend=addition,framestep=2" {opciones de codificación} salida

P.ej

ffmpeg -i input.mp4 -vf "tblend=adición,framestep=2" -c:v libx264 -crf 16 -c:a copia salida.mp4

input.mp4 tenía una velocidad de fotogramas variable <= 30, mientras que output.mp4 es de 15 fps. Podría haber especificado una velocidad de fotogramas constante para el archivo de salida, por ejemplo

ffmpeg -i input.mp4 -vf "tblend=adición,framestep=2" -c:v libx264 -r 30 -crf 16 -c:a copia salida.mp4

No aceptaré mi propia respuesta, porque el resultado de este proceso es una fea superposición de los objetos en movimiento entre fotogramas consecutivos , por lo que se necesita algún tipo de desenfoque adaptativo, por lo que dejo la pregunta abierta para que alguien dé una mejor solución.

Solicitó agregar los valores almacenados en los píxeles correspondientes de cada dos cuadros y eso es lo que hace su método. Esto dará como resultado una "superposición fea". Es posible que desee utilizar un filtro para aumentar el brillo.
Mulvya es el experto residente en ffmpeg. -- La disminución de la velocidad de fotogramas permite que el obturador permanezca abierto por más tiempo reuniendo más luz y el apilamiento de imágenes astronómicas se basa en el movimiento extremadamente lento de los objetos en cuestión. --- Con un video y movimiento existente, cada cuadro debe ser lo suficientemente bueno, no hay nada que agregar o apilar. Puede usar curvas para iluminar solo las partes oscuras, dejando solo los píxeles brillantes. ¿Funciona esta respuesta para usted: video.stackexchange.com/a/13110/18314 ?
@Mulvya El aumento del brillo produce resultados muy feos debido al ruido de discretización. Debe haber alguna solución que incluya algo similar a la interpolación de cuadros o algún tipo de filtro adaptativo direccional o algo así.
@Rob Mmm, creo que tienes razón. Probablemente el teléfono no esté agregando cuadros, sino más bien integrando más tiempo en cada cuadro (y disparando menos cuadros por segundo también).
Puede intentar mejorar el método tblend mediante la estabilización de la imagen. Pero no espere mucho, su "señal baja en pocas imágenes" se distorsiona por la compresión (cuantificación, etc.).

¡Con la física! Todo lo que tiene que hacer es grabar a 15 cuadros por segundo en primer lugar y usar una velocidad de obturación de 1/15 de segundo (también conocido como un ángulo de obturación de 360 ​​grados). Esto efectivamente hace lo mismo que combinar dos fotogramas de 1/30 de segundo y 30 fps con software, solo lo hace dejando que la luz llegue al sensor durante el doble de tiempo en primer lugar. ¡No se necesitan cálculos ni matemáticas sofisticados!

Tenga en cuenta las palabras video existente , en el título de la pregunta. Lo que significa que no puedo disparar nada. Viene como es. Además, está claro en varios puntos del texto de la pregunta que es un video grabado con un teléfono. No hay opciones sofisticadas más allá de la velocidad de fotogramas y solo después de instalar una aplicación separada (que también se menciona en el texto de la pregunta) llamada OpenCamera.
No me quedó claro si en realidad estabas preguntando por un teléfono o usándolo como ejemplo. En concreto, el lenguaje, "algunos teléfonos móviles" y "digamos tú" suena hipotético. De hecho, estoy completamente en desacuerdo con que "está claro en varios puntos del texto de la pregunta que es un video grabado con un teléfono" debido a esta vaguedad. ¿Quizás enumerar el teléfono inteligente con herramientas? Admito que es posible que haya pasado por alto la palabra "existente" en el título, pero dado que no hay más énfasis en la singularidad, la criticidad, la autenticidad o lo que sea de su metraje, asumí que simplemente podría volver a filmarse.
Además, la única "opción elegante" que le sugerí que cambiara fue la velocidad de fotogramas. Si su combinación de cámara (teléfono)/software le prohíbe cambiar la configuración de la cámara, debe mencionarlo en la pregunta y no asumir que todos saben qué es OpenCamera, ni obligar a todos a adivinar qué modelo de teléfono tiene (porque no ha mencionado ). Pero si realmente es el caso de que no puede cambiar esta configuración sin instalar una aplicación separada, tal vez sea hora de un nuevo teléfono de todos modos.