您好,登錄后才能下訂單哦!
讀視頻和寫視頻一直由于編解碼的問題給程序員造成很多麻煩。對(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è)參考,也希望大家多多支持億速云。
免責(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)容。