GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • mpegCoder
  • 教程
  • APIs
  • 预览版
  • 3.1.0
  • All versions
  • English
  • 安装
  • PyPI
  • Windows
  • Linux
  • 历史版本
  • 范例
  • 常见故障

This view

  • Original page
  • New address

GeezerVison is showing cainmagi.github.io — 简介 | mpegCoder

版本:3.2.x

本项目也称为“FFMpeg-Python编码解码器” ("FFmpeg-Encoder-Decoder-for-Python"),基于FFMpeg,Python-C-API和C++11编写,并通过GPL v3 许可发布。本项目建议在研究场景下使用。

使用本项目,用户可以

利用FFMpeg的所有视频编码器

如同基于C的原版FFMpeg,本项目提供的API能在视频解码、或解流的时候,自动检测视频格式和编码器 (codec)。在编码视频的时候,用户可以自由控制编码格式、比特率以及一些其他参数。

直达FFMpeg核心

不同于ffmpeg-python和pyffmpeg,本项目在底层直接调用FFMpeg的C API,而不需要通过命令行和管道来与FFMpeg交换指令、数据。并且,本项目的数据格式就是np.ndarray。换言之,通过本项目,用户可以轻松并用Numpy和FFMpeg。

帧级别的API

不同于pyffmpeg,本项目并非FFMpeg在python上的简单封装。使用本项目时,用户在帧的尺度来读写视频。例如,当解码一个视频的时候,用户可以逐帧地得到视频数据,每一帧都是一个三维np.ndarray数组。

预编译的包

本项目已经被作者预编译好。如果用户选择下载本项目附带的链接库 (.so或.dll),则无需编译即可使用本项目。

然而,本项目在以下情况受到限制:

平台限制

目前,本项目只支持Linux和Windows。其中Linux的发行版只在Debian上预编译、并只在Debian和Ubuntu上测试。Windows的发行版编译和测试均在Windows上完成。在其他平台上,预编译的发行版可能无法正常工作,如果用户对此有特别需求,则需要自行修改代码并编译。

版本限制

目前,本项目目前支持FFMpeg 4.4和5.0。在使用本项目时,用户可以通过下载本项目附带的动态链接库,免去安装FFMpeg的麻烦。抑或是直接安装能自动拉取链接库的pip版。本项目的一些旧版支持FFMpeg 3.3, 3.4.2和4.0。但是,作者已经弃用了这些版本,并不再提供对它们的技术支持。

不支持音频处理

尽管原版的FFMpeg支持音视频处理,本项目目前只实现了视频处理的部分。例如,假设用户需要处理的视频里含有音频数据,本项目会在底层忽略所有的音频相关数据。换言之,用户现在无法通过本项目实现音频分析。未来可能在v4版本支持音频处理。

不支持滤镜

尽管原版的FFMpeg提供了一些视频滤镜库 (avfilter和postproc),本项目不使用这些模块,因为我们认为这些功能可以被一些其他的python图像处理包替代,例如pillow和openCV。另一方面,本项目保留了视频缩放和重采样的功能 (通过swscale和swresample完成)。

插图由unDraw提供。

相关材料​

本项目的许可证:

GPL v3 许可

合作与贡献指南:

贡献本项目

贡献者利用规约:

利用规约

  • 相关材料
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.