Hallo,
seit längerem versuche ich schon die Resourcen des Panasonic TV Geräts TX-58DX730W für Streaming zu nutzen.
Der TV hat einen sehr guten DVBT2 Receiver, und gibt mir insbesondere Zugriff auf ORF1.
Ein Tuner (von zweien) ist als DVB-T SATIP Server eingerichtet.
Das Gerät gibt nur dann einen Stream aus wenn im rtsp request (getestet mit VLC) alle Parameter (freq ... pids) in der richtigen Reihenfolge eingegeben werden.
z.B für ORF1
rtsp://192.168.2.168/?freq=498&bw=8@@@WCF_LITERAL_AMP@@@tmode=32k@@@WCF_LITERAL_AMP@@@mtype=qpsk@@@WCF_LITERAL_AMP@@@gi=116@@@WCF_LITERAL_AMP@@@fec=12@@@WCF_LITERAL_AMP@@@msys=dvbt2@@@WCF_LITERAL_AMP@@@plp=0@@@WCF_LITERAL_AMP@@@t2id=8232@@@WCF_LITERAL_AMP@@@sm=0@@@WCF_LITERAL_AMP@@@pids=0,16,17,18,407,4070,4071,4075
(Nicht alle Parameter sind richtig, werden aber vom Server akzeptiert und automatisch korrigiert).
Selbst zum Tunen/Suchen müssen nahezu alle Parameter (ohne pids) übergeben werden, auch wenn sie noch nicht bekannt sind. Pids werden ja dann dynamisch addiert/gelöscht.
Und alle Parameter müssen gültige Werte nach satip Standard haben.
Deshalb sind alle bisherigen Versuche zum Scannen fehlgeschlagen
Nun habe ich es mit der letzten Version von w_scan_cpp-20220105 versucht, zuerst mit dem gleichen Ergebnis (nichts gefunden).
Mit tcpdump kam heraus, daß nur "fec=..." gefehlt hat.
Dies konnte ich in den wirbelscan src files leicht korrigieren, habe caps_fec=12 als "default FEC" gesetzt in scanner.cpp.
$ diff -u vdr/PLUGINS/src/wirbelscan/scanner.cpp.bak vdr/PLUGINS/src/wirbelscan/scanner.cpp
--- vdr/PLUGINS/src/wirbelscan/scanner.cpp.bak 2022-10-03 14:17:00.897685712 +0200
+++ vdr/PLUGINS/src/wirbelscan/scanner.cpp 2022-10-03 14:18:24.411017279 +0200
@@ -452,7 +452,7 @@
if (crAuto)
caps_fec = 999;
else {
- caps_fec = 0;
+ caps_fec = 12;
dlog(5, "C999 not supported, trying C" + IntToStr(caps_fec) + ".");
}
if (t2Support)
Damit lief der Scan durch und hat alle DVB-T2 Streams gefunden.
Im VLC satip Format Output haben aber wieder 2 Parameter gefehlt: mtype=... und fec=...
Deshalb auch noch entsprechende Änderungen in OutputFormats.cpp gemacht, und auch dort default Werte eingefügt:
$ diff -u OutputFormats.cpp.bak OutputFormats.cpp
--- OutputFormats.cpp.bak 2022-10-03 14:00:59.010976222 +0200
+++ OutputFormats.cpp 2022-10-03 14:18:34.559179351 +0200
@@ -1056,6 +1056,7 @@
else if (c.Modulation == 16) ss << "@@@WCF_LITERAL_AMP@@@mtype=16qam";
else if (c.Modulation == 64) ss << "@@@WCF_LITERAL_AMP@@@mtype=64qam";
else if (c.Modulation == 256) ss << "@@@WCF_LITERAL_AMP@@@mtype=256qam";
+ else ss << "@@@WCF_LITERAL_AMP@@@mtype=qpsk";
if (c.Guard == 4) ss << "@@@WCF_LITERAL_AMP@@@gi=14";
else if (c.Guard == 4) ss << "@@@WCF_LITERAL_AMP@@@gi=18";
@@ -1072,6 +1073,7 @@
else if (c.FEC == 45) ss << "@@@WCF_LITERAL_AMP@@@fec=45";
else if (c.FEC == 56) ss << "@@@WCF_LITERAL_AMP@@@fec=56";
else if (c.FEC == 78) ss << "@@@WCF_LITERAL_AMP@@@fec=78";
+ else ss << "@@@WCF_LITERAL_AMP@@@fec=12";
if (c.DelSys == 0) {
ss << "@@@WCF_LITERAL_AMP@@@msys=dvbt";
Dies ist eine "quick and dirty" Lösung, hat aber erst mal den erhofften Erfolg gebracht, gestartet mit
w_scan_cpp -ft -c DE --satip -V > satip.xspf
Vielleicht hat wirbel einen besseren und sauberen Lösungsvorschlag, der auch die tatsächlichen Parameter erkennt.