Skip to content

SystemFileB/console-player

Repository files navigation

🎞️ console-player

视频播放器,但终端
这个项目包含了FFmpegLGPLv3构建,同时在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.03(未来)

这个版本可能会跳票,但是会在ccplay中实现一部分

  • 让线程池在处理帧上更高效
  • 现在在生成cpv(t)文件前会检查ffmpeg是否可用
  • 优化consoleplay命令在播放大文件时的内存占用
  • 移除了Herobrine

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

  • 第一次发布

About

视频播放器,但终端

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published