Question

J'essaie de comprendre conceptuellement le meilleur moyen de diffuser de vrais contenus audio et vidéo en streaming. Je voudrais qu'il soit consommé avec un navigateur Web, utilisant le moins de technologie propriétaire. Je ne serais pas en train de servir des fichiers statiques et en utilisant le téléchargement progressif, ce serait de vrais flux audio capturés en direct. Comment diffuse-t-on un flux raisonnablement synchronisé avec la source? Quel type de protocole est approprié?

Modifier:

Lors de recherches, j'ai constaté qu'il existe plusieurs protocoles: RTSP, HTTP Streaming, RTMP et RTP.

La diffusion HTTP en continu est quelque peu inappropriée si vous transmettez en direct une performance ou une communication en direct, car elle repose sur TCP (en tant que base HTTP) et vous ne perdez pas de paquets. Dans une situation de faible bande passante, le client peut prendre beaucoup de retard en lecture. ref

RTMP est une technologie propriétaire nécessitant un serveur de supports Flash. Merde à ce sujet. La raison pour laquelle j'ai regardé flash est parce qu'ils sont extrêmement flexibles en ce qui concerne l'expérience utilisateur. SoundManager2 fournit une excellente interface javascript pour la lecture de contenu multimédia avec flash. C’est ce que je rechercherais dans une application cliente.

RTSP / RTP est ce que Microsoft a choisi d'utiliser, déconseillant d'utiliser son protocole MMS. RTSP est le protocole de contrôle. Son semblable à HTTP avec quelques différences distinctes - le serveur peut également parler au client, et il existe des commandes supplémentaires, telles que PAUSE. C'est aussi un protocole avec état, qui est maintenu avec un identifiant de session. RTP est le protocole de livraison de la charge utile (audio ou vidéo codée). Il existe quelques projets en source ouverte, l'un d'entre eux étant pris en charge par Apple ici . Il semble que cela puisse faire ce que je veux, et cela ressemble à beaucoup de joueurs le soutiennent . Il semble que cela conviendrait à un "live". diffusion de cette page ici .

Merci, Josh

Était-ce utile?

La solution

Tout d’abord, laissez-moi éliminer rapidement deux points incorrects. Détails à suivre ci-dessous:

  • RTMP peut être effectué sur des serveurs autres que Flash Media Server
  • TCP est correct pour vivre. Il y a trop de F.U.D. des gens qui aiment UDP là-bas. Apple vient de publier un projet de spécification de diffusion en continu simple et en direct sur HTTP (et donc TCP) pour l'iPhone. J'espère que cela se retrouvera aussi dans les navigateurs. De plus, TCP a l'avantage de passer beaucoup plus facilement et facilement à travers les pare-feu d'entreprise.

Mon interprétation est que la diffusion en continu complexe et basée sur UDP se réduit progressivement. Je ne prévois pas la mort, juste une part de plus en plus petite du marché. Les serveurs de diffusion en continu basés sur UDP consomment des ressources considérables par rapport aux solutions basées sur TCP (telles que 10x ou plus), et les avantages ne sont tout simplement pas tangibles.

Vous dites que vous ne voulez pas de technologie propriétaire et "merde sur [Flash]", mais vous voulez toujours faire du streaming réel? Je n'aime pas vous en parler, mais RealAudio et RealVideo sont tous deux propriétaires.

Si je comprends que ce soit vraiment important d’avoir à cœur l’open source, vous devrez alors ignorer la grande majorité du marché des médias en continu. Regardez

  • Theora : une vidéo libre, libre de droits, avec standard ouvert. > technologie de compression
  • Vorbis : un logiciel libre / un projet open source qui produit un audio
  • Ogg : un format de conteneur standard gratuit et ouvert

Si le pragmatisme vous séduit, réexaminez votre aversion pour les produits Adobe. N'oubliez pas que Flash est plus largement distribué que tout autre lecteur utilisant un navigateur (à savoir Windows Media Player, Quick Time et Real Players).

Vous pouvez toujours utiliser RTMP avec une source ouverte: Red5 est probablement du plus haut intérêt - il peut diffuser en direct sur Flash navigateurs compatibles.

Je recommanderais de réfléchir à vos priorités. Épelez-les pour nous dans votre question.

Autres conseils

J'ajouterais à la réponse de Stu que les protocoles de diffusion en continu basés sur UDP présentent souvent une complexité supplémentaire pour fonctionner derrière des pare-feu ou des NAT. Par exemple, si vous envisagez d’utiliser des points d’accès WIFI en dehors de la maison, beaucoup d’entre eux ne prendront pas en charge le protocole RTP utilisant la livraison UDP. De nombreux clients ont un mécanisme de restauration automatique dans lequel, si aucun paquet n'est reçu avant un délai d'attente, il tentera la remise TCP.

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