DVGRAB(1)

NAME
dvgrab — Importiert DV oder MPEG2-Transport-Stream (HDV) Video- und Tondaten über FireWire- und USB-Verbindungen

ÜBERSICHT
dvgrab [Optionen] [Basis] [-]

BESCHREIBUNG
dvgrab ist ein Programm, mit dem DV oder HDV (MPEG2-TS) Video- und Audiodaten von einem digitalen Camcorder via IEEE1394-Verbindung importiert werden können. Die Daten werden in einer oder mehreren Dateien gespeichert und können später mit einem Videobearbeitungsprogramm weiter verarbeitet werden. dvgrab kann den Camcorder fernsteuern, aber zeigt das Videomaterial nicht auf dem Bildschirm an.

dvgrab unterstützt auch UVC-kompatible (USB Video Class) DV-Geräte durch das Linux-Kernelmodul »uvcvideo«, einen V4L2-Treiber. Dabei gibt es aber keine Steuerung über AV/C, deshalb ist der interaktive Modus ziemlich nutzlos.

Aus dem Argument Basis wird der Dateiname der Videodatei zusammengesetzt: Basis-Zahl.Erw. Zahl ist eine bei 001 beginnende fortlaufende Nummer und Erw eine Dateinamenserweiterung, die vom benutzten Dateiformat abhängt, z. B. avi. Die Namensgebung weicht davon ab, wenn die Option -timestamp, -timecode oder -timesys verwendet wird (siehe unten). Wenn Basis ein vollständiger Dateiname einschließlich einer Namenserweiterung ist, dann versucht dvgrab das Ausgabeformat von dieser Erweiterung abzuleiten, aber es fügt trotzdem Zahl ein. Die voreingestellte Basis ist dvgrab-, wenn keine andere angegeben wurde.

Wenn als Basis das Zeichen '-' verwendet wird, gibt dvgrab die unveränderten DV- oder HDV-Daten auf die Standardausgabe aus. Wenn das Video in eine Datei importiert wird, werden die Daten auch auf die Standardausgabe geschrieben, wenn die Standardausgabe an eine Pipe angeschlossen oder umgeleitet ist.

Sie können dvgrab's leistungsfähige Datei-Schreibfunktionen auch für andere Programme nutzen, die unveränderte DV- oder HDV-Daten erzeugen. Benutzen Sie dafür die Option -stdin und dvgrab versucht die DV- oder HDV-Daten von der Standardeingabe zu lesen, wenn es erkennt, dass es am Ausgang einer Pipe hängt und nicht interaktiv betrieben wird.

OPTIONEN
Optionen, die länger als ein Buchstabe sind, können durch einen oder zwei führende Bindestriche angegeben werden. Optionsname und Argumentwert können durch Leerzeichen oder Gleichheitszeichen getrennt werden.

-a [Zahl], -autosplit [Zahl]
    Es wird versucht den Anfang jeder neuen Aufnahme zu erkennen und in einzelnen Dateien zu speichern. Das kann mit den Optionen -frames und -size kombiniert werden und mit einer neuen Datei wird begonnen, wenn eins der angegebenen Ereignisse eintritt. Automatisches Teilen ist normalerweise ausgeschaltet. Die Angabe von Zahl ist optional. Ohne diese Angabe findet dvgrab anhand einer Signalisierung im Datenstrom oder einer Unterbrechung in den Zeitstempeln selbst heraus, wann eine neue Datei beginnen soll. Dabei muss der Zeitsprung rückwärts sein oder vorwärts mehr als 1 Sekunde betragen. Durch die Angabe von Zahl kann die Dauer des Zeitsprungs eingestellt werden und die Signalisierung einer neuen Aufnahme im Datenstrom wird nicht mehr beachtet. Dadurch kann man die Aufnahme an größeren Zeitsprüngen, wie Minuten oder Stunden, teilen lassen. Beispiel: -autosplit=3600 teilt die Aufnahme in mehrere Dateien, wenn sie Zeitsprünge von 1 Stunde oder länger enthält.

