PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : On-the-fly Decoder?



ciruZ
01.10.2005, 14:01
Hallo!

Ich würde mir gerne einen on-the-fly Decoder für otrkeyfiles schreiben, sodaß ich sie direkt laden kann, auf den decoder pipen kann und von da auf den mplayer pipen. So wäre es möglich, die Files direkt zu gucken. Außerdem nutze ich nur ungern closed-source Software und meide auch die Linux-Binary-Emulation (bin BSD-Nutzer).
Daher meine Frage: Ist der Algorithmus zum Decoden irgendwo öffentlich einsehbar? Das Grundprinzip ist mir klar: Der Decoder sendet Filename, Username und Passwort an eine PHP auf dem Server, die den Key zurückgibt, mit dem dann entschlüsselt wird. Nur nach welchem Algorithmus geschieht das? Ist der irgendwo öffentlich oder muß ich selber versuchen ihn rauszukriegen? ;)

allo
09.10.2005, 16:59
ein on-the-fly hack, ungetestet:
[code:1]
mkfifo foo.wmv
./otrdecoder -e e@mail.com -p password -i foo.wmv.otrkey&
cat foo.wmv|tee bar.wmv|mplayer -
[/code:1]
Damit schreibt der Decoder in eine FIFO, und du liest sie mit cat aus. Tee schreibts in eine Datei und piped es weiter an mplayer.

Allo

ciruZ
16.10.2005, 01:21
Das ist nicht so wirklich das, was ich vor hatte. Ich hatte es so vor: Mit wget laden, auf den decoder pipen und von da auf den mplayer pipen. Sozusagen wie nen Livestream nutzen. ;)

allo
16.10.2005, 11:43
ich hafte nicht für kaputte dateien...also erst mal mit unwichtigem testen:
[code:1]
mkfifo foo.wmv.otrkey
mkfifo foo.wmv
wget -c http://url/to/otrkey -O foo.otrkey
./otrdecoder -e e@mail.com -p password -i foo.wmv.otrkey&
cat foo.wmv|tee bar.wmv|mplayer -
[/code:1]

so oder so ähnlich könnte es gehen.

Allo

ciruZ
19.11.2005, 01:28
@allo: So hatte ich es auch schon versucht, aus irgendwelchen Gründen klappte es aber nicht.
@fionn: Och, das ist kein Problem. Ich hab grundsätzlich immer ethereal an, wenn ich den otrdecoder nutze, falls was schiefgeht. Wenn was schiefgeht, dann kann ich die Antwort des Servers schnell in ein Textfile packen, per /etc/hosts das ganze auf meinen Rechner legern und per netcat nen Server auf Port 80 machen. Klappt bestens.

MsTiFtS
07.04.2006, 08:54
Das ganze klappt deshalb nicht, weil der Decoder wissen muss, wie groß die Datei ist.
Außerdem sind die Blocks in der OTRKEY-Datei durcheinandergewürfelt, also muss man große Teile der Datei puffern um das hinzukriegen.
FIFOs kann man dafür vergessen.
Es gibt 2 Möglichkeiten.
1. Eigenen Decoder schreiben (mach ich grad)
2. Den bestehenden Decoder mit kleinen Häppchen füttern (hab ich schon gemacht)

Das mit kleinen Häppchen füttern ist aber nicht einfach, weil wie gesagt die Blöcke durcheinandergewürfelt sind. D.h., dass man die Blöcke aus der OTRKEY-Datei on-the-fly erstmal in die richtige Reihenfolge sortieren und dann in den Häppchen für den Decoder wieder entsprechend würfeln muss. Dabei muss man leider doppelt so schnell herunterladen wie nötig, weil der letzte Block in der OTRKEY-Datei in der Mitte des Films liegt. Dazu muss man also bei einem 600MB-Film mindestens 300 MB puffern.
Siehe http://forum.onlinetvrecorder.com/viewtopic.php?t=2045

Achja, die mehrfachdecoden-Methode hat sich übrigens bewährt, die benutz ich auch immer wenn ich bei nem on-the-fly-Test was versaut hab ;)

Wenn jemand selber auch einen Decoder schreiben will und der Würfel-Methode nicht selber auf die Schliche kommt (ist eigentlich trivial ;)) kann ich ihm ein paar tips geben...

ciruZ
18.04.2006, 23:23
Danke für die Infos, dann werd ich mir auch mal selber was schreiben ;).
Dann hab ich endlich mal was natives für OpenBSD. Werd das aber, wie der Author im anderen Thread auch, nicht veröffentlichen, weil das ja scheints irgendwie nicht erwünscht ist. Jedenfalls wird bei dem dann automatisch jeder Key gespeichert, dann kann ich mir das mit Ethereal sparen ;).