Inhaltsverzeichnis
Videos transcodieren
siehe auch: VideoSoftware
Allgemeines zu Farbräumen
-
- 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
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.
"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
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
128x96bis maximal4096x2304bei25Hz 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 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

