Video streaming

Hello i have some problem with a streaming with Flash Media Service
I have an hosting with influxis with 512 kbps.

this is my code:



package demo.videostream {
	import flash.events.MouseEvent;
	import flash.events.Event;

	import com.services.position.utils.UtilsPosition;
	import com.services.graphics.shape.KRectangle;

	import flash.net.NetStream;
	import flash.media.Video;
	import flash.events.AsyncErrorEvent;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextField;
	import flash.events.NetStatusEvent;
	import flash.net.NetConnection;
	import flash.display.Sprite;

	/**
	 * 
	 */
	[SWF (width="1024",height="700",frameRate="31",backgroundColor="0xffffff")]

	public class VideoApplication extends Sprite {
		private var nc : NetConnection;
		private var debug : TextField;
		private var video : Video;
		private var ns : NetStream;
		private var background_video : KRectangle;
		private var timer_txt : TextField;
		private var original_video_width : int;
		private var original_video_height : int;
		private var original_txt : TextField;
		private var bartime : KRectangle;
		private var bartotal : KRectangle;
		private var total_time : Number;
		private var meta : Object;
		private var customClient : Object;
		private var _duration : Number;
		private var _time : Number;
		private var _percentage : Number;

		public function VideoApplication() {
			createApplication();
		}

		private function createApplication() : void {
			//creo un debug
			debug = new TextField();
			debug.width = 400;
			debug.autoSize = TextFieldAutoSize.LEFT;
			debug.multiline = debug.wordWrap = true;
			debug.text = "";			
			addChild(debug);			
			nc = new NetConnection();
			nc.client = this;
			nc.connect("********************");			
			nc.addEventListener(NetStatusEvent.NET_STATUS, onStatusConnect);
			nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onErrorConnect);		
		}

	
		private function onErrorConnect(event : AsyncErrorEvent) : void {
			debug.text = event.error.errorID + " message: " + event.error.message;
		}

		private function onStatusConnect(event : NetStatusEvent) : void {
			dbg("onStatusConnect: " + event.info.code);
			switch(event.info.code) {
				case "NetConnection.Connect.Success":
					ns = new NetStream(nc);
					ns.bufferTime= 4;
					ns.addEventListener(NetStatusEvent.NET_STATUS, onStreamStatus);
					ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onErrorStream);			
					ns.client = {};
					ns.client.onMetaData = onMetaData;
					createVideo();
					ns.play("myvideo");
					break;
			}
		}

		private function onMetaData(meta : Object) : void {
			duration= meta.duration;
		}

		private function dbg(str : *) : void {
			debug.appendText("DBG: " + String(str) + "
");
			debug.scrollV= debug.maxScrollV;
		}

		private function onErrorStream(event : AsyncErrorEvent) : void {
			dbg("onErrorStream: " + event.error.message);
		}

		private function onStreamStatus(event : NetStatusEvent) : void {
			dbg("onStreamStatus: " + event.info.code);
			switch(event.info.code) {
				case "NetStream.Play.Start":
					
					break;
				case "NetStream.Buffer.Full":
									
					break;
			}
		}
		
		private function createVideo() : void {
			background_video = new KRectangle(0, 0, 700, 400, 0x999999);
			addChild(background_video);
			background_video.x = stage.stageWidth - background_video.width - 20;
			background_video.y = 20;
			video = new Video(400, 400);
			video.x = 300;
			video.deblocking= 3;
			video.y = 20;
			addChild(video);			
			video.attachNetStream(ns);			
			UtilsPosition.centerInterObject(video, background_video, true, true);
		}

		
		public function onBWDone() : void {
		}
		
		public function get duration() : Number {
			return _duration;
		}
		
		public function set duration(duration : Number) : void {
			_duration = duration;
		}
		
		public function get time() : Number {
			return _time;
		}
		
		public function set time(time : Number) : void {
			_time = time;
		}
		
		public function get percentage() : Number {
			return _percentage;
		}
		
		public function set percentage(percentage : Number) : void {
			_percentage = percentage;
		}

The video start after buffering but every 10 second is stopped for other buffering…

I can’t publish this video player…

the video is about 27 mb