systemcall
2022-12-02 00:22:41 +08:00
不光是 bt 之类的 p2p 下载,http 下载也有这种区别
支持断点续传并且没有额外的限制的情况下,你可以把文件分成很多个小的块,通常来说除了最后一个都是相等的大小。可以启动多个线程、分别从不同的起点来下载文件,也可以只启动一个线程、从最开始的地方下载文件
因为一般的视频,只需要前面 metadata ,外加播放的时间对应的帧,就可以正常播放。一般的视频容器里面封装的音频和字幕也比较小,那些可以丢在文件的开头。你只要保证最前面的那一点下载完了,不拖动进度条的情况下就可以在网速比较快的前提下边下边播。容器里只有音频和专辑图片、字幕的话,也可以边下边播
因为一般的下载软件不能做到你读取了没有下载好的部分,就让播放器去等待,然后尽快下载好那个部分,所以和流媒体平台差得远
bt 更复杂,但是原理还是比较类似的吧。bt 的下载方是可以向上传方请求指定的块的,也可以使用上传方的建议。而且 bt 的每个块都有校验,灵活一些