专栏首页Python爬虫与算法进阶video-to-ascii:在命令行中看视频

video-to-ascii:在命令行中看视频

最近GitHub上有个很好玩的项目,叫做video-to-ascii。这是一个简单的python包,可以使用字符作为像素在终端中播放视频。

安装:

pip3 install video-to-ascii

用法:

$ video-to-ascii -f myvideo.mp4

--strategy 可以通过增加参数选择不同的模式

-o --output将渲染输出导出到bash文件以与某人共享

作者也说了实现原理。大意如下:

每个视频由一组以特定帧速率播放的帧组成。

当选择一个字符来表示一个像素时,我们需要测量该像素在帧中的颜色的相关性,然后我们可以根据色度空间中的相对亮度选择最合适的字符,使用光度函数的简化版本。

绿光对人类感知的强度贡献最大,蓝光最少。

最后,当把它们放在一起时,我们将为每个像素和新颜色提供适当的字符。

一些参数

from . import player

def main():
    import argparse

    CLI_DESC = "It is a simple python package to play videos in the terminal using colored characters as pixels or other usefull outputs"
    EPILOG = ("\033[1;37mThanks for trying video-to-ascii!\033[0m")

    PARSER = argparse.ArgumentParser(prog='video-to-ascii', description=CLI_DESC, epilog=EPILOG)
    PARSER.add_argument('-f', '--file', type=str, dest='file', help='input video file', action='store', required=True)
    PARSER.add_argument('--strategy', default='ascii-color', type=str, dest='strategy', 
        choices=["ascii-color", "just-ascii", "filled-ascii"], help='choose an strategy to render the output', action='store')
    PARSER.add_argument('-o', '--output', type=str, dest='output', help='output file to export', action='store')
    PARSER.add_argument('-a','--with-audio', dest='with_audio', help='play audio track', action='store_true')

    ARGS = PARSER.parse_args()

    player.play(ARGS.file, strategy=ARGS.strategy, output=ARGS.output, play_audio=ARGS.with_audio)


if __name__ == '__main__':
    main()

下面是一部小视频,猜猜看是啥

本文分享自微信公众号 - Python爬虫与算法进阶(zhangslob)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Katalon + 傻瓜 == selenium 代码

    、简直是神器啊 (๑• . •๑)今天在翻莫烦大大的博客时,看到他提到一个工具,便去看了下,第一感受是,太好用了、爱不释手。

    小歪
  • 或许你应该学学 postman

    使用 最简单的方法就是直接在浏览器中复制 Copy as cURL ,然后把数据导入 postman,然后 send ,收工。 我们这里拿 知乎首页 举例 ?...

    小歪
  • Python分布式微博爬虫(源码分享)

    项目地址:https://github.com/ResolveWang/weibospider 作者:resolvewang ? 关于本项目 实现内容包括用户信...

    小歪
  • 系统游戏运行库DirectX修复工具 v3.8 增强版

    (DirectX Repair)是一款系统级工具软件,简便易用。本程序无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则...

    空木白博客
  • 通过共分割实现基于涂鸦的域自适应

    中文摘要:虽然深卷积网络在许多医学图像分割任务中已经达到了最先进的性能,但它们通常表现出较差的泛化能力。为了能够从一个领域(例如,一种成像模式)归纳到另一个领域...

    用户7454122
  • 中国台湾大学林轩田机器学习技法课程学习笔记12 -- Neural Network

    上节课我们主要介绍了Gradient Boosted Decision Tree。GBDT通过使用functional gradient的方法得到一棵一棵不同的...

    红色石头
  • 国产指纹库平台 – 天蝎指纹库

    前 言 信息收集为渗透测试环节一个非常重要的阶段,它关系到后序列策划攻击的成功性。快速收集目标服务信息则需要测试人员熟练运用指纹识别技术。 指纹识别概念 组...

    FB客服
  • sqlite迁移到postgres

    soon
  • 多平面图像的单视图合成(CS CV)

    最近在视图合成方面的一项工作是在已知的视点上通过给定两个或更多的输入图像,利用深度学习来生成多平面图像(以相机为中心的分层三维展示)。我们将这种表示方法应用于单...

    刘持诚
  • 机器学习(六)--------神经网络(Neural Networks)

    无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时, 计算的负荷会非常大。 比如识别图像,是否是一辆汽车,可能就需要判断太多像素。 这时候就需要...

    实时计算

扫码关注云+社区

领取腾讯云代金券