多线程顺序下载OneDrive视频,实现边下边播不卡顿

网友投稿 3212 2022-10-26

多线程顺序-OneDrive视频,实现边下边播不卡顿

多线程顺序-OneDrive视频,实现边下边播不卡顿

OneDrive downloader

个人使用OneDrive搭了一个网盘,想在线看视频,但是网速总是不稳定。由于OneDrive可以支持多个连接,(具体最大有多少不清楚)于是采用多线程-的方法实现视频的边下边播。

原理

我是用的多线程并不是平均分成多少段,每段多少M。而是把视频分割成单位为1M的多个片段。按顺序将这些片段的起始地址放到队列里,然后使用多线程消耗,以此达到顺序播放不卡顿的效果。(有些视频格式的索引表在结尾,所以首先-尾部20M)

造个轮子,aria2一样可以实现

aria2c --stream-piece-selector=inorder

环境

python3requests>=2.22.0

用法

$ pip install -r requirements.txt$ python app.py -husage: app.py [-h] [-d dir] [-n num] [-c ovd_file] [--set-d dir] [--set-n num] [url [url ...]]positional arguments: url download urloptional arguments: -h, --help show this help message and exit -d dir save directory -n num number of thread -c ovd_file continue to download (TODO) //暂未完成settings arguments: --set-d dir set the save directory (default: .) --set-n num set the thread number (default: 8, max: 32)

样例

-电影彗星来的那一夜到目录d:/movies,使用8个线程

python app.py -d d:/movies -n 8 https://dwz-/ehmEbMyQ

进度在2%-3%就不多就可以使用播放器直接播放了(windows上建议使用PotPlayer),这里自行斟酌

你可以设置默认-目录和默认线程数

python app.py -set-d d:/movies --set-n 32

你设置的值会保存到ovd.ini配置文件中,上面的命令会写入如下信息

[config]save_dir = d:/moviesthread_num = 32

如果同时设置参数-d和--set-d,会将视频保存到参数-d设定的路径下,参数--set-d设置的路径下次生效

python app.py https://dwz-/ehmEbMyQ -d e:/movies --set-d d:/movies

这里会将视频-到e:/movies,-n和--set-n也是如此

其他

python app.py -c ovd_file这个命令的断点续传功能未完成。不过你可以使用相同的命令-上次没有-完成的视频,我是通过.ovd文件记录-好的部分的,请不要轻易删除此文件。当视频-完成后会自动删除,没有.ovd文件会重新开始-整个文件

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:AVFonts用于在整个应用程序中更改/交换字体名称
下一篇:一个简单的Go程序将SQL行转换成Microsoft Excel XLSX文件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~