Flash10 + p2p действительно работает?

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

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

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

4 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам