廳網(wǎng)站集約化建設(shè)長沙百度搜索排名
? ? ? 大家好,我是虎哥,今天找了一套海康的相機(jī),想后續(xù)測(cè)試一下DeepStream用網(wǎng)絡(luò)相機(jī)RTSP流做輸入看看后續(xù)目標(biāo)識(shí)別和分類。但是還是想先實(shí)時(shí)看看視頻,當(dāng)然,可以選擇VLC去查看,順道我也用GStreamer 來測(cè)試了一下,并且對(duì)比了TX1核心模塊下,CPU解碼和GPU解碼資源占用情況,分享給大家,也是自己做個(gè)筆記總結(jié)。
????????我自己找到??迪鄼C(jī)的圖像尺寸是1280X720的,采用了H.264的壓縮。而且,我自己系統(tǒng)安裝VLC播放器后沒法播放網(wǎng)絡(luò)流,搜了半天沒有解決,所以還是老實(shí)搞定GStreamer 測(cè)試。
目錄
1、顯示網(wǎng)絡(luò)相機(jī)RTSP流CPU解碼
1.1保存一幀照片
1.2 顯示(NoMachine終端)avdec_h264 CPU解碼
1.3 avdec_h264 插件基本信息
2、TX1中GPU 硬件解碼
1.1 omxh264dec 基本信息
1.2 解碼顯示
1、顯示網(wǎng)絡(luò)相機(jī)RTSP流CPU解碼
#playbin 插件播放 需要顯示器支持 NoMachine終端不顯示
gst-launch-1.0 playbin uri= rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream
#子碼流取流:
#playbin 插件播放 需要顯示器支持 NoMachine終端不顯示
gst-launch-1.0 playbin uri= rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/sub/av_stream
1.1保存一幀照片
#rtspsrc 指定數(shù)據(jù)來源,類似之前的v4l2 Receive data over the network via RTSP (RFC 2326)
#location 數(shù)據(jù)來源URL,需要可以使用playbin能播放
#rtph264depay 從RTSP數(shù)據(jù)流轉(zhuǎn)接成H264 video Extracts H264 video from RTP packets (RFC 3984)
#avdec_h264 H.264解碼 不是所有平臺(tái)都有,先要查一下自己平臺(tái)是否有這個(gè)插件
#h264parse 分析和緩沖H.264數(shù)據(jù)流 Parses H.264 streams
#videorate 調(diào)整幀率,優(yōu)化視頻流 Drops/duplicates/adjusts timestamps on video frames to make a perfect stream
#jpegenc 編碼gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.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 \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
! rtph264depay ! h264parse ! avdec_h264 \
! videorate ! xvimagesink
#第1種 CPU 解碼 不進(jìn)行調(diào)整幀率
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
latency=7 \
! rtph264depay ! h264parse \
! avdec_h264 \
! xvimagesink
?
#第2種 CPU 解碼 進(jìn)行調(diào)整幀率
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
latency=7 \
! rtph264depay ! h264parse \
! avdec_h264 ! videorate \
! xvimagesink
?
#第3種 CPU 解碼 不進(jìn)行調(diào)整幀率 不適用latency cap
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
! rtph264depay ! h264parse \
! avdec_h264 \
! xvimagesink
?
#第4種 CPU 解碼 不進(jìn)行調(diào)整幀率 sync 關(guān)閉
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
latency=7 \
! rtph264depay ! h264parse \
! avdec_h264 \
! xvimagesink sync=false
默認(rèn)系統(tǒng)資源
?第1種: CPU 占用明顯增高,畫面流暢度還算可以接受
?第2種: CPU 占用明顯增高,畫面流暢度還算可以接受,與第一種差別不大
第3種: CPU 占用明顯增高,畫面流暢度還算可以接受,但是延時(shí)明顯好幾秒
?第4種: CPU 占用明顯增高,畫面流暢度還算可以接受,也基本沒有延時(shí)
1.3 avdec_h264 插件基本信息
nvidia@ubuntu:~$ gst-inspect-1.0 avdec_h264
Pad Templates:SRC template: 'src'Availability: 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: 'sink'Availability: AlwaysCapabilities:video/x-h264alignment: austream-format: { (string)avc, (string)byte-stream }
?
Element has no clocking capabilities.
Element has no URI handling capabilities.
?
Pads:SINK: 'sink'Pad Template: 'sink'SRC: 'src'Pad Template: 'src'
2、TX1中GPU 硬件解碼
1.1 omxh264dec 基本信息
nvidia@ubuntu:~$ 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.droege@collabora.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: 'sink'Availability: AlwaysCapabilities:video/x-h264parsed: truealignment: austream-format: byte-streamwidth: [ 1, 2147483647 ]height: [ 1, 2147483647 ]SRC template: 'src'Availability: 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: 'sink'Pad Template: 'sink'SRC: 'src'Pad Template: 'src'
1.2 解碼顯示
#第1種 :GPU 解碼 不使用latency cap
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink
?
#第2種 :GPU 解碼 使用latency cap
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
latency=7 \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink
?
#第3種 :GPU 解碼 使用latency cap,關(guān)閉顯示sync=false
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
latency=7 \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink sync=false
?
#第4種 :GPU 解碼 不使用latency cap,關(guān)閉顯示sync=false
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
! rtph264depay ! h264parse \
! omxh264dec \
! videoconvert \
! xvimagesink sync=false
第1種:視頻存在明顯延時(shí)
?第2種:會(huì)不斷打印報(bào)警,并且延時(shí)明顯
?第3種:沒有報(bào)警,視頻流暢,沒有延時(shí)
第4種:與第3種沒有什么區(qū)別
以上就是我今天要分享的內(nèi)容。糾錯(cuò),疑問,交流:?911946883@qq.com