0

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

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

我还在关闭发布流之前刷新缓冲区

    _netstream.publish('null');

相机初始化/停用是否会导致延迟?

任何帮助将不胜感激。如果您需要更多详细信息,请告诉我

4

1 回答 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 本身如何初始化和呈现实时视频对象。

于 2011-12-02T18:40:47.103 回答