다음은 as3 플래시의 기본 코드 비트입니다. rtmp red5를 사용한 간단한 비디오 스트리밍 예제입니다. 하지만 스트림에 연결하는 데 문제가있는 것 같습니다. red5 서버 데모 설치와 함께 제공된 것과 동일한 비디오 파일을 사용하고 있습니다. (올바르게 실행하여 설치된 ofla의 데모를 확인했습니다) 내 출력 추적을 연결 성공 및 비디오 파일의 재생 시작. 하지만 메타 데이터를 얻지 못하거나 실제로 재생할 수 없습니다.as3 rtmp localhost의 비디오 스트림 red5 경로 문제
netStatusHandler가 NetConnection.Connect.Success
netStatusHandler NetStream.Play.Reset
netStatusHandler NetStream.Play.Start
난 길을 포기에 관해서는 여기를 놓친 거지 무슨 비디오 파일에? 그들은 기본 빨간색 5 설치와 함께 제공되는 동일한 데모 예제 폴더에 있습니다.
package
{
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*
public class NetConnectionExample extends MovieClip
{
private var videoURL:String = "rtmp://localhost/oflaDemo/streams";
private var connection:NetConnection;
private var stream:NetStream;
public function NetConnectionExample()
{
// constructor code
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect(videoURL, true);
}
private function netStatusHandler(event:NetStatusEvent):void
{
trace("netStatusHandler",event.info.code);
switch (event.info.code)
{
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
trace("Stream not found: " + videoURL);
break;
case "NetStream.Play.Start":
break;
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
trace("securityErrorHandler: " + event);
}
private function connectStream():void
{
stream = new NetStream(this.connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler)
stream.client = new CustomClient();
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoURL+"avatar.flv");
addChild(video);
}
function asyncErrorHandler(event:AsyncErrorEvent):void {
// ignore AsyncErrorEvent events.
}
}
}
class CustomClient {
public function onMetaData(info:Object):void
{
trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
}
public function onCuePoint(info:Object):void
{
trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}
편집 : 그것은 경로 문제였다 Where do I place a FLV file to stream on a local Red5 server?
는 메타 데이터 헤더 –
동영상의 메타가 제대로 추가 가지고에 있는지 확인 가난하게 인코딩 된 FLV처럼 나에게 소리 작동합니다. 나는 이것이 경로 문제라는 것을 알아 냈다. –