Skip to content

Display RTSP streams from IP Cameras on Samsung Smart TV (Tizen TV)

License

Notifications You must be signed in to change notification settings

vzakharchenko/rtsp-samsung-tv

Repository files navigation

rtsp-samsung-tv

Description

Display RTSP streams from IP Cameras on Samsung smart TV (Tizen TV)

npm version rtsp-samsung-tv CI rtsp-samsung-tv Docker amd64 arm64 armv7

Features

ipport.png, camera1.png, camera4.png

Server Installation

wget -qO-  https://deb.nodesource.com/setup_14.x | bash
sudo apt-get install ffmpeg
npm i pm2 -g
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u ${currentUser} --hp ${HOME}
sudo npm i rtsp-samsung-tv -g
sudo pm2 start `npm root -g`/rtsp-samsung-tv/server.js
sudo pm2 save

open http:\\<SERVER_IP>:3004 (Default Login: admin, Default Password: admin) and add a new Camera and click Save

Run Inside docker container

docker run -d --name=rtsp-samsung-tv  -p 3004:3004 -p 9999-10004:9999-10004  --restart=always vassio/rtsp-samsung-tv:latest

Configuration on Host:

echo "{}" >/opt/channels.json
docker run -d --name=rtsp-samsung-tv  -p 3004:3004 -p 9999-10004:9999-10004  -v /opt/channels.json:/opt/config/channels.json --restart=always vassio/rtsp-samsung-tv:latest

Keycloak Protection

echo "{}" >/opt/channels.json
docker run -d --name=rtsp-samsung-tv  -p 3004:3004 -p 9999-10004:9999-10004  -v /opt/channels.json:/opt/config/channels.json -v  `pwd`/keycloak.json:/opt/config/keycloak.json --restart=always vassio/rtsp-samsung-tv:latest

Install Samsung TV Application(Tizen Application)

  1. install java jdk
  2. install Tizen SDK on your PC https://developer.tizen.org/development/tizen-studio/download
  3. download application source git clone https://github.com/vzakharchenko/rtsp-samsung-tv.git
  4. in "Tizen Studio Package manager" install "Tizen SDK Tools"
  5. "Extension SDK" install "extras"
  6. open "Tizen Studio"
  7. File -> Open Project From File System
  8. open rtsp-samsung-tv/CameraDevice
  9. Enable Development mode on your TV
  10. open Device manager
  11. click "Scan device"
  12. set Connection to "On"
  13. right click on your connection and select "Permit install"
  1. in Tizen studio select project and run it on TV.Channel
  2. setup server ip and port on TV.

Admin UI

Url: http:\\<SERVER_IP>:3004

  • Default Login: admin
  • Password: admin

where:

  • File path to config file.
  • Default Transport Default RTSP Transport. Applicable to all cameras
  • Default RTSP FFmpeg parameters Parameters before "-i". Applicable to all cameras
  • Default Encode FFmpeg parameters Parameters before "-i". Applicable to all cameras
ffmpeg <Default RTSP FFmpeg parameters> -i rtsp://stream <Default Encode FFmpeg parameters>

Camera Specific Columns:

  • Status now on TV.
  • Camera channel number.
  • Camera Mode "1 Camera" : one camera on screen, "4 Cameras" : 4 cameras on one screen.
  • rtsp Streams rtsp streams.
  • Transport Camera RTSP Transport.
  • RTSP FFmpeg parameters Parameters before "-i". Applicable to all cameras
  • Encode FFmpeg parameters Parameters after "-i". Applicable to all cameras
ffmpeg <RTSP FFmpeg parameters> -i rtsp://stream <Encode FFmpeg parameters>

add 1 Camera: camera1.png

Add 4 cameras on one screen: camera4.png

delete Camera

Protect Admin UI using Default Authentication

Default user: admin/admin

Protect Admin UI using keycloak SSO (Optional)

  1. download keycloak.json from the keycloak admin ui.
  2. save keycloak.json to ./config/keycloak.json or /opt/config

example of keycloak.json

{
  "realm": "RTSP",
  "auth-server-url": "https://localhost:8090/auth",
  "ssl-required": "external",
  "resource": "testClient",
  "credentials": {
    "secret": "secret"
  },
  "confidential-port": 0
}

Raspberry Pi Hw acceleration on ffmpeg (Raspbian Lite Image)

  1. build ffmpeg with mmal feature
sudo apt-get install libomxil-bellagio-dev
sudo apt-get install libomxil-bellagio-bin
git clone https://github.com/FFmpeg/FFmpeg
cd FFmpeg
git checkout origin/release/3.2
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-mmal  --enable-omx --enable-omx-rpi --enable-nonfree
sudo make -j4
sudo make install
  1. increase the GPU memory?
  • sudo raspi-config
  • 7 Advanced Options
  • A3 Memory Split
  • set value 256 or more

Voice Control

1. Press VOICE button
2. Say command

List of commands: "Channel Up" (or the same on your language) "Channel Down" (or the same on your language) "1","2","3","4" ... "999"

Remote Control

Generate Samsung Certificate

  1. Open "Certificate Manager"
  2. Add a new Samsung Certificate
  3. Select DeviceType "TV"
  4. Click Next
  5. Type any name and password
  6. Click Ok
  • ⚠ If the samsung account login page does not appear then please reboot your computer.
  1. Login to Samsung Account
  2. Next
  3. Add Individual DUID
  4. Finish

Individual DUID

On TV select "Settings"->"Support"->"About TV"-> Information About Smart Hub-> Unique Device Id