Pythonimageio读取视频并进⾏编解码详解
读视频和写视频⼀直由于编解码的问题给程序员造成很多⿇烦。对此进⾏了⼀些探索。⽤Python读取视频有两种主要⽅法,分别是基于imageio库和OpenCV,其中OpenCV加上ffmpeg的安装编译很⿇烦,推荐⼤家使⽤第⼀种⽅法,不过⼤家也可依据⾃⼰的需求进⾏使⽤。
戚薇抓大张伟
⽅法⼀:使⽤imageio库
1. ⼀般imageio库Anconda⾃带的有,不⽤我们单独安装,没有安装的可⽤pip安装或⾃⼰下载。
下⾯是⼀段使⽤imageio对视频进⾏灰度处理的测试代码。
# 将彩⾊视频转为灰度视频simon curtis
import imageio
reader = _reader('imageio:cockatoo.mp4')
fps = _meta_data()['fps']
writer = _writer('~/cockatoo_gray.mp4', fps=fps)
for im in reader:
writer.append_data(im[:, :, 1])
writer.close()刘嘉玲案真相
- install using conda: conda install ffmpeg -c conda-forge
- download by calling: imageio.plugins.ffmpeg.download()
所以按照提⽰运⾏如下命令安装conda-forge编译好的ffmpeg即可,conda-forge编译的ffmpeg视频编解码库都很齐全,可以直接对视频读存取。
conda install ffmpeg -c conda-forge
conda config --add channels mirrors.tuna.tsinghua.edu/anaconda/pkgs/main/
conda config --add channels mirrors.tuna.tsinghua.edu/anaconda/pkgs/free/
我不是坏小孩
conda config --add channels mirrors.tuna.tsinghua.edu/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
⽅法⼆:使⽤OpenCV和ffmpeg
安装较复杂,需编译很多库,⾃⼰查参考相关⽅法。
下⾯是使⽤OpenCV读取视频的⽅法:
import cv2
cap = cv2.VideoCapture('/path/to/your/video.mp4')
while(cap.isOpened()):
ret, frame = ad()
cv2.imshow('image', frame)
崔宇植k = cv2.waitKey(20)
#q键退出
if (k & 0xff == ord('q')):张学友有个人专辑
break
cv2.destroyAllWindows()
以上这篇Python imageio读取视频并进⾏编解码详解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。