Si tuviera que agregar soporte para un formato de archivo de video y códec, ¿cuál elegiría?

StackOverflow https://stackoverflow.com/questions/305773

Pregunta

Estoy buscando agregar soporte para leer y escribir archivos de video en mi aplicación. Si tuviera que elegir exactamente un formato de archivo y una combinación de códec que satisfaría a la mayoría de los usuarios, ¿cuál elegiría?

1) MPEG-4 / H.264 (.mp4) 2) AVI / DiVX (.avi) 3) Ogg / Theora (.ogg) 4) Video de Windows Media (.wmv)

Me estoy inclinando hacia MPEG-4 / H.264 dado que es compatible con Linux, Mac OS X, el reproductor Flash, iPods, Playstation 3, XBox360, y próximamente se ofrecerá soporte en Microsoft Silverlight y Windows Media Player 12.

¿Me estoy perdiendo algo? ¿Hay algo mejor que podría elegir?

¿Fue útil?

Solución

Depende de lo que esté haciendo su aplicación. Si desea procesar videos grabados desde una tarjeta de captura de video, probablemente necesite leer archivos .mpg con mpeg2 incorporado. Una gran cantidad de videos usan el contenedor .avi o .wmv. Microsoft está impulsando .wmv, pero .avi tiene mucho mejor soporte entre las herramientas gratuitas. No muchas herramientas admiten contenedores .mp4 en Windows (Mac es probablemente diferente). H.264, mpeg2 y mpeg4 son mis códecs favoritos. H.264 es de gran calidad / velocidad de bits, pero hace búsquedas precisas y rápidas y es extremadamente intensivo en CPU. mpeg4 es casi tan bueno como h.264 en términos de calidad / velocidad de bits, pero es mucho menos intensivo en CPU. mpeg2 requiere muchos más bits para lograr la misma calidad, pero es compatible prácticamente en todas partes y es realmente fácil de decodificar y buscar en esos archivos.

Si no le importa usar el código LGPL, le sugiero que consulte ffmpeg 's libavcodec y libavformat. Te permitirá hacer todo lo que mencionas en todas las plataformas (aunque no estoy seguro acerca de Ogg & amp; Theora, no las he usado).

Otros consejos

Creo que tu primera opción sería mi elección. Creo que la mayoría de las aplicaciones pueden leer este formato, y es menos flexible.

Si estoy en lo cierto, los archivos AVI / DIVX pueden contener diferentes tipos de medios, lo mismo ocurre con wmv. Esto hace que sea más difícil usar estos formatos porque necesita admitir todas las codificaciones.

En primer lugar, ¿también tendrás sonido en tus videos? Si es así, iría con mp3.

Ahora, considerando el códec de video y el contenedor de video. Creo que no debe considerar las opciones 3 y 4 por varias razones. Theora es realmente impopular (todavía no he encontrado un video de theora) y WMV es una tecnología de Microsoft, por lo que sus opciones son un poco limitadas.

Ahora, sobre los dos primeros: iría con el video DivX (Mpeg4 parte 2) en un contenedor Avi. Es realmente popular ya que la mayoría de las computadoras y muchos DVD pueden reproducir tales videos. Además, hay un gran códec DIVX de código abierto, XVID. Finalmente, DIVX necesita muchos menos recursos que H.264 tanto para codificar como para decodificar. El último es importante, ya que, dependiendo de los parámetros de codificación, la codificación H.264 en tiempo real puede que ni siquiera sea compatible.

La falta de soporte de AVI / DIVX en varias plataformas no es un problema, ya que es muy fácil transcodificar a cualquier formato utilizando herramientas de código abierto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top