У меня есть Flash-видеофайл (FLV), хранящийся в объекте ByteArray, и хотел бы воспроизвести это видео. Есть ли способ достичь этого? Может быть, с помощью Алхимии?Воспроизвести FLV от ByteArray в Flash Player
Спасибо!
У меня есть Flash-видеофайл (FLV), хранящийся в объекте ByteArray, и хотел бы воспроизвести это видео. Есть ли способ достичь этого? Может быть, с помощью Алхимии?Воспроизвести FLV от ByteArray в Flash Player
Спасибо!
Я думаю, «почему ByteArray» на самом деле вопрос ... как он туда попал? :)
существует множество подходов ... один был задан konrad ... но, как он сказал, он будет медленным ... на самом деле, я думаю, это будет намного медленнее, чем вы даже можете себе представить .. . так вот еще один:
передать ByteArray на сервер и загрузить FLV оттуда ... есть несколько вариантов:
в обоих сценариях, вы можете столкнуться с проблемами политики crossdomain (возможно, только при отправке, так как я думаю, что вам разрешено загружать видео по доменам), где вам нужно правильно ответить на запросы файла политики FlashPlayer (вы можете найти множество вещей на этом) ... вы могли обойти ограничение отправки, сделав LocalConnection мост, а this one для C# ...
удачи затем ...;)
редактировать: ах хорошо, теперь я понимаю ... на самом деле, уже было very similar question ... я помню короткое интервью с каким-то мужиком, только вскоре после того, как функция p2p была объявлено ... adobe очень застенчиво об этом ... на самом деле мне потребовались недели, чтобы найти p2p после того, как флеш-плеер 10 был официально выпущен (на самом деле не было времени беспокоиться раньше) ...
Фактически, i думаю, что это сделано специально ... в интервью было ясно, что Adobe не пытается оттолкнуть видеопотоки сайтов ... двумя наиболее важными, вероятно, являются youtube и google видео ... youtube является одним из основные причины, почему флеш-плеер стал настолько популярным в первую очередь ... и он принадлежит google, как видео google ...позволяя легко создавать медиа-платформу p2p, сильно расстраивает google ... вам не нужно много серверов для этого ... «просто« хорошее программное обеспечение, но это доступно ... и я думаю, что Adobe не делает хотите разозлить Google ... некоторые причины:
, так что я думаю, что у adobe нет такой большой заинтересованности, чтобы это сделать ... это довольно много, например, когда Google объявила о своей платежной системе (была ли она GPay или так?), Которая была прямой параллельной PayPal ... eBay является одним из самых важных источников дохода Google ... и на самом деле я никогда ничего не слышал об этом ...
Многие решения являются политическими, когда дело доходит до крупных компаний ... и я думаю , то один не делать p2p Flash Player слишком сильна одна из них ...
Спасибо за ответы. Я боялся, что это мои единственные варианты, и вы только что подтвердили это (я надеялся, что я упустил какой-то другой метод).Чтобы ответить на вопрос WHY :) - Я работаю над потоковой репликацией p2p с использованием новых функций, доступных в Flash Player 10, и дошел до того, что у меня есть видео в ByteArray на клиентах, но не могу его отобразить :) Cheers и еще раз спасибо за ваши ответы. – bartekb
Я не буду спрашивать, почему ByteArray? Ответ на ваш вопрос - ДА, но конечный результат будет работать медленнее - медленнее, когда видео больше и сложнее кодека. Вы должны прочитать фреймы и поместить их как BitmapData в Bitmap и написать собственный плеер. Лучший способ - использовать Alchemy - тогда он работает быстрее, но также медленнее :) Вы также можете использовать haXe. Звук очень похож. Лучший момент для начала - это adobe labs. В конце - помните, что flv декодируется с помощью аппаратного обеспечения - ваш код будет использовать только процессор. Теперь спросите себя, действительно ли вам нужна эта функция?
Я не уверен, что это вообще возможно, так как у меня нет я dea, как Flash кодирует SWF-встроенные видео, но, возможно, вы можете преобразовать этот FLV bytearray в swf с помощью flv, встроенного в временную шкалу, и использовать это bytearray для отображения его с Loader.loadBytes ...
+1 ... хорошая идея ... но я не мог узнать, как встраиваются видео в SWF ... у меня всегда было впечатление, они каким-то образом преобразуются, что потребует декодирования ... – back2dos
Это хорошая идея. Это сделано для аудио (mp3), так что возможно для видео ... http://www.flexiblefactory.co.uk/flexible/?p=46 – bartekb
трюк 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 /'
Теперь есть лучший способ воспроизведения видео, которое вы сохранили в ByteArray
, используя NetStream.appendBytes()
.
Вот пример его использования в: http://www.bytearray.org/?p=1689
Это ответ сейчас. –
Есть ли способ appendBytes()? для вспышки <10 – Lego
пост обновляется ... Greetz – back2dos