问题标签 [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.
actionscript-3 - 如何利用 play2() 函数进行视频的快速流切换?
我目前正在开发具有分辨率切换功能的 Flash 网络播放器。我正在尝试play2()
在 Actionscript 中使用 NetStream 类的功能。
我遇到的问题是视频不会很快改变。对于那些熟悉该play2()
功能的人,我相信玩家正在执行 a"standard switch"
而不是 a"fast switch."
文档说当偏移参数为-1时,会发生快速切换。实际发生的情况是,一旦"NetStream.Play.Transition"
收到事件,玩家会等到ns.time + ns.bufferLength
到达 表示的时间,然后再执行切换。
我以为快速切换会清除缓冲区,但在检查到 时ns.backbufferlength
,我发现所有内容都仍在缓存中。它还提到:“当偏移量为-1时,切换发生在之后的第一个可用关键帧处netstream.time + 3
,”这就是我感到困惑的原因。
对此问题的任何帮助/见解将不胜感激。
这是一段描述正在发生的事情的代码片段(newStream()
当用户单击以更改为新分辨率,youtube 样式时调用):
flash - 使用 NetStream 类,我如何检测是否附加了工作视频?
我正在 Flash 中构建视频聊天,一切都运行良好,除了我试图检测其他用户是否正在发送工作视频流的部分。
其他用户不发送视频有几个原因。
- 另一个用户没有相机
- 另一个用户有一个摄像头,但该摄像头当前正被另一个应用程序(Skype、Photo Booth、Google Talk 等)占用。
- 另一个用户有相机,但不允许使用他/她的相机。
- (我猜还有其他意想不到的问题......)
那么如何使用 NetStream 类检测我从其他用户收到的流是否是黑流(由于上述原因)?
我想出的最接近的方法是添加一个计时器,该计时器从我从其他用户收到的流中轮询 currentFps() 函数。但是到目前为止,这似乎很不可靠,因为currentFps() == 0
即使在某些情况下我实际上从流中获取了视频,我也可能因此得到并显示错误。这样做的原因是因为我每 4 秒轮询一次 API 以获取 currentFPS 函数,假设在 00:00:04 根据轮询我得到“无视频”,但在 00:00:05 视频开始播放,因此我需要等到下一个滴答声,直到错误消息消失
这就是我目前的民意调查的样子
这是我能想出的唯一一种方法来检测这一点,但这是不可靠的,我实际上更喜欢一种方法来立即检测我收到的流是否附加了一个工作视频而没有这个丑陋的民意调查。
windows - 为什么 StageVideo 在 IE 本地无法工作?
我在本地测试 StageVideo 文件时遇到问题。包含 swf 的 HTML 文件可以在 Chrome 和 FireFox 中完美加载,但是当我在 Internet Explorer 9 中打开它时没有任何反应(它只是显示一个白屏)。
我已将该位置的权限添加到 Flash 设置管理器的“全局安全设置”选项卡(在 Macromedia 网站上)。我还检查了 IE9 设置以确保它允许 GPU 渲染。
有没有人遇到过类似的情况或对为什么它可能在 IE9 中被阻止有任何建议?
提前致谢。
actionscript-3 - 为什么 NetStream#togglePause() 不起作用?
我创建了一个基于red5 0.9版本的录音应用程序。
下面是我的 flex 客户端代码片段。我的 red5 服务器工作正常。
我按下pause button
很好,但是当我按下时play button
,音频总是从头开始播放。
为什么?我需要清理 NetStream 缓冲区吗?
flash - 如何将传入的 NetStream 中继到传出
是否可以进行某种中继,将接收到的流重新广播到另一台主机?例如,如果我有这样的代码
如何连接这两个流以从nsIn直接传输到nsOut?
flash - as3 Netstream appendBytes 和寻求
我有一个简单的 flv 播放器,它连接到 CDN,如果用户想要跳过 flv 而不需要 100% 加载 flv,它可以接受标头字节范围请求。
我正在使用第三方 http 库将范围标头添加到请求中。
我的代码播放 flv,但是当我尝试跳到视频 30 秒时,它就冻结了。我相信 cdn 确实返回了文件,因为我可以通过字节进行跟踪,并且标头具有内容范围响应(如下)。
StreamMetaData 类
第一个标头请求和响应
寻求标头请求和响应
我看过这个资源,但它没有帮助。 资源
我浏览了许多论坛以找到答案,但没有成功。任何帮助都会很棒!
java - red5 在 windows 和 linux 上总是以同样的方式工作吗?
我开发了一个简单的应用程序,它使用 flex 和 red5 从网络摄像头录制视频。这个应用程序是使用 flex 和扩展 red5 应用程序适配器制作的,在客户端我使用 NetStream.publish() 方法,在服务器端我会在流文件夹中找到我录制的 flv 文件,我已经在 windows 主机和 linux 服务器上尝试过. 在我的应用程序中,我使用 2 个不同的 netstreams 按音频分割视频,同时我录制了一个 audio.flv.ser 和一个 video.flv.ser 文件,最终的 flv 文件是从 .ser 文件创建的。
我注意到windows主机和linux服务器之间的区别,运行centos6,执行是这些:
- 在 Windows 主机上,两个 flv 文件一起处理,我可以看到它们的大小每时每刻都在变化,直到达到 .ser 文件大小,但在 linux 大小上,每个 flv 文件都被一个一个处理,第一个 video.flv 被处理一次done audio.flv 开始处理。
- Windows 主机比 linux 服务器快得多,大约快 10 倍,但 linux 服务器运行在比 linux 服务器更弱的 cpu 上(T4400 服务器与 Xeon 四核)。
为什么red5在windows和linux上运行的方式有这么大的区别?red5是用java写的,算法工作流在windows和linux系统应该是一样的吧?
actionscript-3 - 我怎么知道播放器何时停止播放?
如果视频结束播放其不跟踪"NetStream.Play.Stop"
信息代码。为什么?
flash-media-server - FMS 4 使用 RTMFP 播放 P2P 流
正确披露:我也在 Adobe 论坛上发布了这个问题。由于我没有得到任何答案 - 我将其发布在这里。如有打扰,请见谅。
我们正在使用 FMS 4 服务器一段时间来开发 2 方向视频应用程序,它与 RTMP 配合得很好。在过去几天我们使用 Cirrus 进行测试之后,我们现在想使用它的 rtmfp 功能,它也运行良好。
在本地 - 一切正常,但是当我们在远程服务器上尝试应用程序时 - 我们遇到了一些问题。
发布开始时,每一方都会获得 NetStatusEvent 代码“NetConnection.Connect.Success”和“NetStream.Publish.Start”。
但是,当我们尝试播放流时,一分钟内没有任何反应,大约一分钟后我们得到“NetStream.Connect.Closed”。
(在本地,我们得到“NetStream.Play.Start”和“NetStream.Play.Reset”)。
我确实在服务器上打开了 1024-65535 UDP 端口,因为我们能够连接 Cirrus,我相信客户端没问题。
我还将 Adaptor.xml HostPort 元素更改为:19350-65535,其中 xxx.xxx.xxx.xxx 是我们 FMS 服务器的公共 IP,与客户端使用的公共 IP 相同。
再一次,它在本地和与 Cirrus 一起工作得很好。RTMP 也适用于远程服务器。
我错过了什么?
android - Android:运行播放 FLV 的 SWF 的 webview。
致力于从三星 Galaxy 10.1 平板电脑上的本地应用程序/文件夹中播放 Flash 项目。该项目基本上是一个 Flash 文件,它引用了播放列表的 xml,其中包含对存储在资产子文件夹中的其他 swf 文件或 flv 视频的引用。
使用 video、netConnection 和 netStream 播放 flv,尝试了 FLVPlayback 片刻,但没有 insta-fix。
该项目嵌入了 html,并且可以在本地和服务器上使用它的机器上正常工作。它从网站“工作”到应用程序,但它变得笨重,并且当这些垫在使用时互联网将不可用。
(但我认为重要的是要注意 flv 播放确实可以从网络到平板电脑,所以我想我的问题的答案可能是一些我不知道的权限限制。)
我很幸运,一个应用程序只有一个 webview 加载主 swf:
它成功地从播放列表中加载 SWF 文件并播放它们,但是一旦到达 flvs,
netStream 就会弹出NetStream.Play.StreamNotFound:[object NetStream]
一个NetConnection.Connect.Closed:[object NetConnection]
[ tl/dr : (Android3.1/galaxy 10.1) --> swf --> flv ==问题]
所以问题是,我必须更改/添加什么来制作这个播放 FLV 的 SWF,它可以在互联网上正常播放,但不能从本地应用程序打开 FLV?(另外,我怀疑我以后需要在外部存储 FLV 以减少应用程序大小,但这是一个不同的谜语)