Vic*_*tor 24 python video screenshot image
我目前试图用图像制作电影,但我找不到任何有用的东西.
到目前为止,这是我的代码:
import time
from PIL import ImageGrab
x =0
while True:
try:
x+= 1
ImageGrab().grab().save('img{}.png'.format(str(x))
except:
movie = #Idontknow
for _ in range(x):
movie.save("img{}.png".format(str(_)))
movie.save()
Run Code Online (Sandbox Code Playgroud)
Bob*_*rph 53
您可以考虑使用像ffmpeg这样的外部工具将图像合并到电影中(请参阅此处的答案),或者您可以尝试使用OpenCv将图像组合成电影,就像这里的示例一样.
我在下面附上一个代码剪切我用来将所有png文件从一个名为"images"的文件夹组合成一个视频.
import cv2
import os
image_folder = 'images'
video_name = 'video.avi'
images = [img for img in os.listdir(image_folder) if img.endswith(".png")]
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape
video = cv2.VideoWriter(video_name, 0, 1, (width,height))
for image in images:
video.write(cv2.imread(os.path.join(image_folder, image)))
cv2.destroyAllWindows()
video.release()
Run Code Online (Sandbox Code Playgroud)
Vic*_*tor 28
谢谢,但我找到了使用ffmpeg的替代解决方案:
def save():
os.system("ffmpeg -r 1 -i img%01d.png -vcodec mpeg4 -y movie.mp4")
Run Code Online (Sandbox Code Playgroud)
但是谢谢你的帮助:)
小智 15
这是一个使用 moviepy 的最小示例。对我来说,这是最简单的解决方案。
import os
import moviepy.video.io.ImageSequenceClip
image_folder='folder_with_images'
fps=1
image_files = [image_folder+'/'+img for img in os.listdir(image_folder) if img.endswith(".png")]
clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(image_files, fps=fps)
clip.write_videofile('my_video.mp4')
Run Code Online (Sandbox Code Playgroud)
Jia*_*Cao 10
我使用ffmpeg-python绑定。您可以在此处找到更多信息。
import ffmpeg
(
ffmpeg
.input('/path/to/jpegs/*.jpg', pattern_type='glob', framerate=25)
.output('movie.mp4')
.run()
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71772 次 |
| 最近记录: |