Experts vidéo Hello Android :) P>
Je développe une application Android qui permet à l'utilisateur de capturer la vidéo et de la télécharger sur un serveur distant (c'est plus impliqué que cela, mais le reste de l'application n'est pas important). En raison de l'exigence de téléchargement, il est important que la vidéo soit de taille raisonnable, donc pas très haute résolution. Disons un max de 680x480 ou 10 Mo / minute. Ce n'est pas un problème sur les appareils Apple. P>
J'ai eu ce qui ne peut être décrit que comme un cauchemar complet essayant de capturer des vidéos à un débit de manière raisonnablement faible de manière fiable sur une gamme d'appareils Android. P>
Si je comprends bien, il y a deux façons de capturer une vidéo sur Android: P>
1) Utilisation de l'enregistreur multimédia / API de l'appareil photo p>
2) en utilisant une intention d'ouvrir l'application de capture vidéo caméras p>
L'option 1) donne la plus grande flexibilité et nous permet de modifier facilement la résolution de capture. Cependant, l'API de la caméra Android n'est pas fiable sur une gamme d'appareils et j'ai de très bonnes informations (y compris de quelqu'un qui a assuré avec Google sur ce problème) que si vous capturez la vidéo à l'aide de cette API, il s'écrasera sur un bon de 50% de les appareils là-bas. Il y a une raison que zoomer Camera FX utilise une intention de capture vidéo. ZOOM CAMERA (DIFFERENTE APP) semble utiliser un enregistreur multimédia, mais propose de nombreuses critiques pour les vidéos écrases ou ne fonctionnant pas. P>
L'option 2) fonctionne bien sur une gamme d'appareils, car elle utilise l'application intégrée sur l'appareil. Le problème est que vous n'avez aucun contrôle sur la résolution, il y a un indice de qualité à l'intention, mais l'application de la caméra ignorera normalement cela. Mon Samsung Galaxy S3 enregistre la vidéo par défaut à environ 2 Mo / s. Ceci est beaucoup trop haute résolution. La demande intégrée peut bien sûr changer la résolution, mais cela s'appuie sur l'action par l'utilisateur qui est difficile à contrôler. P>
Je comprends que je pourrais utiliser une bibliothèque telle que FFMPEG pour modifier la résolution de la vidéo après la capture. Cependant, cela vous oblige à compiler la bibliothèque pour Android, et j'ai également été informé que, pour utiliser légalement les codecs de décodage / codé sur l'appareil, vous devez payer des frais de licence allant d'environ 1 $ par copie de l'application. Étant donné que cette application sera libre d'utiliser, ce n'est pas une option. P>
Alors c'est là que je suis à. J'ai cherché longtemps et élevé pour les réponses, mais je ne peux pas comprendre comment capturer une vidéo de basse résolution de manière fiable en utilisant Android. P>
Toute aide très appréciée! p>
Matthew p>
3 Réponses :
Je pense que vous pouvez utiliser GetUpportedpictureSise pour obtenir la taille prise en charge minimum dans chaque caméra mobile et après avoir utilisé Mediarecorder avec ces paramètres dans SetVidéosize (largeur, hauteur) p>
Merci Alvaro mais cela ne rend pas l'API de l'enregistreur multimédia
Si vous cible API 18 et plus, vous pouvez utiliser Vous pouvez vérifier le version de la plate-forme Dashboard pour estimer la taille de la cible marché à un niveau d'API donné. P> caméra code> et
mediacodec code> ensemble pour enregistrer à une taille et un débit binaire arbitraire. Voir, par exemple, l'activité "show + capture caméra" dans grafika . P>
Vous pouvez définir exactement que dans la classe Mediarecorder Code> Classe en définissant la taille de trame
(largeur x hauteur) code>, utilisez la méthode de la méthode
SetVidéosize (intensité int. CODE>, plus la taille de l'image est petite la plus petite vidéo, celle-ci s'applique à tous les téléphones Android, vous n'aurez pas besoin de modifier la taille de l'image par périphérique, ou vous pouvez coder le débit binaire, cela contrôle la qualité de la compression de chaque image. Méthode d'utilisation
SetVidéoCodingBitRate (int Diasson) Code> Le débit binaire inférieur entraîne une compression plus élevée, ce qui conduit à la taille de la qualité inférieure et de la taille de fichier vidéo inférieure. Jetez un bon coup d'œil au
Mediarecorder Code> Classe. P>
Avez-vous trouvé quelque chose autour des problèmes? J'essaie l'option 2 et je suis coincé à chercher des réponses ....