您好,登錄后才能下訂單哦!
讀視頻和寫視頻一直由于編解碼的問題給程序員造成很多麻煩。對此進行了一些探索。用Python讀取視頻有兩種主要方法,分別是基于imageio庫和OpenCV,其中OpenCV加上ffmpeg的安裝編譯很麻煩,推薦大家使用第一種方法,不過大家也可依據自己的需求進行使用。
方法一:使用imageio庫
1. 一般imageio庫Anconda自帶的有,不用我們單獨安裝,沒有安裝的可用pip安裝或自己下載。
imageio使用方法可參考:http://imageio.readthedocs.io/en/latest/examples.html。
下面是一段使用imageio對視頻進行灰度處理的測試代碼。
# 將彩色視頻轉為灰度視頻 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,直接運行會提示如下所示的要安裝ffmpeg,使用conda安裝即可。另一個編解碼器包含比較全的編譯包是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()
所以按照提示運行如下命令安裝conda-forge編譯好的ffmpeg即可,conda-forge編譯的ffmpeg視頻編解碼庫都很齊全,可以直接對視頻讀存取。
conda install ffmpeg -c conda-forge
PS:小技巧,如果conda安裝國外軟件包速度很慢的話,可以給conda添加清華大學的鏡像源,依次運行下面幾條命令就可以了,安裝速度一般幾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
安裝較復雜,需編譯很多庫,自己查找參考相關方法。
下面是使用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讀取視頻并進行編解碼詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。