迅雷的边下边看是怎样实现的

迅雷是如何实现边下边看的,其实可以分几个层级来说:
1)比如普通的http模式的视频文件,这种基本所有播放器,比如ffmpeg架构的,都支持直接http协议的流模式边下边播,而且支持拖动的。这一部分实际是ffmpeg等底层内置好的基础功能。
原理就是如同前面几位楼主所提到的,会先获取视频的格式信息、关键帧等信息,然后在用户拖动的时候,根据关键帧等信息,找到对应的关键帧的位置的二进制数据,填充播放。
2)如果是p2p,比如torrent这种种子文件,其实ffmpeg他们是不支持这类协议的。这种情况下,一般p2p播放器的做法是将p2p协议的传输层下载到的数据,再封装一次http协议喂给播放器,这样播放器就直接跟一个http层通讯,http层把range等指令,传达给p2p层调度下载,去下载指定位置区域的数据。
和迅雷的p2p影音一样,点量也有一款点云影音,就是一套代码可以在PC、Android、IOS下都可以一样运行的p2p影音产品。
【迅雷的边下边看是怎样实现的】 目前点云影音这款p2p软件的原理就是这样的:
1)播放器在播放磁力链、或者torrrent文件时,调用点量P2P引擎,p2p引擎里面通过torrent或者磁力链信息,去通过tracker、DHT寻找周围的peer邻居,然后获取数据。
2)p2p获取到的数据,通过播放器可以支持的协议,返回给播放器,播放器来看,这就是一个标准的mp4/flv等视频文件,所以他可以正常播放
3)播放器在拖动时,p2p引擎自动切换下载位置,并返回数据。
希望上述信息可以帮到你

■网友
谢谢邀请。
1、首先并非所有视频文件的任意片段都可播放。视频文件除了主要的音视频数据外还包含“视频格式信息(如编码方式、码率等)”。播放器必须获取到“视频格式信息”后才能播放音视频数据。(视频文件的格式信息并非总是保存在视频文件的头部,有些视频文件的格式信息可能还位于文件尾部甚至中间的某部分。当看到迅雷下载速度明明还可以,但总是处于缓冲阶段,那么有可能是视频格式信息分布比较离散导致的)
2、迅雷的边下边播功能,在播放一个视频文件时,会优先下载视频的格式数据,然后按照播放顺序下载视频文件的音视频数据,并交付给播放器播放。
3、如果用户拖动了播放器的进度条,播放器会通知迅雷的下载引擎优先下载快进后即将播放的音视频数据。

■网友
多媒体文件都是含着头信息,只要先把头信息进行解析,优先下载头信息是必要的,随后找到视频的关键帧就可以从此处播放,音频每帧都是关键帧,故可以在下载中随意拖动,将关键帧找到即可音视频同步播放。


    推荐阅读