2009-10-12 4 views

ответ

-3

Я думаю, «почему ByteArray» на самом деле вопрос ... как он туда попал? :)

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

передать ByteArray на сервер и загрузить FLV оттуда ... есть несколько вариантов:

  • удаленный сервер: загрузить его на удаленный сервер (возможно, один раздаточной ваш swf) ... все еще оставляя вопрос, почему вы не распространяете FLV оттуда, в первую очередь ...
  • local server:
    1. установлено: просто установите маленькое локальное приложение, чтобы сделать именно это для вас, то есть вы можете нажать ByteArray там, а затем получить его на подходящий Protocoll (HTTP, RTMP) ...
    2. browser- встроенный: тот же, что и установленный, но вы можете просто создать Java-апплет для выполнения этой задачи ... signed java-апплетам разрешено связывать порты (да, это дополнительный клик для пользователя, но он так же удобен, как и он) который является то, что вы должны сделать, а остальное действительно так же, как с установленным сервером ...

в обоих сценариях, вы можете столкнуться с проблемами политики crossdomain (возможно, только при отправке, так как я думаю, что вам разрешено загружать видео по доменам), где вам нужно правильно ответить на запросы файла политики FlashPlayer (вы можете найти множество вещей на этом) ... вы могли обойти ограничение отправки, сделав LocalConnection мост, а this one для C# ...

удачи затем ...;)


редактировать: ах хорошо, теперь я понимаю ... на самом деле, уже было very similar question ... я помню короткое интервью с каким-то мужиком, только вскоре после того, как функция p2p была объявлено ... adobe очень застенчиво об этом ... на самом деле мне потребовались недели, чтобы найти p2p после того, как флеш-плеер 10 был официально выпущен (на самом деле не было времени беспокоиться раньше) ...

Фактически, i думаю, что это сделано специально ... в интервью было ясно, что Adobe не пытается оттолкнуть видеопотоки сайтов ... двумя наиболее важными, вероятно, являются youtube и google видео ... youtube является одним из основные причины, почему флеш-плеер стал настолько популярным в первую очередь ... и он принадлежит google, как видео google ...позволяя легко создавать медиа-платформу p2p, сильно расстраивает google ... вам не нужно много серверов для этого ... «просто« хорошее программное обеспечение, но это доступно ... и я думаю, что Adobe не делает хотите разозлить Google ... некоторые причины:

  • они ПОИСКОВИКОМ
  • они нуждаются в Google, чтобы сайты на основе индексации флэш
  • Google п раз превышает
  • Google действительно пытается получить огромный кусок рынка RIA ... у них есть GWT, хром, V8, native client ...

, так что я думаю, что у adobe нет такой большой заинтересованности, чтобы это сделать ... это довольно много, например, когда Google объявила о своей платежной системе (была ли она GPay или так?), Которая была прямой параллельной PayPal ... eBay является одним из самых важных источников дохода Google ... и на самом деле я никогда ничего не слышал об этом ...

Многие решения являются политическими, когда дело доходит до крупных компаний ... и я думаю , то один не делать p2p Flash Player слишком сильна одна из них ...


+0

Спасибо за ответы. Я боялся, что это мои единственные варианты, и вы только что подтвердили это (я надеялся, что я упустил какой-то другой метод).Чтобы ответить на вопрос WHY :) - Я работаю над потоковой репликацией p2p с использованием новых функций, доступных в Flash Player 10, и дошел до того, что у меня есть видео в ByteArray на клиентах, но не могу его отобразить :) Cheers и еще раз спасибо за ваши ответы. – bartekb

-2

Я не буду спрашивать, почему ByteArray? Ответ на ваш вопрос - ДА, но конечный результат будет работать медленнее - медленнее, когда видео больше и сложнее кодека. Вы должны прочитать фреймы и поместить их как BitmapData в Bitmap и написать собственный плеер. Лучший способ - использовать Alchemy - тогда он работает быстрее, но также медленнее :) Вы также можете использовать haXe. Звук очень похож. Лучший момент для начала - это adobe labs. В конце - помните, что flv декодируется с помощью аппаратного обеспечения - ваш код будет использовать только процессор. Теперь спросите себя, действительно ли вам нужна эта функция?

-1

Я не уверен, что это вообще возможно, так как у меня нет я dea, как Flash кодирует SWF-встроенные видео, но, возможно, вы можете преобразовать этот FLV bytearray в swf с помощью flv, встроенного в временную шкалу, и использовать это bytearray для отображения его с Loader.loadBytes ...

+0

+1 ... хорошая идея ... но я не мог узнать, как встраиваются видео в SWF ... у меня всегда было впечатление, они каким-то образом преобразуются, что потребует декодирования ... – back2dos

+0

Это хорошая идея. Это сделано для аудио (mp3), так что возможно для видео ... http://www.flexiblefactory.co.uk/flexible/?p=46 – bartekb

0

трюк Loader + MovieClip вероятно, единственный способ пойти, see this

для ограничений. 2-минутный предел подходит для rtmfp2p, так как распространение больших байтов в любом случае нецелесообразно.

Предполагая, что показатели воспроизведения (головка воспроизведения/текущий кадр) доступны, плавные переходы не должны быть проблемой - начните играть второй swf с отключенным/видимым = false до тех пор, пока синхронизация не будет синхронизирована, затем переверните видео и звук - это работает очень хорошо для netstream/play(), не так уж точно для простого swf.

Еще одна проблема заключается в том, чтобы точно указать, как данные flv импортируются в swf и как построить правильный swf во время выполнения, в as3. Пока mxmlc/swfmill были недоступны для непосредственного внедрения FLV для меня (прошло какое-то время, все могло измениться), только простая вспышка AS3 была способна создавать swt с байтом с видео. Должно быть возможно, хотя.

Относительно примечания - один вопрос, если все это стоит проблемы - если кто-то должен был создать успешный сайт с изображением p2p VOD, подобный этому, Adobe могла бы просто отрезать линию (взломать что-то вроде не swf movieclips со встроенным видео для загрузки с байтов ...).

Я все еще пытаюсь найти трещины, чтобы выполнить p2p vod, на случай, если кому-то будет интересно, не стесняйтесь сообщить мне @ [email protected] | sed -e 's/A/e /'

7

Теперь есть лучший способ воспроизведения видео, которое вы сохранили в ByteArray, используя NetStream.appendBytes().

Вот пример его использования в: http://www.bytearray.org/?p=1689

+0

Это ответ сейчас. –

+0

Есть ли способ appendBytes()? для вспышки <10 – Lego

Смежные вопросы