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 · 9504 次点击
    这是一个创建于 4718 天前的主题,其中的信息可能已经有所发展或是发生改变。
    视频竟然都是下载完才播放,为什么?还要另外的服务才行?
    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
    @delectate
    也许是你理解错了,也许是我理解错了,哈哈。

    但是,如果要获得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   ·   实用小工具   ·   3134 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:40 · PVG 21:40 · LAX 05:40 · JFK 08:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.