Blu-ray ForumHeimkino, Hifi / TechnikTechnik, Software, HTPC / Media Center Diskussionen

Digitalisieren von Blu-Ray-Discs in einer Apple-Umgebung

Gestartet: 15 Sep 2019 19:08 - 1 Antworten

#1
Geschrieben: 15 Sep 2019 19:08

FLX

Avatar FLX


Blu-ray Starter
Aktivität:
 
Hallo zusammen,

ich habe folgende Anleitung für das Digitalisieren von Blu-Ray-Discs geschrieben.
Ist vielleicht für den ein oder anderen interessant.

Bitte schreibt mir, falls Ihr Fragen oder Anregungen habt.
-->

Ich bin begeisterter Filme-Fan und Hi-Fi-Enthusiast.

Für mich ist folglich die Blu-Ray-Disc das Medium der Wahl für den Filme-Konsum.
Allerdings möchte ich ebenfalls meine Blu-Ray-Discs digital verwalten und auch die schöne Aufmachung der Streaming-Apps von Apple oder Netflix gefällt mir sehr.

Nun könnte ich als normaler Filme-Fan einfach zu einem der Streaming-Anbieter wechseln und bräuchte diesen Artikel gar nicht schreiben. Wäre da nicht der Hi-Fi-Enthusiast in mir.

Vergleichen wir einmal einen Stream mit der entsprechenden Blu-Ray-Disc (Interstellar von Christopher Nolan):

Video-Stream-Bitrate: 4.554 kb/s                                    / 24.200 kb/s
Größe des Video-Streams: 5,38 GB                                    / 28,6 GB
Audio-Stream-Bitrate: 150 kb/s / 2 channels        / 3.704 kb/s / 6 channels
Größe des Audio-Streams: 181 MB                                        / 4.475 MB

Zum Video:
Die Auflösung beträgt in beiden Fällen 1080p, der Unterschied in der Stream-Größe liegt also an der deutlich geringeren Bitrate. Eine niedrige Bitrate sorgt für eine hohe Artefakt-Bildung.

Zum Audio:
Die meisten Musik-Streaming-Anbieter stellen die Musik in 320 kb/s bereit. Eine Audio-CD bietet 1.411 kb/s. Folglich kann eine Bitrate unter 150 kb/s kein wirklicher Klanggenuss sein.
Zwei Kanäle über ein 5.1-Heimkinosystem ansteuern zu müssen trägt zum Klangerlebnis ebenfalls nicht gerade bei.

Zusammengefasst lässt sich sagen, dass die starke Komprimierung der Streams kein wahres Hi-Fi-Erlebnis bieten kann. Für den Filmgenuss mit einem 55"-Fernseher und den integrierten Lautsprechern oder im besten Fall einer Soundbar ist die Qualität u. U. gerade noch ausreichend. Meiner 120"-Leinwand und dem 5.1-Nubert-System möchte ich das allerdings nicht antun.
Der zweite Grund für das Sammeln von Blu-Ray-Discs sind die dem Heimkino vorenthaltenen Fassungen, wie Director's Cut o. Ä. Bspw. hat die Black-Edition-Blu-Ray-Disc des Films I Saw the Devil - Rache ist ein tiefer Abgrund von Regisseur Jee-Woon Kim eine Länge von 142 Minuten, die Version im iTunes Store ist nur 131 Minuten lang. Was geschnitten wurde und ob dies ebenfalls auf Kosten der Handlung geschah, muss im Einzelfall betrachtet werden. Ich schaue allerdings lieber die ungeschnittene Fassung, am besten im Director's Cut, als irgendwelche geschnittenen Versionen des Films.
Ein weiterer Grund für das Sammeln und Digitalisieren von Blu-Ray-Discs (kurz BDs) ist die Möglichkeit, sich eigene, nie im Heimatland veröffentlichte Fassungen zu erstellen. Als Beispiel möchte ich hier den Film The Avengers von Regisseur Joss Whedon anführen. Dieser wurde für die deutschen Kinos und später auch für das Heimkino auf BD geschnitten . Beim Digitalisieren ist es nun ein Leichtes, den Video-Stream der italienischen und den Audio-Stream der deutschen BD zu multiplexen und so ein nie auf dem deutschen Markt verfügbares Film-Erlebnis zu ermöglichen.

© 2012 Marvel

Nie im Zielland auf BD veröffentlichte Filme können nach dem gleichen Prinzip digitalisiert werden, indem man bspw. den Audio-Stream der deutschen DVD und den Video-Stream der US-amerikanischen BD multiplext (aufgrund der unterschiedlichen FPS muss hier einiges beachtet werden).

Zum Glück gibt es eine Möglichkeit, das Beste aus den beiden Welten bequemes Streaming und qualitative BDs zu vereinen.

Ich zeige Euch, wie Ihr Eure BDs digitalisiert und korrekt taggt, sodass nicht mal die Streaming-App den Unterschied zwischen einem gekauften Stream und einer digitalisierten BD erkennt.





