问题标签 [netstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flash - AS3、NetConnection/NetStream:有没有聪明的方法来拆分源 URL?
问题
我必须用定制组件替换现有 Flex 项目中的mx:VideoDisplay组件。
为了实现这一点,我必须符合其当前接口,因此我的组件接收视频网址(通过源参数),格式为:
- /data/myflvfile.flv(如果文件在本地播放)
- rtmp://streamcloud.myserver.com/cfx/st/somedirectory/myflvfile.flv(如果文件是从 Cloudfront 流式传输的)
我的新组件基于 NetConnection 和 NetStream。对于上面的任何条目,我必须将输入分成两个字符串:一个用于 NetConnection.connect(NetConnectionStr) 方法,另一个用于 NetStream.play(NetStreamStr) 方法。例如:
- 给定/data/myflvfile.flv然后:
- NetConnectionStr = null
- NetStreamStr = "/data/myflvfile"
- 给定rtmp://streamcloud.myserver.com/cfx/st/somedirectory/myflvfile.flv然后:
- NetConnectionStr = "rtmp://streamcloud.myserver.com/cfx/st"
- NetStreamStr = "somedirectory/myflvfile"
- 给定rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv然后:
- NetConnectionStr = "rtmp://streamcloud.myserver.com/cfx/st"
- NetStreamStr = "一些目录/子目录/myflvfile"
对于“本地文件”情况,构建这两个字符串非常明显,但在其他情况下会变得很棘手。问题是我没有聪明的方法来猜测输入的哪一部分是服务器 URL,哪一部分是流名称 + 目录结构。
在 Internet 上找到的一些示例中,人们只是猜测源的最后一部分(找到的最后一个“/”之后的内容)是 NetStream 名称。就我而言,这并不总是正确的,因为流可能位于服务器的子目录中。更糟糕的是,服务器名称可能包含“/”字符!
解决它的策略
连接到服务器,检索其真实 URL,查找流名称
由于 NetConnection 似乎足够“聪明”,我的第一次尝试是使用完整的源 URL 调用 connect 方法。例如,给定 rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv
NetConnection 在以下方面取得了成功:
- connection.connect( rtmp://streamcloud.myserver.com/cfx/st/ )
- connection.connect( rtmp://streamcloud.myserver.com/cfx/st/somedirectory/ )
- ...
- connection.connect(rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv)
然后我希望以某种方式检索服务器的“真实”url(rtmp://streamcloud.myserver.com/cfx/st),这样我就可以猜测流部分(somedirectory/subdirectory/myflvfile)。
不幸的是,我发现无法从 NetConnection 对象中获取真正的服务器地址(connection.uri 返回确切的输入)。所以这似乎是一个死胡同。
连接到服务器,迭代检索流
另一种策略可能是连接到服务器,然后反复尝试(从最后开始)播放流,直到它工作:
给定rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv:
- 尝试 1: stream.play( myflvfile )失败
- 尝试2: stream.play(子目录/myflvfile)失败
- 尝试 3: stream.play( somedirectory/subdirectory/myflvfile )成功
但这是一种非常难看的方法,我正在寻找更好的解决方案。
更好的解决方案?
有什么好的方法可以解决这个问题吗?有谁知道他们在原始 VideoDisplay 组件中是如何做到的(如果它基于 NetConnection/NetStream 对象?)?
提前感谢您对此问题的任何帮助和/或评论:)
flash - NetStream 对象缓冲区无法填充,视频只是冻结
我希望有人对此有所了解,因为这让我发疯。我有一个 Net Stream 对象,用于从 Amazon Flash Media Streaming 服务流式传输视频。
视频建立连接并播放正常,但随机它似乎只是冻结,让它再次工作的唯一方法是重新建立连接。我也尝试将其他视频放入该亚马逊存储桶中,它们似乎可以正常播放。当它是 .FLV 格式和 .mp4 格式时会发生这种情况。
我已将缓冲时间设置为 5 秒,并且我观察缓冲区的输出以查看它的完整百分比。当问题发生时,缓冲区 5 从 100 变为 0,然后引发缓冲区失败错误(我正在使用 OVP 框架)。
我得出的结论是,它要么是视频编码问题,要么可能是防火墙问题阻止了数据通过。
有没有人对此有任何问题,如果有,您是如何解决的。
flash - 有什么方法可以在 Actionscript 3 中获取 netStream 的音量级别?
我想获得 NetStream 的音频活动级别,类似于使用麦克风的方式。在本文中, AS3:NetStream NetStreamInfo.audioBytesPerSecond 的音频活动级别被称为解决方案。但是,audioBytesPerSecond 指示流有多少数据量。它没有获得流的音量级别。它与micic.activityLevel 不同。
有没有办法获得 netStream 的音量?
actionscript - 为什么 OSMF 没有 org.osmf.net.netstream 类?
我希望我可以从编解码器中获取一些信息(例如冻结、错误帧、解码错误),因此我想这是在 NetStream 类中执行的,我可以让它发送比 SRTT、比特率和 co 更多的信息。
所以,我在问!OSMF 中是否提供 Netstream 类源代码?
谢谢 !
flash - appendBytes() 不适用于动作脚本 3
我有以下代码
我正在使用外部接口回调从 JS 调用此函数但是一旦我在.fla
文件中编译上述代码,它就会引发错误。
错误:1061 通过静态类型 flash.net:NetStream 的引用调用可能未定义的方法 appendBytes
flash帮助页面显示该函数在 AS3 中有效。那我要去哪里拧呢??
apache-flex - NetStream 未在第二个 Call flex 上发送音频
我正在尝试在两个人之间构建一个视频会议应用程序。我面临的问题是我将视频和麦克风附加到我的流中并发布它。第一次通话时,音频与视频一起传输,但是当我结束通话并再次通话时,我可以看到只有视频,流中没有音频传输。我调试了应用程序,麦克风和视频正在附加到流中。无法弄清楚如何结束这一切。任何帮助将不胜感激。这是我的一些代码。谢谢你。
这是 endCall 函数。
flash - NetStream.play + video.attachNetStream 不会显示任何视频
我是 Flash 编程的新手。我想做的就是将我的本地网络摄像头流式传输到我的 red5 服务器并在另一个视频中接收数据。
因此,我编写了以下代码:
我在 1 个 NetConnections 上使用 2 个 NetStreams,然后在第一个上附加一个 cam+mic。之后,我播放此 NetStream 并尝试将此播放附加到第二个 Netstream 并在新视频中播放。但是,这不起作用。
我对 as3 使用 flashdevelop,对 red5 服务器使用 eclipse。谁能帮我?
flash - Videochat netstream SoundTransform 不适用于音量控制
我有一个视频聊天应用程序,其中可以有 6 个参与者。我想做的是让每个发布者可以选择控制他们自己的流的音量。我的代码看起来像这样。
任何想法为什么这不起作用?
-- 编辑一个可能的解决方案 --
一个可能的解决方案是:校准滑块并设置麦克风增益,有效增益为零是静音,增益为 100 是全音量。似乎对我有用。
actionscript-3 - 关于 NetStream AS3 中的 publish() 方法
我可以使用发布方法使用 Flash Media Server 以外的流媒体服务器录制 flv 文件,还是仅用于 FMS?crtmp服务器呢?
actionscript-3 - 数据生成模式视频搜索
我正在构建一个视频播放器并尝试使用数据生成模式。但是当我试图寻找时,我找不到正确的方法。我进行了很多搜索,但找不到在数据生成模式下搜索的示例。
任何人都可以在这种情况下帮助我。如果您有 actionscript-3 数据生成模式下的视频流示例代码,请分享。我需要一个示例工作代码。