首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VideoDisplay :使用Flex组件在直播流之间进行多码率切换

VideoDisplay :使用Flex组件在直播流之间进行多码率切换
EN

Stack Overflow用户
提问于 2010-07-21 01:11:44
回答 3查看 792关注 0票数 0

我正在向VideoDisplay组件的源属性传递一个DynamicStreamingVideoSource对象,该对象具有3个不同的动态实时流项目,由这个XML描述,供您考虑:

src="rtmp://88.87.56.214:1935/live/fashiontv_tmo_h.stream" bitrate="19200" src="rtmp://88.87.56.214:1935/live/fashiontv_tmo_m.stream" bitrate="9000" src="rtmp://88.87.56.214:1935/live/fashiontv_tmo_l.stream" bitrate="3600"

但是播放器会运行码率最低的流,不是应该选择最终用户可以看到的码率最高的流吗?所有3个流都经过单独测试,它们都是可查看的。

谢谢,利维

EN

回答 3

Stack Overflow用户

发布于 2016-02-05 07:11:23

我修好了!

我知道这是5.5年后的回复,但这仍然可以帮助一些人。我也遇到了同样的问题,经过几个小时的寻找,我终于解决了这个问题。您所需要做的就是在媒体播放器中为缓冲区设置一个非零值。

示例:

使用Spark VideoDisplay:

代码语言:javascript
复制
<s:VideoDisplay id="rtmpABRVideo" width="320" height="240" initialize="rtmpABRVideo.mx_internal::videoPlayer.bufferTime=2">
  <s:DynamicStreamingVideoSource host="rtmp://localhost:1935/live" streamType="live">
    <s:DynamicStreamingVideoItem streamName="webcam_1000" bitrate="1000" />
    <s:DynamicStreamingVideoItem streamName="webcam_500" bitrate="500" />
    <s:DynamicStreamingVideoItem streamName="webcam_150" bitrate="150" />
  </s:DynamicStreamingVideoSource> 
</s:VideoDisplay>

使用OSMF组件:

代码语言:javascript
复制
var dynResource:DynamicStreamingResource = new DynamicStreamingResource('rtmp://localhost/live');
dynResource.urlIncludesFMSApplicationInstance = false;
dynResource.streamItems = Vector.<DynamicStreamingItem>([
                                new DynamicStreamingItem("mp4:webcam_150", 150, 320, 240),
                                new DynamicStreamingItem("mp4:webcam_500", 500, 320, 240),
                                new DynamicStreamingItem("mp4:webcam_1000", 1000, 320, 240)
                          ]);

var videoElement:VideoElement = new VideoElement();
videoElement.resource = dynResource;

var mediaPlayerSprite:MediaPlayerSprite = new MediaPlayerSprite();
mediaPlayerSprite.width = 320;
mediaPlayerSprite.height = 240;
mediaPlayerSprite.media = videoElement;
mediaPlayerSprite.mediaPlayer.bufferTime = 2;

addChild(mediaPlayerSprite);

希望这对外面的人有帮助!

票数 1
EN

Stack Overflow用户

发布于 2010-07-21 02:49:08

我非常确定VideoDisplay组件将显示您发送给它的任何源地址。如果不看代码,我不知道发生了什么。

如果您想要显示不同的比特率流,您必须告诉VideoDisplay组件切换URL。

票数 0
EN

Stack Overflow用户

发布于 2010-07-21 03:59:45

我在我的博客上发表了一篇文章,里面有一些很容易理解的源代码。

请查看here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3292504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档