程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 抽取剔除視頻幀工具

編輯:Python

前言

正好有人問我怎麼把視頻某幾幀去掉,正好有時間,正好寫了,正好發出來。

大家想用的話可以拿去參考。

代碼

下面是我使用opencv對視頻中間幾幀抽取的方法。

主要的思路是在讀取frame的時候,順便把幀寫下來。

同時如果不是需要抽取剔除的幀,直接continue到下個循環。

樣例代碼如下,主要按照MP4格式進行處理。

#!/user/bin/env python
# coding=utf-8
"""
@project : csdn-pro
@author : 劍客阿良_ALiang
@file : test.py
@ide : PyCharm
@time : 2022-06-30 17:55:48
"""
import cv2
# 視頻抽幀
def extract_frame(video_path: str, result_path: str, fps, weight, height, start, end):
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
videoWriter = cv2.VideoWriter(result_path, fourcc, fps, (weight, height))
vc = cv2.VideoCapture(video_path)
if vc.isOpened():
ret, frame = vc.read()
else:
ret = False
count = 0 # count the number of pictures
while ret:
ret, frame = vc.read()
if start <= count <= end:
count += 1
continue
else:
videoWriter.write(frame)
count += 1
print(count)
videoWriter.release()
vc.release()
if __name__ == '__main__':
extract_frame('C:\\Users\\xxx\\Desktop\\123.mp4', 'C:\\Users\\xxx\\Desktop\\114.mp4', 25, 640, 368, 119, 125)

注意

1、extract_frame方法的入參分別為:輸入視頻地址、輸出視頻地址、視頻fps、視頻分辨率寬、視頻分辨率高、視頻需要抽掉的起始幀、視頻需要抽掉的結束幀。

小結

就不驗證效果了,大家可以自己試試看。

注意地址要寫錯了,導致輸出為空。

最近我的心態有些變化,以前我總是覺著所處在的地方,規則是如此混亂不堪,人的惰性和逃避在事情面前那樣肉眼可見。我討厭它,甚至有些排斥和想要破壞它。但突然我站在鏡子面前,發現我也成為了它的一部分,一種惡心感柔然二生。學會和自己先和解,在試著改變能改變的,我想這是我要做的。

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved