视频播放器,但终端
这个项目包含了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
$ consolepicfrom 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本质上其实就是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文件,把后缀一改,搞定!
这个版本可能会跳票,但是会在ccplay中实现一部分
- 让线程池在处理帧上更高效
- 现在在生成
cpv(t)文件前会检查ffmpeg是否可用 - 优化
consoleplay命令在播放大文件时的内存占用 - 移除了Herobrine
- 因改了许可证,在这里我进一步增强了FFmpeg的许可证合规性,它的许可证先已包含在在Windows版
console-player包中的/console_player_tools/ffmpeg.exe.license.md中
-
从此版本开始,使用MPL 2.0许可证,以前的版本使用LGPL 3.0许可证
-
适应了
py7zr 1.0.0-rc2的不兼容更改,它移除了readall方法而需要使用BytesIOFactory实现 -
把LOGO显示改成了ASCII艺术
-
现在FFmpeg在提取帧的时候会使用最近邻插值算法
-
更新FFmpeg
-
我发现用Python来写这个库会遇到性能瓶颈,所以我未来会写一个C++重写的版本,原Python版本会把后端也改用C++实现
- 😅包有点乱,整理了一下
- 简单修复了源码包会包含ffmpeg的问题
- 更新了FFmpeg的版本,从7.1到master
- 第一次发布