Flash10 + p2p действительно работает? - PullRequest
9 голосов
/ 10 июля 2009

Я гуглил и до сих пор не могу понять. Некоторые люди говорят: вот, пожалуйста, просто используйте это. Другие утверждают, что у него есть определенные ограничения, которые не позволяют вам использовать p2p так, как вы хотите во Flash.

Итак, вот простой вопрос: возможно ли реализовать приложение Flash10, которое использует некоторые из существующих торрент-файлов для потоковой передачи видео / аудио прямо в браузер пользователя?

Если нет - почему? Есть ли возможный обходной путь для этого «нет»? Если да - каковы сложности реализации и почему еще никто не сделал этого на самом деле?

Ответы [ 4 ]

12 голосов
/ 10 июля 2009

Ответ почти нет ... ну, если честно, просто нет.
@drudru указал правильную технологию для flash p2p, то есть stratus.

Flash p2p основан на RTMFP, который построен на UDP. На самом деле, flash связывает порт, но это происходит от внутренних устройств. Нет API для этого вручную.

RTMFP в основном допускает две вещи:

  1. Потоковое UDP (ненадежное, но быстрое) для видео и аудио. Со стороны вспышки вы можете публиковать только свою камеру и микрофон. С сервера практически ничего.
  2. Выполнение удаленных вызовов к другой конечной точке p2p-соединения. Это может быть использовано для передачи данных. Эта связь защищена, т. Е. Порядок и целостность пакетов поддерживается флеш-плеером.

p2p основан на пробах NAT. Сам Stratus является сервером внедрения. Кроме того, в целях безопасности p2p-соединение также означает, что оба клиента должны иметь простаивающее TCP (если я правильно помню) соединение с сервером. Я предполагаю, что часть данных передается, конечно, но не полезная нагрузка.

Однако, торрент-протокол очень отличается от этого. Поэтому это не вариант. Вы можете создать эквивалентный протокол поверх RTMFP, реинжиниринг сервиса Stratus (или подождать, пока он не будет открыт). Конечно, это также может быть использовано клиентами без флэш-памяти. Но опять же, вы не сможете смотреть передаваемые данные в виде видео, поскольку вы получите это как параметр для некоторого вызова клиенту вашего NetStream, вероятно, ByteArray. И вы не можете воспроизвести ByteArray с. Вы могли бы писать не Flash-клиенты, которые публикуют видео в виде потока, но это было бы далеко от того, что вы хотели, я думаю.

Если вы действительно хотите сделать что-то подобное, вам нужна Java. Вы можете подписывать Java-апплеты, и если пользователь принимает сертификат, он имеет практически неограниченный доступ, например, Вы могли бы связать порты. Поскольку Java может выполнять UDP, у вас может быть апплет Java, который выполняет торрент (возможно, просто использует кодовую базу Vuze), и если вы действительно хотите отобразить его во флэш-памяти (что, в свою очередь, требует flv), то вы можете имитировать локальный " Flash Media Server "и опубликуйте видео на localhost: someport. Но на самом деле, вспышка кажется мне смешно сложной и бесполезной для меня. Скорее попробуйте поиграть с Java, который, как мы надеемся, имеет возможность сделать это изначально.

2 голосов
/ 30 марта 2010

Вся эта информация устарела.

2 голосов
/ 10 июля 2009

Flash не позволяет прослушивать сокет для входящих подключений. Это будет сделать действительно сложным работу с существующими торрентами. Учитывая проблемы безопасности вокруг этого я не вижу, что это происходит.

Однако Adobe запустила собственную версию системы P2P под названием Stratus. Вы можете прочитать об этом здесь http://labs.adobe.com/technologies/stratus/

0 голосов
/ 10 июля 2009

Хммм ... это интересное предложение, только храните загруженный файл в памяти Flash. Я думаю, что это, конечно, возможно, но, вероятно, медленно, и вы будете ограничены несколькими сотнями мегабайт.

РЕДАКТИРОВАТЬ: это невозможно, потому что вы не можете прослушивать порты, используя только Flash, браузер не имеет такой возможности.

...