视频指定片段截取

news/2025/2/6 15:35:08/

视频指定片段截取

今天写的一个小脚本,想指定时间段截取MP4文件

代码如下:

import time
import numpy as np
import cv2
import os
import syst1 = time.time()
filename = '../test.mp4'
capture = cv2.VideoCapture(filename)
if capture.isOpened() is False:print("Error opening the video file!")sys.exit()
frames = capture.get(cv2.CAP_PROP_FRAME_COUNT) #get all frames.
height = int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)) #Width of the frames in the video stream.
width = int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)) #Height of the frames in the video stream.
fps = capture.get(cv2.CAP_PROP_FPS) #Get frame rate.# 创建保存视频文件类对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('out_test.mp4', fourcc, fps,  (width, height))  # VideoWriter# 计算视频的长度/s (基于需要,我截取的是倒数120s至倒数10s的片段)
video_length = frames / fps
start = video_length - 120
stop = video_length - 10# 设置帧读取的起始位置
capture.set(cv2.CAP_PROP_POS_FRAMES, start * fps)
pos = capture.get(cv2.CAP_PROP_POS_FRAMES)  # 获得帧的位置
while (pos <= stop*fps):ret, frame = capture.read()  # 捕获帧的位置out.write(frame)   # 保存帧pos = capture.get(cv2.CAP_PROP_POS_FRAMES)
capture.release()
out.release()
total_time = time.time()-t1
print(f"单个视频截取已完成,用时{total_time} s!")

有几个需要注意的点

  1. MP4文件的解码格式要使用(*mp4v)
  2. cv2.videowriter函数时,高和宽作为元组时,一定是width在前,height在后。
  3. 基于capture.get,每次循环给定捕获帧的位置。较其它的判别读取指定片段用时更少。

[参考博文]((54条消息) python-opencv截取视频片段_可可爱爱的小肥肥的博客-CSDN博客)


http://www.ppmy.cn/news/921043.html

相关文章

java实现截取视频方法

java实现截取视频方法 添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.4.RELEASE</version><relativePath/> </parent> <depend…

video视频关键帧截取

hello!好久没有更新了&#xff01;今天来聊聊视频的关键帧截取&#xff0c;和指定关键帧的截取并显示为缩略图。 好的&#xff0c;我知道有的同学肯定比较着急&#xff0c;直接上硬菜 // 视频播放js /**url &#xff08;为.MP4的视频链接&#xff09;调用方式 videoPlaying(u…

如何截取视频中的一段视频?简单的截取方法分享

如果我们只需要处理视频中的某一部分&#xff0c;就可以将这一部分的内容截取下来&#xff0c;可以省去处理整个视频文件的时间和精力。此外&#xff0c;截取视频也可以让更加方便地分享和保存视频内容。此外&#xff0c;如果我们只需要分享视频中的一部分给他人观看&#xff0…

ffmpeg截取一段视频中一段视频

ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y -ss time_off set the start time offset 设置从视频的哪个时间点开始截取&#xff0c;上文从视频的第10s开始截取 -to 截到视频的哪个时间点结束。上文到视频的第15s结…

视频任意截取某一处图片怎么操作

现在很多人都喜欢通过刷视频的方式来消遣闲暇时光&#xff0c;刷到喜欢的视频想要保存视频中的某个画面内容&#xff0c;应该怎么做呢&#xff1f;小编今天分享一个方法批量截取视频图片&#xff0c;想了解这方面操作的朋友&#xff0c;接着往下看吧。 运行软件&#xff0c;切换…

ffmpeg截取视频内容和批量处理视频

操作视频时&#xff0c;经常需要批量加去水印&#xff0c;加去的同时我们需要不断的调试位置&#xff0c;来保证处理后视频的效果可以最佳&#xff0c;因为原视频时长长&#xff0c;在原视频上不断调试耗费时间比较长&#xff0c;因此&#xff0c;选择截取视频的的片段&#xf…

截取视频为单帧图片

ffmpeg -i "D:\BaiduNetdiskDownload\Anti_UAV_test_dev\02_6319_0000-1499\IR.mp4" -vf fpsfps5 -s 256x256 %3d.bmp 修改 import os import re import csv############################################### # 一个标签 def Annotations1_write(xmax, xmin, ymax, …

Python如何截取视频的帧

文章目录 直接上代码&#xff0c;参考&#xff1a; 链接&#xff0c;可以顺利运行&#xff0c;并把截取的帧保存在指定的文件夹 import cv2 import os # 要提取视频的文件名&#xff0c;隐藏后缀sourceFileName "粤东莞城区旗峰支行AIPT出钞口_20220831143800_202208311…