将视频按时长平均分成指定数量的帧并保存在指定路径
创作时间:
作者:
@小白创作中心
将视频按时长平均分成指定数量的帧并保存在指定路径
引用
CSDN
1.
https://blog.csdn.net/m0_56512537/article/details/136953216
将视频按时长平均分成指定数量的帧并保存在指定路径
解决问题
我想将一个mp4格式的视频按视频播放顺序截取30张图片,也就是按视频时长平均截取30张图,并保存在指定文件夹内。接下来就以视频female-1-casual.mp4为例,输入路径和输出路径都是我自己设置的,如果需要使用代码,记得按自己的路径改。
代码实现
from moviepy.editor import VideoFileClip
import os
import cv2
from PIL import Image
# 视频文件路径
video_path = 'F:\\admin\\Downloads\\Nerf\\dataset\\people_snapshot_public\\female-1-casual\\female-1-casual.mp4'
# 输出文件夹路径
output_folder = 'F:\\admin\\Downloads\\Nerf\\dataset\\MyDataset\\llfftest\\images\\1'
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 读取视频文件
clip = VideoFileClip(video_path)
# 获取视频时长(秒)
duration = clip.duration
# 计算每隔多少秒截取一帧
frame_interval = duration / 30
# 定义帧的数量
frame_number = 1
# 编号和保存截图
for frame in clip.iter_frames(fps=frame_interval):
# 检查帧是否是RGB格式
if frame.shape[-1] == 3:
# 如果是RGB格式,可以在这里进行进一步的处理或保存
pass
else:
# 如果不是RGB格式,可以将它转换为RGB格式
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# 保存截图
if frame_number > 30:
break
image_path = os.path.join(output_folder, f'{frame_number}.png')
# 将numpy.ndarray对象转换为PIL图像
image = Image.fromarray(frame)
# 最后,将图像保存到指定路径
image.save(image_path)
# frame_number迭代
frame_number += 1
print("截图已保存到:", output_folder)
实现效果
输入视频:
生成效果:
热门推荐
和平精英物资搜索技巧详解 如何快速发育
自带大厨房的度假民宿,怎么突然没了?
家中最简单炸油条方法窍门(香酥大油条在家这样做!)
补牙后牙齿变得敏感,正常吗?
塔罗牌 权杖一 正位 感情 (Ace of Wands) 复合全面详细的解读
藏头诗:一种独特的诗歌形式
在小区周边做这4种生意,年入20万不是梦
多重人格是什么?带你了解分离性身份障碍
从“过日子”到“过好日子”,这场讲座为他们送去特别的浪漫~
为什么相关性不是因果关系?人工智能中的因果推理探秘
马尾松最大价值
电力电子设计实践——基于MWORKS的电压电流双闭环-boost升压电路
全球首次!《柳叶刀》:“百变细胞”恢复角膜,挽救视力,开启眼部再生疗法新篇章
052D型驱逐舰与阿里伯克级对比:性能与规模的较量
胃强脾弱的最佳调理方法:吃得少却不瘦
各路资本逐鹿化工新材料赛道
西游记人物形象的精神分析
水蒸蛋制作新技巧:一勺淀粉让口感更滑嫩
Git 的 origin 和 upstream
电吉他新手必看:十个音色调整技巧助你快速上手
白酒是否可以代替料酒作为日常饮食的调料?
早上养胃黄金期,建议吃这5种早餐,滋养肠胃,守护胃黏膜
《流浪地球》科学猜想:如何实现星际穿越?
梦幻手游封号几率高吗?封号原因有哪些?
植物大战僵尸植物绘制教程:从草图到成品的详细步骤
植物奶油和动物奶油,傻傻分不清?科学挑选必看这2个指标!
记忆力衰退怎么办?9种食物帮你找回好记忆
《唐探1900》法庭演讲:周润发演绎的不只是演技,更是历史的控诉
曹操为何有这么多负面评价,曹操表示:罗贯中干的好事
中国古建筑中的20种吉祥图案及其寓意