Benutzer:Pristurus/Spielwiese

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Konvertierung unter Windows mit ffmpeg2theora.exe[Bearbeiten | Quelltext bearbeiten]

In der Regel werden die meisten Nutzer ihre Videos wohl mit Programmen in das ogg-theora-Format konvertieren, die über eine graphischen Benutzeroberfläche verfügen. Alternativ lässt sich aber auch unter Windows das Komandozeilenprogramm ffmpeg2theora.exe nutzen. Ffmpeg2theora steht in zwei Versionen zur Verfügung, einmal in einer stabilen, weitgehend ausgetesten, sowie in Form von "nightlys", die die aktuelle Programmentwicklung wiederspiegeln. Eine "nightly"-Version von ffmpeg2theora bietet den Vorteil, jeweils die letzten verfügbaren Features der (Audio- und Video-) Codecs nutzen zu können, meist mit einem verbesserten Enkodierverhalten gegenüber der stabilen Programmversion. Praktisch bedeutet dies: bei gleicher Datenrate ist die Qualität des Videos (etwas) besser. Nachteilig kann im Einzelfall dagegen sein, dass Entwicklerversionen nicht immer fehlerfrei sind; in der Praxis kommen (bemerkbare) Fehler jedoch hier nur sehr selten vor.

Installation von ffmpeg2theora[Bearbeiten | Quelltext bearbeiten]

ffmpeg2theora lässt sich als fertiges Programm herunterladen: Stabile Version bzw. Nightly-Version Es empfiehlt sich nun an einem beliebiegem Ort ein separates Verzeichnis (Ordner) anzulegen und ffmpeg2theora.exe dorthin zu verschieben, weitere Installationsschritte sind nicht erforderlich.

Arbeitsweise von ffmpeg2theora[Bearbeiten | Quelltext bearbeiten]

Als Anwender hat man die Wahl zwische 2 Umwandlungsmodi: a) durch Auswahl einer Qualitätsstufe zwischen 1 und 10. Der Encoder wird dann versuchen die gewählte Qualitätsstufe über die gesammte Videodauer (ungeachtet der hierzu erforderlichen Datenrate) zu halten. b)Vorgabe einer angestrebten Datenrate; der Encoder wird versuchen die vorgebene Datenrate über die Gesammtdauer des Videos zu halten. Ein Sonderfall hierbei ist das 2-pas-Verfahren, welches einen Encoderdurchlauf zur Analyse des Videos sowie einen 2. Durchgang zum Kodieren erfordert: ruhige Szenen bekommen weniger, solche mit viel Bewegung mehr Datenrate, im Durchschnitt liegt die Datenrate jedoch im Bereich der Vorgabe.

Parameter[Bearbeiten | Quelltext bearbeiten]

Zum Festlegen, wie der Encoder genau arbeiten soll, dienen Variablen, also vom Nutzer zu setzende Parameter. Um sich die möglichen Parameter anzeigen zu lassen, öffnet man Start-> Ausführen und gibt dort cmd ein, ein Eingabeaufforderungsfenster wird geöffnet; dort werden nach Eingabe von Lauwerk\Pfad\ffmpeg2theora.exe --help die möglichen Parameter gelistet. Laufwerk und Pfad sind dabei entsprechend des Speicherortes von ffmpeg2theora.exe anzupassen (z.B. C:\Programme\ffmpeg2theora\ffmpeg2theora.exe --help, wenn sich ffmpeg2theora.exe auf Lauwerk C im Ordner Programme im Unterordner ffmpeg2theora befindet). Hier die zur Zeit verfügbaren Parameter (nightly vom 1.5.2011):

General output options:

 -o, --output           alternative output filename
     --no-skeleton      disables ogg skeleton metadata output
     --skeleton-3       outputs Skeleton Version 3, without keyframe indexes
 -s, --starttime        start encoding at this time (in sec.)
 -e, --endtime          end encoding at this time (in sec.)
 -p, --preset           encode file with preset.
                         Right now there is preview, pro and videobin. Run
                         'ffmpeg2theora -p info' for more informations

