2009-07-10 14 views
9

He estado buscando en Google y todavía no puedo conseguirlo. Algunas personas dicen: aquí tienes, solo úsala. Otros afirman que tiene ciertas restricciones que no le permiten usar p2p de la manera que lo desea en Flash.¿Funciona realmente Flash10 + p2p?

Entonces, aquí hay una pregunta simple: ¿es posible implementar una aplicación Flash10, que utiliza algunos de los archivos torrent existentes para transmitir video/audio directamente en el navegador del usuario?

Si no, ¿por qué? ¿Hay alguna solución posible para este 'no'? En caso afirmativo, ¿cuáles son las dificultades de la implementación y por qué nadie lo ha hecho todavía?

Respuesta

12

La respuesta es más o menos no ... bueno, es sólo que no, para ser honesto.
@drudru señaló la tecnología adecuada para flash p2p, es decir, stratus.

Flash p2p se basa en RTMFP, que se basa en UDP. En realidad, el flash se une a un puerto, pero esto proviene de las partes internas. No hay API para hacerlo manualmente.

RTMFP permite básicamente dos cosas:

  1. de streaming UDP (no fiable, pero rápido) para vídeo y audio. Desde el lado del flash, solo puede publicar la secuencia de su cámara y micrófono. Desde el servidor, casi cualquier cosa.
  2. Hacer llamadas remotas al otro punto final de la conexión p2p. Esto puede usarse para transferir datos. Esta comunicación está asegurada, es decir, el orden del paquete y la integridad se mantienen mediante el reproductor flash.

El p2p se basa en NAT punchthroughs. Stratus en sí es el servidor de presentación. Además, por razones de seguridad, una conexión p2p también significa que ambos clientes deben tener una conexión TCP en reposo (si no recuerdo mal) al servidor. Supongo que se transmiten un poco de datos, por supuesto, pero no la carga útil.

Sin embargo, el protocolo de torrent es muy diferente de esto. Por lo tanto, esta no es una opción. Podría construir un protocolo equivalente sobre RTMFP, aplicar ingeniería inversa al servicio stratus (o esperar hasta que esté abierto). Por supuesto, esto también podría ser utilizado por clientes no flash. Pero, de nuevo, no podría ver los datos transmitidos como un video, ya que obtendrá como un parámetro de alguna llamada al cliente de su NetStream, probablemente un ByteArray. Y no puedes reproducir ByteArray s. Podrías escribir clientes no flash, que publiquen videos como una transmisión, pero eso estaría muy lejos de lo que querías, supongo.

Si realmente quieres hacer algo como eso, necesitas Java. Puede firmar applets de Java y, si el usuario acepta el certificado, tiene acceso prácticamente sin restricciones, p. puedes vincular puertos. Como Java puede hacer UDP, podrías tener un applet de Java, que haga el torrenting (quizás solo uses el código base de Vuze) y si realmente deseas mostrarlo en flash (que a su vez requiere flv), entonces podrías hacer mimo a un local ". Flash Media Server "y publique el video en localhost: someport. Pero en realidad, la broca parece ridículamente complicada e inútil para mí. Más bien intente reproducir con Java, que con suerte tiene una opción para hacerlo de forma nativa.

+0

Gracias, respuesta bastante completa. – snitko

+0

Suena muy parecido a lo que hacen los ninjavideo con su ninjavideo helper, excepto que se conectan a localhost usando el reproductor web divx no flash. – Enriquev

0

Hmmm ... esa es una proposición interesante, solo mantenga el archivo descargado en la memoria de Flash. Creo que es ciertamente posible, pero probablemente sea lento y te limitarían a unos cientos de megabytes.

EDITAR: NO es posible porque no puede escuchar puertos usando solo Flash, el navegador no tiene ese tipo de capacidad.

+0

Por lo que sé, Flash10 ya permite almacenar archivos en el disco. – snitko

2

El flash no le permite escuchar en un socket las conexiones entrantes. Esto sería lo que hace que sea muy difícil trabajar con torrents existentes. Teniendo en cuenta los problemas de seguridad , no veo que esto suceda.

Adobe, sin embargo, ha iniciado su propia versión de un sistema P2P llamado Stratus. Puede leer al respecto aquí http://labs.adobe.com/technologies/stratus/

2

Toda esta información no está actualizada.