-buffers Zahl
    Die Anzahl der wegen I/O-Verzögerungen zwischengespeicherten Frames. Voreingestellt ist 100.

-card Zahl
    dvgrab empfängt die Daten von der FireWire-Karte mit der Nummer Zahl. Standardmäßig wird die erste Karte mit der ersten gefundenen Kamera verwendet. In Verbindung mit der Option -noavc wird der Bus nicht abgesucht. In Verbindung mit der Option -guid Hex-Zahl wird nur der angegebene Bus nach einem Gerät mit der GUID Hex-Zahl abgesucht.

-channel Zahl
    Isochroner Kanal, von dem die Daten empfangen werden. Voreingestellt ist 63, das ist so üblich bei DV-Camcordern heutzutage. Wenn Sie etwas anderes angeben, wird dem Gerät zur Zeit nicht mitgeteilt, welchen Kanal es nutzen soll. Sie müssen dem Gerät selbst übermitteln, welcher Kanal genutzt wird.

-cmincutsize Zahl
    Diese Option bewirkt, dass eine Teilung und der Beginn einer neuen Zusammenstellung Zahl Megabyte (eigentlich Mebibyte) vor dem Ende der aktuellen Zusammenstellung erfolgt. Diese Option kann verhindern, dass kleine Dateien entstehen, wenn die Option -csize benutzt wird. Wenn eine neue Zusammenstellung auf diese Weise begonnen wird, merkt sich das Programm den frei gebliebenen Speicherplatz. Sollte die neue Zusammenstellung dort hinein passen, wird der neue Startpunkt zurück gesetzt.

-csize Zahl
    Diese Option veranlasst dvgrab Dateien zu teilen, wenn eine Zusammenstellung von Dateien Zahl Megabyte überschreitet. Damit können Dateien aneinander gereiht werden und sie passen genau in Zahl Megabyte (eigentlich Mebibyte) (z. B. zum Archivieren auf DVD). Wenn die Grenze erreicht wird, beginnt eine neue Zusammenstellung. (Siehe auch Option -cmincutsize)

-debug Typ
    Zeigt HDV-Debug-Informationen an, Typ ist einer oder mehrere von: all,pat,pmt,pids,pid=N,pes,packet,video,sonya1

-d, -duration Zeit
    Setzt die maximale Dauer des Imports inklusive aller Teildateien für einen einzelnen Import-Vorgang (mehrfache Vorgänge sind im interaktiven Modus möglich). Der Wert Zeit wird im »SMIL2 MediaClipping«-Zeitformat angegeben.
    Siehe http://w3.org/AudioVideo/ für die Spezifikation.

    Kurz beschrieben ist das Format:

    XXX[.Y]h, XXX[.Y]min, XXX[.Y][s], XXXms,

    [[HH:]MM:]SS[.ms] oder smpte=[[[HH:]MM:]SS:]FF.

-every n
    Diese Option veranlasst dvgrab nur jedes n-te Frame abzuspeichern (standardmäßig alle Frames).