Video output options:

 -v, --videoquality     [0 to 10] encoding quality for video (default: 6)
                                  use higher values for better quality
 -V, --videobitrate     encoding bitrate for video (kb/s)
     --soft-target      Use a large reservoir and treat the rate
                        as a soft target; rate control is less
                        strict but resulting quality is usually
                        higher/smoother overall. Soft target also
                        allows an optional -v setting to specify
                        a minimum allowed quality.
     --two-pass         Compress input using two-pass rate control
                        This option requires that the input to the
                        to the encoder is seekable and performs
                        both passes automatically.
     --first-pass <filename> Perform first-pass of a two-pass rate
                        controlled encoding, saving pass data to
                        <filename> for a later second pass
     --second-pass <filename> Perform second-pass of a two-pass rate
                        controlled encoding, reading first-pass
                        data from <filename>.  The first pass
                        data must come from a first encoding pass
                        using identical input video to work
                        properly.
     --optimize         optimize video output filesize (slower)
                        (same as speedlevel 0)
     --speedlevel       encoding is faster with higher values
                        the cost is quality and bandwidth (default 1)
                        available values depend on the version of libtheora
                        your version supports speedlevels 0 to -1
 -x, --width            scale to given width (in pixels)
 -y, --height           scale to given height (in pixels)
     --max_size         scale output frame to be within box of
                        given size, height optional (%d[x%d], i.e. 640x480)
     --aspect           define frame aspect ratio: i.e. 4:3 or 16:9
     --pixel-aspect     define pixel aspect ratio: i.e. 1:1 or 4:3,
                        overwrites frame aspect ratio
 -F, --framerate        output framerate e.g 25:2 or 16
     --croptop, --cropbottom, --cropleft, --cropright
                        crop input by given pixels before resizing
 -K, --keyint           [1 to 2147483647] keyframe interval (default: 64)
 -d --buf-delay <n>     Buffer delay (in frames). Longer delays
                        allow smoother rate adaptation and provide
                        better overall quality, but require more
                        client side buffering and add latency. The
                        default value is the keyframe interval for
                        one-pass encoding (or somewhat larger if
                        --soft-target is used) and infinite for
                        two-pass encoding. (only works in bitrate mode)
     --no-upscaling     only scale video or resample audio if input is
                        bigger than provided parameters
     --resize-method <method>    Use this method for rescaling the video
                        See --resize-method help for a list of available
                        resizing methods

Video transfer options:

 --pp                   Video Postprocessing, denoise, deblock, deinterlacer
                         use --pp help for a list of available filters.
 -C, --contrast         [0.1 to 10.0] contrast correction (default: 1.0)
                         Note: lower values make the video darker.
 -B, --brightness       [-1.0 to 1.0] brightness correction (default: 0.0)
                         Note: lower values make the video darker.
 -G, --gamma            [0.1 to 10.0] gamma correction (default: 1.0)
                         Note: lower values make the video darker.
 -Z, --saturation       [0.1 to 10.0] saturation correction (default: 1.0)
                         Note: lower values make the video grey.

Audio output options:

 -a, --audioquality     [-2 to 10] encoding quality for audio (default: 1)
                                   use higher values for better quality
 -A, --audiobitrate     [32 to 500] encoding bitrate for audio (kb/s)
 -c, --channels         set number of output channels
 -H, --samplerate       set output samplerate (in Hz)
     --noaudio          disable audio from input
     --novideo          disable video from input

Input options:

     --deinterlace      force deinterlace, otherwise only material
                         marked as interlaced will be deinterlaced
 -f, --format           specify input format
     --inputfps fps     override input fps
     --audiostream id   by default the first audio stream is selected,
                         use this to select another audio stream
     --videostream id   by default the first video stream is selected,
                         use this to select another video stream
     --nosync           do not use A/V sync from input container.
                        try this if you have issues with A/V sync

