Apache flex 使用Red5媒体服务器和oflaDemo应用程序提高录制视频的质量

Apache flex 使用Red5媒体服务器和oflaDemo应用程序提高录制视频的质量,apache-flex,video,actionscript,record,red5,Apache Flex,Video,Actionscript,Record,Red5,我现在做的是: cam = Camera.getCamera(); // Get default camera. mic = Microphone.getMicrophone(); // Get the microphone cam.setMode(800, 600, 25); cam.setQuality(0,90); videoDisplay.attachCamera(cam); 当用户单击按钮录制时,我会执行以下操作: private function netStatusHan

我现在做的是:

cam = Camera.getCamera();   // Get default camera. 
mic = Microphone.getMicrophone();   // Get the microphone
cam.setMode(800, 600, 25);
cam.setQuality(0,90);
videoDisplay.attachCamera(cam);
当用户单击按钮录制时,我会执行以下操作:

private function netStatusHandler(e:NetStatusEvent):void  {    
            var code:String = e.info.code;              

            Alert.show("code = " + code);   
            if(code == "NetConnection.Connect.Success"){  //in case of recording...

                ns = new NetStream(nc); 
                ns.attachCamera(cam);
                ns.attachAudio(mic);

                ns.publish( "file1", "record" );

            }    
            else{    
                trace(code);   
            }  
        }

        private function start_rec():void{
            nc = new NetConnection();
            nc.connect("rtmp://localhost/oflaDemo");
            nc.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
        }
但是录音的质量太差了。。。我按照与上面相同的代码来播放视频,而不是ns.publish我不播放ns.play(),并且显示的视频不是预期的,尽管当我播放ns.play()时,在red5中用作示例的现成flv视频播放得非常完美..我的录制方式有问题吗?用相机?出什么事了?有什么想法吗

播放视频的代码是:

                     var nsClient:Object = {};
            nsClient.onMetaData = ns_onMetaData;

            nc = new NetConnection();
            nc.connect(null);
            ns = new NetStream(nc);
            ns.client = nsClient;

            video = new Video(myVid.width,myVid.height);
            video.attachNetStream(ns);
            video.smoothing=true;
            myVid.addChild(video);

            ns.play("http://localhost:5080/oflaDemo/recordings/file1.flv");`
提前谢谢

camera = Camera.getCamera();
mic = Microphone.getMicrophone();
mic.setLoopBack(false); 
mic.setUseEchoSuppression(true);
camera.setMode(640,480,30);
camera.setQuality(65536,90);

camera.setQuality中(65536,90)你可以做100个最好的质量,但这是你的选择。希望有了这些改变,我们的质量会大大提高。质量也取决于网络摄像头。

问题可能是带宽。尝试安装带宽限制器,然后尝试录制。你会有一个非常糟糕的背。 如果你有一个高速连接,那么一切都会很好。
如果您使用的是RTMP协议,那么这意味着一切都应该是实时的。因此,如果带宽较低,帧将被删除。

好的,当我在录制时看到视频时,它是完美的,但当它被存储并尝试播放时,它就糟糕了!我不知道我做错了什么…一开始它并没有播放我录制的所有视频,但播放了一小部分视频,而且东西像机器人一样移动,而不是像录制的那样移动。。。查看上面的编辑以查看我如何播放视频…我使用两个具有上述设置的不同网络摄像头。结果取决于网络摄像头。只需将setQuality提高到(65536100)并购买一个好的网络摄像头。更多我不知道也在相机。设置模式(640480,30)。。这里,640 x 480是像素定义,增加它们以获得更好的像素分辨率,30是每秒帧速率。。15是实时流媒体的默认设置。但这主要取决于你的网络摄像头和像素分辨率。谢谢你的回答,但问题是,尽管我在通过red5录制时看到了一个非常好的视频,但录制的视频与我在显示器上看到的视频不同。发生了什么事?