FMS/AMS服务本地录制在线视频碰到的问题解决方案

最近在使用AMS服务器录制本机的摄像头视频的时候总是不成功,由于只有一台机器,服务器和客户端都在一台机器上,所以发现问题多多。

先把代码贴出来:

package  
{
	import flash.display.*;
	import flash.media.*;
	import flash.events.*;
	import flash.net.*;
	import fl.motion.MotionEvent;
	
	public class recordVideo extends MovieClip
	{
		var nc:NetConnection;
		var ns:NetStream;
		var video:Video;
		var cam:Camera;
		var mic:Microphone;

		public function recordVideo() 
		{
			//videoName.text = "";
			beginRecordBtn.label = "开始录制";
			beginRecordBtn.addEventListener(MouseEvent.CLICK, onBeginRecord);
			stopRecordBtn.label = "停止录制";
			stopRecordBtn.addEventListener(MouseEvent.CLICK, onStopRecord);
			
			video = new Video(400, 300);
			cam = Camera.getCamera();
			mic = Microphone.getMicrophone();
			video.attachCamera(cam);
			
			addChild(video);			
		}
		
		private function onBeginRecord(evt:MouseEvent):void
		{
			nc = new NetConnection();
			nc.client = this;
			nc.addEventListener(NetStatusEvent.NET_STATUS, onBeginRecordStatusHandler);
			nc.connect("rtmp://localhost/live");
		}
		
		public function onBWDone(){}
		
		private function onBeginRecordStatusHandler(evt:NetStatusEvent):void
		{
			if(evt.info.code == "NetConnection.Connect.Success")
			{
				ns = new NetStream(nc);
				ns.addEventListener(NetStatusEvent.NET_STATUS, onBeginRecordStatusHandler);
				
				var obj = new Object();
				obj.onMetaData = function(){};				
				ns.client = obj;
				
				ns.attachCamera(cam);
				ns.attachAudio(mic);
				
				ns.publish(videoName.text, "record");
			}
		}
		
		private function onStopRecord(evt:MouseEvent):void
		{
			nc.close();
		}
	}
	
}

如果想把视频录到.../applications/live文件夹下,则出现 如下日志:

FMS/AMS服务本地录制在线视频碰到的问题解决方案_第1张图片

 Application doesn't have permissions for server-side record/append of streams; access denied to stream 123. 

就是说应该没有权限向服务器端录制流,对123流的录制被拒绝。(123为我要录制的视频名称)

如果录到.../applications/vod下,则出现下面的日志显示:

FMS/AMS服务本地录制在线视频碰到的问题解决方案_第2张图片

Write access denied for stream ww.

即写流ww的通道被拒绝。(ww是我录制的视频名称)

如果是录制到你自己创建的应用下面,则根据你是从哪个默认应用下拷贝的main.far文件有关。具体这里就不说了。

这里就说说录制到live文件夹下的解决方案.

1.首先解压live文件夹下的main.far(可以用常用解压工具),会出现如下几个文件:

FMS/AMS服务本地录制在线视频碰到的问题解决方案_第3张图片

2.用编辑工具打开Application.xml,显示如下:



false


            false
   


这里的信息大致意思是禁止共享对象的客户端访问和流录制,只要将其访问和流录制都改为允许,则能解决问题。

即改为:



true


            true
   



3.改好后,将其所在文件夹重新压缩一下,如果后缀是rar或者zip什么,不要紧,直接改后缀为.far就行了。

4.重启服务,再次运行程序,服务器端的摄像头录制没问题,问题解决,哈哈。



你可能感兴趣的:(ams,fms,rmtp,RTMP学习,flash,cs)