-f, -format dv1 | dv2 | avi | raw | dif | qt | mov | jpeg | jpg | mpeg2 | hdv
    Gibt das Format der Ausgabedatei(en) an. Das Dateiformat kann auch ermittelt werden, wenn Sie eine Erweiterung zum Namen Basis angeben. Die folgenden Erweiterungen werden erkannt: avi, dv, dif, mov, jpg, jpeg und m2t (HDV).

    dv1 und dv2 sind beides AVI-Dateien mit etwas unterschiedlichen Formaten. dv2 speichert eine Tonspur zusätzlich zur DV-Videospur, was kompatibler mit anderen Anwendungen ist. dv1 speichert eine einzige DV-Spur, weil das DV-Format grundsätzlich Ton und Video mischt. Obwohl dv1 kleinere Ausgabedateien erzeugt, verstehen es manche Anwendungen nicht und verlangen dv2. dvgrab kann sehr große AVI-Dateien anlegen, z. B. über 2 oder 4 GB, aber die Kompatibilität mit anderen Anwendungen nimmt über einer Größe von 1 GB ab.

    raw speichert die Daten unverändert mit der Dateiendung .dv. Diese Dateien können von einigen GNU/Linux-Werkzeugen gelesen werden, genauso wie von »Apple Quicktime«.

    dif eine Abwandlung des raw-Formats; die Dateien erhalten die Endung .dif. Damit können sie sofort mit Programm »MainConcept MainActor5« geladen werden.

    qt ist Quicktime-Format, aber erfordert, dass dvgrab mit »libquicktime« kompiliert wurde.

    jpg oder jpeg ist für eine Folge von JPEG-Bildern, wenn dvgrab mit den Bibliotheken libdv und jpeglib kompiliert wurde. Diese Option kann nur bei DV-Geräten benutzt werden, nicht bei HDV (MPEG2-TS).

    mpeg2 oder hdv ist für MPEG-2-Transportströme, wenn z. B. ein HDV-Camcorder oder eine digitale TV-Settop-Box benutzt wird.

    Voreingestellt ist raw.

-F, -frames Zahl
    Diese Option veranlasst dvgrab höchstens Zahl Frames pro Datei abzuspeichern, bevor eine neue Datei angefangen wird, dabei bedeutet Zahl = 0 unbegrenzt. Die Spieldauer der Datei hängt vom verwendeten Videosystem ab. PAL zeigt 25, NTSC ungefähr 30 Frames pro Sekunde.

-guid Hex-Zahl
    Wenn Sie mehr als ein DV-Gerät haben, wählen Sie eins aus, indem Sie die GUID Hex-Zahl (hexadezimales Format) dieses Geräts angeben. Das Format ist in /proc/bus/ieee1394/devices oder bei Kernel 2.6 im Dateisystem /sys zu sehen. Wenn Sie eine GUID angeben, baut dvgrab eine Punkt-zu-Punkt-Verbindung auf, anstatt auf die Meldung des Geräts zu warten. Wenn Sie als Hex-Zahl den Wert 1 eingeben, versucht dvgrab das Gerät zu finden und baut eine Punkt-zu-Punkt-Verbindung auf. Das ist besonders bei MPEG2-TS Settop-Boxen nützlich, die häufig eine Verbindungsverwaltung erfordern, um mit der Übertragung zu beginnen.

-h, -help
    Zeigt eine Zusammenfassung der Optionen.

-I, -input Datei
    Liest von der Datei anstelle von FireWire. Sie können '-' für die Standardeingabe anstelle von -stdin verwenden.

-i, -interactive
    Versetzt dvgrab in den interaktiven Modus, sodass jeder Tastendruck die Kamera steuert oder den Import (capture) startet oder stoppt. Andernfalls läuft dvgrab im Session-Modus, wobei es sofort anfängt einzulesen und nach Festlegung oder Unterbrechung (durch STRG-c) aufhört.

-jpeg-deinterlace
    Zusammen mit -format jpeg entflechtet (deinterlace) es die Ausgabe durch Verdoppelung der Zeilen im oberen Feld. Dies ist eine einfache Form des Deinterlace, wobei 50% der Auflösung verloren geht.

-jpeg-height Zahl
    Zusammen mit -format jpeg wird die Ausgabe auf eine Höhe von Zahl (1 - 2048) skaliert.

-jpeg-overwrite
    Zusammen mit -format jpeg wird die selbe Datei immer wieder überschrieben, anstatt eine Folge von Dateien anzulegen.

-jpeg-quality Zahl
    Zusammen mit -format jpeg setzt es die JPEG-Qualitätsstufe von 0 (schlechteste) bis 100 (beste).

