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 - 2 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.

--> UPDATE

Verstoß melden

Bitte geben Sie eine Begründung ein, weshalb der Post ein Verstoß darstellt:

Schicken Sie dieses Formular nur ab, wenn es sich bei diesem Post wirklich um ein Verstoß handelt!

5x bearbeitet, zuletzt: 25 Nov 2019 23:58 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!
#3
Geschrieben: 25 Nov 2019 23:57

FLX

Avatar FLX


Blu-ray Starter
Aktivität:
 
Weiter oben hatte ich erwähnt, dass nie im Zielland auf BD veröffentlichte Filme ebenfalls digitalisiert werden können, indem man die Audio- und Video-Streams der entsprechenden BDs oder DVDs multiplext.
Darauf möchte ich nun genauer eingehen.

Das Ganze nennt sich dubben und ich erkläre es Euch anhand des Beispiels der Millennium-Trilogie von Regisseur Niels Arden Oplev bzw. Daniel Alfredson.
(Als ich den iTunes-Store für diesen Beitrag nach der Trilogie durchsuchte, fiel mir auf, dass der erste Teil dort nicht mehr verfügbar war. Nur Verdammnis und Vergebung sind noch zu haben. Eine unvollständige Trilogie ist natürlich äußerst unschön. Das Verschwinden von Lizenzrechten der Streaming-Anbieter an Filmen ließe sich meiner kleinen Liste von Gründen für das physische Medium und anschließender Digitalisierung noch ergänzen.)

Die Trilogie gibt es in drei verschiedenen Versionen:

- Kinofassung (412 Min.)
- Director's Cut (538 Min.)
- Extended Version (558 Min.) (liegt als einzige Version in 1080p, statt 1080i, vor)

Die Kinofassung und der Director's Cut werden hierzulande von Warner Home Video Germany vertrieben. Die Extended Version ist leider nie in Deutschland erschienen.

Wir wollen also den deutschen Ton des Director's Cut auf das Bild der Extended Version legen.

Als Beispiel verwenden wir den ersten Teil des ersten Teils der Trilogie: Verblendung (Teil 1).

Was Ihr benötigt:

- Microsoft Windows
- FFmpeg (Windows)
- Adobe Premiere Pro (Windows) [oder etwas Vergleichbares]

1. Unterschiede finden und Schnittstellen definieren:

Als Erstes muss der Video-Stream aus dem Container extrahiert werden:

ffmpeg.exe -i MILLENIUM_VERBLENDUNG.mkv -map 0:0 -codec copy video_directorscut.264
ffmpeg.exe -i THE_GIRL_WITH_THE_DRAGON_TATTOO.mkv -map 0:0 -codec copy video_extendedversion.264

Anschließend werden beide Videos in das entsprechende Videobearbeitungsprogramm geladen und nebeneinander angezeigt.
Wir spulen nun im Schnelllauf vor und finden unterschiedliche Abschnitte im Film. Diese analysieren wir Frame für Frame und notieren uns die entsprechenden Unterschiede. Das könnte dann so aussehen:

