4

Итак, я работаю с источником видео, который я загружаю в свое приложение Adobe AIR через некоторую собственную работу с расширением, с целью, в конечном счете, получить его на Flash Media Server. Видео кодируется H.264 и мультиплексируется в контейнер FLV, который выравнивает меня с поддерживаемыми кодеками Flash Media Server и требованиями NetStream (appendBytes). Я могу получить данные в AIR просто отлично.Возможно ли транслировать видео в реальном времени на Flash Media Server через доступ к байтам NetStream?

Шахта я ступил на сегодня, однако, заключается в том, что документация для NetStream.appendBytes состояний я должен позвонить NetStream.play(null):

Вызов этого метода на NetStream в «режиме создания данных». Чтобы поместить NetStream в режим генерации данных, вызовите NetStream.play (null) в NetStream, созданном в NetConnection, связанном с null. Вызов appendBytes() в NetStream, который не находится в режиме генерации данных, является ошибкой и вызывает исключение.

NetStream.play(), вызываемый нулевым параметром, дает локальное воспроизведение FLV. Я не могу опубликовать поток в FMS в этом режиме. Но мои исследования в Flash, похоже, указывают на то, что доступ к байтам NetStream является моей единственной реальной надеждой здесь, когда речь идет о видеофайлах, не относящихся к камере или не веб-видео.

Вопрос: Могу ли я защелкнуться в буфер воспроизведения видео для публикации в FMS? Могу ли я создать своего рода конвейер NetStreams или NetConnections для достижения этого? Или есть альтернативный подход для передачи данных H.264/FLV в FMS? (Источник моего видео не может напрямую связываться с FMS.)

+0

В свете ответа я решил попробовать свои силы в убедительном управлении, чтобы сбросить Flash Media Server и пойти Wowza с RTP в качестве нашего транспорта. (Нет необходимости в обертке AIR.) –

ответ

2

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

Я попытался изучить это для вас, чтобы узнать, есть ли какой-то грязный хак, где вы могли бы прикрепить камеру или что-то подобное, и переопределить двоичные данные, отправляемые в поток, как вы можете с помощью аудио, но, к сожалению, насколько мне известно, нет такой взлом возможен. Более NFO здесь: NetStream.appendBytes

Update

Вы могли бы быть в состоянии сделать что-то хак с помощью ManyCam, который является драйвером виртуального веба-камеры (от того, что я понимаю). Это обеспечит действительную камеру, которую вы можете выбрать со вспышки, и вы также можете выбрать видеофайл в качестве исходного файла для ManyCam. См http://manycam.com/user_guide/#HowtoSelectaVideofileasthePictureSourceforManyCam

Update # 2

Если вы ищете что-то с открытым исходным кодом, который будет делать то же самое, как ManyCam, проверьте следующее:

http://code.google.com/p/webcamstudio/wiki/VideoSourceMovie (GPL) Лицензия

+0

Похоже, мне, возможно, придется исследовать реализацию поддельного устройства камеры в Windows. Или, возможно, полностью отказаться от AIR и использовать стороннюю клиентскую библиотеку FMS. Yikes в любом случае. Есть ли продукт Adobe, который/делает/делает это, чтобы я мог «взглянуть на»? –

+0

Не уверен, но ...ваша идея о виртуальном устройстве в окнах может быть не такой большой задачей, о которой я не думал. Это похоже на то, что заставило меня просто выйти из игры и изучить C++. Мне нравится флеш-платформа, я думаю, что у нее есть тонна потенциала, но спустя почти 6 лет, как разработчик флеш-памяти, я не мог справиться с моими ожиданиями с прекрасными идеями только для того, чтобы найти тупое дерьмо, как это здесь, удерживая меня. –

+0

Что касается опции виртуального устройства, см. Http://stackoverflow.com/questions/1627448/virtual-webcam-driver и http://stackoverflow.com/questions/1137540/connecting-windows-driver-to-userland-service –

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