-jpeg-temp Datei
    Beim Erstellen des JPEGs wird eine temporäre Datei benutzt, die in die Zieldatei umbenannt wird, wenn sie komplett ist. Das ist nützlich, wenn dvgrab mit der Option -jpeg-overwrite zur Erstellung eines Webcam-Bildes genutzt wird.

-jpeg-width Zahl
    Zusammen mit -format jpeg wird die Ausgabe auf eine Breite von Zahl (1 - 2048) skaliert.

    Die skalierte Breite und Höhe des JPEGs müssen beide entweder kleiner oder größer als die normale Frame-Größe sein. Zum Beispiel, auch wenn eine skalierte Breite von 700 und Höhe von 525 Bildpunkten ein Verhältnis von 4:3 ergibt, ist dieses Bild für NTSC unzulässig, weil 700 kleiner als die normale Breite von 720 ist, aber die Höhe ist größer als 480.

    Weil DV nicht-quadratische Bildpunkte verwendet, ist es gut, das Bild auf ein Seitenverhältnis von 4:3 mit quadratischen Bildpunkten skalieren zu können. Für NTSC sind Beispielgrößen: 800x600, 640x480 und 320x240. Für PAL beispielsweise 384x270 und 768x540.

-jvc-p25
    Entfernt die Signalisierung »remove_first_field« und setzt den Wert für Bilder pro Sekunde auf 25, um einen Datenstrom zu korrigieren, der in JVCs Modus »HDV P25« aufgenommen wurde.

-lockstep
    Richtet den Import an einem Vielfachen von -frames aus, basierend auf dem Zeitstempel. Das dient der Redundanz, wenn mehr als ein Rechner von dem selben FireWire-Gerät importiert und Sie sicher stellen wollen, dass jede Datei das gleiche Filmmaterial enthält. Damit die Dateien auf jedem Rechner den gleichen Namen haben, benutzen Sie die Option -timecode und die gleiche Basis.

-lockstep_maxdrops Anzahl
    Wenn hintereinander die Anzahl Frames verworfen wurden, dann wird die Datei geschlossen und der Import am nächsten »Lockstep«-Intervall wieder gestartet. Wenn die Anzahl gleich -1 ist, dann ist diese Funtion ausgeschaltet. Das ist voreingestellt.

-lockstep_totaldrops Zahl
    Wenn die absolute Anzahl Frames verworfen wurden, dann wird die Datei geschlossen und der Import am nächsten »Lockstep«-Intervall wieder gestartet. Wenn die Anzahl gleich -1 ist, dann ist diese Funtion ausgeschaltet. Das ist voreingestellt.

-noavc
    Schaltet die Kamerasteuerung aus. Das sollte benutzt werden, wenn Live-Videodaten von der Videokamera im Kamera-Modus importiert werden, weil dabei das AV/C-Kommando »Wiedergabe« die Aufnahme der Kamera starten würde. Möglicherweise wird das eingelegte Band überspielt. Die Option wirkt auf den interaktiven und nicht-interaktiven Modus, weil im letzteren Fall auch Start- und Stopp-Signale zur Kamera gesendet werden, wenn der Import gestartet oder gestoppt wird.

-nostop
    Beim Beenden von dvgrab wird der AV/C-VTR-Befehl »Stopp« nicht gesendet.

-opendml
    Zusammen mit -format dv2 erstellt es eine OpenDML-konforme DV-AVI-Datei vom Typ 2. Das ist für dv2-Dateien >1GB erforderlich. dv1 unterstützt schon Dateien >1GB.

-r, -recordonly
    Wenn die Kamera im Aufnahmemodus ist, wird dvgrab nur dann Daten einlesen, wenn die Kamera aufnimmt und nicht in »Pause« ist. Normalerweise liest dvgrab immer Daten ein, wenn die Kamera im Aufnahmemodus ist und überlässt die Steuerung dem Benutzer des Rechners. Mit dieser Option verhält sich dvgrab wie ein Videorekorder, bei dem der Bediener der Kamera bestimmt, wann eingelesen wird. Das ist zusammen mit der Option -autosplit sehr nützlich, um für jede Szene eine eigene Datei anzulegen. Dazu wird AV/C benötigt und es funktioniert nicht zusammen mit der Option -noavc.

-rewind
    Die Kassette wird bis an den Anfang zurück gespult, bevor mit dem Dateneinlesen begonnen wird. Dazu wird AV/C benötigt und es funktioniert nicht im interaktiven Modus.

-showstatus
    Normalerweise werden Informationen zum Einlesen nach dem Schreiben jeder Datei angezeigt. Mit dieser Option wird der Importstatus während des Einlesens angezeigt und bei jedem Frame aktualisiert.

-s, -size Zahl
    Diese Option veranlasst dvgrab höchstens Zahl Megabyte (eigentlich Mebibyte) pro Datei abzuspeichern, bevor eine neue Datei angelegt wird, dabei bedeutet Zahl = 0 unbegrenzte Dateigröße. Voreingestellt ist die Grenze auf 1024 MB.

-srt
    Es werden Untertiteldateien mit dem Aufnahmedatum und -uhrzeit im »SRT«-Format erstellt. Für jede abgespeicherte Videodatei werden zwei zusätzliche Dateien mit den Endungen ».srt0« und ».srt1« angelegt. Sie enthalten das Aufnahmedatum und -uhrzeit als Untertitel im »SRT«-Format. Die Datei »*.srt0« enthält Untertitel, deren Zeitbasis sich an der laufenden Zeit, vom Beginn der aktuellen Datei an, orientiert. Diese Datei sollte beim Umwandeln in ein Format wie AVI verwendet werden. Die Datei »*.srt1« enthält Untertitel, deren Zeitbasis sich an der von der Kamera übertragenen Zeit orientiert. Das Programm »MPlayer« kann mit diesen Untertiteln umgehen.

-stdin
    Liest den Datenstrom aus einer Pipe an der Standardeingabe anstatt vom FireWire-Treiber.

-timecode
    Baut den Zeitstempel des ersten Frames jeder Datei in den Dateinamen ein.

-t, -timestamp
    Baut Datum und Uhrzeit der Aufnahme in den Dateinamen ein.

-timesys
    Verwendet das Datum und -uhrzeit des Systems anstatt der Aufnahme für den Dateinamen. Das ist nützlich, wenn Umwandler verwendet werden, die das Aufnahmedatum und -uhrzeit in den DV-Daten nicht ändern.

-V, -v4l2
    Liest von einem USB-Video-Class-(UVC)-Gerät ein, das DV unterstützt. Der Kernel-Treiber »uvcvideo« via V4L2 wird benutzt. Das Standard-Gerät ist /dev/video. Mit der Option -input können Sie eine andere Gerätedatei einstellen.

-v, -version
    Zeigt die Programmversion.

-24p
    Setzt bei »Quicktime DV« die Framerate auf 24 fps in der Quicktime-Datei. Das funktioniert aber nur, wenn die Aufnahme im Modus »24p« erfolgte.

-24pa
    Setzt bei »Quicktime DV« die Framerate auf 24 fps in der Quicktime-Datei und macht zusätzlich das »2:3:3:2 pull down«-Verfahren rückgängig, indem die »interlaced C-Frames« entfernt werden. Das funktioniert aber nur, wenn die Aufnahme im Modus »24p advanced« erfolgte. Siehe http://www.adamwilt.com/24p/.

BEISPIELE

dvgrab foo-
    Importiert Videodaten von der standardmäßigen FireWire-Quelle und speichert sie in Dateien foo-001.avi, foo-002.avi, usw.

dvgrab -frames 25 foo-
    Eine PAL-Video-Quelle vorausgesetzt, speichert dieses Kommando eine Sekunde Videodaten pro Datei.

