simple rtspserver for rk hardware (hardcode)
Go to file
2025-02-14 07:38:00 +08:00
cmake Initialize 2024-05-09 16:31:45 +08:00
configs Initialize 2024-05-09 16:31:45 +08:00
inc update 2025-02-12 11:52:29 +08:00
iqfiles add iqfiles && media pipeline setting 2025-02-14 07:38:00 +08:00
scripts add iqfiles && media pipeline setting 2025-02-14 07:38:00 +08:00
src use dynamic buffer 2025-02-12 17:46:11 +08:00
thirdparty add mipi camera 2025-02-12 05:49:14 +08:00
.gitignore update 2025-02-14 06:19:15 +08:00
.gitmodules Initialize 2024-05-09 16:31:45 +08:00
CMakeLists.txt upadte cmake 2024-05-21 18:56:27 +08:00
LICENSE Initialize 2024-05-09 16:31:45 +08:00
README.md add iqfiles && media pipeline setting 2025-02-14 07:38:00 +08:00

RkCamRtspServer

simple rtspserver for rk hardware

test env

  • rk3588s
  • ubuntu 20.04
  • test mipi camera: ov13850

build && run

./scripts/build_mpp.sh
git submodule update --init
mkdir build && cd build
cmake ..
make -j4
sudo ./RkCamRtspServer

config

config with file configs/config.ini

[log]
level = NOTICE

[video]
width = 640
height = 480
fps = 30        ;not working in MIPI mode, fps depends on your media pipeline && iqfiles && mipi_cis driver
fix_qp = 23     ;[0 - 51] [high - low]
format = YUY2   ;uvcvideo: [MJPEG] [YUY2] | MIPI_CSI: [NV12] [NV16] [NV21] [NV61]
device = /dev/video0

[server]
rtsp_port = 8554
stream_name = unicast
max_buf_size = 200000   ;Push high-resolution or high-quality settings to a larger setting
max_packet_size  = 1500
http_enable = false
http_port = 8000
bitrate = 1440

config demo for uvc

[log]
level = NOTICE

[video]
width = 640
height = 480
fps = 30
fix_qp = 23     
format = YUY2
device = /dev/video0

[server]
rtsp_port = 8554
stream_name = unicast
max_buf_size = 200000
max_packet_size  = 1500
http_enable = false
http_port = 8000
bitrate = 1440

config demo for mipi_csi

[log]
level = NOTICE

[video]
width = 2112
height = 1568
fps = 30
fix_qp = 20    
format = NV12  ; or | NV16 | NV21 | NV61 |
device = /dev/video11

[server]
rtsp_port = 8554
stream_name = unicast
max_buf_size = 500000
max_packet_size  = 1500
http_enable = false
http_port = 8000
bitrate = 1440

function

  • support YUY2 or MJPEG format usb camera.
  • support hardware h264 encode.
  • support NV12 NV16 NV21 NV61 format mipi csi camera.
  • test ov13850 max support 4224x3136@7.5 fps use ov13850_CMK-CT0116_default.json_4224x3136
  • test ov13850 max support 2112x1568@30 fps use ov13850_CMK-CT0116_default.json_2112x1568

Benefits of improvement

  • RkCamRtspServer cpu usage
%Cpu0  :  0.7 us,  0.4 sy,  0.0 ni, 94.4 id,  0.0 wa,  0.0 hi,  4.6 si,  0.0 st
%Cpu1  :  4.3 us,  7.2 sy,  0.0 ni, 88.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  3.7 us,  0.7 sy,  0.0 ni, 95.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.7 us,  4.4 sy,  0.0 ni, 94.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
  • CamRtspServer cpu usage
%Cpu0  : 19.6 us,  1.0 sy,  0.0 ni, 77.3 id,  0.0 wa,  0.0 hi,  2.1 si,  0.0 st
%Cpu1  : 21.6 us,  0.0 sy,  0.0 ni, 78.0 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu2  : 23.7 us,  0.7 sy,  0.0 ni, 75.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 28.0 us,  4.0 sy,  0.0 ni, 67.3 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
%Cpu5  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  1.3 us,  0.7 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us, 11.6 sy,  0.0 ni, 88.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st