docker.videokonverter/tizen-app/INSTALL.md
data a1be045a7d feat: Samsung TV Installation + Streaming-Fix
- Samsung-Zertifikate (author + distributor) fuer TV-App erstellt
- WGT mit Samsung-Signatur auf TV installiert und getestet
- Streaming movflags korrigiert: default_base_moof statt faststart (pipe)
- frag_duration=1s fuer schnelleren Playback-Start auf Samsung TV
- INSTALL.md komplett ueberarbeitet mit Manjaro/Arch-Anleitung
- .gitignore: Tizen Studio workspace/ Ordner ausgeschlossen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 22:25:45 +01:00

195 lines
6.1 KiB
Markdown

# VideoKonverter - Samsung Tizen TV Installation
Die VideoKonverter TV-App auf einem Samsung Smart TV (Tizen) installieren.
## Voraussetzungen
- Samsung Smart TV mit Tizen OS (ab 2017, getestet: Tizen 9.0)
- PC und TV im gleichen Netzwerk
- Samsung Developer Account (kostenlos): https://developer.samsung.com/
- Tizen Studio auf dem PC
## Schritt 1: Tizen Studio installieren
Download: https://developer.tizen.org/development/tizen-studio/download
### Linux (Manjaro/Arch)
```bash
# Installer herunterladen und ausfuehren
chmod +x web-ide_Tizen_Studio_*.bin
./web-ide_Tizen_Studio_*.bin
# Nach Installation: Package Manager CLI nutzen
~/tizen-studio/package-manager/package-manager-cli.bin install \
--accept-license cert-add-on TV-SAMSUNG-Public
# WICHTIG auf Manjaro/Arch: Fake-dpkg Wrapper anlegen
# (Tizen PM prueft dpkg Pakete die auf Arch nicht existieren)
mkdir -p /tmp/fake-dpkg
cat > /tmp/fake-dpkg/dpkg << 'EOF'
#!/bin/bash
if [[ "$*" == *"-l"* ]] || [[ "$*" == *"--list"* ]] || [[ "$*" == *"-s"* ]]; then
for pkg in "$@"; do
[[ "$pkg" != -* ]] && echo "ii $pkg 99.0 amd64 Fake"
done
fi
exit 0
EOF
chmod +x /tmp/fake-dpkg/dpkg
# Dann mit PATH="/tmp/fake-dpkg:$PATH" den Package Manager starten
```
### Wichtige Pfade nach Installation
```
~/tizen-studio/tools/sdb # Smart Development Bridge
~/tizen-studio/tools/ide/bin/tizen # CLI-Tool
~/tizen-studio/tools/certificate-manager/certificate-manager # Certificate Manager GUI
```
## Schritt 2: Samsung Developer Zertifikat erstellen
Das Zertifikat signiert die App fuer den TV. Samsung TVs akzeptieren NUR Samsung-signierte
Zertifikate (nicht Standard-Tizen!).
### Voraussetzung: Samsung Certificate Extension installieren
```bash
# MUSS installiert sein, sonst erscheint "Samsung" nicht als Option!
PATH="/tmp/fake-dpkg:$PATH" ~/tizen-studio/package-manager/package-manager-cli.bin \
install --accept-license cert-add-on
```
### Zertifikat erstellen (Certificate Manager GUI)
1. Certificate Manager starten: `~/tizen-studio/tools/certificate-manager/certificate-manager`
2. **"+" klicken** > **Samsung** waehlen (NICHT Tizen!)
3. **TV** als Geraetetyp waehlen
4. Author-Zertifikat: Key Filename + Author Name eingeben
5. Samsung Developer Account einloggen
6. Distributor-Zertifikat: DUID des TVs eintragen (siehe Schritt 3)
7. **Finish** - Zertifikat wird unter `~/SamsungCertificate/<Profilname>/` gespeichert
**WICHTIG:** Zertifikat sichern! Bei App-Updates muss das gleiche Zertifikat verwendet werden.
Backup liegt in `tizen-app/certs/`.
## Schritt 3: TV vorbereiten (Developer Mode)
1. TV einschalten
2. **Apps** oeffnen (Home > Apps)
3. Ziffern **12345** eingeben (virtuelles Nummernfeld bei neueren Fernbedienungen)
4. Developer Mode **ON** schalten
5. **Host PC IP** eingeben (IP des PCs mit Tizen Studio)
6. **TV neustarten** (wichtig!)
### DUID auslesen (fuer Zertifikat)
```bash
# Erst TV verbinden (Schritt 4), dann:
~/tizen-studio/tools/sdb shell 0 getduid
# Gibt z.B. zurueck: KLCDNTGIJS4OU
```
## Schritt 4: TV verbinden
```bash
# Verbinden (Port 26101 muss offen sein)
~/tizen-studio/tools/sdb connect <TV-IP>
# Pruefen
~/tizen-studio/tools/sdb devices
# Zeigt: <IP>:26101 device <TV-Modell>
```
Falls Verbindung fehlschlaegt:
- Developer Mode aktiviert? PC-IP korrekt eingegeben?
- TV nach Aenderung des Developer Mode neugestartet?
- Port 26101 in Firewall offen?
## Schritt 5: WGT bauen und installieren
### WGT mit Samsung-Zertifikat signieren
```bash
# Sauberes Build-Verzeichnis erstellen (nur App-Dateien!)
mkdir -p /tmp/tizen-build
cp tizen-app/config.xml tizen-app/index.html tizen-app/icon.png /tmp/tizen-build/
# WGT mit Samsung Security Profile signieren
cd /tmp/tizen-build
~/tizen-studio/tools/ide/bin/tizen package -t wgt -s <Profilname> -- /tmp/tizen-build/
```
### Auf TV installieren
```bash
# TV-Name mit sdb devices ermitteln
~/tizen-studio/tools/ide/bin/tizen install -n /tmp/tizen-build/VideoKonverter.wgt -t <TV-Name>
```
Erfolgreiche Ausgabe:
```
Tizen application is successfully installed.
```
### App deinstallieren (falls noetig)
```bash
~/tizen-studio/tools/sdb shell 0 vd_appuninstall vkTVApp001.VideoKonverter
```
## Schritt 6: App starten
1. App erscheint als **"VideoKonverter"** im Apps-Menue des TVs
2. Beim **ersten Start**: Server-IP eingeben (z.B. `192.168.155.12:8080`)
3. Die IP wird gespeichert - beim naechsten Start verbindet die App automatisch
4. Login mit TV-App Benutzerdaten (erstellt in der Admin-Oberflaeche unter `/admin`)
## Wie funktioniert die App?
Die Tizen-App ist nur ein **duenner Wrapper**. Sie macht nichts ausser:
1. Beim ersten Start die Server-Adresse abfragen
2. Weiterleiten auf `http://<Server-IP>/tv/`
3. Ab dann kommt alles vom Docker-Container
**Vorteil:** Bei Software-Updates muss nur der Docker-Container aktualisiert werden.
Die App auf dem TV muss NICHT neu installiert werden.
## Fehlerbehebung
### "Invalid certificate chain" bei Installation
- **Haeufigster Fehler!** Samsung TVs akzeptieren NUR Samsung-signierte Zertifikate
- Im Certificate Manager: "Samsung" waehlen, NICHT "Tizen"
- Samsung Certificate Extension (`cert-add-on`) muss installiert sein
### TV wird nicht gefunden
- Sind PC und TV im gleichen Netzwerk/VLAN?
- Ist Developer Mode auf dem TV aktiviert + TV neugestartet?
- Firewall auf dem PC: Port 26101 offen?
### Video startet langsam / nicht
- Server laeuft? `curl http://<Server-IP>:8080/tv/`
- AV1-Videos brauchen einen TV mit AV1-Unterstuetzung (ab ~2020)
- Streaming nutzt fragmented MP4 (`frag_keyframe+empty_moov+default_base_moof`)
### App startet nicht / weisser Bildschirm
- Richtige Server-IP eingegeben?
- Browser-Cache leeren: App deinstallieren und neu installieren
## Getestete Konfiguration
| Komponente | Version |
|-----------|---------|
| Samsung TV | GQ65Q7FAAUXZG (Tizen 9.0) |
| Tizen Studio | 6.0+ |
| sdb | 4.2.36 |
| tizen CLI | 2.5.25 |
| Host OS | Manjaro Linux (KDE) |
## Links
- Samsung Developer Portal: https://developer.samsung.com/smarttv/develop
- Tizen Studio Download: https://developer.tizen.org/development/tizen-studio/download
- Samsung TV Quick-Start Guide: https://developer.samsung.com/smarttv/develop/getting-started/quick-start-guide.html