我尝试使用nginx(origin + edge)设置至少2台服务器.都用mp4 -module 编译.原点包含我所有的mp4文件.Edge配置了所有按预期工作的缓存内容(见下文),第二次每个mp4文件请求由没有原始流量的边缘缓存提供.
但我希望能够在文件中寻找.功能来自mp4模块.只需追加查询参数"?start = 120"即告诉nginx以时间戳120秒开始提供mp4内容.这适用于直接请求的原点.但是只要我在nginx的缓存位置启用mp4-module,请求就会是404.
nginx.conf @ origin:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/www;
location ~ \.mp4$ {
mp4;
expires max;
}
}
Run Code Online (Sandbox Code Playgroud)
nginx.conf @ edge:
proxy_cache_path /usr/share/nginx/cache levels=2:2 keys_zone=icdn_cache:10m inactive=7d max_size=2g;
proxy_temp_path /usr/share/nginx/temp;
proxy_ignore_headers X-Accel-Expires Cache-Control Set-Cookie;
log_format cache '[$time_local] Cache: $upstream_cache_status $upstream_addr $upstream_response_time $status $bytes_sent $proxy_add_x_forwarded_for $request_uri';
access_log /usr/local/nginx/logs/cache.log cache;
upstream origin {
server <origin-domain>;
}
server {
listen 80;
server_name localhost;
location ~ \.mp4$ {
mp4;
proxy_cache icdn_cache;
proxy_pass http://origin;
proxy_cache_key …Run Code Online (Sandbox Code Playgroud) 如果尚未缓冲,使用旧版浏览器或需要Flash后备的视频格式的用户是否可以跳转到视频中的特定时间?
flashmediaelement.swf是否支持使用字节范围/伪丢弃?
Firebug(网络标签)未显示此类流媒体所需的正确标头(206部分内容).
- 请求:范围
- 响应:内容范围
这些标题仅在本机播放器处于活动状态时出现
可能解决方案的文章:
如何投放像Youtube这样的视频呢?即使视频很长(大约2个小时)并且以高清方式观看,它几乎可以立即播放并且寻找尚未加载的部分非常快.
我正在使用Rackspace的专用服务器,100Mb上/下进行此测试,我的ping时间低于50ms到服务器.我的本地互联网连接是10Mb,当我从服务器下载东西时,我可以最大化我的互联网连接,因此连接到服务器不是问题.
我试图模仿这个,我尝试使用H264流模块使用Wowza和Pseudostreaming实时流式传输.两者都无法与Youtube提供视频的速度相提并论.
视频测试文件为MP4(h.264),300MB,2小时长,总比特率设置为500kbps,JWPlayer作为视频播放器
Wowza Streaming(RTMP) - 加载然后播放视频很快,但没有youtube快.寻求不是那么快,移动到新位置并继续播放视频需要大约5-7秒.
伪丢弃H264流模块(HTTP) - 加载视频需要很长时间,因为它在播放之前首先下载视频标头.一个2小时的视频有大约2.5MB的MOOV ATOM(视频头文件),它需要先播放才能播放.一旦开始播放,寻求不下载的部分与Wowza相同,但不如Youtube快.
以Youtube的速度提供视频需要什么?我还需要它来暂停/下载视频,就像Youtube一样暂停,所以像Wowza这样的Real Streaming就出来了.
使用H264 Streaming模块的伪流程本来不错,因为它在暂停时会缓冲,只是初始加载时间非常长!无论如何,我可以删除初始加载时间?
我还有什么其他选择?我对我可以在服务器中使用的任何其他选项持开放态度.
youtube streaming video-streaming progressive-download pseudo-streaming
我有一些关于伪流式传输MP4文件的问题.
是否下载了整个文件,例如.如果我擦洗1分钟到2分钟的视频,只会下载下半部分,从而节省带宽?
无论如何我可以使用Chrome开发工具检查这个吗?
我如何创建一个准备好伪流媒体的MP4?我已经读过元数据需要在文件的开头,我该怎么做?有没有推荐的软件?