间隔采样视频的代码

项目统计模型准确率

项目会保存大量视频,为了统计模型的精度,我们想要十五分钟抽取一个视频用来统计。

python 复制代码
import os
import shutil
from datetime import datetime, timedelta
#抽取视频的代码,会在每个小时的0分、15分、30分、45分取一个命名中有h264的视频
# 源文件夹路径
source_folder = 'E:/59test/8a7b1e1bd47d4e7fbe4fd122322/'
# 目标文件夹路径
target_folder = 'E:/59test/test'

# 获取源文件夹中的所有文件
files = os.listdir(source_folder)
# 用于记录已保存的时间点
saved_timepoints = set()

# 遍历文件
for file in files:
    # 检查文件是否为mp4文件,并且文件名中包含"h264"
    if file.endswith('.mp4') and 'h264' in file:
        file_path = os.path.join(source_folder, file)

        # 获取文件的修改时间
        modification_time = datetime.fromtimestamp(os.path.getmtime(file_path))

        # 检查文件大小是否大于200KB
        if os.path.getsize(file_path) > 200 * 1024:
            # 检查是否满足每个小时的0分、15分、30分、45分的条件
            if modification_time.minute in [0, 15, 30, 45]:
                # 构造时间点的字符串表示
                timepoint = modification_time.strftime('%Y-%m-%d %H:%M')

                # 检查当前时间点是否已保存过视频
                if timepoint not in saved_timepoints:
                    # 构造目标文件夹中的子文件夹路径
                    subfolder_path = os.path.join(target_folder, modification_time.strftime('%Y-%m-%d'))

                    # 如果子文件夹不存在,则创建子文件夹
                    if not os.path.exists(subfolder_path):
                        os.makedirs(subfolder_path)

                    # 构造目标文件路径
                    target_file_path = os.path.join(subfolder_path, file)

                    # 将文件复制到目标文件夹,并保留元数据
                    shutil.copy2(file_path, target_file_path)

                    # 将当前时间点添加到已保存的时间点集合中
                    saved_timepoints.add(timepoint)

                    # 结束当前时间点的循环,继续处理下一个时间点的视频文件
                    continue
相关推荐
Jasmin Tin Wei8 分钟前
蓝桥杯 web 学海无涯(axios、ecahrts)版本二
前端·蓝桥杯
圈圈编码16 分钟前
Spring Task 定时任务
java·前端·spring
猿榜16 分钟前
js逆向-喜某拉雅Xm-Sign参数解密
javascript
转转技术团队17 分钟前
代码变更暗藏危机?代码影响范围分析为你保驾护航
前端·javascript·node.js
Mintopia27 分钟前
Node.js高级实战:自定义流与Pipeline的高效数据处理 ——从字母生成器到文件管道的深度解析
前端·javascript·node.js
Mintopia28 分钟前
Three.js深度解析:InstancedBufferGeometry实现动态星空特效 ——高效渲染十万粒子的底层奥秘
前端·javascript·three.js
北凉温华28 分钟前
强大的 Vue 标签输入组件:基于 Element Plus 的 ElTagInput 详解
前端
随笔记29 分钟前
Flex布局下,label标签设置宽度依旧对不齐,完美解决(flex-shrink属性)
javascript·css·vue.js
原生高钙31 分钟前
LLM大模型对话框实践:大文件的分片上传
前端
加兵柠檬水32 分钟前
代码输出题,会这些就够了。
前端