Destavator
Bloody Newbie
|
Hallo zusammen !
Wie in einem anderen Thread bereits angekündigt, werde ich in diesem Thread eine "Bauanleitung" bereitstellen, welche es auch UPC Nutzern ermöglichen wird Programme aufzunehmen und als "Persönliche" Sicherung zu archivieren. Warum ? Die TV-Lobby muss endlich einmal begreifen, das es für alles Grenzen gibt. Eine TV Show maximal 90 Minuten nach Ausstrahlung ansehen und dann ist Ende ? Was zum Henker soll das ? Wollen die damit nur Ihre 100fachen Wiederholungen begründen, oder wie ??
Egal, fangen wir also mit dem nächsten Post an, da werde ich euch einmal mitteilen was für Grundvoraussetzungen das System in etwa benötigt.
|
Destavator
Bloody Newbie
|
GRUNDVORRAUSSETZUNGEN:
HARDWARE:
1. Einen Standrechner mit 4GB Ram und einer CPU mit mind. 3.2Ghz z.b. Intel(R) Core(TM) i5-4570 / Quad Core CPU ohne HT. Achtung:Die Soundkarte sollte einen SP-DIF Eingang besitzen, warum dazu komme ich später noch. 2. ViewHD HDMI-Splitter / Zum Aufteilen des HDMI-Signals auf 2 unabhängige Geräte (Dieses modell kann KEIN CEC <-- Wichtig) EAN Code: 609722357746 | VHD-1x2MN3D mit US Adapter. 3. HDMI Videoschnittkarte, ich verwende dafür z.b. die AVerMedia AVerTV Capture HD; Eingänge: Multiinput, HDMI, DVB-T 4. Externes Preichermedium (muss nicht sein aber hilft ungemein) um die Aufgenommenen Sendungen nach Bearbeitung zu sichern. 5. Ein Raspberry PI2 Model B - Ja genau, dieses kleine Dingsbums. Installiert wird auf dieses Teil dann OSMC, damit haben wir unsere Aufnahmen später auch schön sortiert und Abrufbar.
SOFTWARE:
1. Der Standrechner sollte ein Windowssystem beinhalten, je weniger Ressourcenfressend die Windowsaversion ist um so besser. 2. OSMC für den Raspberry PI2 3. VirtualDUB - Zum aufnehmen und zum Schneiden 4. Handbrake - Für die konvertierung zu *.mkv 5. TV-Browser - Das wird unser TV-Program mit Programmierfunktion. 6. Serviio - Dies Teil dient einfach nur dazu unseren Stream auch in unserem Netzwerk zur Verfügung zu stellen 7. VLC Media Player - Der streamt uns das Live-Bild
Bearbeitet von Destavator am 08.03.2015, 15:36
|
Destavator
Bloody Newbie
|
Der AUFBAU:
Der Standrechner:
Als erstes richten wir unser Hauptsystem mit der notwendigen Software ein. Sprich ein Glattes reines Win7-System ohne viel Firlefanz. Dem fügen wir nun folgende Software hinzu, die Reihenfolge bleibt dabei jedem selbst überlassen, da dies nicht wirklich eine Rolle spielt.
1. Serviio Media Server 2. Tv-Browser 3. VirtualDUB 4. VLC Media Player 5. plink
Nun schalten wir das System einmal ab, und installieren die TV-Karte. Ohne der funkt sonst mal garnix (war klar ^^).
6. Die Treibersoftware der TV-Karte (AVerMedia)
Nachdem wir das getan haben, ist der Großteil für Hauptsystem schon einmal getan und jetzt geht es eigentlich nurnoch um das zusammenfügen der Restlichen komponenten. Dazu richten wir im nächsten Post einmal unseren Raspberry ein.
Bearbeitet von Destavator am 08.03.2015, 17:20
|
Destavator
Bloody Newbie
|
Der AUFBAU:
Der RaspBerry PI2 Model B:
Hier muss man eigentlich nicht viel einrichten, das Teil ist ein Rundumtalent im Taschenformat. Also zusammenbauen, sprich Die Platine in ein Raspberry PI Gehäuse, eine MicroSD Karte mit OSMC Image eingeschoben und das Teil per HDMI an einen TV oder einen HDMI fähigen Monitor gestöpselt. Netzteil dran und das Teil fährt hoch. Nach der Erstinstallation ist das Teil sofort als Media-Center funktionsfähig und kann auch zum Betrachten der Media-Bibliothek verwendet werden. Der eigentliche Grund für den Raspberry ist es ledeglich unsere Box zum Aufnahmetermin auf den richtigen Kanal zu schalten. Dazu kommen wir jedoch noch ein wenig später.
|
Destavator
Bloody Newbie
|
Der AUFBAU:Die IR-Erweiterung für den RaspBerry PI2 Model B:Dafür verlinke ich auf ein anderes Forum, da die Baupläne für dieses Teil nicht von mir stammen, und ich mich nicht mit fremden Federn schmücken möchte. Ich hoffe dies geht für die Admins des Boards in Ordnung. http://www.beisammen.de/board/index...threadID=114082Sollte es jedoch später, bei der Funktion mit der UPC-Box Probleme geben, sprich beim erkennen der IR Codes, werde ich gerne auf Anfagen nach fertigstellen des Threads antworten.
Bearbeitet von Destavator am 08.03.2015, 16:22
|
Destavator
Bloody Newbie
|
Die Software-Programmierung:Einrichtung von 'TV-Browser' als AufnahmesteuerungNun wird es ein wenig Programmtechnisch. Wir vergewaltigen das Programm TV-Browser zu unserer Aufnahmesteuerung. Dazu sind einige Code-Snippets nötig, damit das Programm die zur Aufnahme notwendigen Schritte übernimmt. Erste Schritte:Als erstes suchen wir uns im TV-Browser einmal alle TV-Programme die per UPC Übertragen werden und fügen sie unserer TV-Tabelle hinzu. Es reicht bei SD und HD Programmen, diesen nur einmal für den HD-Sender hinzu zu fügen, wer nimmt schon SD auf wenn er das ganze in HD haben kann ?? Nachdem wir das gemacht haben, wird es etwas aufwendiger. Wir müssen dem Taskplaner extern irgendwie weis machen was er zu tun hat, dazu erstellen wir einmal eine .cmd (ich nenne sie in meinem Fall schvlc1.cmd). Diese wird später über den TV-Browser mittels Übergabedaten verändert und schreibt direkt einen geplanten Task in den Taskmanager. In diesem Snippet wird einmal überprüft ob wir dem TV-Browser nun sagen ob er eine Sendung aufnehmen soll, oder ob er die Sendung aus der Aufnahmeplanung löschen soll. Wir könnten dies zwar elegant sofort nach ausführung der Planung machen, jedoch würden alle Geplanten Aufnahmen dann für ewig im TV-Browser erhalten bleiben, deswegen ziehe ich es vor die Aufnahmen nach abschluss mittels TV-Browser zu löschen. Snippet 1 - Kontrollieren ob Aufnahme oder Löschung@echo off
if %1==stop ( ## Hier prüfen wir den Stop Befehl aus dem TV-Browser
schtasks /delete /tn %2 /f ## Wenn ja dann löschen wir den geplanten Task
del runrecord%2.cmd ## und das Aufnahmescript dafür
exit
)
Damit wäre der erste Schritt, nämlich Aufnahme programmieren oder Löschen erledigt.
Bearbeitet von Destavator am 08.03.2015, 17:36
|
Destavator
Bloody Newbie
|
Dieser teil gehört immer noch in die schvlc1.cmd, sobald die Datei vollständig ist werde ich das mitteilen. Ich teile das ganze nur auf um die Übersicht für jeden zu erhalten bzw. das eine spätere Fehlersuche nicht zu aufwendig wird. Snippet 2 - Erstellung des Tasks für die Aufnahme:Dieser teil beinhaltet ein DoS-Script welches mit Übergabeparametern den Task in einem XML für den taskplaner vorbereitet damit er später als Task einfach per Befehl importiert und auf unsere Anforderungen geändert werden kann. echo ^<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"^> >> schtempl.xml
echo ^<RegistrationInfo^> >> schtempl.xml
echo ^<Date^>2014-12-10T13:41:41.3657492^</Date^> >> schtempl.xml
echo ^<Author^>Administrator^</Author^> >> schtempl.xml
echo ^<Description^>Aufnahme einer TV-Sendung mittels TV-Guide und virtualDUB^</Description^> >> schtempl.xml
echo ^</RegistrationInfo^> >> schtempl.xml
echo ^<Triggers^> >> schtempl.xml
echo ^<TimeTrigger^> >> schtempl.xml
echo ^<StartBoundary^>%4T%5^</StartBoundary^> >> schtempl.xml
echo ^<Enabled^>true^</Enabled^> >> schtempl.xml
echo ^</TimeTrigger^> >> schtempl.xml
echo ^</Triggers^> >> schtempl.xml
echo ^<Principals^> >> schtempl.xml
echo ^<Principal id="Author"^> >> schtempl.xml
echo ^<UserId^>%2^</UserId^> >> schtempl.xml
echo ^<LogonType^>InteractiveToken^</LogonType^> >> schtempl.xml
echo ^<RunLevel^>LeastPrivilege^</RunLevel^> >> schtempl.xml
echo ^</Principal^> >> schtempl.xml
echo ^</Principals^> >> schtempl.xml
echo ^<Settings^> >> schtempl.xml
echo ^<MultipleInstancesPolicy^>IgnoreNew^</MultipleInstancesPolicy^> >> schtempl.xml
echo ^<DisallowStartIfOnBatteries^>false^</DisallowStartIfOnBatteries^> >> schtempl.xml
echo ^<StopIfGoingOnBatteries^>true^</StopIfGoingOnBatteries^> >> schtempl.xml
echo ^<AllowHardTerminate^>true^</AllowHardTerminate^> >> schtempl.xml
echo ^<StartWhenAvailable^>false^</StartWhenAvailable^> >> schtempl.xml
echo ^<RunOnlyIfNetworkAvailable^>false^</RunOnlyIfNetworkAvailable^> >> schtempl.xml
echo ^<IdleSettings^> >> schtempl.xml
echo ^<StopOnIdleEnd^>true^</StopOnIdleEnd^> >> schtempl.xml
echo ^<RestartOnIdle^>false^</RestartOnIdle^> >> schtempl.xml
echo ^</IdleSettings^> >> schtempl.xml
echo ^<AllowStartOnDemand^>true^</AllowStartOnDemand^> >> schtempl.xml
echo ^<Enabled^>true^</Enabled^> >> schtempl.xml
echo ^<Hidden^>false^</Hidden^> >> schtempl.xml
echo ^<RunOnlyIfIdle^>false^</RunOnlyIfIdle^> >> schtempl.xml
echo ^<WakeToRun^>true^</WakeToRun^> >> schtempl.xml
echo ^<ExecutionTimeLimit^>P3D^</ExecutionTimeLimit^> >> schtempl.xml
echo ^<Priority^>7^</Priority^> >> schtempl.xml
echo ^</Settings^> >> schtempl.xml
echo ^<Actions Context="Author"^> >> schtempl.xml
echo ^<Exec^> >> schtempl.xml
echo ^<Command^>d:\tools\runrecord%1.cmd^</Command^> >> schtempl.xml
echo ^<Arguments^> ^</Arguments^> >> schtempl.xml
echo ^</Exec^> >> schtempl.xml
echo ^</Actions^> >> schtempl.xml
echo ^</Task^> >> schtempl.xml
echo xml File successfully created ## Hier bekommen wir später im TV-Browser die Positive Rückmeldung
## sollte bei der erstellung der Datei alles gut gegangen sein.
Somit wäre das XML-Template für den Taskplaner fertiggestellt und wir können ihn auf unsere Bedürfnisse abändern. Snippet 3 - Erstellung des tasks:echo creating Scheduled Task ## Rückmeldung des Arbeitsschrittes im TV-Browser
schtasks /create /tn %1 /xml D:\tools\schtempl.xml /ru %2 /rp %3 ## Hier wird nun der Task angelegt
## /ru %2 = User /rp %3 = PW
## /tn %1 = Name für den Task (Zeit+Program)
del D:\tools\schtempl.xml ## Nachdem der Task erstellt wurde, wird die Vorlage wieder gelöscht
Damit wäre die Eintragung im Taskmanager erledigt, und der Computer weis, wann er unser Batchscript für die Aufnahme starten soll.
Bearbeitet von Destavator am 08.03.2015, 17:10
|
Destavator
Bloody Newbie
|
Snippet 4 - Erstellung des Batch Scriptes für die Aufnahme:Hier erstellen wir nun eine kleine Batch Datei, die der taskmanager später ausführt um den Kanal zu ändern und das Aufnahmeprogramm (VirtualDUB) dazu zu bewegen die Aufnahme zu starten, bzw. zu beenden wenn die Laufzeit der Aufnahme abgelaufen ist. echo creating BatchScript for Recording ## Rückmeldung an TV-Browser für Arbeitsschritt
set str=%8 ## Hier zerlegen wir den Kanal an der UPC Box auf die zu sendenden Einzeltasten
set KEY1=%str:~0,1%
set KEY2=%str:~1,1%
set KEY3=%str:~2,1%
echo plink -l osmc -pw osmc pi@192.168.0.108 irsend SEND_ONCE UPC KEY_%KEY1% KEY_%KEY2% KEY_%KEY3% >> runrecord%1.cmd ## Und senden ihn über unseren Raspberry
## an de UPC Box
## Hier starten wir VirtualDUB undstarten die Aufnahme ("AVerMedia BDA Analog Capture Secondary (DirectShow)" ist die TV-Karte)
echo D:\VirtualDUB\vdub64.exe /capture /capaudiorec on /capdevice "AVerMedia BDA Analog Capture Secondary (DirectShow)" /capfile D:\Aufnahmen\%6 /capstart %7 >> runrecord%1.cmd
## und Rückmeldung das das Script erstellt wurde
echo Recordscript successfully created
Hiermit ist unsere schvlc1.cmd fertig und der Haupteil der Programmierung erledigt. Nun können wir uns an die Fertigstellung des TV-Browsers machen um ihn für unsere Zwecke einsetzen zu können.
|
Destavator
Bloody Newbie
|
Die Software-Programmierung:Einrichtung von 'TV-Browser' als Aufnahmesteuerung der FeinschliffNun richten wir unser Aufnahmegerät im TV-Browser ein, dazu gehen wir in folgendes Menü: Extras --> Aufnahmesteuerung / Geräte Hier wählen wir Gerät hinzufügen. Als Name wählen wir (wobei was wir wählen ist schlichtweg egal) VideoAufnahme mittels VDub als Treiber bleibt ********-Treiber eingestellt und bestätigen mit OK. Nun erscheint das Fenster mit den Konfigurations-Einstellungen für unser "Gerät". Unter dem Reiter Applikation, was starten --> Den Pfad der schvlc1.cmd eintragen Unter dem Reiter ParameterParameter für die Aufnahme kommt nun folgendes hinein: {start_year}{leadingZero(start_month, "2")}{leadingZero(start_day, "2")}{leadingZero(start_hour, "2")}{leadingZero(start_minute, "2")}{cleanLess(channel_Name)} {device_username} {device_password} {start_year}-{leadingZero(start_month, "2")}-{leadingZero(start_day, "2")} {leadingZero(start_hour, "2")}:{leadingZero(start_minute, "2")}:00 {cleanLess(title)}.avi {length_sec}s {cleanLess(channel_name_external)}
Parameter für Löschen stop {start_year}{leadingZero(start_month, "2")}{leadingZero(start_day, "2")}{leadingZero(start_hour, "2")}{leadingZero(start_minute, "2")}{cleanLess(channel_Name)}
Unter dem Reiter SenderHier erscheinen nun alle Sender, die wir Anfangs hinzugefügt haben. Hier kommt nun bei Externer Name bei jedem die Senderkennung der UPC-Box dran. Also z.b. History HD - 250; ORF 1 HD - 201; usw. Unter dem Reiter EinstellungenZeit-Einstellungen früher stoppen und starten, nach Euren Wünschen anpassen. Benutzer Die Anmeldedaten an eurem Rechner Nun das ganze mit OK abschliessen und TV-Browser ist fertig eingerichtet.
Bearbeitet von Destavator am 09.03.2015, 14:15
|
Destavator
Bloody Newbie
|
Raspberry PI - Einrichten der UPC FernbedienungDas einrichten der UPC-Media BOX Fernbedienung, ist nicht ganz so einfach, weil die Fernbedienung aufgrund des Code-Sets einige Toggle Bits mitführt die IR-Record nicht ganz versteht, und auch wenn IRRecord meint es sei alles ok, danach KEINE Einzige taste funktioniert. Aus diesem Grund habe ich die RAW-Codes der FB abgefragt und nur die wichtigsten für die Steuerung herausgepickt. Sprich 0-9, denn mehr brauche ich zum Umschalten der Sender nicht. Der RAW Code für die FB sieht dann so aus: # Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.9.0-pre1(default) on Mon Feb 2 00:41:27 2015
#
# contributed by
#
# brand: /root/UPCRemote.conf
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name UPC
flags RAW_CODES
eps 30
aeps 100
gap 89497
begin raw_codes
name KEY_1
443 230 213 229 212 565
205 229 213 230 212 730
206 230 212 229 214 228
214 559 212 564 204 399
206 566 209 232 204 229
214 231 211 418 192
name KEY_2
452 263 175 229 213 561
210 227 214 229 214 726
210 227 215 229 209 229
214 230 212 565 205 399
210 572 198 228 214 229
209 229 214 565 206
name KEY_3
446 231 213 227 214 566
205 227 214 230 213 731
205 229 213 229 214 229
209 564 210 561 210 398
205 564 207 229 213 228
214 230 212 727 216
name KEY_4
452 264 174 228 214 561
209 231 213 228 213 726
210 230 212 229 210 228
214 229 213 565 206 397
211 560 209 229 209 229
214 398 212 227 214
name KEY_5
450 231 213 228 210 564
211 228 208 228 217 729
209 228 210 229 213 229
214 576 195 562 206 399
209 565 205 228 216 226
214 399 205 398 209
name KEY_6
450 230 213 229 210 563
205 230 213 229 213 732
205 228 224 219 213 229
214 228 214 561 209 398
206 564 206 227 215 229
214 399 209 560 209
name KEY_7
451 230 208 229 213 564
206 229 213 229 213 732
204 229 214 228 214 231
213 562 206 564 206 398
209 559 210 229 214 229
213 398 206 731 204
name KEY_8
451 230 208 229 214 565
205 228 214 228 214 733
203 229 213 230 211 230
214 228 214 561 209 399
205 565 205 229 213 230
214 563 206 229 212
name KEY_9
452 232 210 227 214 560
212 227 213 229 214 725
210 229 213 229 209 229
232 546 206 564 209 399
206 563 207 229 214 227
214 564 205 398 211
name KEY_0
452 229 215 228 208 566
208 229 210 260 183 728
211 228 210 228 215 235
206 229 214 564 206 398
209 559 212 228 214 229
209 229 213 229 213
end raw_codes
end remote
Diese wird auf dem Raspberry als /etc/lirc/lircd.conf angelegt, damit Lirc damit was anfangen kann. Und damit wäre auch der Raspberry fertig konfiguriert, und es geht ums zusammenstecken aller Einzelteile.
|
AdRy
Auferstanden
|
Schöner post. Aufnahme sollte mit VLC genauso gehen und wenn der rechner stark genug ist gleich realtime encoden (x264 realtime oder fastest preset reicht bei TV qualität).
|
Destavator
Bloody Newbie
|
Der Zusammenbau und der erste Test
Nachdem nun Softwaretechnisch alles erledigt ist, gehts um das Zusammenfügen aller Einzelteile.
Das HDMI Kabel wird vom UPC-Receiver an den Eingang des Splitters geführt
Vom Splitter gehen wir mit einem Kabel in unsere Aufnahmekarte, mit dem anderen an unseren TV.
Den Raspberry binden wir in unser Netzwerk ein und stellen ihn so, das seine IR Diode freie Sicht auf unsere Empfangsdiode im UPC-Receiver bekommt. Möglicherweise muss man ein wenig probieren, bis man den richtigen Standort gefunden hat.
Nun um das Programm plink richtig zugreife zu können, erstellen wir einfach eine Testaufnahme und starten den Task händisch im Taskplaner. In einem DoS Fenster wird nun gefragt ob der SSH Key gespeichert werden soll, dies beantworten wir mit ja, und unterbrechen die Aufnahme und löschen sie wieder aus dem TV-Browser.
Damit ist die Einrichtung vollständig abgeschlossen und sollte alles richtig gemacht worden sein habt Ihr nun Eure eigene Recording box.
|
Destavator
Bloody Newbie
|
Schöner post. Aufnahme sollte mit VLC genauso gehen und wenn der rechner stark genug ist gleich realtime encoden (x264 realtime oder fastest preset reicht bei TV qualität). Funktioniert, ja. Jedoch verwende ich für die Aufnahme einen Lossless Codec und encode danach. Die Qualität ist Full-HD ohne Einschränkungen und kann sich auf jedem HD-Fernseher sehen lassen. Ausserdem schafft es VLC nicht das Aufnahmegerät richtig einzustellen und man müsste bei jeder Aufnahme die "Geräte-Optionen" händisch einstellen, sobald die Aufnahme gestartet wird. Da fällt das Programmierte aufnehmen flach, und genau das tut meine Version perfekt. Ich verwende VLC um das Live-Bild ins netzwerk zu streamen, so habe ich das laufende Programm in HD-Qualität an jedem TV in der Wohnung. Dafür verwende ich Serviio, dazu wollte ich noch kommen ^^
Bearbeitet von Destavator am 08.03.2015, 18:18
|
davebastard
Vinyl-Sammler
|
mir wärs zu aufwendig. aber schön dass es noch leute gibt die sich das antun. generell geht der trend glaub ich weg von aufnehmen hin zu netflix und co.
|
lalaker
TBS forever
|
|