【bug】 jetson上opencv無法錄制h264本地視頻

在Jetson Orin NX上無法使用opencv直接錄制h264/h265視頻流(h264格式的視頻流才能在瀏覽器播放)

解決:

軟件編碼:需要源碼編譯opencv

1.環境準備

pip uninstall opencv-python
sudo apt install build-essential cmake git python3-dev python3-numpy \
libavcodec-dev libavformat-dev libswscale-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-dev libgtk-3-dev \
libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \
libopencv-dev x264 libx264-dev libssl-dev ffmpeg

2.源碼編譯(大概需要1h)

python -m pip install --no-binary opencv-python opencv-python
import cv2
cap = cv2.VideoCapture("/home/ssa/test_video/20250327_105503.mp4")
while True:ret, img= cap.read()if not ret:print("無法獲取幀")breaklocal_video_path = f"xxxxx.mp4"fourcc = cv2.VideoWriter_fourcc(*'avc1')out = cv2.VideoWriter(local_video_path, fourcc, self.fps, (img.shape[1], img.shape[0]))out.write(img)

avc1是唯一能夠軟件編碼h264的opencv的編碼器

硬件編碼:需要硬件編碼器

1.環境安裝

sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install -y libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base
sudo apt install -y gstreamer1.0-plugins-good gstreamer1.0-plugins-bad 
sudo apt install -y gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc
sudo apt install -y gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa
sudo apt install -y gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 
sudo apt install -y gstreamer1.0-pulseaudio
sudo apt install -y gtk-doc-tools
sudo apt install -y libeigen3-dev libfmt-dev v4l-utils

2.代碼實現

import cv2# 視頻源(攝像頭或文件)
cap = cv2.VideoCapture(0)  # 0表示默認攝像頭
# 或從RTSP流讀取:
# cap = cv2.VideoCapture("rtsp://xxxxx")# 獲取視頻參數
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 自定義視頻文件名
video_filename = "output.mp4"  # 可修改為任意名稱
# 也可以通過用戶輸入來動態設置文件名
# video_filename = input("請輸入保存的視頻文件名:") + ".mp4"# GStreamer輸出管道(使用NVENC H.264硬件編碼)
output_pipeline = (f"appsrc ! video/x-raw, format=BGR ! "f"videoconvert ! video/x-raw, format=I420 ! "f"nvvidconv ! "f"nvv4l2h264enc insert-sps-pps=1 preset-level=1 bitrate=4000000 ! "f"h264parse ! "f"qtmux ! "f"filesink location={video_filename} sync=0"
)# 初始化VideoWriter
out = cv2.VideoWriter(output_pipeline, cv2.CAP_GSTREAMER, 0, fps, (width, height)
)if not out.isOpened():print("Error: 無法打開輸出流")exit()print(f"視頻將保存為: {video_filename}")# 讀取并寫入視頻幀
while cap.isOpened():ret, frame = cap.read()if not ret:breakout.write(frame)cv2.imshow('Frame', frame)if cv2.waitKey(1) & 0xFF == ord('q'):break# 釋放資源
cap.release()
out.release()
cv2.destroyAllWindows()
print(f"視頻已成功保存為: {video_filename}")    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90455.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決http的web服務中與https服務交互的問題

問題背景: 需要在一個http的web服務中直接跟另一個https服務交互,不經過自身后端。 又來到了熟悉的跨域訪問問題。 解決邏輯就是使用nginx轉發,涉及到的文件也就是nginx.conf文件,前面解決minio鏈接時已經有經驗了,但…

網站訪問信息追蹤系統在安全與性能優化中的關鍵作用——網絡安全—仙盟創夢IDE

<?php // 收集訪問信息 $visitorInfo未來之窗 [timestamp > date(Y-m-d H:i:s),ip > $_SERVER[REMOTE_ADDR] ?? unknown,page > $_SERVER[REQUEST_URI] ?? unknown,method > $_SERVER[REQUEST_METHOD] ?? unknown,user_agent > $_SERVER[HTTP_USER_A…

Oracle 時間處理函數和操作符筆記

前言 寫sql時經常用到時間處理函數&#xff0c;我整理了一份Oracle的常用sql筆記,供大家參考。 如果對你有幫助&#xff0c;請點贊支持~ 多謝&#x1f64f; 筆記 -- 1. 獲取當前日期和時間 -- SYSDATE, SYSTIMESTAMP, CURRENT_DATE, CURRENT_TIMESTAMP, LOCALTIMESTAMP SELE…

TDengine時序數據庫 詳解

1. TDengine 簡介 TDengine 是一款 高性能、分布式、支持 SQL 的時序數據庫&#xff08;Time-Series Database, TSDB&#xff09;&#xff0c;專為 物聯網&#xff08;IoT&#xff09;、工業互聯網、金融監控、日志分析 等場景設計。其核心特點包括&#xff1a; 超高性能&…

【IDEA】idea怎么修改注冊的用戶名稱?

文章目錄[toc]問題**方法 1&#xff1a;通過 JetBrains 賬戶網站修改****方法 2&#xff1a;通過 IDEA 內跳轉修改&#xff08;快捷方式&#xff09;****注意事項****補充&#xff1a;修改 IDEA 內的項目級用戶名**如何退出IDEA用戶登錄&#xff1f;問題 在 IntelliJ IDEA 中修…

AR眼鏡重塑外科手術導航:精準“透視”新突破

在現代醫學領域&#xff0c;增強現實&#xff08;AR www.teamhelper.cn &#xff09;技術正以前所未有的方式改變外科手術導航的面貌。通過為醫生提供實時的三維可視化、精準的空間定位和智能交互功能&#xff0c;AR眼鏡正在成為手術室中的重要工具。本文將系統介紹AR眼鏡在手術…

服務端對接 HTTP 接口傳輸圖片 采用base64還是 multipart/form-data

在服務端對接HTTP接口傳輸圖片時&#xff0c;選擇 multipart/form-data 還是 Base64 編碼&#xff0c;需要根據具體場景權衡。以下是詳細對比和建議&#xff1a;1. multipart/form-data 優點 更適合大文件傳輸&#xff1a; 直接以二進制流傳輸圖片&#xff0c;無需編碼/解碼&am…

如何在 Windows 上安裝 MongoDB 及常見問題

MongoDB 是一款 NoSQL 數據庫&#xff0c;在數據管理和存儲方面以其無與倫比的強大功能和多功能性而脫穎而出。該平臺憑借其靈活性、可擴展性和高性能保持著領先優勢&#xff0c;贏得了眾多企業的信賴。在這方面&#xff0c;MongoDB 以及其在 Windows 操作系統中的表現&#xf…

JS與Go:編程語言雙星的碰撞與共生

在編程語言的璀璨星河中&#xff0c;JavaScript&#xff08;簡稱JS&#xff09;與Go語言憑借各自獨特的魅力&#xff0c;成為不同領域的佼佼者。前者以靈活多變的姿態征服了前端世界&#xff0c;后者則以高效穩健的特性在后端領域嶄露頭角&#xff0c;二者的碰撞與共生&#xf…

【開源】WpfMap:一個基于WPF(Windows Presentation Foundation)技術構建的數據可視化大屏展示頁面

文章目錄一、項目概述1.1 項目定位二、適用場景2.1 企業數據展示2.2 監控中心2.3 會議展示三、功能特性3.1 高度自定義3.2 實時更新3.3 豐富的可視化組件3.4 良好的用戶體驗四、技術資源4.1 開源地址一、項目概述 1.1 項目定位 WpfMap是一個基于WPF&#xff08;Windows Prese…

macbook安裝homebrew

homebrew是什么&#xff1f;Homebrew 是 macOS&#xff08;以及 Linux&#xff09;上的一款包管理工具&#xff0c;被稱為 “macOS 缺失的包管理器”&#xff0c;它能幫助用戶輕松安裝、卸載、更新各種命令行工具、開發環境、應用程序等。簡單來說&#xff0c;它的作用類似手機…

ViLT: 無卷積或區域監督的視覺-語言Transformer

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" ViLT: 無卷積或區域監督的視覺-語言Transformer 摘要 視覺與語言預訓練&#xff08;Vision-and-Language Pre-training, VLP&#xff09;在多種聯合視覺與語言的下游任務中顯著提升了性能。目前的 VLP 方法在很…

初識決策樹-理論部分

決策樹 前言 參考了大佬的博客&#xff1a;博客地址 適合分析離散數據&#xff0c;若是連續數據需要轉換成離散數據再做分析(比如圖中的年齡) 結構 決策樹由節點和有向邊組成&#xff1b;節點可分為內部節點和葉節點 內部節點:特征葉節點:類別有向邊:特征的取值范圍 在用決…

opencv--day02--圖像顏色處理及圖像仿射變換

文章目錄前言一、 圖像顏色處理1. 顏色加法1.1 OpenCV加法1.2 numpy加法1.3 顏色加權加法2.顏色空間2.1 RGB顏色空間2.2 HSV顏色空間3. 顏色轉換3.1 讀取的圖片同時轉換3.2 對已有圖片轉換4. 圖像灰度化4.1 灰度圖概念4.2 最大值灰度化4.3 平均值灰度化4.4 加權均值灰度化5. 圖…

第一層nginx訪問url如何透傳到第二層nginx

要讓第一層Nginx將客戶端請求的URL完整透傳到第二層Nginx&#xff0c;關鍵在于正確配置proxy_pass指令及路徑拼接規則。以下是具體配置方法和注意事項&#xff1a; 核心配置原則 proxy_pass指令末尾是否添加/會直接影響URL的透傳方式&#xff1a; 不帶/&#xff1a;會將locatio…

【2025最新畢業設計】外賣點餐小程序(外賣點餐管理系統)

外賣點餐小程序的設計與實現技術大綱&#xff08;Vue.js Element UI&#xff09;需求分析與功能設計用戶需求調研&#xff1a;分析目標用戶群體的核心需求&#xff08;如快速點餐、支付便捷、訂單跟蹤等&#xff09;核心功能模塊劃分&#xff1a;用戶端&#xff08;登錄/注冊、…

兩臺電腦連接交換機,使用其中一臺電腦的網絡上網(NAT轉發)

場景 windows 電腦和 linux電腦連在同一臺交換機上&#xff0c;linux電腦有通過無線網絡。要實現Windows電腦通過交換機共享Linux電腦的無線網絡上網&#xff0c;需將Linux設為網關并進行網絡共享&#xff0c;步驟如下&#xff1a; 一、Linux電腦設置&#xff08;網關配置&…

OpenCV Mat UMat GpuMat Matx HostMem InputArray等設計哲學

一、概覽&#xff1a; GpuMat對應于cuda&#xff1b;HostMem 可以看作是一種特殊的Mat&#xff0c;其存儲對應cuda在主機分配的鎖頁內存&#xff0c;可以不經顯示download upload自動轉變成GpuMat&#xff08;但是和GpuMat并無繼承關系&#xff09;&#xff1b;UMat對應于openc…

ATR2652SGNSS全頻段低噪聲放大器

ATR2652S是一款具有高增益、低噪聲系數的低噪聲放大器芯片。支持GNSS全頻段信號&#xff0c;同時GNSS 的兩個頻段可以應用于GNSS雙頻導航接收機中。 采用先進的 SiGe 工藝設計和制作&#xff0c;工藝穩定&#xff0c;低噪聲放大器在 GNSS 整個頻段內可以獲得非常好的射頻性能&a…

大數據中心——解讀60頁IDC云數據中心機房運維服務解決方案【附全文閱讀】

該方案主要面向云數據中心運營管理者、IT 運維人員、企業決策者等&#xff0c;旨在解決云資源和業務網絡管理難題&#xff0c;提升 IT 資源掌控能力。方案核心是 EVM VirtualViz 仿真可視化系統&#xff0c;它整合多源數據&#xff0c;提供 3D 仿真展示&#xff0c;實現數據中心…