91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用OpenCV進行H264視頻編碼

發布時間:2021-12-13 17:26:03 來源:億速云 閱讀:2077 作者:小新 欄目:大數據

這篇文章給大家分享的是有關如何利用OpenCV進行H264視頻編碼的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在Python下,利用pip安裝預編譯的opencv庫,并實現h364格式的視頻編碼。

1. 安裝OpenCV

$ pip install opencv-python

建議在python虛擬環境下安裝,不容易產生相互影響。

2. 代碼示例

讀取筆記本自帶攝像頭,并保存為視頻的最簡實現。

import cv2

def main():
    output_path = './output.avi'
    vc = cv2.VideoCapture(0)
    ret, frame = vc.read()
    w = int(vc.get(cv2.CAP_PROP_FRAME_WIDTH))
    h = int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT))
    fps = vc.get(cv2.CAP_PROP_FPS)
    
    fourcc = cv2.VideoWriter_fourcc('H', '2', '6', '4')
    # fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
    # fourcc = cv2.VideoWriter_fourcc('H', 'E', 'V', 'C')
    vw = cv2.VideoWriter(output_path, fourcc, fps, (w, h), True)
    while ret:
        vw.write(frame)
        ret, frame = vc.read()
        cv2.imshow('frame', frame)
        if cv2.waitKey(5) & 0xFF == ord('q'):
            cv2.destroyAllWindows()
            return -1

if __name__ == '__main__':
    main()

2.1 默認編碼

預編譯的opencv,默認支持XVID格式的編碼,但是不支持H264。

如果將# fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')注釋取消,程序可以正常運行并保存視頻。

2.2 H264支持

按示例代碼配置為H264編碼,會顯示如下錯誤提示。攝像頭可以采集到圖像,但是不能正常保存為視頻。

Failed to load OpenH264 library: openh364-1.8.0-win64.dll
Please check environment and/or download library: https://github.com/cisco/openh364/releases

[libopenh364 @ 000001e7a96ddec0] Incorrect library version loaded
Could not open codec 'libopenh364': Unspecified error

根據提示,到Github庫中搜索對應的動態庫。

注意選取對應的版本。我安裝的OpenCV版本為4.4.0.42,提示需要的動態庫為openh364-1.8.0-win64.dll,在Release頁中找到對應的版本,將下載獲得的dll文件解壓并放在與py文件同級的工程目錄下。

不同OpenCV版本可能需要的支持庫版本也不同,沒有測試,注意看提示就行。

如果考慮通用性也可以將dll所在的路徑加入環境變量Path中。

本示例實現是在Windows平臺下,Linux下應該也是類似的操作,下載對應的h364支持庫文件,并加入到PATH能夠搜索到的地址。

重新運行程序,可以正常顯示圖像,并保存為視頻文件。

用Potplayer之類的播放器打開,可以在屬性中看到,編碼格式的相關信息:

 視頻編碼: H264 - Native D3D9 DXVA Decoder(VLD)

2.3 H265支持

想著用同樣的方法嘗試一下H265編碼。

# fourcc = cv2.VideoWriter_fourcc('H', 'E', 'V', 'C')注釋取消,發現如下錯誤提示:

OpenCV: FFMPEG: tag 0x43564548/'HEVC' is not found (format 'avi / AVI (Audio Video Interleaved)')'

看起來目前預編譯版本的OpenCV是不支持H265編碼的。如果要用H265編碼,需要從源碼編譯,并在編譯過程中添加對應的支持庫。

感謝各位的閱讀!關于“如何利用OpenCV進行H264視頻編碼”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郑州市| 休宁县| 盐亭县| 乌拉特前旗| 库伦旗| 抚州市| 逊克县| 米林县| 西华县| 武乡县| 子洲县| 宝丰县| 游戏| 长垣县| 灵丘县| 三穗县| 芦溪县| 仁布县| 神池县| 乌兰浩特市| 仪陇县| 墨玉县| 扬中市| 灌云县| 应城市| 河南省| 高青县| 上虞市| 无为县| 客服| 延长县| 花垣县| 东阳市| 禄劝| 玉树县| 綦江县| 会同县| 寻甸| 青田县| 商洛市| 绥芬河市|