🎞️ console-player
视频播放器,但终端
这个项目包含了FFmpeg的LGPLv3构建,同时在PyPI版本中FFmpeg还经过UPX压缩过
这个项目的图标使用到了Iconpark的三角形图标,这个部分使用Apache License 2.0授权
使用的相关项目及对应的许可证,见licenses
📦 安装
# Windows用户没有安装FFmpeg的,或者使用其他系统的
$ pip install console-player
# Windows用户安装了FFmpeg的
$ pip install console-player-noffmpeg
❓ 用法
# 播放视频
$ consoleplay <CPVID文件>
# 生成CPVID文件
$ cpvgen # 交互生成
$ cpvgen <视频文件> <输出的CPVID文件,后缀必须是(.cpv;.cpvt;.zip)的任意一项> # 不让你选择文件的交互生成
# 在终端显示图片
$ consolepic <图片文件>
# 显示版本信息 (三选一)
$ consoleplay
$ consolepic
⚙️ API用法
from consoleplay import RGB,pic2terminal
from colorama import Style,init
init()
# 将图片打印到终端
pic2terminal("图片文件路径")
# 打印RGB颜色的字体
print(RGB(255,0,0)+"红色字体"+Style.RESET_ALL)
🔨 构建
# Windows带FFmpeg
$ python setup.py bdist_wheel --have-ffmpeg
# Windows不带FFmpeg (注意包名变成了console-player-noffmpeg)
$ python setup.py bdist_wheel
# 类UNIX
$ python setup.py bdist_wheel --others
🛠️ CPVID文件的手工生成
首先,你要知道CPVID本质上其实就是7z文件,只是后缀不同罢了
知道了这个特性,然后创建一个新目录,并以这个结构创建文件(夹)
你的目录
|-- manifest.json
|-- audio.mp3
|-- frames
| |-- 1.jpg
| |-- 2.jpg
| |-- ...
| |-- n.jpg
如果你要打包CPVT格式的文件的话,请你把要输出的文字放入frames/n.txt中 (或使用xz压缩后使用frames/n.txt.xz) ,以替换franes/n.jpg中的图片
然后,填充audio.mp3为你的音频
接着,往manifest.json以这个格式写入内容
{
"frames":, //视频帧数,填入数字,比如3500
"fps":, //视频的帧率,填入数字,要和frames和音频长度吻合,否则播放报错,比如20
"type":, //视频类型,比如"cpvt"或"cpv"
"xz": //你的cpvt类型的文件是否使用了xz压缩,填true或false
}
最后,把这个目录的所有内容压缩到7z文件,把后缀一改,搞定!
📝 更新日志
1.10(未来)
跳票,但是会在 ccplay中实现一部分
我觉得用 C++ 实现可能较难,用 Rust 实现可能简单点?
等到以后想到了再去用 Rust 重写这个吧
- 让线程池在处理帧上更高效
- 现在在生成
cpv(t)文件前会检查ffmpeg是否可用 - 优化
consoleplay命令在播放大文件时的内存占用 - 移除了Herobrine
1.03
- 由于 pygame 已经 2 年没更,所以这个依赖被我改成了 pygame-ce
- 更新在 Windows 上的内置 FFmpeg 版本
1.02.1
- 因改了许可证,在这里我进一步增强了FFmpeg的许可证合规性,它的许可证先已包含在在Windows版
console-player包中的/console_player_tools/ffmpeg.exe.license.md中
1.02
-
从此版本开始,使用MPL 2.0许可证,以前的版本使用LGPL 3.0许可证
-
适应了
py7zr 1.0.0-rc2的不兼容更改,它移除了readall方法而需要使用BytesIOFactory实现 -
把LOGO显示改成了ASCII艺术
-
现在FFmpeg在提取帧的时候会使用最近邻插值算法
-
更新FFmpeg
-
我发现用Python来写这个库会遇到性能瓶颈,所以我未来会写一个C++重写的版本,原Python版本会把后端也改用C++实现
1.01.1
- 😅包有点乱,整理了一下
1.01
- 简单修复了源码包会包含ffmpeg的问题
- 更新了FFmpeg的版本,从7.1到master
1.00
- 第一次发布
Metadata
Release files for console-player-noffmpeg 1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| console_player_noffmpeg-1.3-py3-none-any.whl | Python 3 | none | any | Details |
Release files / console_player_noffmpeg-1.3-py3-none-any.whl
| Download URL | console_player_noffmpeg-1.3-py3-none-any.whl |
|---|---|
| Size | 41.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b8a28eaecb87043b2f09716b5ceb3fd7576e0b25edac967ee7c6a625b045f14
|
|
BLAKE2b-256 checksum How to use checksums |
0f227673237cdc4cbff99f3c158a3fdaaa9a5ca7b31af56033514b2131e79f41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|