dvgrab -autosplit -frames 750 -timestamp foo-
    Liest Videodaten von der voreingestellten FireWire-Quelle ein, teilt sie in Stücke von 30 Sekunden (angenommen PAL) oder am Beginn einer neuen Aufnahme und benennt die Dateien nach den Datums- und Zeitinformationen des Videostroms.

dvgrab -autosplit -size 1998 -csize 4400 -cmincutsize 10 foo-
    Importiert Videodaten von der standardmäßigen FireWire-Quelle, teilt sie in Stücke, wenn eine neue Aufnahme beginnt oder die aktuelle Datei 1998 Megabyte überschreitet oder die aktuelle Zusammenstellung von Dateien größer als 4400 Megabyte wird. Außerdem beschränkt es die kleinste Dateigröße, die durch Teilung einer Zusammenstellung entsteht, auf 10 Megabyte.

    Dieses Beispiel ist sehr gut geeignet, um DV-Daten auf DVDs zu sichern, weil 2 GByte ungefähr die maximale Dateigröße ist, mit der die (aktuelle) Linux-Umsetzung des ISO9660-Dateisystems umgehen kann.

    Achtung: Es ist möglich in ISO9660-Dateisystemen Dateien größer als 2 GByte anzulegen, aber die aktuellen Linux-Treiber für ISO9660 können diese nicht lesen. Neuere Kernel können evtl. mit Dateien größer 2 GByte im ISO9660-Dateisystem umgehen.

dvgrab -format hdv -autosplit
    Liest von einem HDV-Camcorder ein, versucht den Anfang jeder neuen Aufnahme zu erkennen und in einzelnen Dateien zu speichern.

dvgrab -format mpeg2 -guid 1
    Nimmt von einer digitalen TV-Settop-Box auf.

dvgrab -jpeg-over -jpeg-w=320 -jpeg-h=240 -d smpte=1 webcam.jpeg
    Liest ein einzelnes Frame ein, speichert es als JPEG mit dem Namen »webcam.jpg« und endet. Dieses Beispiel zeigt auch die Verwendung von Optionen. Sie müssen von einem langen Optionsnamen nur so viel angeben, damit er eindeutig ist. Sie können Leerzeichen oder Gleichheitzeichen benutzen, um den Optionsnamen und den Wert zu trennen. Das Dateiformat wird von der Erweiterung des Dateinamens abgeleitet. Weil die Option -jpeg-overwrite verwendet wird, ist der Dateiname genau »webcam.jpeg« und enthält keine Zahlen.

dvgrab -V
    Importiert über USB von einem UVC-konformen DV-Gerät.

dvgrab -v4l -input /dev/video1
    Importiert über USB von einem UVC-konformen DV-Gerät und benutzt die Gerätedatei /dev/video1.

dvgrab -format=hdv -autosplit=28800 -srt foo-
    Liest von einem HDV-Camcorder ein und speichert jede Aufnahme in einer eigenen Datei, wenn sie einen Zeitunterschied von mehr als 8 Stunden zur vorherigen hat. Das erzeugt eine eigene Datei für jeden Tag (gut für Urlaubsvideos). Außerdem werden Untertiteldateien angelegt. Angenommen, die Dateien »foo-001.m2t« und »foo-002.m2t« werden erstellt, so werden auch die dazu gehörenden Untertiteldateien »foo-001.srt0«, »foo-001.srt1«, »foo-002.srt0« und »foo-002.srt1« angelegt. Die Dateien können benutzt werden, um Aufnahmedatum und -uhrzeit beim Anschauen des Videos anzuzeigen.

AUTOR

Dan Dennedy <dan@dennedy.org> und Daniel Kobras <kobras@debian.org>. Erik Schanze <eriks@debian.org> hat sie ins Deutsche übersetzt.

Mehr Informationen und Unterstützung finden Sie auf der Webseite http://www.kinodv.org/ .