захват камеры в actioncrip3 - PullRequest
       5

захват камеры в actioncrip3

0 голосов
/ 04 марта 2012

Я хочу реализовать видеочат с flash на стороне клиента и мой собственный сервер (python) на стороне сервера. Я новичок во флэш-памяти и ActionScript 3. Я хочу просто собрать фреймы и отправить их на сервер. Я прочитал документацию по ActionScript и хочу реализовать это следующим образом:

Я хочу управлять структурой данных, собирать кадры по таймеру и сохранять их в ByteArray, затем отправлять их на сервер и повторно отправлять в чат-партнер.

затем по таймеру я могу снимать изображения и собирать их:

    var cam:Camera = Camera.getCamera(); 
    var vid:Video = new Video();
    vid.attachCamera(cam);
    private var fpsFrame:ByteArray = new ByteArray();

    //on timer event
    ...
    imgBD = new BitmapData(vid.width,vid.height); 
    imgBD.draw(vid);
    imgBitmap=new Bitmap(imgBD);

    imgBA = imgBitmap.bitmapData.getPixels(rect1)        

    //fpsFrame.writeObject(imgBD);
    //append frame
    fpsFrame.writeBytes(imgBA)
    imgBA.clear();

    //than i can add sound here and send to server
    ...

Это хороший подход, чтобы сделать это? какие структуры лучше использовать для реализации?

1 Ответ

0 голосов
/ 04 марта 2012

Зачем вам это делать, если на рынке доступно много вариантов?FMS, Wowza, Red5 - эти медиасерверы способны настроить ваш видеочат за считанные минуты.Вся медиа-инфраструктура Flash работает вокруг медиа-сервера: Camera, Video, NetStream.Данные кодируются, отправляются, сохраняются, загружаются и декодируются для вас автоматически.

И вы хотите вручную рисовать скриншоты в растровые изображения, сжимать их (в AS3 есть png, jpeg и даже flv-кодировщики), захватывать фрагменты звука,Сжать их тоже, отправить данные другой стороне, вручную декодировать все вещи и соединить все вместе?Бьюсь об заклад, вы столкнетесь с проблемами производительности, сетевого трафика и синхронизации.

Если вам нужно рабочее решение, используйте медиасервер.Если вы хакер и должны знать, возможно ли это или нет, попробуйте это сделать (8 Создайте библиотеку, которая делает это без медиасервера, и опубликуйте ее на GitHub. Это было бы круто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...