Python-用ffmpeg进行视频处理

FFMpeg视频处理

这里我们将对传上去的视频文件进行处理,所用语言为Python,依赖包为python-opencv,工具为ffmpeg

主要函数为:

// 对视频的每一帧进行处理:图像转HSV或黑白	 cv2.COLOR_RGB2HSV     cv2.COLOR_BGR2GRAY
cv2.cvtColor(img,cv2.cv2.COLOR_RGB2HSV)
//直方图均衡化
cv2.equalizeHist(img)
//高斯模糊和边缘检测
img = cv2.GaussianBlur(img, (3, 3), 0)
img = cv2.Canny(img, 30, 100)

步骤

  1. 切帧,读取每一帧的图像,并对其进行相应处理
  2. 将处理过的图像,合并为一个视频

代码

import os
import cv2
import subprocess

os.chdir('f:/movieData')
v_path='F:/movieData/ghz.mp4'
image_save='./pic2'

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_RGB2HSV)   #cv2.COLOR_RGB2HSV     cv2.COLOR_BGR2GRAY
    img = cv2.GaussianBlur(img, (3, 3), 0)
    img = cv2.Canny(img, 30, 100)
    cv2.imwrite('./pic2/image{}.jpg'.format(i),img)

# 接下来为合并每一帧形成视频
images_path = image_save+'/image%d.jpg'
#帧率
fps = str(24)
str_cmd = '"./ffmpeg/bin/ffmpeg.exe" -i ' + images_path + ' -r '+fps+' output_new.mp4'
#str_cmd = 'dir'
p = subprocess.Popen(str_cmd, shell=True, stdout=None, stderr=None)
stdout, stderror = p.communicate()

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

总结:这次的视频处理总体很顺利,只有在合成视频的过程中因为播放器不同的问题,而导致视频无法播放,换一个播放器就行了,或者合并成视频时改写参数也行。

相关网站:http://ffmpeg.org/

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值