暂停Flash摄像头录制的问题

时间:2011-06-29 23:07:52

标签: actionscript-3 webcam flash-cs5 wowza video-recording

我正在CS5中构建一个网络摄像头录制应用程序,我对录制的flv有一些看似随机的问题。目前,我正在使用标准的_netstream.publish(“movieName”,“record”)命令向Wowza Media Server发布流。关于此的一切工作正常,我可以播放文件,但有时在视频的开头或结尾有3到4秒的暂停。将有一个静止的帧,时间将设置为0,然后捕捉到4.我已经探索了带宽选项,我已经大大降低了分辨率和质量,它似乎没有任何影响,其余的视频将顺利播放。这是我目前的相机和麦克风设置。

    _cam.setMode(160, 120, 30, false);
    _cam.setQuality(0, 88);
    _cam.setKeyFrameInterval(30);
    _mic.rate = 11;

我也在关闭发布流

之前刷新缓冲区
    _netstream.publish('null');

相机初始化/停用会导致滞后吗?

非常感谢任何帮助。如果您需要更多详细信息,请与我们联系

1 个答案:

答案 0 :(得分:0)

相信这与Flash插件本身初始化和显示相机的方式有关。

如果您设置了一个简单的测试来尝试设置和取消设置视频流:

var cam:Camera = Camera.getCamera();
var webcam:Video = new Video(500, 375);
addChild(webcam);

var isPaused:Boolean = false;

function showWebcam():void {
    if (!isPaused) {
        cam = null;
    } else {
        cam = Camera.getCamera();
    }

    webcam.attachCamera(cam);
    isPaused = !isPaused;
}

pausingButton.addEventListener(MouseEvent.CLICK, showWebcam);

当它在两种状态之间切换时,你会注意到一个明确的停顿。

从我所看到的情况来看,每当我用视频对象调用attachCamera()时,调用该方法时Flash Player本身(包括所有补间,交互,所有内容)都会有明显的暂停,甚至如果我附加的对象是null

四秒似乎是一个过度延迟,但我注意到输入/视频渲染越大,并且在视频对象上设置smoothing = true会影响延迟的长度。

至于解决方案;我不确定是否有一个可以通过纯ActionScript实现,因为延迟似乎取决于Flash Player本身如何初始化和呈现实时视频对象。