Diese Anleitung ist für die Wiedergabe der BDs in einer Apple-Umgebung gedacht, da Apple mit der iTunes Search API ein sehr nützliches Werkzeug bietet, um unser Vorhaben umzusetzen.

Was Ihr benötigt:

- Microsoft Windows
- Apple macOS
- Mp3tag (Windows)
- Python (Windows)
- VLC (Windows)
- x264 (Windows)
- FFmpeg (Windows)
- Subtitle Edit (Windows)
- Subler (macOS)

1. BD konvertieren:

Nach § 95a Abs. 1 UrhG ist es verboten "wirksame technische Maßnahmen zum Schutz eines nach diesem Gesetz geschützten Werkes oder eines anderen nach diesem Gesetz geschützten Schutzgegenstandes" zu umgehen. Das sogenannte "rippen" kommt demnach für uns nicht in Frage.
Mit dem Programm VLC können wir allerdings die BD bei der Wiedergabe konvertieren. Der einzige Unterschied ist die Zeit. Während das Rippen einer BD nur etwa ein Fünftel der eigentlichen Länge der BD beträgt, sind es beim Konvertieren in Echtzeit 100 % der Zeit.

Wir wählen also als Container-Format MKV und behalten den original Video- und Audio-Stream bei.

Als Ergebnis erhalten wir eine MKV-Datei die wie folgt heißen könnte: output.mkv.

2. M4V-Datei erstellen:

Der zuvor erstellte Container (output.mkv) enthält nun einen Video-Stream, einen oder mehrere Audio-Streams und beliebig viele Subtitle-Streams.
Nun müssen wir den Inhalt von einem Container in einen anderen (MP4-Container) packen und auf die Kompatibilität der enthaltenen Streams mit dem Container achten.

Beim Konvertieren Eurer BDs werden Euch folgende Formate begegnen:

Video:

- AVC
- VC-1

Audio:

- PCM (lossless)
- DTS-HD Master Audio (lossless)
- Dolby TrueHD (lossless)
- DTS-HD High Resolution (lossy)
- Dolby Digital Plus (lossy)
- Dolby Digital (lossy)
- DTS (lossy)

Der VC-1 Video-Codec ist nicht mit dem MP4-Container kompatibel. Wir müssen den Stream also transcodieren.
Da wir einen Stream erstellen möchten, der nicht von einer originalen BD zu unterscheiden ist, müssen wir einen BD konformen Encoder verwenden. Der x264-Encoder kann BD kompatible Video-Streams erzeugen.
Um die Befehlszeile des Encoders korrekt aufzubauen, benötigen wir das Programm ffprobe des FFmpeg-Frameworks.

ffprobe -v 0 -of csv=p=0 -select_streams 0 -show_entries stream_tags=BPS output.mkv

liest die Bitrate [BPS] des Containers aus.

ffprobe -v 0 -of csv=p=0 -select_streams 0 -show_entries stream=r_frame_rate output.mkv

zeigt uns die Framerate [FPS] des Containers.

Die fertigen x264-Befehlszeilen sehen nun wie folgt aus.

x264-r2935-545de2f.exe --fps [FPS] --force-cfr --bitrate [abs(BPS/1000)] --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint [round(FPS)] --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o temp.mkv output.mkv
x264-r2935-545de2f.exe --fps [FPS] --force-cfr --bitrate [abs(BPS/1000)] --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint [round(FPS)] --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o output_avc.mkv output.mkv

Um die Kompatibilität der Audio-Codecs kümmern wir uns erst gar nicht. Wir konvertieren einfach alles in das kompatible ALAC-Format. Informationsverlusten wie sie bei lossy-zu-lossy-Transcodierungen vorkommen können wir so umgehen. Wir sollten uns nur auf die Bittiefe der lossless-Audio-Streams einigen. Konvertieren wir von lossless zu lossless, übernehmen wir einfach die Bittiefe und bei allen lossy-Konvertierungen verwenden wir 16 bits.

Jetzt sollten wir noch festlegen, was wir alles aus dem MKV-Container übernehmen wollen. Um so nah wie möglich am Original (in dem Fall dem Stream) zu bleiben, übernehmen wir die auf der BD verfügbaren Streams, die uns Apple ebenfalls geboten hätte.

Bei unserem Beispiel Interstellar wären das folgende Streams:

- Video-Stream
- englischer Audio-Stream
- deutscher Audio-Stream
- englischer Subtitle-Stream
- deutscher Subtitle-Stream

Die Subtitle-Streams erstellen wir mit dem binären Bild-Vergleich von Subtitle Edit.

Die Befehlszeile des Muxers ffmpeg des FFmpeg-Frameworks sieht nun wie folgt aus:

