Ich (Jgirot) bin nicht der ursprüngliche Autor dieser Software oder die folgenden Informationen dazu.
Das Folgende wurde von http://bblank.thinkmo.de/blog/archive/2010/08/29/new-software-python-dvdvideo am 13. September 2016 kopiert, so dass der Code in diesem Kontext besser verstanden wird. Außerdem wurde es hier für die Nachwelt kopiert, falls die ursprüngliche Quelle entfernt oder auf andere Weise nicht verfügbar ist.
Beginnen Sie Original -Blog -Beitrag:
Python-dvdvideo ist eine Bibliothek zum Lesen von DVD-Video-Bildern. Es enthält ein Werkzeug zum Ableiten verschlüsselter DVD-Video-Bilder. Es ist in Python 3 implementiert.
Nach langer Zeit beschloss ich, erneut zu schreiben. Ich beschloss, mit Software zu beginnen, die ich für meine eigene Verwendung geschrieben habe, die für andere Menschen nützlich sein könnte. Ich werde mit Python-Dvdvideo, einem in Python 3 geschriebenen DVD-Video-Leser, und dem Referenzwerkzeug DVD-Video-Backup-Image, einem generischen DVD-Video-Dumper, geschrieben. Mal sehen, ob in diesem Blog in Zukunft weitere Beiträge vorgestellt werden.
Absicht
Ich begann diese Software zu schreiben, weil libdvDread oft meine neu gekauften Video -DVDs oft nicht entschlüsseln konnte. LibdvDread erwartet eine ziemlich gültige Struktur des Dateisystems und anderer Metadaten auf der Festplatte. Es wird mit mehreren Fehlerbedingungen gewaltsam ausgerichtet. Deshalb habe ich oft das Patching libdvDread beendet, um DVDbackup in der Lage zu machen, die neuen Festplatten zu lesen.
Normalerweise gibt es zwei Möglichkeiten, Backups solcher DVDs, als Dateien oder vollständige Bilder zu erstellen. Wenn Sie sie als Dateien abgeben, haben Sie große Probleme, wenn im Dateisystem bestimmte Mängel vorhanden sind, wie in mehreren Titleets verwiesen wird. Ich habe eine Festplatte, die während eines solchen Dumps 25 -g -Ausgangsleistung produziert. Die weniger problematische Art, dies zu tun, besteht darin, das vollständige Bild abzuwerfen. So habe ich im Werkzeug, das ich aufgebaut habe, verwendet.
Teile
Die Software ist in mehrere Teile eingewiesen. Zuerst ein kleiner UDF -Leser. Darüber hinaus kommt ein DVD -Videoleser. Es verwendet libdvdcss -Wrapper. All dies wird verwendet, um ein kleines Tool zum Ablösen ganzer Bilder zu implementieren. Ich werde diese Teile hier beschreiben.
UDF -Leser
Der UDF -Leser implementiert einen minimalen Satz von Funktionen. Ich habe nur die Dinge implementiert, die ich bei Bedarf gefunden und in den verfügbaren DVDs verwendet habe. Dieser Leser ermöglicht das Lesen des LowLevel UDF, das als Basis aller Video -DVDs verwendet wird.
DVD -Videoleser
Der DVD -Videoleser verwendet den UDF -Leser, um die erforderlichen Informationen von der Festplatte zu erhalten. Auch dieser Leser ist leise klein. Es vertraut nur dem UDF für die Starts von Titleets und erwartet, dass in den Info -Dateien alles andere aufgeführt ist. Dies ermöglicht es, sogar Discs mit zerbrochenen Dateisystemen zu lesen, die wirklich häufig sind.
libdvdcss Wrapper
Der LIBDVDCSS -Wrapper wird mit CTypes implementiert. Die CTYPES -Bibliothek ermöglicht einen einfachen Zugriff auf Funktionen Define in Shared -Objekt. Die Bibliothek ermöglicht das Aufrufen der Funktionen und Karten von Argumenten und Rückgabe von Werten an die Python -Datentypen. Mit diesem Wrapper kann ich auch verschlüsselte DVDs lesen.
Bild Dumper
Mit diesem Tool können Sie eine verschlüsselte Video -DVD in eine Datei eingeben. Es wird versucht, verschlüsselte (Video/VOB -Dateien) und unverschlüsselte (Info -Dateien, ansonsten verwendete Speicherplatz) Teile der Festplatte zu erkennen. Auf diese Weise ist es in der Lage, alles abzuwerfen, solange es das Dateisystem und die Info -Dateien lesen kann. Einige Discs enthält jedoch überlappende Bereiche, die nicht so leicht degruiert werden können.
Das Tool enthält einen kleinen Konfliktresiver, der überlappende Teile behandelt. Es verwendet eine Reihe von Regeln, um zu ermöglichen, dass einige Typen koexistieren und einige geändert werden. Über die Regeln stellt Dinge, die in einen Info -Dateien, aber auch in einem Titel -VOB enthalten sind, wie immer unverschlüsselt. Mit diesem Resolver können die meisten Probleme behandelt werden und wir erhalten ein spielbares Ergebnis.
Lizenz und Verteilung
Dieses Paket ist lizenziert GPL 3 oder höher. Es ist für neue verteilt über Alioth (git: //git.debian.org/users/waldi/python-dvdvideo.git)
Abschluss
Mit diesem Tool kann ich alle Video -DVDs abwerfen, die ich beim letzten Mal in die Hände bekommen habe. Es ermöglicht mir, die Videos in meinem Notizbuch zu sehen, die keinen optischen Disc -Leser für sich haben. Vielleicht braucht jemand auch ein solches Tool.