Estoy construyendo un registrador de datos con 3 cámaras que emiten como cuadros jpeg (o.79MB/jpeg @24bit/pixel) a 24 cuadros por segundo. Quiero tomar estas imágenes y convertirlas en un video. Cada
Para el video, estoy tratando de estimar el tamaño del video y el formato de codificación que debo usar para producir una calidad de video de 1080p. ¿Y cómo estimar el tiempo que llevaría codificar el vídeo?
¿Existe alguna fórmula para estimar el tamaño de datos final que se puede lograr?
Respuesta1
¿Existe alguna fórmula para estimar el tamaño de datos final que se puede lograr?
No. El tamaño depende en gran medida de la configuración de codificación que elija, es decir, el modo de control de velocidad, la tasa de bits promedio o la calidad promedio, la velocidad de fotogramas, la compensación entre eficiencia y velocidad de compresión, el codificador específico, etc.
Por supuesto, si tiene un proceso trivial de codificación de tasa de bits constante, entonces el tamaño del archivo de salida es fácil de calcular. Pero en la mayoría de los casos es mejor no forzar una tasa de bits fija.
Para el video, estoy tratando de estimar el tamaño del video y el formato de codificación que debo usar para producir una calidad de video de 1080p.
1080p simplemente se refiere a una resolución de 1080 píxeles verticalmente. No hay ninguna "calidad" inherente asociada a estas dimensiones. Cuando hablas de calidad, generalmente la categorizas como:
- sin pérdidas (matemáticamente sin pérdidas)
- visualmente sin pérdidas (las diferencias entre la versión original y codificada no son visibles para el ojo humano)
- con pérdida
Al elegir un códec sin pérdidas como YUV, FFV1 o HuffYUV sin formato, su única preocupación es el tamaño del archivo. Al elegir un códec sin pérdidas visuales como ProRes o DNxHD, es posible que aún te encuentres con archivos de gran tamaño que no son adecuados para la transmisión en línea.
Para la parte con pérdidas, debes pensar en cuáles son tus requisitos. ¿Es la codificación rápida más importante que el tamaño de archivo bajo? ¿Le preocupan los artefactos de compresión o debería transmitir el vídeo a través de la web y, por tanto, comprimirlo? ¿Estás pensando en archivar la transmisión para verla más tarde?
Dependiendo de la respuesta a las preguntas anteriores, es posible que prefiera un ajuste preestablecido de codificación rápida de un solo paso con una tasa de bits baja y restringida para permitir la transmisión web. O tal vez desee un ajuste preestablecido de codificación lenta de dos pasadas con un modo de calidad constante (p. ej.,CRF en x264), si te preocupa la fidelidad pero aún quieres un tamaño más bien pequeño.
¿Y cómo estimar el tiempo que llevaría codificar el vídeo?
Esto depende de las capacidades de su CPU, las dimensiones de píxeles y la velocidad de fotogramas del vídeo, su complejidad espaciotemporal y las opciones del codificador. Con libx264
, por ejemplo, tienes varios ajustes preestablecidos para elegir. Ver elGuía de codificación FFmpeg H.264para algunos consejos.