如何流方式加载云存储中的流媒体 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
chaojie
V2EX    云计算

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

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

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

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

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

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

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

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

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

    呃?是这样的呀? 学习了。。。谢谢。
    chaojie
        13
    chaojie  
    OP
       2011-12-27 23:42:33 +08:00
    @delectate不求拖动。 @Ricepig 能够得到url地址。
    @xiaojay 看来是有些云存储不支持,但我奇怪的是文件下载不都是二进制流嘛,流媒体会有特殊方式?这些文件放在那儿可以下载,偏不能边下边播放,是什么原因。
    而且同样是http协议,简单存储的就可以,开始还以为是协议不同
    delectate
        14
    delectate  
       2011-12-27 23:47:31 +08:00
    @chaojie 服务器不支持的,就不行啊。文件结构也有要求的:
    文件头|{tag,audio,video,timecode,subscribe}|...|{tag,audio,video,timecode,subscribe}|结尾。
    貌似这样的才能播放。我对这个了解不多。
    Ricepig
        15
    Ricepig  
       2011-12-27 23:51:01 +08:00
    @chaojie 你是什么格式?
    chaojie
        16
    chaojie  
    OP
       2011-12-27 23:54:03 +08:00
    @delectate @Ricepig flv格式或wmv格式甚至mp3格式。Content-Type都是对的,其他文件头不了解,想知道需要添加什么元数据
    kojp
        17
    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
        18
    chaojie  
    OP
       2011-12-27 23:56:39 +08:00
    xiaojay
        19
    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
        20
    chaojie  
    OP
       2011-12-27 23:59:23 +08:00
    @kojp 我传空间里flv,与传云存储flv,都是http的地址,但放在swf播放器里,一个是上来就可以播放,但不能拖动,另一个是等十几分钟才播放,奇怪
    delectate
        21
    delectate  
       2011-12-28 00:04:56 +08:00
    chaojie
        22
    chaojie  
    OP
       2011-12-28 00:23:02 +08:00
    应该是文件头的问题,另外我现在也怀疑我的测试不够严谨。
    等明天我再好好测试一下再说,免得浪费大家时间。
    kojp
        23
    kojp  
       2011-12-28 00:36:12 +08:00
    @chaojie

    如果是这个情况。。。请参考云存储的相关服务条款。。或者联系客服。
    chaojie
        24
    chaojie  
    OP
       2011-12-28 19:11:14 +08:00
    今天测试结果:

    http://bcs.duapp.com/public/mv.mp4 chrome与firefox中均需要完全下载才播放
    http://bcs.duapp.com/public/da.mp3 chrome需要完全下载,firefox边下边播,文件很小,欢迎测试
    http://bcs.duapp.com/public/jayproxy.webm chrome与firefox中边下边播,并可拖动

    所以这应该跟客户端处理与服务器返回都有关,暂不清楚如何处理
    chaojie
        25
    chaojie  
    OP
       2011-12-28 19:35:34 +08:00
    补充

    http://12chuan-cj.stor.sinaapp.com/da.mp3

    chrome与firefox中均直接播放,但下载完后firefox允许拖动,chrome不允许
    delectate
        26
    delectate  
       2011-12-28 19:56:28 +08:00
    mp3这东西,我还真不知道fx原生支持。
    mplayer核心的smplayer不支持拖动播放。必须缓冲完才可以。
    webm的fx原生支持,可以拖动。
    chaojie
        27
    chaojie  
    OP
       2011-12-28 21:48:11 +08:00
    staryu945
        28
    staryu945  
       2011-12-29 11:42:00 +08:00
    @chaojie 又拍云存储是支持所有的静态文件的存储的,所以你说的存储视频应该是没有问题的~
    sunkibin
        29
    sunkibin  
       2013-07-31 15:51:36 +08:00
    你的视频要转码成流媒体才能边下边播,你可以把视频托管到七牛云存储上来解决这个问题,支持HLS,视频转码,截帧,缩略图提取,全国500多个节点的上传下载加速,七牛云对单个文件也没有大小限制。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2574 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 04:55 PVG 12:55 LAX 21:55 JFK 00:55
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86