Estaba tratando de hacer algo de edición y codificación de video. Tengo un llamado video SD que supuestamente debería estar en 4:3
relación de aspecto. Pero en lugar de 640x480
, es 720x480
. Curiosamente, cuando lo reproduzco con un reproductor multimedia, lo que veo es 640x480
que no se reproduce como 720x480
!
¡¿Qué está pasando?! Como podría ser posible?
Hay 2 cosas diferentes:
El problema surgió en los viejos tiempos, cuando la resolución de los dispositivos (número de píxeles en la imagen) era muy baja, pero la relación entre ancho y alto requerida para la reproducción era de 4:3.
La solución (en aquellos días) fue la invención de los píxeles no cuadrados.
En aras de la simplicidad, supongamos (teóricamente) dimensiones muy bajas:
La solución fue píxeles no cuadrados con la relación de aspecto de píxeles ( PAR ) 4:3 , como aquí:
Entonces, la relación de aspecto de píxeles ( PAR ) es la relación de tamaños de cada píxel individual:
Cada píxel azul de nuestra imagen tiene PAR 4:3, y cada naranja y cada verde tiene PAR 1:1.
Ahora nuestra imagen completa (azul) se muestra correctamente, como queríamos, por ejemplo, como 12 cm x 9 cm, por lo que su relación de aspecto de visualización ( DAR ) es 12:9 o 4:3.
A pesar de ello, se guarda como 3 × 3 píxeles, por lo que la relación de aspecto de almacenamiento ( SAR ) es de 3 píxeles: 3 píxeles o 1:1.
Pista:
En consecuencia, la relación entre estos 3 valores es
DAR = TAE × PAR
La nota importante:
A veces, PAR (relación de aspecto de píxeles) se denomina relación de aspecto de muestra, como en FFmpeg *. Desafortunadamente, la abreviatura es SAR , lo cual es muy confuso porque, como vimos, también es la abreviatura de Storage Aspect ratio.
El problema principal:
Hoy en día, todos los dispositivos tienen una relación de aspecto de píxeles de 1:1 (píxeles cuadrados), y muchos reproductores multimedia, principalmente para dispositivos pequeños (teléfonos celulares, tabletas), confían en él, ignorando por completo el valor DAR almacenado en las transmisiones de video .
Por lo tanto, puede encontrarse con la situación en la que el mismo video (hecho de todas las fuentes) se reproduce correctamente en su computadora de escritorio o portátil, pero incorrectamente (restringido) en su teléfono inteligente. O incluso en el otro reproductor multimedia en la misma computadora o dispositivo.
En nuestro ejemplo, los marcos pueden mostrarse incorrectamente como un cuadrado (ver la parte verde de la imagen de arriba).
La solución de este problema en FFmpeg:
En nuestro ejemplo (irreal) puede usar el gráfico de filtro
-vf scale=4:3,setsar=1,setdar=w/h
donde w
está el ancho de los marcos (recién escalados) en píxeles, h
es su altura. FFmpeg sustituirá los valores apropiados automáticamente.
El resultado será la parte naranja de la imagen de arriba.
En su caso, su video tiene (de su información)
Entonces, para evitar problemas con los reproductores multimedia que ignoran el valor DAR (y lo reproducen en la proporción 720:480, puede considerar convertirlo con el comando
ffmpeg -i your_input_file -vf -scale=640:480,setsar=1 -c:a copy your_output_file
Problemas con imágenes con píxeles no cuadrados:
Con las imágenes, la situación es aún mucho peor:
Casi todos los visores/editores de imágenes y navegadores de Internet simplemente ignoran las imágenes SAR y DAR , suponiendo que todas las imágenes del mundo tienen SAR 1:1.
La honorable excepción es (interesante y sorprendentemente) Microsoft Windows Photo Viewer, que muestra todas las imágenes correctamente.
Es posible que se convenza de ello, por ejemplo, con la prueba ácida de la relación de aspecto de píxeles : las 9 imágenes deberían mostrarse correctamente en su navegador, pero, muy probablemente, no es así.
Vídeo SD digitalizado 525/60 según Rec. 601 tiene, de hecho, 720 píxeles de ancho, 480 píxeles de alto, incluidos algunos espacios en blanco en los lados. El equivalente digital de 625/50 es 720x576. En ambos casos, la relación de aspecto del cuadro es 4:3, esto simplemente significa que los píxeles no son cuadrados. Consulte https://en.wikipedia.org/wiki/D-1_(Sony)
Para hacer las cosas más complejas, solo un subconjunto del marco tiene proporciones de 4:3. Creo que solo el 704x480 (para 525/60) y el 704x576 (para 625/50) tienen proporciones de 4:3. Vea la discusión aquí: https://lurkertech.com/lg/video-systems/
Entonces, 480 píxeles tienen una proporción de 10/11, 576 píxeles tienen una proporción de 59/54. Consulte también aquí: https://en.wikipedia.org/wiki/Pixel_aspect_ratio Y no olvide que los formatos de 480 y 576 líneas también pueden ser panorámicos (16:9) y tener el mismo número de píxeles por línea ! Además, no es fácil trabajar con números como 59/54. Todo esto provocó que para el formato de 576 líneas, la relación de aspecto de píxeles se haya elegido como 12/11 para la relación de aspecto de pantalla 4:3 y como 16/11 para 16:9.
Los píxeles cuadrados se convirtieron en la norma a partir del adaptador de video VGA, creo, y luego de las especificaciones HD para video de 720 y 1080 líneas. Por cierto, hay algunos formatos HD que graban 1440x1080 o 960x720, pero que tienen una relación de aspecto de cuadro de 16:9, también tienen píxeles no cuadrados. Los píxeles cuadrados son un desarrollo relativamente reciente y no deben esperarse automáticamente.
FFmpeg
algunos experimentos (para ver si los dos tienen la misma longitud de corte de escena). Entonces, dado que la reproducción es la misma, ¿debo suponer que ffmpeg
los 640x480 y 720x480 son idénticos?
MarianD