首页 文章

暂停Flash摄像头录制的问题

提问于
浏览
0

我正在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

    我相信这与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本身如何初始化和呈现实时视频对象 .

相关问题