最近突然想研究一下,快播的工作原理.想自己写个使用快播地址就可以播放的软件;
我主要是要安卓手机上看到这个功能的.它是P2P的.要是直接重写只用于接收.不发送就方便了.
qvod://abcdefg|abcdefg|这样的地址如何去得到视频呢。
网上说是到服务器得到什么列表。然后去明人的机器上下载需要东东。存为流。所以可以拖动。呵呵
再讲一遍,来者有分的。是讨论也是相互学习.JAVAANDROID安卓

解决方案 »

  1.   

    网上说是到服务器得到什么列表
    P2P都会到服务器上得到一个peer的结点信息(如IP),然后再连接到这些结点上去下载,应该指的是这个吧。
      

  2.   

    P2P(Peer-to-Peer,即对等网络)
    要从服务器上得到PEER的信息.那么QVOD的服务器地址有那些呢.还是固定什么IP地址呢.这是第一步.
    然后得到IP地址.和端口,怎么去下载呢.有加密吗.这是第二步.
    最后存到本地流进行播放;有没有简单的实现过程.
      

  3.   

    QVOD的没看过,以thunder为例,thunder://是协议名,会使用关联的程序打开,thunder://xxxxxxxxxxxxxxxxxxxxx后边的是一堆base64编码过的东西,解码回来就是地址,然后就开始下载了。
    不知道QVOD是不是也这样,当然xxxx中也可以保存的是一些token信息,不保存具体的下载地址,然后去服务器获取真实地址下载。
    说到BT,只是P2P一个最成功的案例而已,所有加入P2P网络的计算机(打开thunder下载的计算机)都是一个节点,其中有Tracker服务器在其中保持信息交流,反馈其他节点信息,然后就可以与其他节点建立连接互下有无。
    BT协议推荐返回好像是20,具体忘记了,迅雷会员大概是会多返回一点有效信息或者不会自己限制网速之类的。
    P2P的特点就是虚拟分块。比如将1G的文件,划分为1024份,每份用SHA1编码做特征码。然后大家按这样的小块去交换,也就是互换有无。你可以先下这1G文件的最后几块,也可以从中间挑几块先下,这些由程序算法选择。这里涉及到一个种子健康度和一个优先选择的问题。http协议只能是从头开始下,不能跳跃。所以BT协议一开始下载,就会生成1G的临时文件,这1G空间先建好,然后将下载到的小块填充覆盖过去。
    除了经由Tracker地址返回的节点信息,p2p网络中还可以自己发现其他节点,还有一些无需tracker的协议,像听说迅雷自己搞了一套DHT来着,还是VUZE自己搞的记不清了。
    Tracker服务器除了返回节点信息,还可以进行客户端过滤,比如快车的资源不允许迅雷下什么的。一般限制采用的是USER-AGENT或者自定义的一些参数。
    5点了,下班走人,说好的分啊,上面全凭记忆手打啊。
      

  4.   

    另外一帖地址,同样一百分
    http://bbs.csdn.net/topics/390517044
      

  5.   

    我也想了解一下QVOD获取视频的url就可以直接看的原理
      

  6.   

    并且在这个url前面必须还要有qvod:这几个字符 如果qvod变成其他字符的话快播就不能打开 这。。