RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
The RDKC Media Server is much more than a multi-format, multi-protocol server that delivers your media rich content across multiple screens and platforms. The RDK camera software runs on RPi-3 device. With this RTSP streaming we able to play live streaming content in VLC player. This page dedicated to bringing up and validation of RMS functionality with RTSP streaming in RPI-3.
Refer below link to build camera image
RDK-C Build Instruction for RPI-3 with Dunfell branch
$ bzcat "Image Name" | sudo dd of="Device Name" bs=4M iflag=fullblock oflag=direct conv=fsync Example: bzcat rdk-generic-camera-image_default_20201127105606.rootfs.wic.bz2 | sudo dd of=/dev/sdc bs=4M iflag=fullblock oflag=direct conv=fsync
STEP 1:
Add require SSID and PSK in /etc/wpa_supplicant.conf file in below format
network={
ssid="username"
psk="password"
}
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 network={ ssid="XXXX" psk="YYYYYYYYY" }
STEP 2:
Reboot the Target
After Reboot don't do step 1 and 2.
Note : Step 1 & 2 is only applicable for fresh target boot-up with new image.
STEP 3:
Modify needed resolution in rms configuration file
Supported Resolution:
SD:
Width - 640 , Height - 480
Width - 720 , Height - 576
HD:
Width - 1280 , Height - 720
FULL HD :
Width - 1920 , Height - 1080
Modify resolution in below configuration file
cd /usr/local/rms/bin
vi rms.conf
RRSIP=XXX.XXX.XXX.XXX RRSPORT=81 ROOMID=rpi0 RRSSSL=0 WIDTH=1280 HEIGHT=72
After resolution modification need to reboot the target.
Note: This step is not necessary,it is depends on your resolution validation.
STEP 4:
WiFi connection is must needed for RMS validation.
Check WiFi connection by using below command.
ifconfig
root@raspberrypi3-rdk-camera:~# ifconfig eth0 Link encap:Ethernet HWaddr B8:27:EB:87:67:91 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:89842 errors:0 dropped:0 overruns:0 frame:0 TX packets:89842 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:25639748 (24.4 MiB) TX bytes:25639748 (24.4 MiB) wlan0 Link encap:Ethernet HWaddr B8:27:EB:D2:32:C4 inet addr:192.168.43.146 Bcast:192.168.43.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:44 errors:0 dropped:0 overruns:0 frame:0 TX packets:103 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4484 (4.3 KiB) TX bytes:10216 (9.9 KiB)
STEP 5:
check loaded module by using below command
lsmod
root@raspberrypi3-rdk-camera:~# lsmod Module Size Used by bcm2835_v4l2 40563 0 v4l2_common 4809 1 bcm2835_v4l2 videobuf2_vmalloc 6264 1 bcm2835_v4l2 videobuf2_memops 1528 1 videobuf2_vmalloc videobuf2_v4l2 12640 1 bcm2835_v4l2 videobuf2_core 27389 2 bcm2835_v4l2,videobuf2_v4l2 videodev 154457 4 v4l2_common,videobuf2_core,bcm2835_v4l2,videobuf2_v4l2 media 23307 1 videodev brcmfmac 258239 0 brcmutil 7590 1 brcmfmac snd_bcm2835 21405 0 cfg80211 492836 1 brcmfmac snd_pcm 79872 1 snd_bcm2835 rfkill 19936 3 cfg80211 snd_timer 20294 1 snd_pcm snd 52949 3 snd_timer,snd_bcm2835,snd_pcm lirc_rpi 6840 0 lirc_dev 7533 1 lirc_rpi uio_pdrv_genirq 3469 0 uio 8703 1 uio_pdrv_genirq fixed 2876 0 sch_fq_codel 9662 2 ipv6 384101 18
STEP 6:
check camera device there or not by using below command
ls /dev/video0
root@raspberrypi0-rdk-camera:~# ls /dev/video0 /dev/video0
STEP 7:
Check mediastreamer and rms binaries are running or not before RTSP streaming validation.
ps -Af | grep media
root@raspberrypi3-rdk-camera:~# ps -Af | grep media root 197 1 13 10:57 ? 00:04:40 mediastreamer root 1007 1 3 10:57 ? 00:01:05 ./rdkcmediaserver ../config/config.lua root 10959 1943 0 11:32 ttyS0 00:00:00 grep media
STEP 8:
Enter into the Telnet console with telnet command
telnet localhost 1222
root@raspberrypi3-rdk-camera:~# telnet localhost 1222 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
After entering the telnet console need to stop webrtc streaming, so we should check webrtc status with "listconfig" command.
listconfig Command entered successfully! Run-time configuration dash: [] hds: [] hls: [] metalistener: [] mss: [] process: [] pull: -- configId: 1 localStreamName: stream2 status: current: description: Streaming uniqueStreamId: 1 uri: sercom://0 push: [] record: [] webrtc: -- configId: 2 roomid: rpi0 rrsip: 18.224.54.11 rrsport: 81
If the webrtc detail is available in listconfig, we need to stop webrtc with "stopwebrtc" command
stopwebrtc Command entered successfully! Stopped WebRTC Negotiation Service
After did the stopwebrtc, check the listconfig
listconfig Command entered successfully! Run-time configuration dash: [] hds: [] hls: [] metalistener: [] mss: [] process: [] pull: -- configId: 1 localStreamName: stream2 status: current: description: Streaming uniqueStreamId: 1 uri: sercom://0 push: [] record: [] webrtc: []
STEP 9:
At that same telnet console,need to give the below command for RTSP streaming
pushStream uri=rtsp://camera_ip:5544 localStreamName=stream2
Example:
pushStream uri=rtsp://192.168.43.146:5544 localStreamName=stream2
pushStream uri=rtsp://192.168.43.146:5544 localStreamName=stream2 Command entered successfully! Local stream stream2 enqueued for pushing to rtsp://192.168.43.146:5544 as stream2 configId: 4 forceTcp: false keepAlive: true localStreamName: stream2 targetStreamName: stream2 targetStreamType: live targetUri: fullUri: rtsp://192.168.43.146:5544 port: 5544 scheme: rtsp
STEP 10:
On VLC player, for RTSP streaming
need to enter media → Open Network Stream option and then give rtsp URL to play streaming content in VLC
Example :rtsp://192.168.43.146:5544/stream2
We can able to see the live streaming content on VLC Player.
( OR )
On PC, Able to play the camera live streaming content with the below gstreamer pipeline,before trying this pipeline we should install gstreamer specific packages.
gst-launch-1.0 rtspsrc location=rtsp://camera_ip:5544/stream2 ! rtph264depay name=demux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
Example:
gst-launch-1.0 rtspsrc location=rtsp://192.168.43.146:5544/stream2 ! rtph264depay name=demux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink