Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何保存视频剪辑中的前几帧?

如何保存视频剪辑中的前几帧?
EN

Stack Overflow用户
提问于 2020-05-20 17:30:16
回答 1查看 64关注 0票数 0

如何使用OpenCV python保存实时视频剪辑中的上一个视频帧

EN

回答 1

Stack Overflow用户

发布于 2020-05-23 15:54:49

下面是您感兴趣的示例代码。希望这能对你有所帮助。

代码语言:javascript
运行
AI代码解释
复制
import cv2
import os
import random
import string

#Generate a random string of numbers to use as a part of our output file names
def rand_string(length):
    rand_str = ''.join(random.choice(
        string.ascii_lowercase
        + string.ascii_uppercase
        +string.digits)
        for i in range(length))
    return rand_str

#calculating the length of the video / frame count
def length_of_video(video_path):
    cap = cv2.VideoCapture(video_path)
    length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))    #frame count
    #print(length)
    return length

#extraction of video to images
def extracting_frames(video_path, save_path, till = 50):
    print('Extracting frames')
        #param 1: path of the source (video)
        #param 2: where the output images saved
        #param 3: when the extraction should stop 

    #split the path to directory and the file name itself
    _, file_name = os.path.split(video_path)
    #getting the file_name without the extention
    file_name = os.path.splitext(file_name)[0]

    length = length_of_video(video_path)
    if length == 0:
        print('Video length is zero')
        return 0

    cap = cv2.VideoCapture(video_path)
    count = 0           #counting frames
    random_string = rand_string(5)              #for naming each frame

    #check if it is working by checking the very first frame of the video
    ret, frame = cap.read()
    test_file_path = os.path.join(
        save_path,
        file_name[:6] +\
        '{}_{}.jpg'.format(random_string, count))

    cv2.imwrite(test_file_path, frame)
    if os.path.isfile(test_file_path):
        print('Test frame saved,' + 'Continuing Extraction')

        #continuing the extraction 
        count = 1
        while ret:
            ret, frame = cap.read()
            #if frame is available and count is less than till, continue extraction
            if ret and count < till:
                file_path = os.path.join(
                    save_path,
                    file_name[:6]+
                    '{}_{}.jpg'.format(random_string, count))

                cv2.imwrite(file_path, frame)
                count +=1
                print(count)
            else:
                count +=1
    else:
        print('Problem with saving the file!')
        return 0
    cap.release()
    print('Extraction completed!')

#main function
if __name__ == '__main__':
    video_frame = ["../data/vtest.avi"]
    save_path = "../data/vtest_frames"
    for video in video_frame:
        print(video)
        extracting_frames(video, save_path, till=30)

    #length_of_video(video_frame)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61919279

复制
相关文章
ffmpeg每隔几帧(间隔)提取图片的方法
在一些视频分类任务中,往往需要从视频中提取指定帧,提取RGB信息然后进行训练和分类。
sparkexpert
2019/05/26
5K0
视频中的 I 帧,P 帧,B 帧
视频传输原理 视频是由一幅幅帧图像和一组音频构成的,视频的播放过程可以简单理解为一帧帧的画面按照时间顺序呈现出来的过程。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大。这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。 编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) 如下图, 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。GO
用户1097444
2022/06/29
3.8K0
视频中的 I 帧,P 帧,B 帧
如何用Python提取视频的某些帧并保存为图片
以前的文章分享过,视频是连续图像的集合。那么我们是否可以提取一段视频中,某些我们想要的部分图像,保存下来呢?答案是可以。我们甚至可以通过视频的时间来提取视频中的某些图像。
TalkPython
2022/11/21
1.3K0
HTTPS连接的前几毫秒发生了什么
提示:英文原文写于2009年,当时的Firefox和最新版的Firefox,界面也有很大改动。以下是正文。 花了数小时阅读了如潮的好评,Bob最终迫不及待为他购买的托斯卡纳全脂牛奶点击了“进行结算”,
小小科
2018/05/02
1K0
HTTPS连接的前几毫秒发生了什么
https连接的前几毫秒发生了什么
在讨论这个话题之前,先提几个问题: 为什么说https是安全的,安全在哪里? https是使用了证书保证它的安全的么? 为什么证书需要购买? 我们先来看https要解决什么问题 一、 https解决什
用户1257215
2018/01/30
1.2K0
https连接的前几毫秒发生了什么
Silverlight中的帧
Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。 但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼的视觉暂留形成的,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念的。 Silverlight的sdk文档中,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象的 maxframerate 参数进行配置。maxframerate 参数的默认值为 60。current
菩提树下的杨过
2018/01/23
1K0
python获取gif的最后一帧保存成图片
最近业务碰到了一个标注任务,获取gif图的最后一张然后调用内部的模型进行识别看gif是不是同样的内容,用脚本的方法试试 获取gif的最后一张 import os, imageio # 获取gif图的最后一帧,并保存png def get_gif_last_frame(gif_path): image_path = gif_path.replace(".gif", ".png") if os.path.exists(image_path): return image_path
爱喝水的木子
2022/05/11
7710
python获取gif的最后一帧保存成图片
Flutter中如何监听帧渲染相关事件?
有时候我们需要在页面渲染完成后做一些操作,那么flutter中如何监听渲染完成,用addPostFrameCallback即可,如下:
BennuCTech
2023/08/28
6090
Flutter中如何监听帧渲染相关事件?
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
福大大架构师每日一题
2023/02/22
5320
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
Golang开发中如何判断H265中的视频帧类型
我们很多项目都是通过Golang编译的,比如EasyNVR、EasyGBS、EasyDSS等,对于Golang的使用,我们一直都会不断研究。在Golang中,需求中提供了相对应的解析包,例如h265parser。
TSINGSEE青犀视频
2021/12/10
1.3K0
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
福大大架构师每日一题
2023/06/08
2490
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
MPEG4视频中,I帧、p帧、B帧的判定(转载) By HKL,
mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系:
hiplon
2020/07/22
1.5K0
FFmpeg中的子帧延迟
本文来自IBC 2019(International Broadcasting Convention)中的演讲,主要内容是FFmepg编码的子帧延时。演讲内容来自EBU(European Broadcasting Union)的Kieran Kunhya。
用户1324186
2019/10/27
2K0
内网渗透中如何离线解密 RDP 保存的密码
在内网渗透的过程中可能会遇到目标管理员有远程登陆的记录,有些管理员会有保存密码的习惯,这个时候我们想要扩大横向范围,密码搜集是最重要的。
渗透攻击红队
2021/06/10
2.5K0
内网渗透中如何离线解密 RDP 保存的密码
OpenCV这么简单为啥不学——2.1、imwrite逐帧保存图片
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
红目香薰
2023/02/16
1.6K0
OpenCV这么简单为啥不学——2.1、imwrite逐帧保存图片
[视频编码] 视频编码的三种帧:I帧,B帧,P帧
在视频压缩编码中,所有的帧被分成了三个种类,I帧,B帧和P帧,其实就是Intra-Prediction帧,Bi-prediction帧和Prediction帧。顾名思义,就是帧内预测帧,双向预测帧以及(单向)预测帧。
轻舞飞扬SR
2021/02/24
2.4K0
python如何保存矩阵,保存matrix,保存numpy.ndarray
问题:如何将array保存到txt文件中?如何将存到txt文件中的数据读出为ndarray类型?python如何保存矩阵,保存matrix,保存numpy.ndarray 分析 a = np.arange(0,12,0.5).reshape(4,-1) np.savetxt("a.txt", a) # 缺省按照'%.18e'格式保存数据,以空格分隔 np.loadtxt("a.txt") array([[ 0. , 0.5, 1. , 1.5, 2. , 2.5],
学到老
2018/04/02
13.3K0
python如何保存矩阵,保存matrix,保存numpy.ndarray
点击加载更多

相似问题

如何保存动画而不显示视频中的前几帧?

13

如何使用AVISynth屏蔽视频的前几帧?

13

Chromebook上的Android视频丢弃了前几帧

10

Moviepy在连接后的前几帧后冻结

173

React中条件渲染的前几毫秒

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档