NVIDIA之opencv硬體編碼輸出rtsp

2021-10-09 07:34:36 字數 1946 閱讀 9436

我們在 jetson 或 dgpu 上使用 python 做 opencv 開發時,會遇到需要把處理過的 mat 編碼輸出到 rtsp,便於視覺化結果,本文介紹相關實現方法

注意原始碼編譯 opencv 的時候,cmake 那一步要把 -d with_gstreamer=on 加上,否則執行不起來

sudo apt-get install libgstrtspserver-1.0-0 gstreamer1.0-rtsp

sudo apt-get install libgirepository1.0-dev

sudo apt-get install gobject-introspection gir1.2-gst-rtsp-server-1.0

#!/usr/bin/env python

import cv2

import gi

gi.require_version('gst', '1.0')

gi.require_version('gstrtspserver', '1.0')

from gi.repository import gobject, gst, gstrtspserver

def main():

# jetson 平台

omxh264enc bitrate=12000000 ! video/x-h264, \

stream-format=byte-stream ! rtph264pay pt=96 ! \

udpsink host=127.0.0.1 port=5400 async=false',

cv2.cap_gstreamer, 0, 30, (1920,1080), true)

# dgpu 平台

# nvv4l2h264enc ! h264parse ! rtph264pay pt=96 ! udpsink host=127.0.0.1 port=5400', \

# cv2.cap_gstreamer, 0, 25, (1280,720), true)

if not out_send.isopened():

print('videowriter not opened')

exit(0)

rtsp_port_num = 8554

server = gstrtspserver.rtspserver.new()

server.props.service = "%d" % rtsp_port_num

server.attach(none)

factory = gstrtspserver.rtspmediafactory.new()

factory.set_launch("(udpsrc name=pay0 port=5400 buffer-size=524288 \

encoding-name=(string)h264, payload=96 \")")

factory.set_shared(true)

server.get_mount_points().add_factory("/ds-test", factory)

# 輸出rtsp碼流資訊

print("\n *** launched rtsp streaming at rtsp://localhost:%d/ds-test ***\n\n" % rtsp_port_num)

cap = cv2.videocapture(0)

while true:

_, mat = cap.read()

out_send.write(mat)

cv2.waitkey(30)

if __name__ == '__main__':

main()

然後構建乙個 rtspserver, 通過 udpsrc 來監聽對應的埠,從而輸出到 rtsp,在客戶端拉流即可檢視。

硬體基礎之電源

電源分為 電壓源和 電流源兩種。電壓源 提供乙個恆定電壓的電源叫電壓源。電流源 提供乙個恆定電流的電源叫電流源。電流源內阻較高才能輸出恆定電流,不管是否有電器使用,採用電流源的電路,都有較高的消耗。源源不斷提供電流。電壓源內阻較低,因此家用採用電壓源。只有開關閉合時才輸出電壓。電壓源 提供乙個恆定電...

硬體電路之開關

開關分為機械開關和電子開關 例如三極體,流控流。由自己內部的電器控制開關 機械開關為普通的開關,在開關閉合或者斷開的一瞬間,會出現尖峰電壓或者浪湧電流,即高電伏。會對後面的負載產生影響。所以一般在後面加上乙個電容來濾波。當5v交流電源接通時,a點的電壓如圖上,對電容進行充電,電容電壓上公升逐漸緩慢,...

開源硬體之「氣」

氣 qi hardware.com 是幾名從開源智慧型手機公司openmoko公司退出的成員建立的開源硬體公司。氣 硬體是開放版權的硬體。氣 公司的目標是向自由軟體開發者提供質量穩定的硬體,這樣他們能夠開發出終端使用者的應用程式。氣 公司的主要承諾就是向自由軟體開發者提供高質量穩定工作的硬體,軟體開...