繁体   English   中英

如何在NetStream中打开和关闭H264?

[英]How can you toggle H264 on and off in a NetStream?

请使用以下代码:

m_h264Settings = new H264VideoStreamSettings();
<some configuration in between>
m_ns.videoStreamSettings = m_h264Settings;

什么是切换m_ns的videoStreamSettings是否仍在使用H264的好方法?

我尝试在NetStreams的主要文档中查找属性videoStreamSettings( http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html ),Adobe显然跳过了那个小细节。 我知道如何在应用程序的整个执行过程中有效控制NetStream是否使用H264或“默认”,但我希望能够不断点击按钮使其来回切换,而无需更换NetStream或执行任何操作别的疯了。

这怎么做得好? 谢谢!

阅读你的问题似乎有一些问题你的问题加上一点澄清会有所帮助所以我会做一些假设来尝试回答:

问题1:

什么是切换m_ns的videoStreamSettings是否仍在使用H264的好方法?

默认情况下 ,您是指使用On2 VP6视频编解码器,因此发布为FLV格式而不是F4V?

我假设您的查询与正在播放已发布流的连接应用程序有关? 显然,您可以使用变量来跟踪您在录制应用程序本身中应用于流的设置。

我将假设您有一个单独的应用程序正在摄取已发布的流,并且您只是尝试确定是使用H264而不是On2 VP6来发布流。 首先文件类型不同,一个是FLV,一个是F4V。 其次,您可以在发布时利用为流分配元数据:

protected function sendMetadata():void {
    var metaData:Object = new Object();
    metaData.codec = stream.videoStreamSettings.codec;
    metaData.profile = m_h264Settings.profile;
    metaData.level = m_h264Settings.level;
    metaData.hasMetadata = true;
    stream.send("@setDataFrame", "onMetaData", metaData);
}  

在回放应用程序中,您可以使用onMetaData()回调来获取所需的信息:

public function onMetaData(infoObject:Object):void {}

问题2:

我希望能够不断点击按钮使其来回切换,而无需更换NetStream或做任何其他疯狂的事情。

我建议重新连接例程切换您的设置以取消发布现有流并重新连接相机并发布具有不同视频设置的新流。 这将保持流的完整性,说实话,不发布和重新发布流并不像你说的那么疯狂

如果您必须沿着切换设置的路线走下去,那么我上面假设您声明为默认设置将阻止更改已发布流的文件格式。

我个人不会使用相同的编解码器,并在流中间发布不同的H264VideoStreamSettings H264VideoStreamSettings仅在将摄像机添加到流中时进行验证,并在压缩开始后应用。 我的理解是压缩开始于流的发布,以便切换,因为你建议你将在已经发布的流上搞乱压缩。 由此产生的流将导致我认为太多的波动,我很难理解为什么这是必要的。 但是,我可能会被纠正,或者可能是出于测试目的。

这是完全未经测试的,但您可以创建相机实例,应用您的videoStreamSettings,将相机附加到您的流实例,然后发布。 虽然它是发布以切换设置,但您可以从网络流中分离您的相机实例:

stream.attachCamera(null);

然后只需创建一个新的摄像头实例,应用新的videoStreamSettings,最后将其附加到已发布的流。

我通常在收到状态事件“NetStream.Publish.Start”时发送元数据。 只要流正在发布,您就必须对此进行修改并在每次将摄像机重新连接到流时重新发送。 我不知道这会带来什么影响,但是你的连接播放器应该有希望收到有关元数据更改的回调。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM