Display RTSP streams from IP Cameras on Samsung smart TV (Tizen TV)
npm install rtsp-samsung-tv

!rtsp-samsung-tv CI
!rtsp-samsung-tv Docker amd64 arm64 armv7

!ipport.png, !camera1.png, !camera4.png
bash
sudo apt-get install ffmpeg
wget -qO- https://getpm2.com/install.sh | bash
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:\\: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" 
- If you see NO DUID For Selected Device

then you need to generate certificate for your TV
14. in Tizen studio select project and run it on TV.Channel  
15. setup server ip and port on TV. 
Admin UI
Url:
`http:\\: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 -i rtsp://stream
`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 -i rtsp://stream
`add 1 Camera:   !camera1.png
Add 4 cameras on one screen:   !camera4.png
delete Camera 
Protect Admin UI using Default Authentication
Default user: admin/adminProtect 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/configexample of keycloak.json
`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
`bash
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
`
2. 
3. increase the GPU memory?
- `bash
sudo raspi-config
``
1. Open "Certificate Manager" 
2. Add a new Samsung Certificate  
3. Select DeviceType "TV" 
4. Click Next 
4. Type any name and password 
5. Click Ok 
6. Login to Samsung Account 
7. Next 
8. Add Individual DUID 
9. Finish