2011-05-17 3 views
2

Après beaucoup de coups de tête je suis toujours coincé! J'essaye de fournir la vidéo h.264 sur RTMP à une application de Flex fonctionnant sur un Xoom de Motorola. La BBC Iplayer, Youtube et beaucoup d'autres sites de vidéo ont une belle vidéo HD en streaming sans problèmes.Mauvaise performance vidéo sur flash sur xoom

Ma solution encode actuellement la vidéo en utilisant ffmpeg et joue bien sur un bureau. Mais vraiment appaulingly sur le Xoom.

J'ai essayé de forcer l'utilisation de la ligne de base h.264 et de l'utiliser pour utiliser différents niveaux. Toujours sans chance.

Est-ce que quelqu'un a eu de la chance en encodant la vidéo pour Flash sur Android en utilisant ffmpeg et a obtenu un bon résultat?

Merci d'avance. Ben

+2

Vous avez du code? Qu'avez-vous utilisé? –

+0

Quel est le problème avec la vidéo? Tampons beaucoup? Beaucoup de pixellisation? Peut-être que vous pouvez poster la ligne de commande ffmpeg que vous utilisez? Quel est le réseau entre le serveur qui exécute ffmpeg et votre Xoom? –

+0

La vidéo est superbe lorsqu'elle est en cours de lecture, donc ce n'est pas un problème de pixellisation. Il va jouer pendant un certain temps, puis bloquer l'arrêt de la vidéo et de l'audio. On dirait que c'est un tampon vide. Mais le tampon a beaucoup de vidéo dedans. Aussi, si je cherche loin dans un fichier. Dites une heure ou deux. Il va accrocher la vidéo et jouer l'audio pour ce point de recherche. –

Répondre

0

Je n'ai construit un lecteur de streaming flexible qu'une seule fois, il y a peut-être une meilleure façon de le faire.
La façon dont je l'ai fait était d'encoder quelques versions de la vidéo de bas rez à haut rez.
Ensuite, j'ai fait tester la bande passante du lecteur au serveur cdn.
Une fois que je connaissais la bande passante, je livrais le bon fichier sans jamais dépasser les limites. Ceci était pour un site de formation de poker et il y avait seulement environ 50 vidéos de tutoriel. Donc faire 3 versions avec des résolutions différentes n'était pas si mauvais.

+0

Le processus dont vous parlez est Dynamic Streaming. Ou streaming adaptatif. C'est en place dans le lecteur. Cependant, les vidéos elles-mêmes sont le problème.Même si je force le joueur à jouer la version de qualité la plus basse, il joue très mal. –

+0

Avez-vous essayé de lire des vidéos qui n'ont pas été encodées par votre équipe? Capturez une vidéo YouTube et essayez celui-ci. Peut-être que c'est votre processus d'encodage. Ou peut-être que le serveur s'étouffe. –

+0

J'ai extrait une vidéo YouTube et l'ai téléchargée dans notre boîte FMS. Il joue aussi bien que sur YouTube. Donc, le problème est définitivement dans notre encodage. –

0

Quel débit/résolution/taille d'image utilisez-vous?

J'ai créé des flux de test H.264/RTMP pour mon entreprise que vous pouvez tester here. Les flux sont codés avec ffmpeg (profil de base) et sont disponibles dans un nombre de débits différent correspondant approximativement aux formats de qualité vidéo YouTube.

Le lecteur est le JWPlayer et les vidéos sont diffusées depuis Amazon CloudFront. Notez que le débit indiqué dans le lecteur flash est pas précis!

+0

J'ai essayé d'ouvrir les versions de Flash Player de ces vidéos et le JWPlayer ne semble pas charger. Connaissez-vous les adresses RTMP de ces vidéos? Je pourrais les essayer directement? Si elles fonctionnent, savez-vous quelles options ffmpeg vous avez utilisées pour les encoder? –

+0

Je suis en train d'encoder des versions 1M 800K 600K et 350K des vidéos. La résolution est 640x480. Le problème n'est pas la vidéo nécessitant une mise en mémoire tampon. C'est la lecture sur flash sur Android en cours d'appauling. –

+0

étrange - il fonctionne très bien sur mon téléphone (Moto Droid avec ROM pain d'épice). Assurez-vous d'essayer l'une des versions à débit binaire inférieur telles que (BBB-005-FL-RTMP) Si vous affichez la source sur la page Web du lecteur et recherchez rupello