Si vous deviez ajouter un support pour un format de fichier vidéo et un codec, lequel choisiriez-vous?

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

Question

Je souhaite ajouter un support pour la lecture et l'écriture de fichiers vidéo dans mon application. Si vous deviez choisir exactement un format de fichier et une combinaison de codecs qui satisferaient la majorité des utilisateurs, lesquels choisiriez-vous:

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

Je suis plutôt orienté vers MPEG-4 / H.264, car il est pris en charge par Linux, Mac OS X, le lecteur Flash, les iPod, la Playstation 3, la XBox360 et la prise en charge de Microsoft Silverlight et de Windows Media Player est à venir. 12.

Est-ce que je manque quelque chose? Y a-t-il quelque chose de mieux que je pourrais choisir?

Était-ce utile?

La solution

Cela dépend de ce que fait votre application. Si vous souhaitez traiter des vidéos enregistrées à partir d'une carte de capture vidéo, vous devrez probablement être capable de lire les fichiers .mpg avec mpeg2 embedded. Un grand nombre de vidéos utilisent le conteneur .avi ou .wmv. Microsoft pousse .wmv, mais .avi supporte beaucoup mieux les outils gratuits. Peu d'outils prennent en charge les conteneurs .mp4 sous Windows (Mac est probablement différent). H.264, mpeg2 et mpeg4 sont mes codecs préférés. Le format H.264 offre une excellente qualité / débit, mais rend les recherches précises et rapides et demande beaucoup de ressources de calcul. mpeg4 est presque aussi bon que h.264 en termes de qualité / débit, mais il consomme beaucoup moins de temps processeur. mpeg2 nécessite beaucoup plus de bits pour obtenir la même qualité, mais il est supporté un peu partout et il est très facile de décoder et de rechercher dans ces fichiers.

Si cela ne vous dérange pas d'utiliser du code LGPL, je vous conseillerais de consulter le fichier libavcodec de ffmpeg . et libavformat. Cela vous permettra de faire tout ce que vous mentionnez sur toutes les plateformes (bien que je ne sois pas sûr de Ogg & Theora - je ne les ai pas utilisées).

Autres conseils

Je pense que votre première option serait mon choix. Je pense que la plupart des applications peuvent lire ce format, et il est moins flexible.

Si je ne me trompe pas, les fichiers AVI / DIVX peuvent en fait contenir différents types de supports, de même que wmv. Cela rend plus difficile l'utilisation de ces formats, car vous devez prendre en charge tous les encodages.

Tout d’abord, aurez-vous également du son dans vos vidéos? Si oui, j'irais avec mp3.

Maintenant, considérons le codec vidéo et le conteneur vidéo. Je pense que vous ne devriez pas envisager les options 3 et 4 pour diverses raisons. Theora est vraiment impopulaire (je n'ai pas encore vu de vidéo theora) et WMV étant une technologie Microsoft, vos options sont donc un peu limitées.

Maintenant, à propos des deux premiers: j'irais avec une vidéo DivX (Mpeg4 partie 2) dans un conteneur Avi. Il est très populaire car la plupart des ordinateurs et de nombreux DVD sont capables de lire de telles vidéos. En outre, il existe un excellent codec DIVX open source, XVID. Enfin, DIVX nécessite beaucoup moins de ressources que H.264 pour l’encodage et le décodage. Ce dernier point est important car, en fonction des paramètres de codage, le codage H.264 en temps réel peut même ne pas être pris en charge.

Le manque de prise en charge de AVI / DIVX sur un certain nombre de plates-formes n’est pas un problème car il est très facile de transcoder dans n’importe quel format en utilisant des outils open source.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top