使用 Red5 媒体服务器和 oflaDemo 应用程序提高录制视频的质量
Posted
技术标签:
【中文标题】使用 Red5 媒体服务器和 oflaDemo 应用程序提高录制视频的质量【英文标题】:improve quality of recorded video using Red5 media server and oflaDemo app 【发布时间】:2012-01-21 07:13:50 【问题描述】:我现在要做的是:
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");`
提前致谢!
【问题讨论】:
【参考方案1】: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 以获得最佳质量,但这是您的选择。希望通过这些更改,您的质量将大大提高。此外,质量也取决于您的网络摄像头。
【讨论】:
好的,当我在录制时看到它时视频是完美的,但是当它被存储并且我尝试播放它时,它很糟糕!我不知道我做错了什么......起初它不播放我录制的所有视频,但其中的一小部分,并且像机器人一样移动而不是物理上录制...请参阅上面的编辑以查看我如何播放视频... 我正在使用具有上述设置的两个不同的网络摄像头。结果取决于网络摄像头。 只需将 setQuality 增加到 (65536,100) 并购买一个好的网络摄像头。更多我不知道 也在 camera.setMode(640,480,30) .. 这里 640 x 480 是像素定义增加它们以获得更好的像素分辨率,30 是每秒帧速率.. 15 是实时流媒体的默认值.但主要取决于您的网络摄像头和像素分辨率。 感谢您的回答,但问题是,尽管我在通过 red5 录制时看到一个非常好的视频,但录制的视频与我在显示时看到的不同,这是怎么回事? 【参考方案2】:问题可能出在带宽上。尝试安装带宽限制器,然后尝试录制。你会有一个非常糟糕的回报。 如果您有高速连接,那么一切都会好起来的。 如果您使用的是 RTMP 协议,那么这意味着一切都应该是实时的。因此,如果带宽低,帧将被丢弃。
【讨论】:
以上是关于使用 Red5 媒体服务器和 oflaDemo 应用程序提高录制视频的质量的主要内容,如果未能解决你的问题,请参考以下文章