溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python imageio讀取視頻并進(jìn)行編解碼詳解

發(fā)布時(shí)間:2020-09-20 02:02:09 來源:腳本之家 閱讀:668 作者:Anymake 欄目:開發(fā)技術(shù)

讀視頻和寫視頻一直由于編解碼的問題給程序員造成很多麻煩。對(duì)此進(jìn)行了一些探索。用Python讀取視頻有兩種主要方法,分別是基于imageio庫和OpenCV,其中OpenCV加上ffmpeg的安裝編譯很麻煩,推薦大家使用第一種方法,不過大家也可依據(jù)自己的需求進(jìn)行使用。

方法一:使用imageio庫

1. 一般imageio庫Anconda自帶的有,不用我們單獨(dú)安裝,沒有安裝的可用pip安裝或自己下載。

imageio使用方法可參考:http://imageio.readthedocs.io/en/latest/examples.html。

下面是一段使用imageio對(duì)視頻進(jìn)行灰度處理的測(cè)試代碼。

# 將彩色視頻轉(zhuǎn)為灰度視頻
import imageio
 
reader = imageio.get_reader('imageio:cockatoo.mp4')
fps = reader.get_meta_data()['fps']
 
writer = imageio.get_writer('~/cockatoo_gray.mp4', fps=fps)
 
for im in reader:
 writer.append_data(im[:, :, 1])
writer.close()

2.一般你沒有按照ffmpeg,直接運(yùn)行會(huì)提示如下所示的要安裝ffmpeg,使用conda安裝即可。另一個(gè)編解碼器包含比較全的編譯包是https://www.johnvansickle.com/ffmpeg/

imageio.core.fetching.NeedDownloadError: Need ffmpeg exe. You can obtain it with either:
 - install using conda: conda install ffmpeg -c conda-forge
 - download by calling: imageio.plugins.ffmpeg.download()

所以按照提示運(yùn)行如下命令安裝conda-forge編譯好的ffmpeg即可,conda-forge編譯的ffmpeg視頻編解碼庫都很齊全,可以直接對(duì)視頻讀存取。

conda install ffmpeg -c conda-forge

PS:小技巧,如果conda安裝國(guó)外軟件包速度很慢的話,可以給conda添加清華大學(xué)的鏡像源,依次運(yùn)行下面幾條命令就可以了,安裝速度一般幾M/s.具體可參考https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

方法二:使用OpenCV和ffmpeg

安裝較復(fù)雜,需編譯很多庫,自己查找參考相關(guān)方法。

下面是使用OpenCV讀取視頻的方法:


import cv2 
 
cap = cv2.VideoCapture('/path/to/your/video.mp4') 
 
while(cap.isOpened()): 
 ret, frame = cap.read() 
 cv2.imshow('image', frame) 
 k = cv2.waitKey(20) 
 #q鍵退出
 if (k & 0xff == ord('q')): 
  break 
 
cap.release() 
cv2.destroyAllWindows()

以上這篇Python imageio讀取視頻并進(jìn)行編解碼詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI