将Python图像帧转换为视频
我正在写一个用Python和Django做的应用程序,这个程序需要处理图片,然后把这些图片合成一个视频(每张图片就是视频的一帧)。处理图片这部分很简单,我用的是PIL库,但在把图片转换成视频这块我遇到了困难。我找到了一些叫pyffmpeg的东西,但它似乎只是把视频解码成帧,而不是反过来做。虽然我可能漏掉了什么。我还听说过pythonMagick(imagemagick的一个封装),它可以做到这一点,但我在文档里找不到关于编码的任何信息。
这个程序是在Linux服务器上运行的,必须使用Python(因为应用程序就是用这个写的)。
我应该用什么呢?
4 个回答
1
你可以用Popen来在一个子进程中运行ffmpeg。
10
使用OpenCV和Python的绑定。这里有一个叫做cv.WriteFrame
的函数。类似的问题和答案
16
首先使用以下命令安装ffmpeg:sudo apt install ffmpeg
import os
os.system("ffmpeg -f image2 -r 1/5 -i ./images/swissGenevaLake%01d.jpg -vcodec mpeg4 -y ./videos/swissGenevaLake.mp4")
详细信息:
上面的代码会从三个图片文件创建一个视频,这些图片存放在images文件夹里。每张图片在视频中播放5秒(这是因为有一个参数:-r 1/5)。这三张图片的名字分别是:“swissGenevaLake1.jpg”、“swissGenevaLake2.jpg”和“swissGenevaLake3.jpg”,都在images文件夹里。
希望这对你有帮助。