1. Ersetzen (Extended Version/Director's Cut)
26
52
0-26
0-52

Am Anfang unterscheiden sich die beiden Filme und laufen erst ab Frame 26 bzw. 52 wieder synchron. D. h. wir müssen vom Audio-Stream der Extended Version die ersten 27 Frames abschneiden (von Frame 0 bis 25 plus einen Frame, weil der Ton für Frame 25 mit einberechnet werden muss) und die ersten 53 Frames vom Audio-Stream des Director's Cut.

2. Einfügen (Extended Version)
2928
2954
2929-5178

Anschließend folgt der gemalte Vorspann der Extended Version. Den Ton des Vorspanns gibt es folglich nicht im Director's Cut und wir müssen ihn komplett aus der Extended Version übernehmen. Die Filme laufen bis Frame 2928 bzw. 2954 synchron, dann folgt bei der Extended Version der Vorspann. Anschließend laufen beide Filme wieder mit Frame 5179 bzw. 2955 synchron. Folglich muss der Audio-Stream der Extended Version von Frame 2929 bis Frame 5179 (5178 plus 1) ausgeschnitten werden.

3. Ersetzen (Extended Version/Director's Cut)
133027
130803
133028-133800
130804-131602

Zuletzt unterscheiden sich die Filme noch im Abspann. Die Filme laufen bis Frame 133027 bzw. 130803 synchron und es folgen verschiedene Abspanne bis zum jeweiligen Ende (mit Frame 133800 bzw. 131602). Der Abspann muss jeweils abgeschnitten werden.

Es ist sinnvoll, zu prüfen, ob das Videobearbeitungsprogramm und unser Muxer die Frames gleich interpretieren (das Kommando dauert ziemlich lange, seht Ihr im Frame-Count (frame= x) den extrahierten Frame, könnt Ihr das Programm mit Strg+C beenden):

ffmpeg.exe -i MILLENIUM_VERBLENDUNG.mkv -an -vf select="between(n\,52\,52),setpts=PTS-STARTPTS" -c:v libx264 test_directorscut.mp4
ffmpeg.exe -i THE_GIRL_WITH_THE_DRAGON_TATTOO.mkv -an -vf select="between(n\,26\,26),setpts=PTS-STARTPTS" -c:v libx264 test_extendedversion.mp4

2. Neuen Audio-Stream erstellen:

Als Erstes müssen wir für jeden Film den entsprechenden Audio-Stream extrahieren (achtet hier wieder auf die Unterscheidung von lossless- und lossy-Audio-Streams):

ffmpeg.exe -i MILLENIUM_VERBLENDUNG.mkv -map 0:1 -c:a flac -sample_fmt:a s16 audio_directorscut.flac
ffmpeg.exe -i THE_GIRL_WITH_THE_DRAGON_TATTOO.mkv -map 0:2 -c:a flac -sample_fmt:a s16 audio_extendedversion.flac

Nun prüfen wir die Frameraten der Container:

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

Sind die Frameraten unterschiedlich (wie in diesem Fall) muss immer der Audio-Stream auf den Video-Stream angepasst werden.

In diesem Fall liegt der deutsche Director's Cut in 25 fps und die englische Extended Version in 23,976 fps vor.
Wir müssen also den deutschen Audio-Stream verlangsamen, und zwar um folgenden Faktor:

atempo = fps des Ziels / fps der Quelle
atempo = (24000/1001)/25

Mit dieser Befehlszeile:

ffmpeg.exe -i audio_directorscut.flac -filter:a "atempo=0.959040959" audio_directorscut_slowed.flac

Anschließend prüfen wir, wann die Streams starten ...

ffprobe -show_entries stream=codec_type,start_time -v 0 -of compact=p=1:nk=0 MILLENIUM_VERBLENDUNG.mkv
ffprobe -show_entries stream=codec_type,start_time -v 0 -of compact=p=1:nk=0 THE_GIRL_WITH_THE_DRAGON_TATTOO.mkv

... und wann sie enden:

ffprobe -show_packets MILLENIUM_VERBLENDUNG.mkv > stop_directorscut.txt
ffprobe -show_packets THE_GIRL_WITH_THE_DRAGON_TATTOO.mkv > stop_extendedversion.txt

Hier ist die Summe aus pts und duration des letztens Pakets (PACKET) vom Typ (codec_type) audio unseres Streams (stream_index) ausschlaggebend.

Danach wird der deutsche Audio-Stream an den in Schritt 1 festgelegten Schnittstellen in mehrere Teile geschnitten und aus dem englischen Audio-Stream werden die in Schritt 1 genannten Teile extrahiert:

Teil 1:
ffmpeg.exe -i audio_directorscut_slowed.flac -t (52/(24000/1001)) -codec flac audio_directorscut_1.flac
ffmpeg.exe -i audio_directorscut_slowed.flac -t 2.168833333 -codec flac audio_directorscut_1.flac
Der deutsche Audio-Stream wird bis zum 1. Schnittpunkt als audio_directorscut_1.flac extrahiert ...

Rest 1:
ffmpeg.exe -i audio_directorscut_slowed.flac -ss (52/(24000/1001)) -to (131624.75/(24000/1001)) -codec flac audio_directorscut_R1.flac
ffmpeg.exe -i audio_directorscut_slowed.flac -ss 2.168833333 -to 5489.848948 -codec flac audio_directorscut_R1.flac
... der Rest des Audio-Streams wird als audio_directorscut_R1.flac gespeichert (hier wird die vorher ermittelte Stoppzeit des Audio-Streams verwendet).

Teil 2:
ffmpeg.exe -i audio_directorscut_R1.flac -t ((2954-52)/(24000/1001)) -codec flac audio_directorscut_2.flac
ffmpeg.exe -i audio_directorscut_R1.flac -t 121.0375833 -codec flac audio_directorscut_2.flac
Vom Rest des deutschen Audio-Streams wird bis zum 2. Schnittpunkt als audio_directorscut_2.flac extrahiert (die Dauer bis zum 1. Schnittpunkt wird berücksichtigt) ...

Rest 2:
ffmpeg.exe -i audio_directorscut_slowed.flac -ss (((2954-52)+52)/(24000/1001)) -to (131624.75/(24000/1001)) -codec flac audio_directorscut_R2.flac
ffmpeg.exe -i audio_directorscut_slowed.flac -ss 123.2064167 -to 5489.848948 -codec flac audio_directorscut_R2.flac
... der neue Rest wird vom ursprünglichen Audio-Stream erzeugt, um Rundungsfehler zu vermeiden (hier wird die vorher ermittelte Stoppzeit des Audio-Streams verwendet).

Teil 3:
ffmpeg.exe -i audio_directorscut_R2.flac -t ((130803-(2954-52)-52)/(24000/1001)) -codec flac audio_directorscut_3.flac
ffmpeg.exe -i audio_directorscut_R2.flac -t 5332.368708 -codec flac audio_directorscut_3.flac
Vom Rest des deutschen Audio-Streams wird bis zum 3. Schnittpunkt als audio_directorscut_3.flac extrahiert (die Dauer der vorigen beiden Schnittpunkte wird berücksichtigt) ...

Rest 3:
ffmpeg.exe -i audio_directorscut_slowed.flac -ss (((130803-(2954-52)-52)+(2954-52)+52)/(24000/1001)) -to (131624.75/(24000/1001)) -codec flac audio_directorscut_R3.flac
ffmpeg.exe -i audio_directorscut_slowed.flac -ss 5455.575125 -to 5489.848948 -codec flac audio_directorscut_R3.flac
... der neue Rest wird wieder vom ursprünglichen Audio-Stream erzeugt (hier wird die vorher ermittelte Stoppzeit des Audio-Streams verwendet).

Neu 1:
ffmpeg.exe -i audio_extendedversion.flac -ss (0/(24000/1001)) -to (26/(24000/1001)) -codec flac audio_extendedversion_1.flac
ffmpeg.exe -i audio_extendedversion.flac -ss 0 -to 1.084416667 -codec flac audio_extendedversion_1.flac
Der Teil des 1. Schnitts des englischen Audio-Streams wird als audio_extendedversion_1.flac extrahiert.

Neu 2:
ffmpeg.exe -i audio_extendedversion.flac -ss (2929/(24000/1001)) -to (5179/(24000/1001)) -codec flac audio_extendedversion_2.flac
ffmpeg.exe -i audio_extendedversion.flac -ss 122.1637083 -to 216.0074583 -codec flac audio_extendedversion_2.flac
Der Teil des 2. Schnitts des englischen Audio-Streams wird als audio_extendedversion_2.flac extrahiert.

Neu 3:
ffmpeg.exe -i audio_extendedversion.flac -ss (133028/(24000/1001)) -to (133803.0689/(24000/1001)) -codec flac audio_extendedversion_3.flac
ffmpeg.exe -i audio_extendedversion.flac -ss 5548.376167 -to 5580.702999 -codec flac audio_extendedversion_3.flac
Der Teil des 3. Schnitts des englischen Audio-Stream wird als audio_extendedversion_3.flac extrahiert (hier wird die vorher ermittelte Stoppzeit des Audio-Streams verwendet).

Anschließend werden die verschiedenen Teile wieder zusammengefügt:

ffmpeg -f concat -i mylist.txt -c flac audio_final.flac

mylist.txt:
file 'audio_extendedversion_1.flac'
file 'audio_directorscut_2.flac'
file 'audio_extendedversion_2.flac'
file 'audio_directorscut_3.flac'
file 'audio_extendedversion_3.flac'

Nun prüfen wir auf die korrekte Länge des neuen Audio-Streams:

ffprobe.exe -v 0 -sexagesimal -show_entries format^=duration -of compact^=p^=0^:nk^=1 audio_final.flac
ffprobe.exe -v 0 -sexagesimal -show_entries format^=duration -of compact^=p^=0^:nk^=1 audio_extendedversion.flac

Sind die Zeiten identisch, können wir unseren Dub des Audio-Streams auf den Video-Stream der Extended Version legen (sind sie nicht identisch, haben wir einen Fehler gemacht; es ist ohnehin ratsam, nach jedem neuen Schnitt die Teile zusammenzufügen und auf Synchronität mit dem Video-Stream zu prüfen, Geräusche von kurzer Dauer eignen sich zum Prüfen besonders) ...

ffmpeg^
 -i THE_GIRL_WITH_THE_DRAGON_TATTOO.mkv -i audio_final.flac^
 -map 0:0 -map 1:0^
 -codec copy^
 final.mkv

... und die Datei, wie oben beschrieben, vorbereiten, um sie der iTunes-Mediathek hinzuzufügen.

6x bearbeitet, zuletzt: 28 Nov 2019 00:17 von FLX


Beitrag Kommentieren

Noch 160 Zeichen

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

Es sind 83 Benutzer und 1302 Gäste online.