问题标签 [pseudo-streaming]
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.
streaming - Flowplayer 安全流式传输(通过 PHP):MP4 视频不是伪流式传输(FLV 可以)
我遇到了 MP4 安全伪流的问题。
首先,有几个事实供您了解:
- 我正在使用流播放器
- 我已经安装并工作了 mod_h264_streaming。
- 我已经成功添加了安全流插件(PHP 验证),它正在使用伪 FLV 视频(当然要感谢 mod_h264_streamin)。
- 我正在使用开头带有 moov-atom 的 MP4 进行测试(并且视频立即开始。但不是伪的)。
现在...当 flowplayer 加载 MP4 时,播放器会发出如下请求:
注意?start=0
当我寻找视频的另一部分(尚未加载)时,播放器会发出以下请求:
注意?start=33.342
这导致视频从头开始,这就是问题所在。
附加事实:对于 MP4 文件,开始发送(到 PHP 脚本)作为您单击的时间线的秒数,对于 FLV,开始发送作为以字节为单位的搜索位置,我认为这种差异是问题的主要原因.
我的问题是:
如何在我的 PHP 伪流脚本中处理 MP4 视频流?
自动提问:我应该使用字节范围标头吗?
我没有发布代码,因为它不是编码问题,而是概念问题:现在让我们专注于这个想法。此外,我正在测试的所有文件都经过良好编码,它们不是问题。
谢谢
nginx - MP4 伪流在 JWPlayer Flash 模式下不起作用
我已经配置了一个 NginXmod_mp4
来流式传输 mp4 媒体,并且我在 HTML5 和 Flash 模式下都使用 JWPlayer 5。
现在寻求功能在支持 mp4 播放的 webkit 浏览器中工作,但在 Firefox 和其他 JWPlayer 使用 Flash 模式的浏览器中它不起作用。怎么了?
我的 JWPlayer 设置:
ffmpeg - 伪流式 mp4 文件不适用于 Flash 播放器
我在我的网站上流式传输音频时遇到问题。我想我可以将 MP3 文件放在带有 h264 编解码器的 MP4 容器中,这样我就可以使用mp4 编解码器的伪流能力。
我用来转换文件的代码是:
伪流(在媒体的未加载部分中寻找)现在可以在 HTML5 播放器中使用,但不能在任何 Flash 媒体播放器(例如 JWPlayer 或 FlowPlayer)中使用。
我已经在h264
启用模块的 Apache 服务器和启用了 Nginx 的服务器上测试了我的文件mod_mp4
,但没有任何运气。
我尝试了MP4Box、QTIndexSwapper,甚至通过混合图像循环和我的音频文件来创建一个真实的视频文件。
我究竟做错了什么?我该怎么做才能让它发挥作用?
iis-7 - 伪流 dll 无法在 iis 7.0 中加载
当我添加用于实现以下 url 中提到的伪流视频的处理程序时,出现此错误
当我从 IIS 7 Web 服务器运行网站时,应用程序池由于此错误而停止。我正在使用 asp.net 4.0,Windows OS 7 家庭高级版。IIS 7 安装了 IIS 7 在 Windows 上提供的所有功能
屏幕截图附在下面
当我通过 iis 浏览应用程序时,我在浏览器上得到了这个
当我从我的 IIS 中删除伪流视频处理程序映射时,一切正常,我通过 IIS 打开我的网站没有问题。但我需要在我的网站中实现伪流视频
youtube - 如何提供像 Youtube 这样的视频?几乎即时播放和快速搜索
如何像 Youtube 一样提供视频服务?即使视频很长(将近 2 小时)并且以高清格式观看,它也几乎可以立即播放,并且寻找尚未加载的部分非常快。
我正在使用来自 Rackspace 的专用服务器,该服务器具有 100Mb 的上行/下行速度,我对服务器的 ping 时间低于 50ms。我的本地互联网连接为 10Mb,当我从服务器下载某些内容时,我可以最大化我的互联网连接,因此与服务器的连接不是这里的问题。
我正在尝试模拟这一点,我尝试使用 Wowza 进行实时流式传输,并使用H264 Streaming Module尝试使用 Pseudostreaming 。两者都无法与 Youtube 提供视频的速度相提并论。
视频测试文件为 MP4 (h.264),300MB,时长 2 小时,总码率设置为 500kbps,视频播放器为 JWPlayer
Wowza Streaming (RTMP) - 加载然后播放视频速度很快,但不如 youtube 快。搜索也没有那么快,移动到新位置并继续播放视频大约需要 5 - 7 秒。
Pseudostreaming H264 Streaming Module (HTTP) - 加载视频需要很长时间,因为它在播放之前先下载视频标头。一个 2 小时的视频有大约 2.5MB 的 MOOV ATOM(视频头文件),它需要先下载才能播放。一旦它开始播放,寻找未下载的部分就可以与 Wowza 相提并论,但不如 Youtube 快。
以 Youtube 的速度提供视频需要什么?我还需要它在暂停时缓冲/下载视频,就像 Youtube 一样,所以像 Wowza 这样的 Real Streaming 已经出来了。
使用 H264 Streaming 模块的伪流会很好,因为它在暂停时会缓冲,只是初始加载时间很长!无论如何我可以删除初始加载时间?
我还有哪些其他选择?我对可以在我的服务器中使用的任何其他选项持开放态度。
apache - 用于 lighttpd 的 mod_cband 或类似模块,用于设置地理不同用户的带宽限制
我一直在使用 mod_cband 来限制来自不同国家的不同用户的带宽,例如使用 CBandClassRemoteSpeed 和 CBandClassLimit 参数。
网络服务器用于伪 mp4 流媒体。我正在考虑改用 Lighttpd,因为它为静态内容提供了更好的性能。Lighttpd 中是否有任何等效方法可以限制 Geo-Different 用户的带宽?
谢谢
flv - SSH命令中的flvtool2批处理?
我想在我们的服务器中执行数百个视频来执行这样的命令
flvtool2 -U 视频.flv
但问题是我找不到任何命令来执行批处理。
有没有办法执行批处理?
谢谢, TIA
还质疑这可以在 PHP 执行命令中完成吗?谢谢
actionscript-3 - 在某个位置查找时,PHP Streaming 没有元数据
我正在使用 PHP 流式传输视频文件,一切正常,直到尝试从某个位置开始,例如当我加载具有起始位置的视频文件时
ns.play('flvprovider.php?file=video.flv&pos=156212');
它会寻找但我不会收到元数据,我知道元数据被注入到视频文件的头部,这可能是为什么当我从某个位置加载视频时我无法获取元数据但我不知道是否有在我使用的提供商下方解决此问题的解决方案
谢谢 !!
ruby-on-rails - 如何将 ngx_http_mp4_module 添加到 heroku 应用程序?
我需要将以下模块添加到我的应用程序中。 ngx_http_mp4_module 这是为了使用 mediaelement 伪流 Flash 视频。
我不确定如何进行此操作。任何指导都会很棒。
html5-video - 伪流、字节范围请求和 mp4 分片
首先寻找正确解释伪流、字节范围请求和 mp4 分段的良好文档的链接。请注意,我将仅使用 mp4 容器(h264 编解码器)和 HTML5 视频(无 flash)。
我对伪流的理解是客户端可以发送服务器在其响应中“寻求”的启动参数。MOOV 数据必须是预先的,它隐含地暗示原始源的缓冲停止,有利于从“开始”/搜索位置开始的新响应。客户端如何被迫进行伪调用?MP4 是否必须以特殊方式格式化?
字节范围请求是不同的发送,而不仅仅是发送范围的开始参数。听起来更像是渐进式下载。“寻求”如何运作?它有字节范围吗?可以用电影框信息预先确定段大小吗?
MP4 碎片如何适应?看起来像最初由微软为 silverlight 设计的构造。但它是否适用于其他浏览器的 html5 视频实现?
发现很难整理网络上的信息。查看实时提要并获取从 rtp 摄像机流生成的 h264 文件的历史片段。在 MongoDB 中有一堆按时间排序的文件。在 JavaScript 中创建了我自己的 h264 解码器,并且可以在范围查询之外即时构建 mpeg-dash 框。使用 Chrome 对 MSE 的支持来附加段。效果很好,但不是通用的解决方案。想要使用除 flash 之外的其他技术,但要使用 html5 视频。