传世手游新开服网站,上传网站到google,wordpress 备案信息,制作公众号网站开发大家好#xff0c;我是虎哥#xff0c;今天找了一套海康的相机#xff0c;想后续测试一下DeepStream用网络相机RTSP流做输入看看后续目标识别和分类。但是还是想先实时看看视频#xff0c;当然#xff0c;可以选择VLC去查看#xff0c;顺道我也用GStreamer 来测试了一下我是虎哥今天找了一套海康的相机想后续测试一下DeepStream用网络相机RTSP流做输入看看后续目标识别和分类。但是还是想先实时看看视频当然可以选择VLC去查看顺道我也用GStreamer 来测试了一下并且对比了TX1核心模块下CPU解码和GPU解码资源占用情况分享给大家也是自己做个笔记总结。 我自己找到海康相机的图像尺寸是1280X720的采用了H.264的压缩。而且我自己系统安装VLC播放器后没法播放网络流搜了半天没有解决所以还是老实搞定GStreamer 测试。
目录
1、显示网络相机RTSP流CPU解码
1.1保存一帧照片
1.2 显示NoMachine终端avdec_h264 CPU解码
1.3 avdec_h264 插件基本信息
2、TX1中GPU 硬件解码
1.1 omxh264dec 基本信息
1.2 解码显示 1、显示网络相机RTSP流CPU解码
#playbin 插件播放 需要显示器支持 NoMachine终端不显示
gst-launch-1.0 playbin uri rtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream
#子码流取流:
#playbin 插件播放 需要显示器支持 NoMachine终端不显示
gst-launch-1.0 playbin uri rtsp://admin:abcd1234192.168.11.68:554/h264/ch1/sub/av_stream
1.1保存一帧照片
#rtspsrc 指定数据来源类似之前的v4l2 Receive data over the network via RTSP (RFC 2326)
#location 数据来源URL需要可以使用playbin能播放
#rtph264depay 从RTSP数据流转接成H264 video Extracts H264 video from RTP packets (RFC 3984)
#avdec_h264 H.264解码 不是所有平台都有先要查一下自己平台是否有这个插件
#h264parse 分析和缓冲H.264数据流 Parses H.264 streams
#videorate 调整帧率优化视频流 Drops/duplicates/adjusts timestamps on video frames to make a perfect stream
#jpegenc 编码gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
! rtph264depay ! h264parse ! avdec_h264 \
! videorate ! jpegenc ! filesink location./file_1280_720_img-1.jpg
1.2 显示NoMachine终端avdec_h264 CPU解码
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
! rtph264depay ! h264parse ! avdec_h264 \
! videorate ! xvimagesink #第1种 CPU 解码 不进行调整帧率
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
latency7 \
! rtph264depay ! h264parse \
! avdec_h264 \
! xvimagesink
#第2种 CPU 解码 进行调整帧率
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
latency7 \
! rtph264depay ! h264parse \
! avdec_h264 ! videorate \
! xvimagesink
#第3种 CPU 解码 不进行调整帧率 不适用latency cap
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
! rtph264depay ! h264parse \
! avdec_h264 \
! xvimagesink
#第4种 CPU 解码 不进行调整帧率 sync 关闭
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
latency7 \
! rtph264depay ! h264parse \
! avdec_h264 \
! xvimagesink syncfalse
默认系统资源 第1种 CPU 占用明显增高画面流畅度还算可以接受 第2种 CPU 占用明显增高画面流畅度还算可以接受与第一种差别不大 第3种 CPU 占用明显增高画面流畅度还算可以接受但是延时明显好几秒 第4种 CPU 占用明显增高画面流畅度还算可以接受也基本没有延时 1.3 avdec_h264 插件基本信息
nvidiaubuntu:~$ gst-inspect-1.0 avdec_h264
Pad Templates:SRC template: srcAvailability: AlwaysCapabilities:video/x-rawformat: { (string)I420, (string)YUY2, (string)RGB, (string)BGR, (string)Y42B, (string)Y444, (string)YUV9, (string)Y41B, (string)GRAY8, (string)RGB8P, (string)I420, (string)Y42B, (string)Y444, (string)UYVY, (string)NV12, (string)NV21, (string)ARGB, (string)RGBA, (string)ABGR, (string)BGRA, (string)GRAY16_BE, (string)GRAY16_LE, (string)A420, (string)RGB16, (string)RGB15, (string)I420_10BE, (string)I420_10LE, (string)I422_10BE, (string)I422_10LE, (string)Y444_10BE, (string)Y444_10LE, (string)GBR, (string)GBR_10BE, (string)GBR_10LE, (string)A420_10BE, (string)A420_10LE, (string)A422_10BE, (string)A422_10LE, (string)A444_10BE, (string)A444_10LE, (string)GBRA, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRx, (string)I420_12BE, (string)I420_12LE, (string)I422_12BE, (string)I422_12LE, (string)Y444_12BE, (string)Y444_12LE, (string)GBR_12BE, (string)GBR_12LE, (string)GBRA_12BE, (string)GBRA_12LE }SINK template: sinkAvailability: AlwaysCapabilities:video/x-h264alignment: austream-format: { (string)avc, (string)byte-stream }
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:SINK: sinkPad Template: sinkSRC: srcPad Template: src 2、TX1中GPU 硬件解码
1.1 omxh264dec 基本信息
nvidiaubuntu:~$ gst-inspect-1.0 omxh264dec
nvbuf_utils: Could not get EGL display connection
Factory Details:Rank primary 10 (266)Long-name OpenMAX H.264 Video DecoderKlass Codec/Decoder/VideoDescription Decode H.264 video streamsAuthor Sebastian Dröge sebastian.droegecollabora.co.uk
Plugin Details:Name omxDescription GStreamer OpenMAX Plug-insFilename /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstomx.soVersion 1.2.3License LGPLSource module gstreamerSource release date 2014-02-08Binary package GStreamer source releaseOrigin URL Unknown package origin
Pad Templates:SINK template: sinkAvailability: AlwaysCapabilities:video/x-h264parsed: truealignment: austream-format: byte-streamwidth: [ 1, 2147483647 ]height: [ 1, 2147483647 ]SRC template: srcAvailability: AlwaysCapabilities:video/x-raw(memory:NVMM)width: [ 1, 2147483647 ]height: [ 1, 2147483647 ]framerate: [ 0/1, 2147483647/1 ]video/x-rawwidth: [ 1, 2147483647 ]height: [ 1, 2147483647 ]framerate: [ 0/1, 2147483647/1 ]
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:SINK: sinkPad Template: sinkSRC: srcPad Template: src
1.2 解码显示
#第1种 GPU 解码 不使用latency cap
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink
#第2种 GPU 解码 使用latency cap
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
latency7 \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink
#第3种 GPU 解码 使用latency cap关闭显示syncfalse
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
latency7 \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink syncfalse
#第4种 GPU 解码 不使用latency cap关闭显示syncfalse
gst-launch-1.0 rtspsrc \
locationrtsp://admin:abcd1234192.168.11.68:554/h264/ch1/main/av_stream \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink syncfalse
第1种视频存在明显延时 第2种会不断打印报警并且延时明显 第3种没有报警视频流畅没有延时 第4种与第3种没有什么区别 以上就是我今天要分享的内容。纠错,疑问,交流: 911946883qq.com