python实现视频抽帧与合成

2021/6/9 20:24:01

本文主要是介绍python实现视频抽帧与合成,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 一、抽帧
  • 二、合成
  • 三、FFmpeg扩展

一、抽帧

抽帧只需要opencv-python即可实现
此处代码还将抽到的帧进行了灰度处理,以便实现将彩色视频转变为黑白视频
代码:

import os
import cv2

os.chdir('视频文件根目录')#例如f:/video
v_path='ghz.mp4'
image_save='./pic'

cap=cv2.VideoCapture(v_path)
frame_count=cap.get(cv2.CAP_PROP_FRAME_COUNT)

for i in range(int(frame_count)):
    _,img=cap.read()
    img=cv2.cvtColor(img,cv2.cv2.COLOR_BGR2GRAY)   #cv2.COLOR_RGB2HSV     cv2.COLOR_BGR2GRAY
    cv2.imwrite('./pic/image{}.jpg'.format(i),img)

运行结果:
在这里插入图片描述

二、合成

此处需要用到FFmpeg,请自行百度下载
代码:

import os
import cv2
import subprocess

v_path='ghz.mp4'
image_save='./pic'
images_path = image_save+'/image%d.jpg'
fps = str(24)
str_cmd = '"exe文件所在根目录/ffmpeg.exe" -f image2 -i ' + images_path + ' -r '+fps+' output_new.mp4'
p = subprocess.Popen(str_cmd, shell=True, stdout=None, stderr=None)
stdout, stderror = p.communicate()

运行结果:
在这里插入图片描述

三、FFmpeg扩展

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



这篇关于python实现视频抽帧与合成的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程