我們在 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公司退出的成員建立的開源硬體公司。氣 硬體是開放版權的硬體。氣 公司的目標是向自由軟體開發者提供質量穩定的硬體,這樣他們能夠開發出終端使用者的應用程式。氣 公司的主要承諾就是向自由軟體開發者提供高質量穩定工作的硬體,軟體開...