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

Tom*_*Tom 7 python video video-processing

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

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

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

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

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

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

Bjö*_*ist 7

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

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

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

ffmpeg -i /path/to/file.mpg -an -r 30 -s 320x240 tmp%06d.jpg
Run Code Online (Sandbox Code Playgroud)

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

ffmpeg -r 30 -i tmp%06d.jpg output.mpg
Run Code Online (Sandbox Code Playgroud)

显然,你将失去音轨.