如何流方式加载云存储中的流媒体

2011-12-27 21:45:42 +08:00
 chaojie
视频竟然都是下载完才播放,为什么?还要另外的服务才行?
9527 次点击
所在节点    云计算
29 条回复
Ricepig
2011-12-27 22:02:58 +08:00
需要另外的服务器。或者云存储默认开启了stream mod,apache、nginx都有
delectate
2011-12-27 22:09:28 +08:00
在线的云服务,还是xunlei的离线播放比较给力;
自己搭建的应该都没问题,千兆网卡支持m2ts播放。
chaojie
2011-12-27 22:09:53 +08:00
@Ricepig 求详细说明。比如百度或又拍的云存储,没有stream mod这样的选项,nginx如何配置?不可能要把数据再交给nginx代理吧
chaojie
2011-12-27 22:13:05 +08:00
@delectate 我的意思是将视频放在网页中的播放器中播放,放在云存储中存储
delectate
2011-12-27 22:31:54 +08:00
@chaojie 据我所知,国内只有迅雷。dropbox也不支持啊。没有那带宽很难达到在线原画播放
xiaojay
2011-12-27 22:32:53 +08:00
阿里云存储支持视频边下边放
Ricepig
2011-12-27 23:23:54 +08:00
@chaojie 就是看视频云存储是不是支持流媒体,或者伪流媒体。后者就是我说的那些mod。如果默认不支持那就没办法了。

关于这个内容,可以参照不才的小文章:http://www.cnblogs.com/Ricepig/archive/2011/04/16/2017703.html

@xiaojay 边下边放是只要格式和播放器支持就行,和云存储关系不大。关键是要可以拖动。
kojp
2011-12-27 23:32:06 +08:00
我的理解方向,可能和你们不尽相同。如果有不当之处,请谅解。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我理解的是
现在除了flv(前端用FLASH播放)这种格式流媒体格式
以及rmvb(后端有流媒体服务器),前端用相应的插件播放。

可以实现,在线边下载边播放, 以外。
其它的应该都是实现不了的呀?这个跟nginx以及apache应该没关系吧?
delectate
2011-12-27 23:34:08 +08:00
@Ricepig 我觉得楼主的问题是:已经存储在“云”上的文件,怎样才能获得http直链,并且放到播放器就可以直接播放。

这些问题很复杂,要看是什么运营商,也要看你的带宽,看视频格式等诸多因素。视频格式是mkv,wmv,asf,mp4,m2ts等支持在线播放,还有很多格式是不支持的;有的运营商为了节省带宽,只提供下载。
——也许是我理解错了。
Ricepig
2011-12-27 23:36:10 +08:00
@kojp 首先,除了flv和rmvb,mp4的视频也是可以的。对于flv和mp4视频,前提条件是视频文件中被添加了meta data。
其次,边下载边播放是流格式的特性(上面三种流格式都行),但是拖动播放未下载完成视频的能力,就和nginx或者apache这些web server有关了。其实就是要一个接口,http://usr/file?start=xxx,只要能响应这种请求,并返回相应文件的相应偏移量以后的部分,就算实现了一个伪流媒体服务器,而nginx或者apache都有这方面的mod,就不用自己实现了。

可能这个不是你理解不当,而是你并不清楚其中的技术细节。
Ricepig
2011-12-27 23:39:12 +08:00
@delectate
也许是你理解错了,也许是我理解错了,哈哈。

但是,如果要获得http直连,并且播放器里播放时,需要可以拖动到某个位置,这个最廉价的方法就是nginx mod。如果云存储没有,那也没办法。

运营商为了节省带宽而只提供下载不提供播放的说法,我不是很认同。播放比下载更费流量吗?
kojp
2011-12-27 23:40:28 +08:00
@Ricepig

呃?是这样的呀? 学习了。。。谢谢。
chaojie
2011-12-27 23:42:33 +08:00
@delectate不求拖动。 @Ricepig 能够得到url地址。
@xiaojay 看来是有些云存储不支持,但我奇怪的是文件下载不都是二进制流嘛,流媒体会有特殊方式?这些文件放在那儿可以下载,偏不能边下边播放,是什么原因。
而且同样是http协议,简单存储的就可以,开始还以为是协议不同
delectate
2011-12-27 23:47:31 +08:00
@chaojie 服务器不支持的,就不行啊。文件结构也有要求的:
文件头|{tag,audio,video,timecode,subscribe}|...|{tag,audio,video,timecode,subscribe}|结尾。
貌似这样的才能播放。我对这个了解不多。
Ricepig
2011-12-27 23:51:01 +08:00
@chaojie 你是什么格式?
chaojie
2011-12-27 23:54:03 +08:00
@delectate @Ricepig flv格式或wmv格式甚至mp3格式。Content-Type都是对的,其他文件头不了解,想知道需要添加什么元数据
kojp
2011-12-27 23:54:54 +08:00
@chaojie

我还是固执己见的。。。。如果不是flv的话,(mp4不太清楚)反正RMVB没有后台流媒体服务器的支持肯定是不行的,你可以传个flv文件试试。-------------------其实,在本地可以试的。你用wms搭一个服务,然后用mms://127.0.0.1/aa.rmvb这样的地址调用媒体文件跟用http://127.0.0.1/aa.rmvb播放效果肯定是不一样的。。。
chaojie
2011-12-27 23:56:39 +08:00
xiaojay
2011-12-27 23:56:45 +08:00
http://www.jayproxy.com 我这个网站上的视频就是存储在阿里云上的,支持拖放
我查了下阿里云文档,http://oss.aliyun.com/guide/details?id=247#002
'GetObject时可以设定文件传送范围,在头中以Range设定。'
应该是可以设定在 http头中支持 range,所以才可以拖放的
chaojie
2011-12-27 23:59:23 +08:00
@kojp 我传空间里flv,与传云存储flv,都是http的地址,但放在swf播放器里,一个是上来就可以播放,但不能拖动,另一个是等十几分钟才播放,奇怪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/24473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX