Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash Flex视频显示停止缓冲_Flash_Video_Apache Flex_H.264 - Fatal编程技术网

Flash Flex视频显示停止缓冲

Flash Flex视频显示停止缓冲,flash,video,apache-flex,h.264,Flash,Video,Apache Flex,H.264,我正在尝试使用AdobeFlex和libh264streaming构建一个视频播放器应用程序。在小盒子里,我的小播放器工作得很好 但是,如果视频的大小在200-300MB左右,我会看到一系列问题: 浏览器会崩溃 它从不停止缓冲,一直下载直到获得整个视频(300M) CPU使用率上升,浏览器内存消耗也随之增加 我猜是1。和1。原因是2。因为播放器需要越来越多的内存来存储视频 我想有一个缓冲区大小上限,并停止下载视频一旦达到上限。我认为YouTube视频播放器就是这样工作的(看看播放器底部的播放器控

我正在尝试使用AdobeFlex和libh264streaming构建一个视频播放器应用程序。在小盒子里,我的小播放器工作得很好

但是,如果视频的大小在200-300MB左右,我会看到一系列问题:

  • 浏览器会崩溃
  • 它从不停止缓冲,一直下载直到获得整个视频(300M)
  • CPU使用率上升,浏览器内存消耗也随之增加
  • 我猜是1。和1。原因是2。因为播放器需要越来越多的内存来存储视频

    我想有一个缓冲区大小上限,并停止下载视频一旦达到上限。我认为YouTube视频播放器就是这样工作的(看看播放器底部的播放器控件)


    有什么想法可以在Flex中实现吗?

    我猜还没有人回答这个问题的部分原因是因为没有很好的答案。我当然不是Flash流媒体的专家,但为了给你至少发布一些回应,我猜测,从阅读文档和亲自尝试几件事情来看,你尝试做的事情不能完全在Flex环境下使用VideoDisplay对象来完成;它可能需要在服务器上处理,或者至少在服务器和客户机之间处理,以便正确地传递和终止流,并且VideoDisplay对象可以正常运行


    对不起,我希望我能给你一个更好的答案;如果有其他人这样做了,请随意插话。

    很难确定,但您提到的lib似乎提供了一些控制机制来告诉服务器您希望播放哪个区块(我从他们网页上的声明中了解到:。。。“您有很长的视频剪辑,不想将其重新编码为较小的部分?我们还支持“虚拟视频剪辑”,因此您可以指定仅播放视频的一部分或创建到视频特定部分的下载链接。”

    对我来说,似乎您只需要添加一个控制结构,允许您(告诉服务器)以块的形式获取视频

    如果由于任何原因无法实现,而您只能访问原始数据流:

    我需要知道您在flex中使用什么接口来加载视频,但一般来说,您需要添加一个侦听器来接收ProgressEvent并检查加载的字节(对于通用加载程序对象)

    你的另一个选择是用读写方法创建你自己的套接字,当数据进入时,你可以用它来检查你的字节计数器。你可以将读取的字节放入bytearray,然后当你有一个可用的块时,你需要将该字节数组转换成适合播放器对象的格式

    看看flash.net.Socket

    ()

    什么是“libh264流媒体”?在谷歌上搜索它时,只会出现这个带有确切文本的线程。从你的描述来看,它听起来好像根本不是流媒体,只是提供渐进式下载

    渐进式下载有时被错误地称为流式下载。它只是一种文件的普通HTTP下载,只要视频头位于文件的开头,Flash就会在文件头加上一定数量的视频数据(我相信是4个关键帧)后立即开始播放文件传统上,渐进式下载不提供带宽节流或流式传输的其他优点,但最近一些提供了下载速度较慢的实现,它更接近流式传输,并且可以在文件的中间开始渐进式下载(动态重写报头)。允许人们在不下载整个内容的情况下跳到中间

    Flash Player仅支持RTMP流媒体。这是一个由Flash Media Server和几个开源选项(如Red5、rubyizumi)支持的专有协议。Adobe两天前宣布将发布RTMP并提供开放许可,因此您应该在不久的将来看到更多支持RTMP的产品。Streaming提供了与客户端和服务器的双向通信,因此服务器发送请求的帧数作为缓冲区,客户端根据需要请求帧来填充缓冲区。服务器发送的帧数不超过请求的帧数,服务器只需刷新缓冲区,而无需刷新整个视频,即可搜索到各个点

    如果你想提供大文件,你可能需要一个真正的流媒体服务器。一种替代方法是将文件分成块,根据需要下载并一个接一个播放。这也很复杂,但可行

    嗯,

    萨姆


    我们正在招聘!华盛顿特区的开发人员和质量保证人员(或希望搬迁的人员)应将简历发送至careers@blinemedical.com.



    我能够在2个VideoDisplay对象的基础上创建一个组件,这些对象以块的形式加载mp4文件(比如说每个文件有1分钟的缓冲区)。辅助VideoDisplay在主显示器达到某个点时(我的情况是缓冲区大小的50%)就开始加载视频.主视频完成后,组件立即切换到辅助显示器


    使用mod_h264_流媒体时,这种方法非常有效。Seek操作几乎可以立即工作。

    抱歉,我键入的内容完全错误。我的意思是mod_h264_流媒体。