Я создаю очень простой издатель для веб-камеры во Flash. Я хочу выбрать камеру и отправить поток на URL RTMP, в основном:
Camera camera = Camera.getCamera();
NetStream ns = new NetStream(connection);
ns.attachCamera(camera);
ns.publish("stream name");
Теперь я знаю, что могу установить режим на камеру, например:
camera.setMode(320, 240, 25);
Но то, что я действительно хотел бы сделать, это установить такой режим, как 360 x 480 (не такое же соотношение сторон, как у камеры при записи), и заставить Flash обрезать изображение для меня. Есть ли способ сделать это?
Редактировать: Я знаю Flash Media Live Encoder может сделать это, но я хотел бы сделать это в браузере.
В соответствии с документами ActionScript для Camera.setMode существует необязательный четвертый параметр, который звучит интересно, favorArea
. Из документов:
favourArea : Boolean
(по умолчанию = true
) - указывает, следует ли манипулировать шириной, высотой и частотой кадров, если у камеры нет собственного режима, соответствующего указанным требованиям. Значение по умолчанию true
, что означает, что поддержание размера захвата является предпочтительным; При использовании этого параметра выбирается режим, который наиболее точно соответствует значениям width
и height
, даже если это отрицательно влияет на производительность за счет снижения частоты кадров. Чтобы увеличить частоту кадров за счет высоты и ширины камеры, передайте false
для параметра favorArea
.
Но по умолчанию он имеет значение true и, похоже, он не дает того, что я хочу (я хочу обрезать изображение каждого кадра, выбросить некоторые данные и передать остальные).