filme_transkodieren
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| filme_transkodieren [2020-10-17 23:09:49] – [Videobearbeitung] manfred | filme_transkodieren [2024-04-19 21:09:31] (aktuell) – [DivX-Beispiel 1] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Filme transkodieren ====== | ||
| + | |||
| + | Hier geht es nur um eine komplette Transkodierung von Filmen, die einzelnen Transkodierungen von purem Audio zum Beispiel, wird unter [[Audio]] behandelt. | ||
| + | |||
| + | |||
| + | ===== Videobearbeitung ===== | ||
| + | |||
| + | * [[DVDs kopieren]] | ||
| + | * [[Blurays kopieren]] | ||
| + | |||
| + | |||
| + | ==== Infos aus einer Filmdatei auslesen ==== | ||
| + | |||
| + | |||
| + | === mit FFmpeg === | ||
| + | |||
| + | Das hier ist das einfachste. | ||
| + | |||
| + | # ffmpeg -i Film.mkv | ||
| + | |||
| + | |||
| + | === mit MPlayer === | ||
| + | |||
| + | Das hier ist das ausführlichste. | ||
| + | |||
| + | # mplayer Film.mkv -vo null -ao null -identify -frames 0 -nocache | ||
| + | |||
| + | |||
| + | === mit mkvinfo === | ||
| + | |||
| + | Mit //mkvinfo// funktioniert das natürlich nur bei MKV-Dateien! | ||
| + | |||
| + | # mkvinfo Film.mkv | ||
| + | |||
| + | |||
| + | ==== Videospur unverändert extrahieren ==== | ||
| + | |||
| + | # mencoder Film.vob -nosound -ovc copy -o Film_stumm.avi | ||
| + | oder | ||
| + | # mplayer Film.vob -dumpstream -dumpfile Film_stumm.avi | ||
| + | |||
| + | |||
| + | ==== ID's der Audiospuren ermitteln ==== | ||
| + | # mplayer Film.mpg -vo null -ao null -identify -frames 0 -nocache | fgrep ' | ||
| + | |||
| + | ==== Audiospur unverändert dumpen (-dumpaudio) ==== | ||
| + | # ffmpeg -i Film.mpg -vn -acodec copy -y Film_tonspur | ||
| + | # mplayer Film.vob -aid 128 -vo null -dumpaudio -dumpfile Film_tonspur | ||
| + | |||
| + | |||
| + | ==== Audio- und Videospur aus einer MKV-Datei unverändert extrahieren ==== | ||
| + | |||
| + | # mkvextract tracks Film.mkv 1: | ||
| + | |||
| + | |||
| + | ==== Audiospur als unkomprimiertes WAVE speichern ==== | ||
| + | # mplayer -vo null -ao pcm: | ||
| + | |||
| + | |||
| + | ==== Spielfilmlänge ermitteln ==== | ||
| + | |||
| + | == die zuverlässigste und langsamste Methode == | ||
| + | Ausgabe in Sekunden: | ||
| + | # mplayer FILM.mkv -forceidx -speed 100 -mc 0 -ao null -vo null 2>/ | ||
| + | |||
| + | == schnell und recht unzuverlässig == | ||
| + | Ausgabe in Sekunden: | ||
| + | # mplayer FILM.mkv -vo null -ao null -identify -frames 0 -nocache 2>/ | ||
| + | |||
| + | == schnell mit FFmpeg == | ||
| + | # ffmpeg -i FILM.mkv 2>&1 | fgrep ' | ||
| + | |||
| + | Ausgabe in Sekunden: | ||
| + | # ffmpeg -i FILM.mkv 2>&1 | fgrep ' | ||
| + | |||
| + | |||
| + | ==== Audiospur und Videospur muxen ==== | ||
| + | |||
| + | # mkvmerge --default-language ger --aspect-ratio 1:16:9 -o neuer_Film.mkv --compression 1:none Film_stumm.avi --compression 1:none Film_tonspur | ||
| + | |||
| + | |||
| + | ==== Film mit unterschiedlich langen Audio- und Videospuren korrigieren ==== | ||
| + | |||
| + | Manchmal kommt es beim Film transcodieren vor, dass die Videospur sich in der Länge ändert. | ||
| + | Das hängt mit den verschiedenen Übertragungs- und Darstellungstechniken zusammen, die es gibt. | ||
| + | |||
| + | Man könnte dann, sehr aufwendig, die Videospur in der Länge korrigieren | ||
| + | aber das ist sehr kompliziert und lässt sich oft nicht wieder rückgängig machen. | ||
| + | |||
| + | Hier zeige ich jedoch zwei elegantere Methoden. | ||
| + | |||
| + | |||
| + | === als erstes muss die Laufzeitdifferenz erstmal ermittelt werden === | ||
| + | |||
| + | Länge der Audiospur ermitteln: | ||
| + | # mplayer Film_tonspur -vo null -ao null -identify -frames 0 -nocache 2>/ | ||
| + | ID_LENGTH=596.00 | ||
| + | |||
| + | Länge der Videospur ermitteln: | ||
| + | # mplayer Film_stumm.mkv -vo null -ao null -identify -frames 0 -nocache 2>/ | ||
| + | ID_LENGTH=536.79 | ||
| + | |||
| + | |||
| + | === durch Container-Parameter synchronisieren === | ||
| + | |||
| + | Der Matroska-Container bietet hierfür sehr gute Unterstützung. | ||
| + | |||
| + | Audio- und Videospur muxen: | ||
| + | # mkvmerge --default-language ger --aspect-ratio 1:16:9 -o Film_out_of_sync.mkv --compression 1:none Film_stumm.mkv --compression 1:none Film_tonspur | ||
| + | |||
| + | Track ID der Audiospur ermitteln (in diesem Fall " | ||
| + | # mkvmerge --identify Film_out_of_sync.mkv | ||
| + | File ' | ||
| + | Track ID 1: video (V_MPEG4/ | ||
| + | Track ID 2: audio (A_AAC) | ||
| + | |||
| + | synchronisieren: | ||
| + | # mkvmerge -y 2: | ||
| + | |||
| + | |||
| + | === durch Längenanpassung der Audiospur synchronisieren === | ||
| + | |||
| + | Andere Container-Formate haben nicht die besonderen Fähigkeiten des Matroska-Container-Formates | ||
| + | und selbst das Matroska-Container-Format kann nicht überall unter Berücksichtigung all seiner | ||
| + | Fähigkeiten abgespielt werden. | ||
| + | |||
| + | Und so ist es immer noch am sichersten, wenn man beide Spuren auf gleiche Länge bringt. | ||
| + | |||
| + | Längendifferenz in Prozent ermitteln: | ||
| + | # echo " | ||
| + | 11.0304 | ||
| + | |||
| + | Audiospur in der Länge anpassen: | ||
| + | # soundstretch Film_tonspur.wav Film_tonspur_plus11proz.wav -tempo=+11.0304 | ||
| + | |||
| + | Audiospur transcodieren: | ||
| + | # faac --tns -q 160 -w -o Film_tonspur_plus11proz.m4a Film_tonspur_plus11proz.wav | ||
| + | |||
| + | Video- und Audiospur zum Film zusammenfühgen: | ||
| + | # mkvmerge --default-language ger --aspect-ratio 1:1.77778 -o Film_synchron.mkv --compression 1:none Film_stumm.mkv --compression 1:none Film_tonspur_plus11proz.m4a | ||
| + | |||
| + | |||
| + | ==== Bildwiederholrate ändern ==== | ||
| + | |||
| + | === 24->25 bzw. 23.976-> | ||
| + | |||
| + | mit DVD-Standardeinstellungen: | ||
| + | # mencoder -of mpeg -mpegopts format=dvd: | ||
| + | |||
| + | mit den max. vbitrate für MPEG-2: | ||
| + | # mencoder Film.mkv -noaudio -ovc lavc -lavcopts vcodec=mpeg2video: | ||
| + | |||
| + | Leider funktionieren diese Optionen nur mit dem MPEG2-Codec und MPEG2-Container, | ||
| + | was die Auswahl recht stark einschränkt. | ||
| + | Aus dem Grund sollte man es nur als " | ||
| + | |||
| + | Bei dieser Methode behält der Film seine Originallänge! | ||
| + | |||
| + | |||
| + | === 30->25 === | ||
| + | |||
| + | # mencoder -fps 30 -ofps 25 -vf filmdint=io=6: | ||
| + | |||
| + | === 24p->30i bzw. 23.976p-> | ||
| + | |||
| + | == alt == | ||
| + | # mencoder -fps 30000/1001 -ofps 30000/1001 -vf telecine, | ||
| + | |||
| + | == neu == | ||
| + | # mencoder -of mpeg -mpegopts format=dvd: | ||
| + | |||
| + | Das ausgangsmaterial muss durchgehend " | ||
| + | sonst bricht " | ||
| + | |||
| + | ==== schwarze Balken oben und unten abschneiden ==== | ||
| + | |||
| + | Als erstes muss man sich Richtwerte besorgen: | ||
| + | |||
| + | # mplayer Film.vob -vf cropdetect | ||
| + | [CROP] Crop area: X: 7..709 | ||
| + | |||
| + | In diesem Beispiel schlägt MPlayer die Parameter "-vf crop=688: | ||
| + | Nach einigen Versuchen, haben sich aber bei diesem Video (selbst mit dem PC von DVB-T in NTSC 720x480 aufgenommen) | ||
| + | die Parameter "-vf crop=704: | ||
| + | |||
| + | Rechnerisch, | ||
| + | |||
| + | Meistens ist bei unseren PAL-Sendungen aber " | ||
| + | |||
| + | Das Transkodier-Kommando kann zum Beispiel so aussehen: | ||
| + | |||
| + | # mencoder -mc 0 -forceidx -aspect 16:9 -aid 128 alter_Film.mpg -ovc x264 -x264encopts crf=25: | ||
| + | |||
| + | Da der MKV-Muxer bei MEncoder defekt ist muss das hier noch nachgeschoben werden: | ||
| + | |||
| + | # mkvmerge --aspect-ratio 1:1.7778 --default-language ger -o neuer_Film.mkv Film_mencoder.mkv | ||
| + | |||
| + | |||
| + | ==== Rauschunterdrückung ==== | ||
| + | |||
| + | Hat man den gleichen Film zwei mal, einmal in sauberer Form (zum Beispiel als DVD) und einmal in verrauschter Form (zum Beispiel aus dem Fernsehen aufgenommen), | ||
| + | |||
| + | |||
| + | ===== MPEG-4 Part 2 / ASP ===== | ||
| + | |||
| + | In den **ASP**-Bereich fallen in erster Linie die Codec' | ||
| + | |||
| + | Hier werde ich zwei Beispiel-Scripte vorstellen. | ||
| + | |||
| + | Im ersten Beispiel wird keine externen Bibliotheken benötigen, | ||
| + | sondern alles (DivX-kompatibler Video-Codec und AC3-kompatibler Audio-Codec) wird mit Hilfe der " | ||
| + | |||
| + | Die Filme, die mit ihm erstellt werden, sollten mit einem //DivX 5// | ||
| + | |||
| + | Die Bildqualität des DivX-kompatiblen Codecs aus der " | ||
| + | |||
| + | Aus diesem Grund stelle ich auch noch ein zweites Beispiel vor, | ||
| + | bei dem der Video-Encoder //Xvid// (DivX-kompatibel) und der Audio-Encoder //LAME// (MP3) zum Einsatz kommen. | ||
| + | |||
| + | Die erzielten Dateigrößen liegen mit beiden Beispielen bei ca. 2/3 der Original VOB-Datei von einer DVD. | ||
| + | |||
| + | Das Script aus " | ||
| + | |||
| + | Jetzt setze ich auf das Script im " | ||
| + | |||
| + | |||
| + | ==== DivX-Beispiel 1 ==== | ||
| + | |||
| + | In diesem Script werden nur die DivX5-kompatiblen Codecs aus der „libavc“-Bibliothek des FFmpeg-Team' | ||
| + | |||
| + | **ASP@L5 (HD):** | ||
| + | > ffmpeg -benchmark -probesize 9223372036854M -analyzeduration 9223372036854M -fflags +genpts+igndts -i ALTERFILM.mpg -c:v mpeg4 -vtag DX50 -profile:v 15 -level 5 -b:v 8192k -g 300 -c:a ac3 -f avi -y NEUERFILM.avi | ||
| + | |||
| + | **ASP@L4 (SD):** | ||
| + | > ffmpeg -benchmark -probesize 9223372036854M -analyzeduration 9223372036854M -fflags +genpts+igndts -i ALTERFILM.mpg -c:v mpeg4 -vtag DX50 -profile:v 15 -level 4 -b:v 3072k -g 300 -c:a ac3 -f avi -y NEUERFILM.avi | ||
| + | |||
| + | ASP (SD): | ||
| + | > mencoder -mc 0 -forceidx -oac lavc -lavcopts acodec=ac3: | ||
| + | |||
| + | |||
| + | ==== Xvid-Beispiel 2 ==== | ||
| + | |||
| + | In diesem Script werden nur Codec' | ||
| + | Leider ist die Bildqualität nicht ganz so gut wie die, die von dem Script aus " | ||
| + | |||
| + | # mencoder -mc 0 -forceidx -oac mp3lame -lameopts q=0: | ||
| + | |||
| + | |||
| + | ==== ASP-Beispiel 3 ==== | ||
| + | |||
| + | Zu guter letzt, werden die besten Eigenschaften aus den obigen beiden Scripten in diesem vereinigt: | ||
| + | - DivX5-Video-Codec aus der " | ||
| + | - MP3-Audio-Codec von " | ||
| + | |||
| + | # mencoder -mc 0 -forceidx -oac mp3lame -lameopts q=0: | ||
| + | |||
| + | |||
| + | ==== XORO HSD 415 ==== | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | # mencoder -oac lavc -ovc lavc -lavcopts codec=mpeg4: | ||
| + | |||
| + | # mencoder -mc 0 -forceidx -oac mp3lame -lameopts abr:br=128 -ovc lavc -lavcopts vcodec=mpeg4: | ||
| + | |||
| + | |||
| + | ===== MPEG-4 Part 10 / AVC ===== | ||
| + | |||
| + | Der AVC-Codec ist der //H.264// und der freie //x264//. | ||
| + | |||
| + | In meinem Beispiele wird die Audio- bzw. Video-Spur nur dann transcodiert, | ||
| + | - nicht schon im //divx//-, //xvid//-, //H.264//- oder // | ||
| + | - nicht schon im //ac-3//-, //mp3//- oder // | ||
| + | |||
| + | Als Zielformate wird hier der freien Video-Encoder //x264// und der freie Audio-Encoder //faac// sowie das freien Container-Format // | ||
| + | |||
| + | Alle anderen Standard' | ||
| + | |||
| + | Da es aber verschiedenen Kombinationen der verschiedenen Audio- und Video-Codec' | ||
| + | wird dieses Script nicht in jedem Fall eine //DivX 7// | ||
| + | aber in jedem Fall eine MPEG4-kompatible (Part 2 / Part 10) Datei. | ||
| + | |||
| + | Ich verwende den // | ||
| + | weil der FFmpeg ein Memory-Leak hat und man bei // | ||
| + | manchmal beide auseinander laufen können und man dann mühevoll von Hand nacharbeiten und Justieren muss. | ||
| + | |||
| + | Diese Probleme kann man mit dem //mencoder -mc 0// prima umgehen. | ||
| + | |||
| + | Das alles habe ich aber auch schon auf der Seite [[VideoSoftware]] beschrieben. | ||
| + | |||
| + | |||
| + | ==== AVC ==== | ||
| + | |||
| + | Der erste Blu-Ray-kompatible Film wurde vom x264-Team mit " | ||
| + | jetzt soll " | ||
| + | |||
| + | " | ||
| + | |||
| + | Das x264-Team empfiehlt einen Wert zwischen " | ||
| + | |||
| + | Meine persönlichen Tests mit dem Film " | ||
| + | zeigten folgende Dateigrößen bei entsprechenden Einstellungen: | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | Die restlichen Einstellungen sind auf beste Qualität gesetzt. | ||
| + | |||
| + | Die Bildqualität bei vergrößerter Darstellung war mit " | ||
| + | Bei " | ||
| + | wenn man gezielt darauf achtet. | ||
| + | |||
| + | Mit der Einstellung " | ||
| + | deutliche Veränderungen im Bild sichtbar, die aber bei normaler Betrachtung | ||
| + | auf dem Fernseher nicht bemerkt werden. | ||
| + | |||
| + | Weitere Tests mit kleineren Filmstückchen haben folgende grobe Richtwerte ergeben: | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | gegenüber einer MPEG2-Datei, | ||
| + | Die Bildqualität entspricht weitestgehend dem Original. | ||
| + | |||
| + | Die Oben genannten Werte, sind als grobe Richtwerte zu sehen und können sehr stark schwanken, | ||
| + | sie hängen sehr stark vom bearbeiteten Bildmaterial ab! | ||
| + | |||
| + | Meine Tests haben am Ende gezeigt, das " | ||
| + | |||
| + | Um die Dateigröße in einem vernünftigen Rahmen zu halten, kann man ein kleineres Profil für das Zielformat festlegen. | ||
| + | Im Einzelfall kann man auch die Werte für " | ||
| + | |||
| + | Man sollte dabei aber unbedingt darauf achten, das der Wert für " | ||
| + | das 7 Bit Datenrate je Pixel vorhanden sind. Sonst ist mit einer (bei vergrößerter Wiedergabe) sichtbaren Qualitätsverschlechterung zu rechnen. | ||
| + | |||
| + | Die entsprechenden Werte der Profile kann man aus dieser Tabelle ablesen [[http:// | ||
| + | |||
| + | ^Anzahl der Bildzeilen (Video-Format) ^Bilder je Sekunde ^Bildaufbau ^Profil-Level ^BD - VBV-MaxRate ^DVD - VBV-MaxRate ^BD - VBV-BufferSize ^DVD - VBV-BufferSize ^Max. Ref-Frames ^Slices ^ | ||
| + | ^1080p | 23.976 | Progressive | 4.1 | 40000 | 15000 | 30000 | 15000 | 4 | 4 | | ||
| + | ^1080p | 24.000 | Progressive | 4.1 | 40000 | 15000 | 30000 | 15000 | 4 | 4 | | ||
| + | ^1080i | 25.000 | Interlace | 4.1 | 40000 | 15000 | 30000 | 15000 | 4 | 4 | | ||
| + | ^1080i | 29.970 | Interlace | 4.1 | 40000 | 15000 | 30000 | 15000 | 4 | 4 | | ||
| + | ^1080p | 23.976 | Progressive | 4.0 | 24000 | 15000 | 30000 | 15000 | 4 | 1 | | ||
| + | ^1080p | 24.000 | Progressive | 4.0 | 24000 | 15000 | 30000 | 15000 | 4 | 1 | | ||
| + | ^1080i | 25.000 | Interlace | 4.0 | 24000 | 15000 | 30000 | 15000 | 4 | 1 | | ||
| + | ^1080i | 29.970 | Interlace | 4.0 | 24000 | 15000 | 30000 | 15000 | 4 | 1 | | ||
| + | ^ | | | | | | | | | | | ||
| + | ^720p | 23.976 | Progressive | 4.1 | 40000 | 15000 | 30000 | 15000 | 6 | 4 | | ||
| + | ^720p | 24.000 | Progressive | 4.1 | 40000 | 15000 | 30000 | 15000 | 6 | 4 | | ||
| + | ^720p | 25.000 | Progressive | 4.1 | 40000 | 15000 | 30000 | 15000 | 6 | 4 | | ||
| + | ^720p | 29.970 | Progressive | 4.1 | 40000 | 15000 | 30000 | 15000 | 6 | 4 | | ||
| + | ^720p | 23.976 | Progressive | 4.0 | 24000 | 15000 | 30000 | 15000 | 6 | 1 | | ||
| + | ^720p | 24.000 | Progressive | 4.0 | 24000 | 15000 | 30000 | 15000 | 6 | 1 | | ||
| + | ^720p | 25.000 | Progressive | 4.0 | 24000 | 15000 | 30000 | 15000 | 6 | 1 | | ||
| + | ^720p | 29.970 | Progressive | 4.0 | 24000 | 15000 | 30000 | 15000 | 6 | 1 | | ||
| + | ^ | | | | | | | | | | | ||
| + | ^576i | 25.000 | Interlace | 4.1 | 40000 | 15000 | 30000 | 15000 | 6 | 4 | | ||
| + | ^576i | 25.000 | Interlace | 4.0 | 24000 | 15000 | 24000 | 15000 | 6 | 1 | | ||
| + | ^576i | 25.000 | Interlace | 3.2 | 24000 | 15000 | 24000 | 15000 | 6 | 1 | | ||
| + | ^576i | 25.000 | Interlace | 3.1 | 16800 | 15000 | 16800 | 15000 | 6 | 1 | | ||
| + | ^576i | 25.000 | Interlace | 3.0 | 12000 | 12000 | 12000 | 12000 | 5 | 1 | | ||
| + | ^ | | | | | | | | | | | ||
| + | ^480i | 29.970 | Interlace | 4.1 | 40000 | 15000 | 30000 | 15000 | 6 | 4 | | ||
| + | ^480i | 29.970 | Interlace | 4.0 | 24000 | 15000 | 24000 | 15000 | 6 | 1 | | ||
| + | ^480i | 29.970 | Interlace | 3.2 | 24000 | 15000 | 24000 | 15000 | 6 | 1 | | ||
| + | ^480i | 29.970 | Interlace | 3.1 | 16800 | 15000 | 16800 | 15000 | 6 | 1 | | ||
| + | ^480i | 29.970 | Interlace | 3.0 | 12000 | 12000 | 12000 | 12000 | 6 | 1 | | ||
| + | ^ | | | | | | | | | | | ||
| + | |||
| + | Der AVC-Standard ist da etwas lockerer: [[http:// | ||
| + | |||
| + | Zum Beispiel sollte man nicht versuchen ein Video mit einer Auflösung von | ||
| + | 1920x1080 Bildpunkten mit dem Profil-Level //3.0// zu transcodieren. | ||
| + | Das liefert auf keinen Fall ein gutes Ergebnis, allerdings eine sehr kleine Datei. | ||
| + | |||
| + | Ich transcodiere meine Videos mit dem // | ||
| + | Datei, die nur ca. 40% der Originalen MPEG2-Dateigröße hat ohne sichtbare Qualitätsverschlechterung. | ||
| + | |||
| + | Bei einer Transcodierung ins Xvid-Format, | ||
| + | muss ich immer eine Qualitätsverschlechterung bei einer Dateigröße von ca. 60% | ||
| + | der Originalen MPEG2-Dateigröße in Kauf nehmen. | ||
| + | |||
| + | Damit hat der //x264// bei mir seine Qualitäten schon bewiesen. | ||
| + | |||
| + | |||
| + | === einen Film ins AVC-Format transcodieren === | ||
| + | |||
| + | # 1920x1080 / Blu-Ray / Level 4.1 (großes HD-Profil) | ||
| + | # | ||
| + | | ||
| + | # 1280x720 (720p) / Blu-Ray / Level 4.0 (kleines HD-Profil) | ||
| + | # | ||
| + | | ||
| + | # 1280x720 (720p) / DVD / Level 4.0 (kleinstes HD-Profil) | ||
| + | # | ||
| + | | ||
| + | # 720x576 / DVD / Level 3.0 (kleinstes SD-Profil: halbiert den Platzbedarf einer Standard-DVD, | ||
| + | X264OPTIONEN=" | ||
| + | | ||
| + | # mplayer Film.vob -aid 128 -vo null -ao pcm: | ||
| + | | ||
| + | # faac --tns -q 160 -w -o Film_audiospur.m4a Film_audiospur.wav | ||
| + | | ||
| + | # mencoder Film.vob -forceidx -ovc raw -really-quiet -noskip -lavcopts threads=1 -lavdopts threads=1 -demuxer lavf -vfm ffmpeg -vf pp=ci/ | ||
| + | | ||
| + | # mkvmerge --default-language ger --aspect-ratio 1:16/9 -o Film.mkv Film_videospur.mkv Film_audiospur.m4a | ||
| + | |||
| + | Wenn nötig, kann man Audio- und Videospur noch syncronisieren, | ||
| + | VLENGTH=" | ||
| + | ALENGTH=" | ||
| + | # mkvmerge -y 2: | ||
| + | # mv -f Film_syncron.mkv Film.mkv | ||
| + | |||
| + | Jetzt aufräumen: | ||
| + | # rm -f Film_videospur.mkv Film_audiospur.m4a Film_audiospur.wav | ||
| + | |||
| + | |||
| + | == AVC-Parameter ermitteln == | ||
| + | |||
| + | Um die nötigen // | ||
| + | |||
| + | Das ist allerdings nicht mein Fall, deshalb habe ich mir den größten Teil der Infos aus den RFC's mal (verständlich ausgedrückt) wiedergeben lassen | ||
| + | und dann damit ein **[[AVC-Parameter ermitteln|Script]]** geschrieben. | ||
| + | |||
| + | Leider konnte mir bis jetzt niemand die genauen Einschränkungen für eine Blu-Ray-Kompatibilität nennen... | ||
| + | |||
| + | |||
| + | === Problem === | ||
| + | |||
| + | |||
| + | == Problembeschreibung == | ||
| + | |||
| + | Die Filme, die ich auf meinem FreeBSD-Rechner transcodiert habe: | ||
| + | # mkvmerge --default-language ger --aspect-ratio 1:16/9 -o Film.mkv Video.mkv Audio.m4a | ||
| + | |||
| + | ... können auf meinem Linux-Rechner nicht abgespielt werden. | ||
| + | Es werden auf der Konsole nur solche Fehler ausgegeben: | ||
| + | |||
| + | [h264 @ 0x18bd6c0]AVC: | ||
| + | [h264 @ 0x18bd6c0]AVC: | ||
| + | [h264 @ 0x18bd6c0]no frame! | ||
| + | Error while decoding frame! | ||
| + | [h264 @ 0x18bd6c0]AVC: | ||
| + | [h264 @ 0x18bd6c0]AVC: | ||
| + | [h264 @ 0x18bd6c0]no frame! | ||
| + | Error while decoding frame! | ||
| + | [h264 @ 0x18bd6c0]AVC: | ||
| + | [h264 @ 0x18bd6c0]AVC: | ||
| + | [h264 @ 0x18bd6c0]no frame! | ||
| + | Error while decoding frame! | ||
| + | |||
| + | Wenn ich den MKV-Container auf meinem Linux-Rechner neu baue: | ||
| + | |||
| + | # mkvmerge -o Film_repariert.mkv Film.mkv | ||
| + | |||
| + | ...dann ist der Film wieder prima abspielbar. | ||
| + | |||
| + | |||
| + | == Lösung == | ||
| + | |||
| + | Auf meinem FreeBSD-Rechner habe ich schon mkvtoolnix-4.2.0, | ||
| + | |||
| + | Grund ist eine neue MKV-Funktion, | ||
| + | Wenn diese Abspielsoftware bzw. -hardware das nicht unterstützt, | ||
| + | |||
| + | Das lässt sich aber umgehen, indem man diese Funktion einfach so umkonfiguriert, | ||
| + | # mkvmerge --default-language ger --aspect-ratio 1:16/9 -o Film.mkv --compression 1:none Video.mkv --compression 1:none Audio.m4a | ||
| + | |||
| + | Möglicherweise müssen die entsprechenden Track-ID' | ||
| + | # mkvmerge --identify Video.mkv | ||
| + | # mkvmerge --identify Audio.m4a | ||
| + | |||
