Benutzer-Werkzeuge

Webseiten-Werkzeuge


videos_transcodieren

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
videos_transcodieren [2023-04-24 11:49:01] – [Allgemeines zu Farbräumen] manfredvideos_transcodieren [2024-05-01 15:30:14] (aktuell) – [Beispiele mit FFmpeg] manfred
Zeile 1: Zeile 1:
 +====== Videos transcodieren ======
 +
 +siehe auch: [[VideoSoftware]]
 +
 +
 +===== Allgemeines zu Farbräumen =====
 +
 +  * [[https://youtu.be/DGhgo3oImTA|Albtraum Farbraum? DAS ist der BESTE FARBRAUM für die Videoaufnahme!]]
 +  * [[https://youtu.be/DyxrDW3WLKw|Farbtiefe, Farbraum, Farbmodell, Bitrate - Was ist das? Und wie passt alles zusammen?]]
 +    * Farbtemperatur vom Tageslicht (ISO-3664 - Klasse-C): 6504 Kelvin
 +      * CIE-Farb-Normen-System zum Abgleich der einzelnen Farbräume //("D" steht für 'Day light')// - diese Standards legen fest, wo genau der Weißpunkt liegen muß
 +        * D50 //(Druckindustrie)//
 +        * D55
 +        * D60
 +        * **D65** //(sRGB, Adobe RGB, BT.709, ...)//
 +        * D75
 +
 +[[https://de.wikipedia.org/wiki/YUV-Farbmodell|Es ist zu beachten, dass YUV kein echter Farbraum ist, sondern nur ein Farbmodell!]]
 +
 +Das YUV-Farbmodell geht von einem Modell mit linearer Addition der Farbreize aus. Was jedoch keinen echten (sondern nur einen synthetischen) Farbraum abbildet.
 +Im allgemeinen sollte man den Farbraum bzw. das Farbmodell nur dann ändern, wenn das Abspielgerät nur einen anderen Farbraum versteht und den vorhandenen nicht richtig darstellen kann.
 +
 +Also sollte man prinzipiell beim transkodieren keine Angaben zur Farbraumkonvertierung vornehmen, solange man alle seine Videos gut ansehen kann.
 +
 +  * "YUV" gibt es verschiedenen Versionen, z.B.:
 +    * YIQ (NTSC -> USA, Japan)
 +    * YUV (PAL -> Deutschland)
 +    * YDbDr (SECAM -> DDR, Frankreich)
 +
 +Alle haben genau so viele Farben drin, aber das Farbdreieck ist bei allen dreien verdreht...
 +
 +YPbPr ist eine anders skalierte Version von YUV, was meist in der Digitalform als YCbCr verwendet wird. Die Benutzung ist bei der Video- und Bildkompression weit verbreitet, wie bei MPEG und JPEG.
 +
 +{{ :bilder:farbraeume.png?300 |Farbräume}}
 +
 +"sRGB" entspricht in etwas "BT.709".
 +
 +HDR benötigt mindestens den Farbraum "P3" oder besser "BT.2020" und eine Farbtiefe von 10 Bit.
 +
 +
 +==== Farbraum vs. Farbmodell vs. Farbprofil ====
 +
 +Der Farbraum (z.B. "BT.709" oder "BT.2020") beschreibt die mögliche Anzahl aller darstellbaren tatsächlichen Farben bzw. die Farbe selbst (z.B. braun).
 +
 +Das Farbmodell (z.B. "YUV" oder "RGB") ist eine Beschreibung, wie die entsprechende Farbe dargestellt (aus den zur Verfügung stehenden Grundfarben und Helligkeitswerten gemischt) wird (z.B. der Anteil der einzelnen Primärfarben "Rot", "Grün" und "Blau", um die gewünschte Farbe zu bekommen).
 +
 +Das Farbprofil beschreibt den Schwarzpunkt, den Weißpunkt, die Farbtemperatur und das Gamma.
 +
 +//Farbraum -> steht im Video//
 +
 +//Farbmodell + Farbprofil -> steht im Monitor//
 +
 +
 +==== Beispiele mit FFmpeg ====
 +
 +  > ffmpeg -i test.avi -c:v libx264 -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709 -c:a copy -c:s copy -f matroska -y test_bt709_x264.mkv
 +  
 +  > mediainfo test_bt709_x264.mkv | grep -Fi 'Color primaries'
 +  Color primaries                          : BT.709
 +  
 +  > ffprobe -i test_bt709_x264.mkv -show_data 2>&1 | grep -F bt709
 +    Stream #0:0(und): Video: h264 (High 10) (avc1 / 0x31637661), yuv420p10le(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 1201 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
 +  
 +  > ffprobe -v error -i test_bt709_x264.mkv -show_streams -select_streams v | grep -F color_primaries=
 +  color_primaries=bt709
 +  
 +  > ffprobe -v error -i test_02.mp4 -show_entries stream=index:stream=color_primaries -select_streams v -of compact=p=0:nk=1
 +  0|bt709
 +
 +  > ffmpeg -i test.avi -c:v libaom-av1 -aom-params color-primaries=bt709:transfer-characteristics=bt709:matrix-coefficients=bt709 -c:a copy -c:s copy -f matroska -y test_bt709_av1.mkv
 +  
 +  > mediainfo test_bt709_av1.mkv | grep -Fi 'Color primaries'
 +  Color primaries                          : BT.709
 +  
 +  > ffprobe -i test_bt709_av1.mkv -show_data 2>&1 | grep -F bt709
 +    Stream #0:0: Video: av1 (Main), yuv420p10le(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
 +  
 +  > ffprobe -v error -i test_bt709_av1.mkv -show_streams -select_streams v | grep -F color_primaries=
 +  color_primaries=bt709
 +  
 +  > ffprobe -v error -i test_bt709_av1.mkv -show_entries stream=index:stream=color_primaries -select_streams v -of compact=p=0:nk=1
 +  0|bt709
 +
 +
 +===== So erstellen Sie eine Screenshot-Galerie über die Befehlszeile =====
 +
 +
 +==== MPlayer ====
 +
 +[[https://askubuntu.com/questions/874042/how-to-make-screenshot-gallery-from-command-line|How to make screenshot gallery from command line]]
 +
 +mit diesem Aufruf kann man durch drücken von ''s'' (//klein "S"//) ein einzelnes Bildschirmfoto aufnehmen
 +und durch drücken von ''S'' (//groß "S"//) das aufnehmen einer Bildschirmfotoreihe starten und wieder stoppen:
 +  > mplayer -vf screenshot file.mp4
 +
 +dieser Aufruf erzeugt von den ersten 5 Frames jeweils eine einzelne Bilddatei:
 +  > mplayer -nosound -frames 5 -vo png:z=9 file.mp4
 +
 +
 +===== Filmwandler =====
 +
 +  * [[https://github.com/FlatheadV8/Filmwandler/releases]] - //Mit diesem Skript können Filme mit einer Auflösung von ''128x96'' bis maximal ''4096x2304'' bei ''25''Hz transkodiert werden.//
 +
 +**//Only ''VP8'' or ''VP9'' or ''AV1'' video and ''Vorbis'' or ''Opus'' audio and ''WebVTT'' subtitles are supported for ''WebM''.//**
 +
 +^ Stand: Mai 2022  ^^^^^
 +^ Größenvergleich  ^ Format-Name    ^ Video-Codec       ^ Audio-Codec  ^ Container (Endung)  ^
 +|             2057 | WebM           | AV1               | Opus         | webm                |
 +|             2057 | Matroska       | VP9               | Vorbis       | mkv                 |
 +|             4873 | MP4            | H.264             | AAC          | mp4                 |
 +|             5001 | OGG            | VP8               | Vorbis       | ogg                 |
 +|             5129 | Flash Video    | Sorenson Spark    | MP3          | flv                 |
 +|             5769 | MPEG-TS        | MPEG-TS           | AC3          | ts                  |
 +|             5897 | AVCHD          | H.264             | AC3          | m2ts                |
 +|             8585 | 3GPP           | H.263             | AAC          | 3gp                 |
 +|             9609 | DivX 5         | H.263++           | MP3          | avi                 |
 +|                  | //VCD//            | //MPEG-1//            | //MP2//          | //mpg//                 |
 +|                  | //DVD (1995)//     | //MPEG-2//            | //MP2//          | //mpg//                 |
 +|            11537 | DVD (ab 1996)  | MPEG-2            | AC3          | mpg                 |
 +|            12561 | 3GPP2          | H.263             | AAC          | 3g2                 |
 +
 +//Die Werte für den ''Größenvergleich'' sind nicht repräsentativ, da die Filmsequenz nur 49 Sekunden lang war, nur eine Tonspur enthielt und keine Untertitelspuren. Weiterhin war das Quellmaterial nicht das Beste!//
 +
 +ein paar Anwendungsbeispiele:
 +  ~/bin/Filmwandler.sh -q AlterFilm.mpeg -z NeuerFilm.mkv
 +  ~/bin/Filmwandler.sh -q Film_mit_Untertitel.mpeg -z Film_ohne_Untertitel.webm -u =0
 +  ~/bin/Filmwandler.sh -q Film_mit_vielen_Untertiteln.mpeg -z Film_mit_nur_der_ersten_Untertitelspur.mp4 -u 0
 +  ~/bin/Filmwandler.sh -q AlterFilm.mpeg -z NeuerFilm.mkv -titel "So heißt der Film" -k "FSK 12 / und Kommentare"
 +
 +hier müssen die Positionen (in Sekunden) zwischen den Werbepausen angegeben werden (vor der ersten Werbepause geht der Filmausschnitt von Sekunde 0 bis Sekunde 207, danach kommt die erste Werbepause bis Sekunde 338, dort beginnt der zweite Filmausschnitt... :)
 +  ~/bin/Filmwandler.sh -q Film_mit_Werbung.mpeg -z Film_ohne_Werbung.mp4 -schnitt 0-207,338-1990,2607-3854,4273-5549,5985-6982,7241-7994
 +
 +so wird der Film in das MP4-Format und zusätzlich in das WebM-Format transkodiert, wenn es nicht ins WebM-Format funktioniert wird versucht es ins MKV-Format zu transkodieren:
 +  ~/bin/Film2MP4+MKV_WebM.sh -q Film_mit_Werbung.mpeg -z Film_ohne_Werbung -schnitt 43-207,338-1990,2607-3854,4273-5549,5985-6982,7241-7994
 +
 +Das Format der Optionen ist ist bei allen Skripten gleich.
 +
 +Alle Filme, die so mit diesen Skripten erstellt werden, liegen am Ende entweder in dem Format 4:3 oder 16:9 vor und haben quadratische Bildpunkte (Pixel).
 +
 +Es ist auch möglich den Namen für die Sprache einer Ton- oder Untertitelspur zu setzen bzw. zu überschreiben.
 +Hierfür werden die Sprach-Kürzel nach [[https://de.wikipedia.org/wiki/Liste_der_ISO-639-2-Codes|ISO-639-2-Codes]] verwendet:
 +    Chinesisch:  chi / zho
 +    Deutsch:     deu / ger
 +    Englisch:    eng
 +    Französisch: fra / fre
 +    Italienisch: ita
 +    Japanisch:   jpn
 +    Russisch:    rus
 +    Spanisch:    spa
 +    Türkisch:    tur
 +    Dutch:       nld
 +    Danish:      dan
 +    Finnish:     fin
 +    Norwegian:   nor
 +    Swedish:     swe
 +
 +Beispiel:
 +  > ls -lha UNCHARTED_1.mpg
 +  -rw-r--r--  1 dlna  dlna   4.6G Feb  4 21:50 UNCHARTED_1.mpg
 +  
 +  > time ~/bin/Filmwandler_transkodieren.sh -q UNCHARTED_1.mpg -z Uncharted -titel Uncharted -k "FSK 12 / 2022 / 116 Minuten / tt1464335 / Die Geschichte ist eine Vorgeschichte zu den Spielen, in der Holland als jüngerer Drake in der Hauptrolle spielt und uns Details darüber zeigt, wie er gekommen ist, um Sully zu treffen und sich mit ihm anzufreunden." -ton 1:deu,0:eng -standard_ton 0 -u 1:deu,2:eng,0:tur
 +  ...
 +  -rw-r--r--  1 quarzsnoopy  dlna   1.1G Feb  5 02:29 Uncharted.mkv
 +  -rw-r--r--  1 quarzsnoopy  dlna   1.9M Feb  5 02:29 Uncharted.mkv.log
 +  -rw-r--r--  1 quarzsnoopy  dlna   7.2K Feb  5 02:29 Uncharted.mkv.txt
 +  -rw-r--r--  1 quarzsnoopy  dlna   386K Feb  5 03:03 Uncharted.mp4.log
 +  -rw-r--r--  1 quarzsnoopy  dlna   7.7K Feb  5 03:03 Uncharted.mp4.txt
 +  -rw-r--r--  1 quarzsnoopy  dlna   1.1G Feb  5 02:29 Uncharted.webm
 +  -rw-r--r--  1 quarzsnoopy  dlna   275B Feb  5 02:29 Uncharted.webm.txt
 +  -rw-r--r--  1 quarzsnoopy  dlna   1.2G Feb  5 03:03 Uncharted_-_HD-ready+HLS.mp4
 +  
 +  real    218m18.527s
 +  user    576m58.494s
 +  sys     1m29.099s
 +
 +
 +===== HandBrake =====
 +
 +  * [[HandBrake]]
 +