读取并搜索视频文件,就像它们是pil.image-s的python序列一样。

videosequence的Python项目详细描述


https://travis-ci.org/rjw57/videosequence.svg?branch=masterhttps://coveralls.io/repos/github/rjw57/videosequence/badge.svg?branch=masterhttps://img.shields.io/pypi/v/videosequence.svg

我经常发现自己写的脚本需要从 视频文件,处理它们并将结果保存到磁盘。实施起来很痛苦 一次又一次的视频打开、查找、解码和复杂的Python 装订对我来说有点过分了

视频序列是一个隐藏简单打开视频的复杂性的库。 在python中作为图像序列的文件。它公开了一个视频文件: 包含PIL的python序列类型 Image-s.

例如,假设要转储存储在 foo.mp4从第100帧开始:

fromcontextlibimportclosingfromvideosequenceimportVideoSequencewithclosing(VideoSequence("foo.mp4"))asframes:foridx,frameinenumerate(frames[100:]):frame.save("frame{:04d}.jpg".format(idx))

从序列中加载单个帧也同样容易。我们把期末考试扔了吧 帧到另一个JPEG:

fromcontextlibimportclosingfromvideosequenceimportVideoSequencewithclosing(VideoSequence("foo.mp4"))asframes:frames[-1].save("final-frame.jpg")

一般来说,VideoSequence的行为就像是每个 视频中的帧

视频序列做什么

  • 帧精确搜索
  • 单帧索引(^ {Tt4} $,^ {TT5}$等)
  • 查询视频长度(len(vs)
  • 切片帧序列(vs[100:]vs[-20:]vs[10:20]vs[::2]等)
  • 帧表示为rgb pilImage对象。
  • 可以与numpy互操作。例如np.asarray(vs[0])

什么视频序列不

  • 处理没有一个(且只有一个)视频流的文件
  • 音频

注意事项

  • 一次向前迭代一帧很快。迭代等技巧 一次向后或跳过n帧可以工作,但可能会很慢。
  • 实现基于GStreamer 因此事实上只适用于像linux或freebsd这样的现代unix。
  • PyGObject introspection 必须安装库。(见下文。)

安装

有关操作系统特定的说明,请参阅下面的部分。视频序列可以是 从PYPI安装:

$ pip install --user videosequence

它也可以直接从git安装:

$ pip install --user git+git://github.com/rjw57/videosequence

ubuntu和debian

安装python gobject绑定:

$ sudo apt install gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base-1.0 \
                   python-gi python3-gi

如果你有一些现代的 桌面环境。如果没有:

$ sudo apt install libgstreamer1.0-dev gstreamer1.0-plugins-good

贡献

错误修复和端口到新的后端欢迎请确保测试 在打开新的拉取请求之前,仍然通过tox传递新功能 请带上测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是导入组织。阿帕奇。oro无法解决   java如何同步多个线程访问一些公共数据   java TableModel在第二次单击“其他”复选框后更改jcheckbox单元格的值   java如何在ApacheFlink中连接两个流?   java NSSM服务不显示GUI   java扫描器+交换机的使用   java切换已被抑制的后台进程的标准输出(unix)   带字符串参数的构造函数Java constructor   使用MockRestServiceServer测试HttpRequestExecutingMessageHandler   java使用哪种数据结构来获得所需的结果   java LibGDX定心正交照相机   Java在计算表达式时的自动类型转换   XPath中的java工厂模式   java通知不显示在屏幕上,并且不存在错误   使用Hibernate和MySQL处理upsert的java优雅方式   Java 11中的CLI命令:运行类与运行模块   Java Web Start和allpermissions   swing Java JTable禁用单单元格选择边框高亮显示   使用secp256r1曲线(BouncyCastle)生成java ECDSA签名,给出长度为127的签名