Re: LiveTV funktioniert nicht
Verfasst: Fr 03 Jan 2014, 18:49
Hallo deerhunter,
keine neuen Erkenntnisse, aber eine Spielerei...
Ich hatte die nhttpd /control api doku wohl schon lange nicht mehr gelesen.
Dort habe ich heute einen "neuen", interessanten Parameter gefunden:
http://dbox/control/build_live_url
Die Ausgabe ist beispielsweise sowas:
http://dbox:31339/0,0x0064,0x0065,0x0066
also die Livebild-Url für den aktuellen Sender.
So kann man sich das Auslesen der PIDs, das Umrechnen in hexadezimal und das zusammenbasteln der URL sparen.
Ich hab damit was gebatcht.
Mit dem Batch kann man per Eingabe oder per Parameter die Wiedergabe des Livebildes eines angegebenen oder des aktuellen Senders starten.
Alternativ kann man sich eine komplette Senderliste als txt-Datei erzeugen lassen, damit man weiß, was man ansehen könnte.
Das ist weit entfernt vom Komfort den NeutrinoTV bietet oder auch nur überhaupt ein Programm zu sein und wird es auch bleiben.
Es ist einfach nur eine Eingabehilfe um die Wiedergabe mit VLC zu starten.
Code
Obigen Code kopieren und als Batchdatei speichern, beispielsweise als LiveTV.cmd.
Vor der Nutzung muss bei :config noch Folgendes angepasst werden:
1. Die IP oder der Netbios-Name der box
set boxip=dbox2 (Beispielsweise: set boxip=192.168.0.98)
2. Der Pfad zu Wget (wget.exe)
set wget_pfad=C:\Program Files (x86)\Tools\WGET
3. Der Pfad zu VLC (vlc.exe)
set vlc_pfad=C:\Program Files (x86)\VideoLAN\VLC
Falls VLC nicht jedesmal beendet werden soll, sollte diese Zeile auskommentiert werden:
tskill.exe vlc /a > nul
also REM tskill.exe vlc /a > nul
Das ist beispielsweise sinnvoll, wenn VLC als Dienst eingerichtet ist.
Wget
Falls man Wget noch nicht haben sollte, dann findet man es hier:
http://sourceforge.net/projects/gnuwin3 ... /1.11.4-1/
Wget muss nicht installiert werden, es reicht, wenn man die nötigen Dateien in einen Ordner kopiert.
Benötigt werden:
wget.exe
aus wget-1.11.4-1-bin.zip
libeay32.dll
libiconv2.dll
libintl3.dll
libssl32.dll
aus wget-1.11.4-1-dep.zip
Mit Wget lassen sich Webseiten per Eingabeaufforderung aufrufen und lokal speichern.
Hier wird es benutzt um die Controls des nhttpd aufzurufen und damit die box abzufragen und zu steuern.
Gruß Frank
keine neuen Erkenntnisse, aber eine Spielerei...
Ich hatte die nhttpd /control api doku wohl schon lange nicht mehr gelesen.
Dort habe ich heute einen "neuen", interessanten Parameter gefunden:
http://dbox/control/build_live_url
Die Ausgabe ist beispielsweise sowas:
http://dbox:31339/0,0x0064,0x0065,0x0066
also die Livebild-Url für den aktuellen Sender.
So kann man sich das Auslesen der PIDs, das Umrechnen in hexadezimal und das zusammenbasteln der URL sparen.
Ich hab damit was gebatcht.
Mit dem Batch kann man per Eingabe oder per Parameter die Wiedergabe des Livebildes eines angegebenen oder des aktuellen Senders starten.
Alternativ kann man sich eine komplette Senderliste als txt-Datei erzeugen lassen, damit man weiß, was man ansehen könnte.
Das ist weit entfernt vom Komfort den NeutrinoTV bietet oder auch nur überhaupt ein Programm zu sein und wird es auch bleiben.
Es ist einfach nur eine Eingabehilfe um die Wiedergabe mit VLC zu starten.
Code: Alles auswählen
@echo off
:config
set boxip=dbox
set wget_pfad=C:\Program Files (x86)\Tools\WGET
set vlc_pfad=C:\Program Files (x86)\VideoLAN\VLC
:parameter
set sender=%~1
if "%sender%"=="?" goto hilfe
if "%sender%"=="-?" goto hilfe
if "%sender%"=="/?" goto hilfe
if "%sender%"=="h" goto hilfe
if "%sender%"=="-h" goto hilfe
if "%sender%"=="/h" goto hilfe
if "%sender%"=="help" goto hilfe
if "%sender%"=="-help" goto hilfe
if "%sender%"=="/help" goto hilfe
goto vlc_beenden
:hilfe
echo.
echo Syntaxbeispiele:
echo ---------------
echo %~nx0
echo (verwendet den aktuellen Sender)
echo.
echo %~nx0 ZDF
echo (verwendet ZDF)
echo.
echo %~nx0 "Das Erste"
echo (Sendernamen mit Leerzeichen muessen in Anfuehrungszeichen)
echo.
echo %~nx0 senderliste
echo (speichert alle Sendernamen in Sender.txt)
echo.
goto ende
:vlc_beenden
echo.
echo VLC wird beendet...
tskill.exe vlc /a > nul
ping localhost -n 2 > nul
if "%sender%"=="senderliste" goto senderliste
if "%sender%"=="" goto frage
if not "%sender%"=="" goto umschalten
:senderliste
if exist Sender.txt del Sender.txt
"%wget_pfad%\wget.exe" "http://%boxip%/control/channellist" -q -O Sender1.tmp
for /f "tokens=1*" %%G in (Sender1.tmp) do echo %%H>> Sender2.tmp
type Sender2.tmp | sort > Sender.txt
echo.
echo Die Liste aller Sender wurde als Sender.txt gespeichert.
goto ende
:frage
echo.
echo Umschalten?
echo.
echo Falls Umschalten erwuenscht, dann Sendernamen ohne Anfuehrungszeichen eingeben,
echo falls nicht, dann nur [Enter].
echo.
set /p sender=
if "%sender%"=="" goto url_ermitteln
goto umschalten
:umschalten
echo.
echo Es wird auf %sender% umgeschaltet...
"%wget_pfad%\wget.exe" "http://%boxip%/control/zapto?name=%sender%" -q -O nul
ping localhost -n 2 > nul
:url_ermitteln
"%wget_pfad%\wget.exe" "http://%boxip%/control/build_live_url" -q -O url.tmp
set /p url=< url.tmp
ping localhost -n 2 > nul
:wiedergabe
if "%url%"=="" goto fehler
if "%url%"=="http://%boxip%:31339/0,0x0000,0x0000,0x0000" goto fehler
echo.
echo VLC wird gestartet...
START "Livebild" /d "%vlc_pfad%" vlc.exe %url%
goto ende
:fehler
cls
echo.
echo Fehler:
echo Die Live-Url konnte nicht ermittelt werde.
echo Eventuell muss die Box neu gestartet werden.
goto ende
:ende
set boxip=
set wget_pfad=
set vlc_pfad=
set sender=
set url=
if exist url.tmp del url.tmp
if exist Sender1.tmp del Sender1.tmp
if exist Sender2.tmp del Sender2.tmp
Obigen Code kopieren und als Batchdatei speichern, beispielsweise als LiveTV.cmd.
Vor der Nutzung muss bei :config noch Folgendes angepasst werden:
1. Die IP oder der Netbios-Name der box
set boxip=dbox2 (Beispielsweise: set boxip=192.168.0.98)
2. Der Pfad zu Wget (wget.exe)
set wget_pfad=C:\Program Files (x86)\Tools\WGET
3. Der Pfad zu VLC (vlc.exe)
set vlc_pfad=C:\Program Files (x86)\VideoLAN\VLC
Falls VLC nicht jedesmal beendet werden soll, sollte diese Zeile auskommentiert werden:
tskill.exe vlc /a > nul
also REM tskill.exe vlc /a > nul
Das ist beispielsweise sinnvoll, wenn VLC als Dienst eingerichtet ist.
Wget
Falls man Wget noch nicht haben sollte, dann findet man es hier:
http://sourceforge.net/projects/gnuwin3 ... /1.11.4-1/
Wget muss nicht installiert werden, es reicht, wenn man die nötigen Dateien in einen Ordner kopiert.
Benötigt werden:
wget.exe
aus wget-1.11.4-1-bin.zip
libeay32.dll
libiconv2.dll
libintl3.dll
libssl32.dll
aus wget-1.11.4-1-dep.zip
Mit Wget lassen sich Webseiten per Eingabeaufforderung aufrufen und lokal speichern.
Hier wird es benutzt um die Controls des nhttpd aufzurufen und damit die box abzufragen und zu steuern.
Gruß Frank