ffmpeg^
 -i output.mkv -i output_english.srt -i output_german.srt^
 -map 0:0 -map 0:1 -map 0:3 -map 1:0 -map 2:0^
 -metadata:s:v:0 handler_name="AVC"^
 -metadata:s:a:0 language=eng -metadata:s:a:0 handler_name="DTS-HD Master Audio"^
 -metadata:s:a:1 language=deu -metadata:s:a:1 handler_name="DTS-HD Master Audio"^
 -metadata:s:s:0 language=eng -metadata:s:s:0 handler_name="English"^
 -metadata:s:s:1 language=deu -metadata:s:s:1 handler_name="German"^
 -movflags disable_chpl^
 -c:s mov_text -c:v copy -c:a alac^
 Interstellar.m4v

-i output.mkv: MKV-Container
-i output_english.srt: englischer Subtitle-Stream
-i output_german.srt: deutscher Subtitle-Stream
-map 0:0: Video-Stream aus dem MKV-Container
-map 0:1: englischer Audio-Stream aus dem MKV-Container
-map 0:3: deutscher Audio-Stream aus dem MKV-Container
-map 1:0: englischer Subtitle-Stream
-map 2:0: deutscher Subtitle-Stream
-metadata:s:*:* language=*: Sprache des jeweiligen Streams
-metadata:s:*:* handler_name=*: Name des jeweiligen Streams

oder sollte der Video-Stream im VC-1-Codec vorliegen:

ffmpeg^
 -i output_avc.mkv -i output.mkv -i output_english.srt -i output_german.srt^
 -map 0:0 -map 1:1 -map 1:3 -map 2:0 -map 3:0^
 -metadata:s:v:0 handler_name="VC-1"^
 -metadata:s:a:0 language=eng -metadata:s:a:0 handler_name="DTS-HD Master Audio"^
 -metadata:s:a:1 language=deu -metadata:s:a:1 handler_name="DTS-HD Master Audio"^
 -metadata:s:s:0 language=eng -metadata:s:s:0 handler_name="English"^
 -metadata:s:s:1 language=deu -metadata:s:s:1 handler_name="German"^
 -movflags disable_chpl^
 -c:s mov_text -c:v copy -c:a alac^
 Interstellar.m4v

Sollte es notwendig sein, die Bittiefe auf 16 bits zu reduzieren, ergänzen wir die Befehlszeile mit dem Parameter '-sample_fmt:a:[stream_id] s16p'; sollte der Audio-Stream über acht Kanäle verfügen, wird die Befehlszeile mit dem Parameter -filter:a:[stream_id] '"aformat=channel_layouts=7.1(wide)"' ergänzt.

3. Metadaten dem Container hinzufügen:

Jetzt starten wir das Programm Subler in unserem macOS und laden die entsprechenden Metadaten aus dem iTunes Store. Außerdem wählen wir die passenden Sprache-/Land-Kombinationen für die Streams aus. Abschließend setzen wir noch die deutschen Audio- und Subtitle-Streams auf default.

Informationen zu Besetzung, Drehbuchautoren, Regisseuren, Produzenten und Studio speichert Apple in einer Eigenschaftenliste. Subler legt diese Liste mit den entsprechenden Personen an, allerdings ohne die IDs der Personen. Wir müssen also den Film mit dem Programm Mp3tag öffnen und lassen uns den Inhalt des ITUNMOVI-Atom anzeigen.
Wir ergänzen das Schlüssel-/Werte-Paar name [name] vom Datentyp string mit dem Paar adamId [id] vom Typ integer. Die entsprechenden Werte finden wir im Webauftritt des iTunes Store.
Außerdem fehlen die Tags desc und geID. Diese können wir mit dem python-Modul mutagen in die Datei speichern. Subler füllt das Feld ldes und da desc die ersten 254 Zeichen des ldes-Feldes zeigt, können wir ldes als Daten-Quelle nutzen. Das geID-Feld füllen wir, indem wir das Genre aus dem Feld \xa9gen mit der entsprechenden ID ersetzen.

Nun können wir die Datei Interstellar.m4v der iTunes-Mediathek hinzufügen.

4x bearbeitet, zuletzt: 15 Sep 2019 20:17 von FLX

#2
Geschrieben: 16 Sep 2019 12:08

SaWe69

Avatar SaWe69


Blu-ray Junkie
Blu-ray Fan
Aktivität:
 
Deutschland
Hannover
Forenposts: 944
Clubposts: 30
seit 21.04.2009
Panasonic TX-65DXW904
Epson EH-TW3200
OPPO UDP-203
Blu-ray Filme: 1272
PS 3 Spiele: 7
Steelbooks: 24
Bedankte sich 255 mal.
Erhielt 160 Danke für 141 Beiträge
SaWe69 Liest hier jetzt mit dem iPad, besser geht\'s nicht...

Sehr gut gemachte Anleitung, hat Dich sicherlich viel Zeit gekostet. Vielen Dank dafür!


Beitrag Kommentieren

Noch 160 Zeichen

Blu-ray ForumHeimkino, Hifi / TechnikTechnik, Software, HTPC / Media Center Diskussionen

Es sind 47 Benutzer und 1106 Gäste online.