<p align="center"><img src="funnel.png" /></p>
<h1 align="center">Video Funnel</h1>
<p align="center"><a href="https://badge.fury.io/py/video-funnel"><img src="https://badge.fury.io/py/video-funnel.svg" alt="PyPI version" height="18"></a></p>
<p align="center">让你在线看视频也能达到多线程下载的速度</p>
#### 马上使用:
1. 从 [PyPI](https://pypi.python.org/pypi/video_funnel) 安装:
```bash
$ pip(3) install --user video_funnel
# or
$ sudo pip(3) install video_funnel
```
2. 启动 `video_funnel` 的服务器:
```console
$ vf -u http://pcs.baidu.com/... &
* Listening at port 8080 ...
```
百度网盘的直链有很多油猴脚本可以获取,比如[这个](https://github.com/syhyz1990/baiduyun),注意加上 Cookie 参数。
3. 用 `vlc` 播放:
```bash
$ vlc http://localhost:8080
```
`mpv` 播放时会出现 `Seek failed` 的错误,原因未知(如果有路过的大神遇见过类似情况,请一定给我解释下~) #2
另外 @Zxilly 贡献了个 Web UI,启动 vf 时不加 `-u` 参数即可使用。
#### 动机:
众所周知,百度网盘之类产品的视频在线播放非常模糊,下载吧又限速,于是我写了 [aiodl](https://github.com/cshuaimin/aiodl) 这个下载器,通过 [EX-百度云盘](https://github.com/gxvv/ex-baiduyunpan/) 获取的直链来“多线程”下载。可是每次都要下载完才能看又十分不爽,直接用 mpv 之类的播放器播放直链又因为限速的原因根本没法看,遂有了本项目。
#### 实现思路:
1. 先将视频按照一定大小分块。块的大小根据视频的清晰度而异,可通过命令行参数 `--block-size/-b` 来指定,默认为 4MB 。
2. 对于上一步中的一个块,再次分块——为区别改叫切片,启动多个协程来下载这些切片,以实现“多线程”提速的目的。块和切片大小一起决定了有多少个连接在同时下载。切片的大小通过 `--piece-size/-p` 来指定,默认为 1MB 。即默认有 4 个连接同时下载。
3. 一个块中的切片全部下载完后,就可以将数据传给播放器了。当播放器播放这一块的时候,回到第 2 步下载下一块数据。为节省内存,设置了在内存中最多存在 2 个下载完而又没有传给播放器的块。
4. 该如何把数据传给播放器呢?我最初的设想是通过标准输出,这样简单好写。但 stdio 是无法 seek 的,这就意味着你只能从视频的开头看起,无法快进 :P 现在的解决方案是用 HTTP 协议与播放器传输数据。需要快进的时候播放器发送 HTTP Range 请求,video_funnel 将请求中的范围经过分块、切片后“多线程”下载。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源分类:Python库 所属语言:Python 资源全名:video_funnel-0.3.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源推荐
资源详情
资源评论
收起资源包目录
video_funnel-0.3.1.tar.gz (16个子文件)
video_funnel-0.3.1
PKG-INFO 533B
video_funnel.egg-info
PKG-INFO 533B
requires.txt 57B
SOURCES.txt 378B
entry_points.txt 51B
top_level.txt 13B
dependency_links.txt 1B
setup.cfg 38B
setup.py 896B
README.md 3KB
video_funnel
server.py 4KB
funnel.py 3KB
utils.py 5KB
index.html 3KB
__main__.py 1KB
__init__.py 0B
共 16 条
- 1
资源评论
挣扎的蓝藻
- 粉丝: 14w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Kotlin语言的Android开发工具类集合源码
- 零延迟 DirectX 11 扩展实用程序.zip
- 基于Java的语音识别系统设计源码
- 基于Java和HTML的yang_home766个人主页设计源码
- 基于Java与前端技术的全国实时疫情信息网站设计源码
- 基于鸿蒙系统的HarmonyHttpClient设计源码,纯Java实现类似OkHttp的HttpNet框架与优雅的Retrofit注解解析
- 基于HTML和JavaScript的廖振宇图书馆前端设计源码
- 基于Java的Android开发工具集合源码
- 通过 DirectX 12 Hook (kiero) 实现通用 ImGui.zip
- 基于Java开发的YY网盘个人网盘设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功