source = Gst.ElementFactory.make("filesrc", "file-source")
h264parser = Gst.ElementFactory.make("h264parse", "h264-parser")
decoder = Gst.ElementFactory.make("nvv4l2decoder", "nvv4l2-decoder")
streammux = Gst.ElementFactory.make("nvstreammux", "Stream-muxer")
source = Gst.ElementFactory.make("v4l2src","usb-cam-source")
caps_v4l2src = Gst.ElementFactory.make("capsfilter","v4l2src_caps")
vidconvsrc = Gst.ElementFactory.make("videoconvert","convertor_src1")
nvvidconvsrc=Gst.ElementFactory.make("nvvideoconvert","convertor_src2")
caps_vidconvsrc = Gst.ElementFactory.make("capsfilter","nvmm_caps")
streammux = Gst.ElementFactory.make("nvstreammux","Stream-muxer")
这里面的第 3~4 行添加 videoconvert->nvvideoconvert 的元件,最主要是因为 nvvideoconvert 并不支持所有原始格式,例如某些品牌 USB 摄像头常用的 YUYV 这种格式,但是我们需要获得 nvvideoconvert 所能支持的摄像头原始格式,于是 GStreamer 的 videoconvert 就能起到调节的作用。
caps_v4l2src.set_property('caps',Gst.Caps.from_string("video/x-raw, framerate=30/1"))
caps_vidconvsrc.set_property('caps', \ Gst.Caps.from_string("video/x-raw(memory:NVMM)"))
source.set_property('device',args[1])
。。。。
sink.set_property('sync',False)
cd<deepstream< span="">根目录>/sources/deepstream_python_apps/app cd deepstream-test1-usbcam python3 deepstream_test_1_usb.py
sudo apt update 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
nvvidconv_postosd = Gst.ElementFactory.make("nvvideoconvert", "convertor_postosd")
# 创建caps过滤器
caps = Gst.ElementFactory.make("capsfilter", "filter")
caps.set_property("caps", Gst.Caps.from_string("video/x-raw(memory:NVMM), format=I420"))
# 根据输入参数选择使用的编码器,预设为H264
if codec == "H264":
encoder = Gst.ElementFactory.make("nvv4l2h264enc", "encoder")
elif codec == "H265":
encoder = Gst.ElementFactory.make("nvv4l2h265enc", "encoder")
encoder.set_property('bitrate', bitrate)
# 如果是在 Jetson 设备上,执行下面的设定
if is_aarch64():
encoder.set_property('preset-level', 1)
encoder.set_property('insert-sps-pps', 1)
encoder.set_property('bufapi-version', 1)
# 使有效负载将视频编码为RTP数据包
if codec == "H264":
rtppay = Gst.ElementFactory.make("rtph264pay", "rtppay")
elif codec == "H265":
rtppay = Gst.ElementFactory.make("rtph265pay", "rtppay")
# 建立 UDP 接收器
updsink_port_num = 5400
sink = Gst.ElementFactory.make("udpsink", "udpsink")
# 设定接收器的值
sink.set_property('host', '224.224.255.255')
sink.set_property('port', updsink_port_num)
sink.set_property('async', False)
sink.set_property('sync', 1)
# Start streaming
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=%d buffer-size=524288 caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=(string)%s, payload=96 " )" % (updsink_port_num, codec))
factory.set_shared(True)
server.get_mount_points().add_factory("/ds-test", factory) # 设定加载点
# 在DeepStream设备(如Jetson Nano 2GB) cd<deepstream< span="">根目录>/sources/deepstream_python_apps/apps cd deepstream-test1-rtsp-out ln -s ../../../../samples/streams/sample_720p.h264 sample_720.h264 python3 deepstream_test_1_usb.py -i sample_720.h264
少儿编程被越来越多的家长关注,很多媒体和机构也在宣传学习少儿编程的好处,部分宣传比较夸张,诸如“未来人工智能时代,不学习编程就会”导致家长更容易陷入焦虑,到底要不要孩子去学编程呢?
BBC团队拍摄制作、大卫老爷子(david attenborough)担任旁白,汉斯·季默负责配乐。还是熟悉的配方,还是神作的味道。
青少年机器人技术等级考试一二级结构动图。
让我们来跟随兄弟积木(The Brother Brick),一起了解这个套装吧!
在过去,如果你想要开发Android应用,你需要掌握Java或者Kotlin等编程语言,但是现在,Python也可以用来开发Android应用了。
本文介绍Arduino Mega2560开发板的引脚分配图及说明。
最近香橙派推出了它们的香橙派3B、香橙派CM4、香橙派Zero2W,代号和树莓派一模一样。分别对标树莓派的树莓派3B、树莓派CM4、以及树莓派Zero2W。
本实验在Arduino IDE环境下,利用ESP32产生的PWM信号控制多个LED。
Micro:bit的底边有一条金属条,这些是输入/输出引脚(或简称I / O引脚)。
Jetson Nano 推出 2GB 内存版本,不仅承袭了 Jetson Nano 所有 AI 开发环境与 IOT 控制功能,也能学习或开发 Python、OpenCV 与 AI 深度学习、ROS 自动控制等应用。