Вопрос

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

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

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

Это было полезно?

Решение

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

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

RTMFP в основном позволяет две вещи:

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

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

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

Если вы действительно хотите сделать что-то подобное, вам нужна 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, браузер не имеет такой возможности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top