繁体   English   中英

什么是一个很好的Python库来操纵视频文件的帧?

[英]What's a good Python library to manipulate frames of a video file?

我正在寻找一个类似于PIL的Python视频处理库,我可以遍历源视频的所有帧,访问每个帧的像素数据,绘制到每个帧并将结果保存为新的视频文件。

我发现了几个类似的问题,但它们现在已经很老了:

他们推荐PyMediaPyFFMPEG PyMedia似乎已经过时了(但可能仍然有效?)和PyFFMPEG,而最近几乎没有文档。

我没有运气在Ubuntu 10.10上安装这些,在我按下之前,有:

a)我应该看一个更好的图书馆?

b)关于如何启动和运行其中任何一个的良好说明?

我经常需要相同的东西,据我所知,Python中的绑定没有很好的解决方案。

此外,它并不像操作视频文件的帧那样简单。 用于视频的现代文件格式不是一帧接一帧地存储帧,而是使用“增量帧”,其中仅存储从一帧到另一帧的改变。 诸如具有可变帧速率的视频之类的其他考虑因素使问题更加困难。

在过去,我使用以下命令从视频生成图像。

ffmpeg -i /path/to/file.mpg -an -r 30 -s 320x240 tmp%06d.jpg

其中30是目标帧速率,320x240是图像尺寸,tmp%06d.jpg是用于存储生成的jpeg的模式。 然后你可以使用PIL来操作每个帧和mencoder或ffmpeg来将图像再次放回到电影中:

ffmpeg -r 30 -i tmp%06d.jpg output.mpg

显然,你将失去音轨。

我一直在寻找使用py.processing进行类似的工作。 它可以满足您的所有要求,但却与Processing混合使用。 你本身并不是在编写python代码。 无论如何,它使得它很容易使用,但是有很多程序/解释开销,因此对电影进行实时修改可能会很慢。 你说你想要编辑到文件,这应该是可行的。

我推荐scikit-video ,这是我见过的最简单的python视频处理库。

这是其项目网站上scikit-video的官方介绍:

Scikit-video旨在使用Python轻松进行视频处理。 它以其他成功的scikits精神为模型,如scikit-learn和scikit-image。 scikit-video知识库的开发者存在用于操纵视频,例如PyFFmpeg,MoviePy,PyAV,imageIO和opencv。 但是,没有找到任何图书馆为研究级视频处理工具提供一体化解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM