日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV保存H264视频的问题

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV保存H264视频的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境

  • windows 10 64bit

  • opencv 4.5.3

前言

看到有小伙伴在聊,如何將目標檢測的結果保存成視頻的相關問題?本篇我們就來看看。

opencv保存視頻

在絕大多數的目標檢測項目中,都是使用opencv這個開源的計算機視覺庫來進行圖片、視頻或者攝像頭的讀寫。

關于視頻保存,來看下面的代碼示例

import?cv2cap?=?cv2.VideoCapture('test.mp4')width?=?int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height?=?int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps?=?cap.get(cv2.CAP_PROP_FPS) fourcc?=?int(cv2.VideoWriter_fourcc(*'MJPG'))out?=?cv2.VideoWriter('output.avi',?fourcc,?fps,?(width,??height))while?cap.isOpened():ret,?frame?=?cap.read()if?not?ret:breakout.write(frame)cv2.imshow('frame',?frame)if?cv2.waitKey(1)?==?ord('q'):breakcap.release() out.release() cv2.destroyAllWindows()

主要是VideoWriter對象,這里需要幾個重要參數,輸出文件名、寬width、高height、幀率fps和fourcc。除了fourcc,其它幾項都很好理解。

FourCC是一個4字節碼,用來表示視頻編碼器,網站 fourcc.org 列出了所有可用的編碼器。在VideoWriter中既可以寫成*'MJPG',也可以寫成'M', 'J', 'P', 'G'。但是并不是說,所有的編碼器都可以使用。

使用H264編碼器

在上面代碼的基礎上我們修改一下,使用h264編碼器

import?cv2cap?=?cv2.VideoCapture('test.mp4')width?=?int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height?=?int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps?=?cap.get(cv2.CAP_PROP_FPS) fourcc?=?int(cv2.VideoWriter_fourcc(*'H264'))out?=?cv2.VideoWriter('output.mp4',?fourcc,?fps,?(width,??height))#?后面代碼省略了

執行代碼后,報錯了

OpenCV:?FFMPEG:?tag?0x34363248/'H264'?is?not?supported?with?codec?id?27?and?format?'mp4?/?MP4?(MPEG-4?Part?14)' OpenCV:?FFMPEG:?fallback?to?use?tag?0x31637661/'avc1'Failed?to?load?OpenH264?library:?openh264-1.8.0-win64.dllPlease?check?environment?and/or?download?library:?https://github.com/cisco/openh264/releases[libopenh264?@?000001fe3bfcb240]?Incorrect?library?version?loaded [ERROR:0]?global?/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp?(2774)?open?Could?not?open?codec?libopenh264,?error:?Unspecified?error [ERROR:0]?global?/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp?(2791)?open?VIDEOIO/FFMPEG:?Failed?to?initialize?VideoWriter

從錯誤信息中可以看到,H264字節碼并不被支持,自動幫你替換成了avc1,opencv默認使用ffmpeg框架來處理視頻,但是ffmpeg并沒有h264解碼器。報錯之外,還提供了一個解決方案,那就是去使用cisco開源的openh264。

接下來去站點 https://github.com/cisco/openh264/releases 下載1.8.0版本的dll文件,并和源碼文件放在同一級目錄,然后將fourcc也改為avc1,執行代碼

opencv videowriter h264

看到,報錯信息不見了,針對生成的mp4文件,使用ffmpeg命令查看其信息

Stream?#0:0(und):?Video:?h264?(Constrained?Baseline)?(avc1?/?0x31637661),?yuv420p,?1440x1080,?538?kb/s,?29.92?fps,?29.92?tbr,?29917?tbn,?59834?tbc?(default)

可以看到,視頻編碼確實是h264。

為什么不內置h264

這主要是許可證的問題,libx264是基于GPL的,而ffmpeg要使用libx264的話,必須--enable-gpl,而opencv則用的是MIT許可。具體的,可以看看這個鏈接 https://github.com/opencv/opencv-python/issues/299

總結

以上是生活随笔為你收集整理的OpenCV保存H264视频的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久极品 | av鲁丝一区鲁丝二区鲁丝三区 | 午夜毛片视频 | 日韩九九九 | 9.1成人看片免费版 日韩经典在线 | 越南黄色一级片 | 叼嘿视频在线免费观看 | 中文字幕日韩人妻在线视频 | 黄色免费视频观看 | 青青草91 | 人妻熟女一区二区aⅴ水 | a毛片在线免费观看 | 日本免费一区二区三区四区 | 九九热色| 美脚の诱脚舐め脚视频播放 | 淫视频在线观看 | 少妇真人直播免费视频 | 国产一区在线视频观看 | 丁香四月婷婷 | 亚洲AV无码一区二区伊人久久 | 午夜黄色福利 | 免费在线视频你懂的 | 午夜视频色 | www亚洲视频 | 国产91视频在线 | 又黄又爽又色的视频 | 在线观看污污网站 | 亚洲伊人av| 国产一级二级 | 亚洲一区二区国产 | 性欧美成人播放77777 | 日韩在线电影一区 | 伊人宗合| 成人精品一区日本无码网 | 正在播放老肥熟妇露脸 | 好看的中文字幕av | 奶水旺盛的少妇在线播放 | 国产三级在线播放 | 色撸撸在线 | 久久久精品美女 | wwwxx国产| 大尺度做爰呻吟舌吻网站 | 69超碰| 国产在线999 | 日韩在线免费观看视频 | 免费a网站 | 四虎最新网址在线观看 | 亚洲激情专区 | 国产suv一区二区 | 麻豆区1免费 | 亚洲高清自拍 | 国产精品不卡在线观看 | 强行无套内谢大学生初次 | 91精品综合久久久久久 | 色天使在线视频 | 色哟哟在线播放 | 污污在线看 | 青娱乐在线免费观看 | 成年人国产 | 亚洲蜜桃视频 | www.好吊色| 国产麻豆一级片 | 艳妇臀荡乳欲伦交换gif | 欧美性生交大片免费看app麻豆 | 原创av| 91正在播放 | 国产欧美一区二区在线观看 | 双性尿奴穿贞c带憋尿 | 婷婷激情图片 | x88av在线 | 成人h动漫精品一区二区下载 | 久艹av| 18无码粉嫩小泬无套在线观看 | 国产一级二级三级在线 | 亚洲精品久久久久avwww潮水 | 欧美 日韩 国产 在线观看 | 亚洲色图校园春色 | 亚洲二区一区 | 激情片网站| 中文字幕少妇 | 黄色资源在线观看 | 欧美一级黄色片视频 | 青青草公开视频 | 手机av在线看 | 福利在线播放 | 一本一道无码中文字幕精品热 | 国产日韩一区二区在线 | 欧美激情视频网 | 国产一级高清视频 | 冲田杏梨 在线 | 在线视频黄| 欧美色综合 | 欧美肥老妇 | 少妇高潮一区二区三区在线 | 免费观看国产精品 | 九九久久国产视频 | www.一区二区三区 | 精品肉丝脚一区二区三区 | 美女在线播放 |