Возможно ли передавать потоковое видео на Flash Media Server через доступ к байту NetStream?

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

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

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

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

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

1 ответ

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

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

Обновление

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

Обновление # 2

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

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

licensed under cc by-sa 3.0 with attribution.