본문 바로가기
NVIDIA Jeston/Deepstream

Deepstream Test1 객체 검출결과 RTSP 전송

by makepluscode 2022. 7. 17.
반응형

Deepstream 6.0 RTSP 전송

NVIDIA Xavier NX devkit 에서 Deepstream 6.0 를 이용하여 객체검출 결과를 RTSP 로 전송하는 예제를 실행한다.

본 예제는 엔비디아에서 제공하는 deepstream 6.0 과 deepstream-test1 를 이용하였다.

Deepstream 6.0 test1 예제

테스트 환경

  • NVIDIA Xavier NX devkit (16G emmc module)
  • Jetpack 4.6 (L4T R32.6.1)

Deepstream 6.0 test1

Deepstream 6.0 test1 는 affemodel 로 생성된 Car, Bicycle, Person, Roadsign 4가지 객체를 검출하는 샘플 어플리케이션 이다. deepstream 으로 제작 되었고, gstreamer pipeline 으로 구현되었다.

  1. GstFileSrc
  2. GstH264Parse
  3. nvv4l2decoder
  4. GstNvStreamMux
  5. GstNvInfer
  6. Gstnvvideoconvert
  7. GstNvOsd
  8. GstNvEglTransform
  9. GstEglGlesSink

Deepstream 6.0 test1 예제는 아래의 포스팅을 참고하여 실행한다.

2022.07.13 - [임베디드 컴퓨팅/nVidia Jetson] - [Jetson] Deepstream 6.0 graphviz 그래프 생성

 

[Jetson] Deepstream 6.0 graphviz 그래프 생성

Deepstream 6.0 graphviz 그래프 생성하기 NVIDIA Xavier NX devkit 에서 Deepstream 6.0 의 샘플 어플리케이션의 graphviz 를 생성한다. graphviz 를 이용하면 복잡한 gstreamer pipeline 입출력 관계를 분석하..

makepluscode.tistory.com

Deepstream 6.0 test1 + RTSP 코드작성

Deepstream 6.0 test1 예제에서 후반부의 Egl sink 를 udp sink 로 변경하고, rtsp server 를 이용해서 전송하도록 수정한다. Deepstream 6.0 test1 + rtsp 예제의 전체 코드는 아래 github 를 참고한다.

https://github.com/makepluscode/deepstream-test1-rtsp/commit/2c5c0027f6b80ae0f6a248fb368691122e162a6f

 

Add rtsp pipeline · makepluscode/deepstream-test1-rtsp@2c5c002

Show file tree Hide file tree Showing 2 changed files with 106 additions and 19 deletions.

github.com

Deepstream 6.0 test1 + RTSP 실행

어플리케이션을 실행하기 위해 deepstream 설치 위치에 deepstream-test1-rtsp 을 복제한다.

$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps
$ git clone https://github.com/makepluscode/deepstream-test1-rtsp.git

복제한 디렉토리에서 make 를 수행하고, deepstream-test1-app-rtsp 를 실행한다.

$ cd deepstream-test1-rtsp
$ make
$ ./deepstream-test1-app-rtsp ../../../../samples/streams/sample_qHD.h264

Deepstream 6.0 test1 + RTSP 클라이언트

NVIDIA Xavier NX devkit 와 연결된 PC 에서 VLC 재생기를 사용해서 테스트 했다.

네트워크 스트림 (rtsp://ipaddress/test) 를 열면 다음과 같이 NX devkit 에서 객체검출을 수행하는 결과를 볼 수 있다.

Post-Mortem

  1. NVIDIA Xavier NX devkit 에서 deepstream 6.0 으로 객체검지한 결과를 네트워크로 전송하는 예제.
  2. NVIDIA Xavier NX devkit 에서 실행시 CPU 점유율이 90% 육박하므로 성능개선 필요.
  3. Latencty 를 측정해보지 않았지만, 지연이 상당한 편으로 예상됨. 이또한 개선해야 제품에 적용

참고자료

이 포스팅은 아래 code 를 NX devkit 의 deepstream 6.0 에 맞게 포팅했다. 다른 플랫폼은 아래의 code 를 참고한다.

https://www.codeleading.com/article/67115642873/

 

deepstream c++ rtsp流输出 - 代码先锋网

deepstream c++ rtsp流输出 deepstream 的中文资料太少,官方示例没有给出rtsp输出的简单示例,只是建议参考deepstream_sink_bin.c去实现,折腾了半天,整出了基于deepstream-test1的rtsp输出demo。 环境使用的是

www.codeleading.com

반응형