Subtitles options:

     --subtitles file                 use subtitles from the given file (SubRip
(.srt) format)
     --subtitles-encoding encoding    set encoding of the subtitles file
            supported are utf-8, utf8, iso-8859-1, latin1
     --subtitles-language language    set subtitles language (de, en_GB, etc)
     --subtitles-category category    set subtitles category (default "subtitles")
     --subtitles-ignore-non-utf8      ignores any non UTF-8 sequence in UTF-8 text
     --nosubtitles                    disables subtitles from input
                                      (equivalent to --subtitles=none)
     --subtitle-types=[all,text,spu,none]   select what subtitle types to include from the
                                            input video (default text)

Metadata options:

     --artist           Name of artist (director)
     --title            Title
     --date             Date
     --location         Location
     --organization     Name of organization (studio)
     --copyright        Copyright
     --license          License
     --contact          Contact link
     --nometadata       disables metadata from input
     --no-oshash        do not include oshash of source file(SOURCE_OSHASH)

Keyframe indexing options:

     --index-interval <n>         set minimum distance between indexed keyframes
                                  to <n> ms (default: 2000)
     --theora-index-reserve <n>   reserve <n> bytes for theora keyframe index
     --vorbis-index-reserve <n>   reserve <n> bytes for vorbis keyframe index
     --kate-index-reserve <n>     reserve <n> bytes for kate keyframe index

Other options:

 -P, --pid fname        write the process' id to a file
 -h, --help             this message
     --info             output json info about input file, use -o to save json to file
     --frontend         print status information in json, one json dict per line

Erstellen von Batch-Dateien zum Kodieren[Bearbeiten | Quelltext bearbeiten]

Um nicht mit der recht umständlichen Eingabeaufforderung arbeiten zu müssen und Kodierungseinstellungen auch für andere zu wandelnde Videofiles wiederverwenden zu können, empfiehlt sich das Anlegen von ausführbaren Batch-Dateien. Hierzu öffnet man den Editor (normalerweise zu finden unter C:\Windows\System32\notepad.exe), erstellt seine Befehlszeile und speichert dann als Datei mit der Dateiendung .bat ab. Windows erkennt die bat-Datei dann anhand dieser Endung als ausführbar. Durch verwenden der Variablen %1 (speichert während der Kodierung den Namen der Ausgangsdatei)in der per Editor erstellten Batch-Datei ist diese nun einfach verwendbar: die zu wandelnde Datei wird einfach per Maus auf die Batchdatei gezogen und dort fallengelassen (= drag and drop), als Ergebniss erhält man die codierte ogv-Datei im selben Ordner wie die Ausgangsdatei.

Beispiele für Kodierbefehlszeilen, wie sie im Editor eingegeben und dann unter beliebigem Namen mit der Endung .bat abgespeichert werden können (~ ist durch den lokalen Pfad zu ffmpeg2theora.exe zu ersetzen):

1.) einfaches Kodieren mit festgelegter Qualitätsstufe 8 für Video und Audio:
~\ffmpeg2theora-0.25.exe -i %1 -v 8 -a 8

mit -i= Ausgangsdatei, v=ausgegebener Videoqualitätsstufe, a=Audioqualitätsstufe

2.) 2-pass Verfahren ohne Audio im 16:9 Format (bei anamorphem Ausgangsformat ="Eierköpfe"), die Datei soll alle 100 Bilder einen Indexeintrag zum Durchsuchen erhalten, Schlüsselbilder sollen nach spätestens 250 Bildern neu erstellt werden, Videobitrate soll ca. 1200 bits/sec. betragen, langsames encodieren für möglichst optimale Qualität, kein Audio, Angabe verschiedener in der Zieldatei enthaltenen Angaben (Metadaten):


~\ffmpeg2theora.exe %1 --aspect 16:9 --index-interval 100 --keyint 250 --videobitrate 1200 --two-pass --speedlevel 0 --nosound --artist "Pristurus" --title "" --location "Wollenberg, Hesse, Germany --date "2011-05-01" --contact "http://de.wikipedia.org/wiki/Benutzer_Diskussion:Pristurus" --copyright "Pristurus, 2011" --license "Creative Commons-Lizenz 3.0 Unported"