2012-08-14 7 views
0

Je viens de passer toute la journée sur ce problème et j'ai peur de manquer quelque chose.Diffuser une vidéo en utilisant Flash

je un simple fichier mov/mp4 sur mon serveur S3 avec un encodage AVC, et j'ai un fichier swf qui devrait jouer. J'ai trouvé 2 façons de le faire, comme décrit here.

Le premier est:

nc.connect(null); 
var ns:NetStream = new NetStream(nc); 
ns.play("http://url.path/movie.mov"); 

Cela fonctionne, mais il semble que ce télécharger la vidéo et une fois terminé, il commencerait à jouer.

Pour l'utiliser pour le streaming vidéo, il dit d'utiliser ceci:

nc.connect("http://url.path/"); 
var ns:NetStream = new NetStream(nc); 
ns.play("movie.mov"); 

Ce code échoue pour moi dans le cteur NetStream:

ArgumentError: Error #2126: NetConnection object must be connected.

Questions:

  1. Est-ce la bonne façon de faire ou est-ce que je manque quelque chose dans le code?
  2. J'ai trouvé this thread qui me rend très triste, mais j'ai construit un lecteur vidéo HTML qui joue la vidéo en streaming de S #, comment est-ce? Lire un peu et vu qu'il pourrait être à cause du format h264, qui envoie les métadonnées seulement à la fin. Est-ce correct? Le convertir à un autre format va le résoudre?
  3. Tous les didacticiels Flash-streaming supposent que je stocke ma vidéo avec le protocole RTMP, lire à ce sujet un peu et vu que je peux utiliser Adobe Media Server 5 on Amazon Web Services. Dois-je? Y at-il une solution gratuite pour cela ou Flash ne peut diffuser ce protocole?

Thx.

+0

Avez-vous regardé dans Red5 Media Server? http://www.red5.org/ - Il est open source et gratuit à utiliser. – bigp

+0

L'avez-vous compris? – BadFeelingAboutThis

+0

Pas encore, je dois vérifier si l'application d'air le corrige. – shem

Répondre

0

Pour vos deux méthodes:

  1. Soit votre serveur doit être dit de diffuser ce type mime (je n'ai aucune expérience avec S3, mais il est probable déjà configuré pour les types de vidéo les plus courants) ou votre type de fichier est pas un type pris en charge pour le streaming, (l'atome MOOV -meta data- est à la fin du fichier au lieu du début). À l'aide d'Adobe Media Encoder (ou d'un autre programme de codage qui place ces données au début du fichier), réencodez-les en .mp4 (encodé en h.264) ou en .f4v (ou .flv).

  2. Ceci est pour un serveur de diffusion multimédia (Flash Media Server) afin que vous saisiriez l'adresse du serveur multimédia: par exemple. "rtmp: // mediaserver/application/nom de flux".

+0

1. c'est un fichier mov qui code en h.264 (quand je le télécharge, il est downlaoded en mp4).et le type mime est video/mp4. 2. Dois-je l'utiliser? – shem

+0

Il est possible que le serveur ne soit pas diffusé en continu car il se trouve dans un conteneur .mov. Je sais que certains fichiers mp4 ont toutes les méta-données à la fin du fichier et cela pourrait aussi être votre problème. J'essaierais de le ré-encoder avec Adobe Media Encoder en tant que f4v ou mp4 et abandonner complètement le conteneur mov. Vous pouvez également essayer de renommer votre source de .mov en .mp4 – BadFeelingAboutThis

+0

Thx pour les commentaires - renommer et ré-encoder n'a pas aidé, d'autres idées? – shem

0

Si le fichier est en cours de téléchargement complet avant le début de la lecture, cela est probablement dû au fait que les métadonnées se trouvent à la fin de la vidéo.

Essayez d'utiliser qt-faststart (ou recherchez en ligne une version binaire précompilée) pour déplacer cette méta-donnée au début du fichier.

Questions connexes