我正在使用 FMLE 3.1 流式传输以 H.264 格式编码的实时视频,使用 FMS 3 和 Flash 播放器 10 + AS 3 连接到流。
当我连接到流时,只播放音频。我什至可以获取有关视频的元数据信息,但我只收到音频。
我已经尝试过一些东西,比如
“安装 iTunes 后,Flash 10 将无法播放 H.264 直播” http://forums.adobe.com/thread/505620。我在与我的完全不同的环境中对其进行了测试,但结果相同。
我尝试了一些格式播放方法,但这只是播放文件
ns.play("mp4:saple.f4v"); ns.play("mp4:sample");
另请阅读“ http://www.flashcomguru.co.uk/forum/forum_posts.asp?TID=4649 ”上的“你如何观看和录制现场 h.264”,但我什至没有玩流在第一位。
这是我正在使用的代码
import flash.media.Video;
var video:Video = new Video(720, 480);
var ncVideo = new NetConnection();
this.ncVideo.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
this.ncVideo.connect("rtmp://localhost/livecast", "user");
var customClient:Object = new Object();
customClient.onMetaData = metaDataHandler;
function onNetStatus(e:NetStatusEvent) {
if (e.info.code == "NetConnection.Connect.Success")
createNetStream();
}
function createNetStream(){
var ns = new NetStream(this.ncVideo);
ns.client = customClient;
ns.addEventListener(NetStatusE vent.NET_STATUS, onNsStatus);
ns.play("livestream", -1);
this.video.attachNetStream(ns) ;
this.addChild(video);
}
function onNsStatus(e) {
trace("onNsStatus " + e.info.code);
}
function metaDataHandler(infoObject:Object):void {
trace(infoObject.width + " - " + infoObject.height);
}
另一个细节是,当我将视频录制到文件(例如“sample.f4v”)时,我将此视频放入 FMS,但当我连接到此流时,我收到“FileStructureInvalid”错误消息。
我从将扩展名更改为 .flv “ http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player_04.html ”到解决方案以展平文件“ http://www.flashcomguru.com/forum/ forum_posts.asp?TID=4006 " 但事实并非如此,因为我使用 FMS 流式传输录制的视频。