30.09.2010, 15:01

Das Vorgehen beim Rekodieren von DVDs ist bei mir im Wesentlichen immer dasselbe. Deshalb dieses Bash-Script, welches mir nahezu jegliche Arbeit dabei abnimmt und – wenn man das ohne handfeste Beweise sagen kann – sehr gute Qualität liefert (im Sinne, dass ich bisher noch nie nachbearbeiten / korrigieren musste, was es ausspuckt):

Download: proc.sh (14 KB) [macht damit, was ihr wollt]

Vor diesem Script nutzte ich dvd::rip für diesen Zweck, allerdings bot es mir zuwenig Unterstützung zur Zwischenbearbeitung und der Optionen der einzelnen verwendeten Programme. dvd::rip arbeitet dabei im Prinzip sehr ähnlich zu diesem Script, ist aber benutzerfreundlicher, mit einer GUI ausgestattet und vereinfacht eine verteilte Kodierung; weshalb es an dieser Stelle Erwähnung findet.

Features

  • Automatische Extraktion aller nötigen Daten aus DVD-Mountpfad / Pfad zu DVD-Image
  • Automatische Wahl des längsten Tracks (einstellbar)
  • H.264-Video via x264 und einstellbarem Constant Quality Rate Factor (--crf)
    • Zuschnitt (via ffmpeg) über Angabe der Anzahl abzuschneidender Pixelzeilen/-spalten
      • Warnung bei Framegrößen, die Probleme bereiten können (ungleich 0 mod 16)
      • Automatische Anpassung der Pixelverhältnis- bzw. Seitenverhältnisangaben im resultierenden Videostrom
    • Zwischenschaltbare yuv4mpeg-filter (z.B. zur Rauschunterdrückung, siehe auch Patch für yuvdenoise bzw. kommendes mjpegtools-Release)
    • Zusätzliche FFmpeg- und x264-Argumente
  • Alle / Selektierte Audio-Tracks als Ogg Vorbis á 144kbps VBR (einstellbar)
    • Automatische Erkennung des Formats und Dekodierung
    • Automatische Normalisierung basierend auf der maximalen Lautstärke für jeden Strom
  • Alle / Selektierte Untertitel kodiert als VobSub mit korrekten Sprachen / Zeitmarken
  • Ausgabe des kompletten Befehls, um Matroska-Container inkl. Metadaten wie Titel, Kapitel und x264-encoding-Log zu erstellen
  • Wiederholung unabhängiger selektierbarer Einzelschritte leicht möglich
  • Überprüfung der und Warnung bei fehlenden Programmen

Benötigte Programme / Pakete

  • ffmpeg (cropping und Kodierung MPEG2->y4m, Audionormalisierung)
  • lsdvd (Metainformationen zu Titles von DVD)
  • dvdxchap (Kapitelinformationsextrahierung)
  • transcode (Bearbeitung von VOB- und Audiodaten)
  • subtitleripper (Untertitelkonvertierung nach VobSub)
  • x264 (Videokodierung)
  • bc (einige Rechnungen, wie Seitenverhältnisse)
  • vorbis-tools (Audiokodierung)
  • mkvtoolnix (Matroskagenerierung)
  • libdca (DTS-Audiodekodierung)
  • a52dec (AC3-Audiodekodierung)

Optionen

  []
  -t           DVD title to encode, default: longest
  -k <chapter>        DVD chapter of selected title to encode, default: -1 (all)
  -A "<a b c d ...>"  audio track indices to extract, default: all
  -S "<a b c d ...>"  subtitle track indices to extract, default: all
  -C <l> <r> <t> <b>  cropping
  -c <crf>            CRF-value for x264, smaller: better, default: 23
  -b <kbit-rate>      Ogg Vorbis bitrate, default: 144
  -q <quality>        Ogg Vorbis quality, default: 4
  -f <ffmpeg-args>    additional FFmpeg video filter arguments,
                      e.g. '-deinterlace'
  -x <x264-args>      additional arguments for x264-encoding,
                      e.g. '--tune <type>' with <type> being a combination of:
                      film, animation, grain, stillimage, fastdecode, zerolatency
  -y <y4m-filter>     yuv4mpeg filter, pipe into command
  -s <stage>           1: chapters
                       2: extract audio
                       4: extract subtitles
                       8: process subtitles
                      16: encode audio files
                      32: encode video
                      64: save output file
  -P <palette>        override custom subtitle palette extracted from DVD IFO
                      (16 comma-separated hex values) or empty string for default
  -v                  display video during encoding
  -T <title>          human readable title of the movie for Matroska container
                      (needed for unattended output)
  -o <output-path>    path to filename to save encoded Matroska video
                      (needed for unattended output)
  -L <language>       language the chapter descriptions are provided in
                      (needed for unattended output iff (<stage> & 1) == 0,
                       otherwise 'eng' is assumed)]]></pre>
			</div>
	</div>
		</div>
		<div id="footer">
			<hr />
			<p>
				<a href="http://validator.w3.org/check?uri=referer"><img
					src="http://www.w3.org/Icons/valid-xhtml10"
					alt="Valid XHTML 1.0 Strict" width="44"
				/></a></p><p>And always remember:
					<a href="https://web.archive.org/web/20220316024858/http://www.internetisshit.org/">The internet is shit!</a></p>
		</div>
	</body>
</html>