+/m
:T/
< Workshop
Kompression


Videokompression


Videokompression
Richtlinien Vimeo
Richtlinien Youtube
FFmpeg Anleitung

Kompression ist die Reinzeichnung des Videobereichs. Videodaten erzeugen große Datenmengen. Das Internet braucht zur Übertragung jedoch möglichst kleine Dateien. Hier kommt Kompression ins Spiel. Es gibt zahlreiche Codecs. Im Internet spielen hauptsächlich H.264, H.265 und VP9 eine Rolle. Die Bitbreite des Videos entscheidet über die Größe der Datenpakete, die durchs Netz geschickt werden. Diese sollte zur Internet Bandbreite des Zuschauers passen.

 

zurück zur Übersicht

V+kp


Videokompression

Schnelligkeit kontra Dateigröße

Beim Aufbereiten von Webcontent wird zwischen Dateigröße und Qualität abgewogen. Generell wollen wir möglichst kleine Dateien erstellen, um die Datenlast einer Webseite so gering wie möglich zu halten. Je schneller eine Seite lädt, desto weniger Datenvolumen verbraucht sie, desto besser rankt sie bei Google. Klassisches Webhosting liefert Texte und Bilder. Bilder verbrauchen mehr Platz als Texte – Videos exorbitant mehr als Bilder.

> Videobildgröße

--------------------­--------------------­----------------------
FullHD-Video   1920 x 1080 Pixel   2 Millionen Pixel / Bild
--------------------­--------------------­----------------------
HD-Video       1280 x 720 Pixel    900.000 Pixel / Bild
--------------------­--------------------­----------------------
SD-Video       640 x 360 Pixel     230.000 Pixel / Bild
--------------------­--------------------­----------------------

Je weniger Pixel ein Video hat, desto weniger muss auch übertragen werden. Ein FullHD-Video mit einer Auflösung von 1920 x 1080 Pixel schickt pro Bild 2 Millionen Pixel durchs Netz, ein HD-Video mit 1280 x 720 Pixel nur knapp die Hälfte mit 900.000 Pixeln. Ein Video zu verkleinern wird immer effizienter sein als ein Video zu komprimieren. Es macht einen Unterschied ob wir ein Video auf dem Smartphone oder am Desktop anschauen – das Smartphone-Video braucht weniger Pixel. Ähnlich wie bei Bildern sollten Videos responsiv in verschiedenen Varianten ausgeliefert werden.

Videokompression

/ Kompression
--------------------­--------------------­--------------------
Codec   Container   Kompatibilität­     Kompressioneffizienz
--------------------­--------------------­--------------------
H.264   mp4         Alle Browser       ineffizient
--------------------­--------------------­--------------------
H.265   mp4         Safari (Apple)     bis zu 50% höher
--------------------­--------------------­--------------------
VP9     webM        Firefox / Chrome   bis zu 50% höher
--------------------­--------------------­--------------------

/ keine Kompression
--------------------­--------------------­--------------------
Apple ProRes 422(HQ)
--------------------­--------------------­--------------------

Doch auch Videokompression spart deutlich Speicherplatz und Datenvolumen. Am weitesten verbreitet ist der H.264-Codec im Gewand des Containers mp4. H.264 wird von allem Browsern und Plattformen unterstützt, komprimiert jedoch ineffizient. Dadurch gibt es Probleme bei Nutzern mit langsamen Internetverbindungen und bei Videos mit hoher Auflösung über 4K. Als Lösung kommen zwei neue Formate ins Spiel, die bis zu 50% besser komprimieren können – H.265 im mp4-Container und VP9 im webM-Container. H.265 ist der offizielle Nachfolger von H.264 wird jedoch nur von Apple und dessen Browser Safari unterstützt. VP9 wird von Firefox und Chrome unterstützt. In der Praxis liefern wir Videocontent in mehreren Formaten aus, um den Nutzer je nach System und Browser die beste Performance zu ermöglichen. Die beste Bildqualität erhalten wir mit einem unkomprimiertem Format wie Apple ProREs 422 (HQ) mit jedoch entsprechendem Platzbedarf – dieses Format ist sinnvoll bei Plattformen wie Youtube oder Vimeo, da diese das Ausgangsmaterial unabhängig vom Upload erneut konvertieren.

Bitrate und Netzgeschwindigkeit

--------------------­---------------
1 Mbps      = 1000 Kilobit/s
--------------------­---------------
1 Mbps      = 125 Kilobyte/s
--------------------­---------------
10 Mbps     = 1.25 Megabyte/s
--------------------­---------------
100 Mpbs    = 12.5 Megabyte/s
--------------------­---------------
1000 Mbps   = 125 Megabyte/s
--------------------­---------------

Die Übertragungsgeschwindigkeit im Netz wird im Mbps, MBit/s oder Megabits pro Sekunde gemessen, seltener in Kbps, Kbit/s oder Kilobits pro Sekunde. Ein Telekommunikationsunternehmen beschreibt Kunden die Geschwindigkeit seines Internetangebots meist in MBit/s. 16 Mbit/s ist derzeit das langsamste Angebot bei Vodafone und 1000 Mbit/s das schnellste. Meist wird nur die schnellere Downloadzeit angegeben, die Uploadzeit beträgt oft nur einen Bruchteil der ersteren.

WLAN-Standards und Netzgeschwindigkeit

WLAN-Standard   Datenrate     Frequenzband    Verbreitung
--------------------­--------------------­-------------------
802.11          2 Mbit/s      2,4–2,485 GHz   Veraltet
--------------------­--------------------­-------------------
802.11a         54 Mbit/s     5 GHz           Veraltet
--------------------­--------------------­-------------------
802.11b         11 Mbit/s     2,4–2,485 GHz   Veraltet
--------------------­--------------------­-------------------
802.11g         54 Mbit/s     2,4–2,485 GHz   verbreitet
--------------------­--------------------­-------------------
802.11n         150 Mbit/s    2,4 GHz         steigend
--------------------­--------------------­-------------------
802.11n         433 Mbit/s    5 GHz           steigend
--------------------­--------------------­-------------------
802.11ac        1300 Mbit/s   5 GHz           beginnend
--------------------­--------------------­-------------------

Wird ein Computer an der Router direkt mit einem LAN-Kabel angeschlossen, sollte die volle Geschwindigkeit erreicht werden – ein langsames veraltetes WLAN-Gerät kann jedoch das Downloadtempo ausbremsen. Eine 100 MBit Leitung kann durch WLAN zu realen 30 MBit schrumpfen. Mehrere Rechner in einem WLAN-Netzwerk teilen sich das Downloadtempo – je mehr Rechner desto langsamer das Tempo für den Einzelnen.

Bitrate und Streaming

--------------------­------------------
SD       640 x 360     2 – 5 Mbps
--------------------­------------------
720p     1280 x 720    5 – 10 Mpbs
--------------------­------------------
1080p    1920 x 1080   10 – 20 Mbps
--------------------­------------------
2K       2500 x 1440   20 – 30 Mbps
--------------------­------------------
4K UHD   3840 x 2048   30 – 60 Mbps
--------------------­------------------
8K UHD   8192 x 4320   50 – 80 Mbps
--------------------­------------------

Wenn wir ein Video komprimieren, geben wir auch die Bitrate an, mit welcher das Video durchs Netz in Form von Paketen geschickt wird – also die Geschwindigkeit mit der wir ein Video streamen. Diese muss zum einem zur Größe und Qualität des Videos passen, zum anderen zur Verfügung stehenden Datenleitung an Downloadseite. Liefert der Provider eine Geschwindigkeit von 30 Mbit/s wird ein 4K Video stockend mit Unterbrechungen geladen. Dass Videos dennoch in hoher Auflösung ausgeliefert werden können, kann auch mit besseren Codecs wie dem H.265 oder VP9 zusammenhängen, die Plattformen wie Youtube oder Netflix verwenden. Diese effizienten Videokompressoren schrumpfen die Datenmenge beträchtlich. In Folge kann ein Video mit geringerem Datendurchsatz an Mbps im Vergleich zum klassischen H.264 bei gleichbleibender Qualität komprimiert werden. Auf dieser Art funktionieren Videodienste auch bei langsameren Netzverbindungen.

Serverbandbreite und Trafficvolumen

Wer nun versucht ein Video selbst zu hosten, wird merken, dass schon bereits 720p Videos schlecht streamen. Obwohl eine Datenbitrate von 5 bis 10 Mbps genügt und eigentlich von den meisten Internetverträgen abgedeckt wird, bremst hier der klassische Webhoster den Videostream aus. Klassische Webhoster sind auf klassische Webseiten ausgelegt. Diese bestehen häufig aus Bildern und Texten. Die Webserver sind oft schwach in der Leistung. Zudem teilen sich je nach Angebot viele Kunden einen Webserver. Selbst wenn wir einen Webhoster finden, der nur wenige Kunden pro Webserver hostet, begrenzt der Anbietet seine Serverbandbreite und das monatliche Trafficvolumen und macht damit unterbrechungsfreies Streaming sinnlos. Im Gegensatz zu klassischen Webseiten wird beides beim Streamen von Videos wesentlich schneller aufgebraucht. Hier kommen spezielle Videohoster in Spiel. Oft sind diese deutlich teuerer als klassische Webhoster. Wer hier sparen möchte, zahlt mit Daten seiner Zuschauer.

Optimierungs-Strategie beim Hosten von Videos

--------------------­--------------------­----------------------
<video width="100%" controls>
<source src="video-name.mp4" type="video/mp4; codecs=hevc">
<source src="video-name.webm" type="video/webm; codecs=vp9">
<source src="video-name.m4v" type="video/mp4">
</video>
--------------------­--------------------­----------------------

Die Reihenfolge der Quellenangaben ist wichtig. Wir fangen mit dem h265/hevc codec gefolgt vom vp9-codec an. Schließlich nennen wir den h264-Codec im m4v- oder mp4-container als Fallback, falls die beiden zugvorgenannten Codecs nicht greifen.

Die Verwendung einer niedrigeren Auflösung bewirkt viel mehr als die Verwendung eines effizienteren Codecs. Die Komplexität der Medienverwaltung steigt jedoch mit der Responsivität und den Bandbreite.

VP9 und H265 verbessert die Wiedergabe für Teile der User, verursacht jedoch höhere Komplexität, Kosten und Latenz im Transkodieren. Im Gegenzug ist H264 überall verfügbar.

Videos über HTTP streamen

Video über HTML5 ausstrahlen und Video im progressivem Format verwenden Adaptive Bitrate(ABR) beachtet die Geschwindigkeit einer Netzverbindung und begrenzt die Bitrate entsprechend der verfügbaren Bandbreitenkapazität. Protokolle wie ABR, MPEG-DASH und HSL splitten die Videos und stellen je nach Bandbreite unterschiedliche Versionen zur Verfügung. HLS wird am besten von Browsern und Javascript unterstützt.

HLS Video streaming

HLS ist ein adaptives Bitraten Protokoll (ABR) von Apple entwickelt funktioniert auch unter Android. Bitraten-Leiter mit verschiedenen Versionen des Videos verhindern Rebuffering, indem sie Videos in sogenannte Chucks aufteilen, also Hackstücke von Videos. Mit Pre-title encoding werden dann die Chucks auf Bitrate und Qualität hin optimiert und in einer Playlist hinterlegt (.m3u8 chunks und .ts Endungen) Apple empfiehlt 10-sekündige Chunks.

Videohoster

--------------------­----------------
Youtube        us-amerikanisch
--------------------­----------------
Vimeo          us-amerikanisch
--------------------­----------------
Dailymotion    französisch
--------------------­----------------
Webista        us-amerikanisch
--------------------­----------------
Videolyser     deutsch
--------------------­----------------
Infomaniak     deutsch
--------------------­----------------
Twitch
--------------------­----------------

Videokompressionsprogramme

--------------------­----------------
FFmpeg
--------------------­----------------
Handbrake
--------------------­----------------
Adobe Media Encoder CC2017
--------------------­----------------

Videos können wir nur bedingt mit Videoschnittprogrammen komprimieren. Hierfür gibt es spezielle Programme wie Adobe Media Encoder oder das Open-Source Tool Handbrake. Die größten Freiheiten und die meisten Encoder bietet FFmpeg. Dieses lässt sich jedoch nur im Terminal bedienen. Hier also textbasiertes Arbeiten gefragt.

Live-Streaming und Videohosting

Videokompression fürs Videohosting wird über Software gelöst. Kompression per Software braucht Zeit zum Kodieren. Live-Streaming muss den gleichen Kompressionsaufwand in Echtzeit leisten. Statt Software wird Hardware verwendet, die das Videosignal aus der Kamera in Echtzeit in ein sendefähiges Signal komprimiert und am USB-Port oder Thunderbolt-Port dem Rechner zur Verfügung stellt. Beim Livestreamen werden statt dem HTTP-Protokoll alternative Protokolle wie RTMP und RTSP verwendet. RTMP ist verbreiteter und verwendet Flash zur Übertragung.

 

zurück zur Übersicht

R+Vm


Richtlinien Vimeo

Empfohlene Codecs

/ H.264
--------------------­--------------------­---------
Standard-Codec
effiziente Dateigröße
Upload- und Konvertierungszeiten niedrig
"High Profile" Einstellungen statt "Hauptprofil"
(high statt main)
Auflösungen bis 4K
--------------------­--------------------­---------

/ Apple ProRes 422 (HQ)
--------------------­--------------------­---------
hohe Qualität
erheblich größere Datei als H.264
Bei Qualitätsproblemen mit H.264 ProRes verwenden
--------------------­--------------------­---------

/ H.265 (HEVC)
--------------------­--------------------­---------
High Efficiency Coding(HEVC)
Nachfolger von H.264
kleinere Datei mit hoher visueller Qualität
erhöhte Codierzeit
Auflösungen bis 8K und HDR-Videos
HDR (High Dynamic Range)
--------------------­--------------------­---------

Bildrate

--------------------­--------------------­---------
Native Bildrate des Videos beibehalten
konstante Bildrate im gesamten Video empfohlen
konstant statt variabel wählen

Häufige FPS (Frames per Seconds)
23.98 24 25 29.97 30 50 59.94 60
--------------------­--------------------­---------

Datenrate / Bitrate

Qualität    Auflösung       Bitrate
--------------------­--------------------­---------
SD 4:3      640 x 480       2 – 5 Mbps
--------------------­--------------------­---------
SD 16:9     640 x 360       2 – 5 Mbps
--------------------­--------------------­---------
720p        1280 x 720      5 – 10 Mbps
--------------------­--------------------­---------
1080p       1920 x 1080     10 – 20 Mbps
--------------------­--------------------­---------
2K          2560 x 1440     20 – 30 Mbps
--------------------­--------------------­---------
4K          3840 x 2160     30 – 60 Mbps
--------------------­--------------------­---------
4K          4096 x 2048     30 – 60 Mbps
--------------------­--------------------­---------
8K          8192 x 4320     50 – 80 Mbps
--------------------­--------------------­---------

Die Bitrate steuert die optische Qualität und Dateigröße. Eine hohe Bitrate liefert eine hohe visuelle Qualität. Eine niedrige Bitrate liefert eine kleine Dateigröße. Beides zur gleichen Zeit ist nicht möglich.

Die Bitrate kann entweder konstant oder variabel gewählt werden. Empfohlen wird grundsätzlich eine variable Bildrate zu wählen. Eine variable Bildrate komprimiert pro Bild und ist deshalb effizienter – denn eine konstante Bitrate verschenkt Spielraum zur Optimierung. Schnelle Bewegungen und feine Details brauchen eine hohe Bitrate, langsame Bewegungen und einfarbige Fläche eine niedrige Bitrate. Filmen mit Unschärfen im Gegensatz zu detailreichen Totalen verbessert die Effizienz von Kompression, ebenso langsame Bewegungen. Die variable Bitrate kann jedoch Bitratenspitzen beim Übertragen verursachen und das Videomaterial zeitweise zerstören.

Die variable Bitrate wird über den Constant Rate Faktor – CRF – eingestellt. Diesen Faktor finden wir sowohl bei ffmpeg als auch bei Handbrake. CRF wird im Wertebereich zwischen 0 und 51 eingestellt. Je höher der CRF-Wert desto besser die visuelle Qualität und desto größer die Videodatei. Je niedriger Der CRF-Wert desto kleiner die Videodatei und desto mehr Artefakten im Bildmaterial. Die Kompressionseffizient entwickelt sich exponentiell, der Schritt von 18 zu 17 kann also größere Auswirkungen haben als 28 zu 27.

CRF 23 ist die Voreinstellung, Vimeo empfiehlt 18 oder niedriger. CRF 0 entspricht einer unkomprimierten Datei. Die Qualität des Ausgangsmaterials bestimmt und begrenzt jedoch die Möglichkeiten zur Optimierung – ein höherer CRF-Wert führt nicht automatisch zur besseren Bildqualität, je nach Fall stattdessen zur unnötig großen Videodatei.

Beim CRF-Verfahren wird die Bitrate nur angepeilt, nicht genau bestimmt werden. Deswegen ist Experimentieren und anschließendes Prüfen der ungefähren Bitrate notwendig, um eine optimale Einstellung zu finden.

Progressiver Scantyp

Als Scantyp wird bei Videokompression grundsätzlich der progressive Bildzeilenaufbau gewählt. Damit ist gemeint, dass jede Zeile dargestellt wird. Mit dem Aufkommen von neueren Computermonitore im 21ten Jahrhundert hat sich der progressive Bildaufbau physikalisch bedingt verbreitet.

Im Fernsehen wurde dagegen von Beginn an mit dem halbzeiligen Aufbauverfahren gearbeitet - dem Interlacing. Hier wird wechselnd nur jede zweite Zeile gezeigt. Das spart Bitbreite zur Übertragung, der Wechsel muss jedoch mit der Bildwiederholfrequenz synchron laufen.

Mit TFT-Bildschirmen ist die Bildwiederholfrequenz erübrigt. Videos, die interlaced aufgenommen sind, müssen vor der Kompression deinterlaced werden, um anschließend progressiv gespeichert zu werden.

Farbe

--------------------­--------------------­---------------------
Datei mit Farbrauminformationen hochladen
Alle Primärfarben und -Matrizen werden unterstützt
empfohlen sind BT.2020(Rec.20209) oder BT.709(Red.709)
gleichen Wert für Primär- und Matrixkoeffizienten einstellen
--------------------­--------------------­---------------------

Farbübertragung

--------------------­--------------------­---------------------
Standardvideos(SDR) mit breiter Palette von
Übertragungseigenschaften HDR-Videos nur Übertragungsfunktion
PQ(SMPTE 2084) oder HLG
SMPTE 2084 braucht folgende Metadaten:
> Metadaten zur souveränen Handhabung der Farbvolumenanzeige
 (SMPTE2086)
> Metadaten zum Lichtniveau des Inhalts(CEA861)
--------------------­--------------------­---------------------

Bit-Tiefe

--------------------­--------------------­---------------------
Bittiefe von 10 oder mehr empfohlen
Video mit hohem Dynamikumfang(HDR) 10 Bit oder mehr für
HDR-Status
--------------------­--------------------­---------------------

Audio

--------------------­--------------------­---------------------
Stereokanal einstellen
Codec AAC_LC (Advanced Audio Codec mit niedriger Komplexität)
Datenrate 320 kbit/s mit konstanter Rate
Abtastfrequenz 48kHz
--------------------­--------------------­---------------------

Im Gegensatz zu Video verbraucht Audio viel weniger Bitrate zum Übertragen. Dank MP3-Standards genügen 320 Kbit/s für eine qualitativ hochwertige Wiedergabe. Das Signal ist dann schon allerdings verlustbehaftet komprimiert. 320 Kbit/s entsprechen einem Drittel Mbit pro Sekunde, was im Vergleich zur Videokompression fast nichts ist.

 

zurück zur Übersicht

R+Yt


Richtlinien Youtube

Container

--------------------­--------------------­---------------------
MP4-Container
Moov atom am Beginn der Datei für schnellen Start
--------------------­--------------------­---------------------

Audio Codec

--------------------­--------------------­---------------------
AAC-LC
Stereo oder Stereo + 5.1
Sample rate 96kHz oder 48kHz
--------------------­--------------------­---------------------

Video Codec

--------------------­--------------------­---------------------
Video codec H.264
progressive scan (no interlacing)
high profile
2 consecutive B frames
geschlossenes GOP. GOP auf Hälfte der Framerate setzen
CABAC
Variable Bitrate, kein Limiter notwendig
Chroma subsampling 4:2:0
--------------------­--------------------­---------------------

Frame Rate

--------------------­--------------------­---------------------
übliche Framerates 24 25 30 48 50 60
interlaced Inhalt deinterlacen
zum Beispiel 1080i60 in 1080p30 umwandeln
--------------------­--------------------­---------------------

Bitrate für SDR Video Uploads

Auflösung    Standard      Optimal
--------------------­--------------------­---------------------
2160p(4k)    35-45 Mbps    53-68 Mbps
1440p(2k)    16 Mbps       24 Mbps
1080p        8 Mpbs        12 Mbps
720p         5 Mbps        7.5 Mbps
480p         2.5 Mbps      4 Mbps
360p         1 Mbps        1.5 Mbps
--------------------­--------------------­---------------------

Bitrate für HDR Video Uploads

Auflösung     Standard         Optimal
--------------------­--------------------­---------------------
2160(4k)      44-56 Mbps       66-85 Mbps
1440(2k)      20 Mbps          0 Mbps
1080p         10 Mbps          15 Mbps
720p          6.5 Mbps         9.5 Mbps
480p          not supported    not supported
360p          not supported    not supported
--------------------­--------------------­---------------------

Resolution und aspect ration

--------------------­--------------------­---------------------
Standard aspect ratio für Youtube ist 16:9
--------------------­--------------------­---------------------

 

zurück zur Übersicht

F+mp


FFmpeg

Genereller Aufbau

--------------------­--------------------­-----------
1 Programmname im Terminal nennen: ffmpeg
--------------------­--------------------­-----------
2 Generelle Optionen nennen
--------------------­--------------------­-----------
3 vor dem Inputfile Optionen für Inputfile nennen
--------------------­--------------------­-----------
4 Inputfile mit -i kennzeichnen
--------------------­--------------------­-----------
5 Zuerst Inputfile mit Formatendung nennen
--------------------­--------------------­-----------
6 vor dem Outputfile Optionen für Outputfile nennen
--------------------­--------------------­-----------
7 Danach Outputfile mit Formatendung nennen
--------------------­--------------------­-----------

Interner Aufbau

--------------------­--------------------­-----------
Container > Demuxer > Decoder > Rohdaten >
Filter > Encoder > Muxer > Container
--------------------­--------------------­-----------

Der interne Aufbau von ffmpeg entschlüsselt zunächst mit einem Demuxer Eingangsformat. Dem Demuxer folgt der Decode. Beide zusammen produzieren Rohdaten sowohl für Video(RAW) als auch für Audio(PCM). Das dekodierte Material wird optional gefiltert, anschließend wieder encodiert und für den muxer vorbereitet. Der Mixer verschlüsselt das Ausgangsformat und produziert aus den Rohdaten das Endformat im entsprechendem Container beispielsweise eine mp4-Datei. Deinterlace ist ein Beispiel für einen Filter.

Allgemeine Optionen

--------------------­--------------------­--------------------­---
-hide_banner    Essentielles im Terminal anzeigen
--------------------­--------------------­--------------------­---

Video-Optionen

--------------------­--------------------­--------------------­---
-vframes        Anzahl der Videoframes für Output
-r              Frame rate bestimmen
-s              Frame size festlegen z.B. 1024x768
-aspect         Video Aspect ratio 4:3 16:9 1.3333 1.7777
-vn             Video abschalten
-vcodec         Video Codec festlegen oder erzwingen
-timecode       hh:mm:ss
-vf             Filtergraph
-b:a            Audio bit rate -ab
-b:v            Video bit rate -b
-dn             Daten abschalten
--------------------­--------------------­--------------------­---

Audio-Optionen

--------------------­--------------------­--------------------­---
-aframes        Anzahl der Audioframes für Output einstellen
-ar             Audio Sampling Frequenz festlegen (in Hz)
-aq             Audio Qualität festlegen, zum Beispiel VBR
-ac             Anzahl der Audiokanäle festlegen
–an             Audio abstellen
-acodec         Audiocodec festlegen, erzwingen
-vol            Lautstärke ändern (256=normal)
-af             Audiofilter festlegen
-sample_fmt     Audio Sample Format festlegen
--------------------­--------------------­--------------------­---

Spezifische Optionen Video / Audio

--------------------­--------------------­--------------------­---
-pix_fmt yuv420p             Farbraum-Unterstützung Quicktime
-vf format=yuv420p           Farbraum-Unterstützung Quicktime
-c:v libx264                 H.264 Codec Videokompression
-c:v libx264rgb              H.264 Codec Videokompression
-crf 18                      variable Videokompression
-acodec aac                  Audiocodec AAC
-c:a aac                     Audiocodec AAC
-c:a libopus                 Audiocodec für VP9
-ar 48000                    Audiorate 48 Kilohertz
-ac 2                        Zwei Audiochannel
-b:a 320k                    Audiobitrate 320 Kbit/s
-profile:v high422           Hohes Profil für H.264
-profile:v baseline          Baseline Profil für H.264
-level 4.0                   FullHD für H.264
-level 3                     HD für H.264 ?
-movflags +faststart         Schnellstart Webvideos
-x264-params opencl=true     Grafikkartenrendering wählen
-color_primaries 1           Farbraumgerecht konvertieren
-color_trc 1 -colorspace 1   Farbraumgerecht konvertieren
-preset slow                 Voreinstellung wählen
--------------------­--------------------­--------------------­---

Hilfe

--------------------­--------------------­--------------------­---
ffmpeg -h
ffmpeg -codecs
--------------------­--------------------­--------------------­---

Codecs offizielle Bezeichnung

--------------------­--------------------­--------------------­---
H.263
H.264
H.265
libx264
JPEG 2000
Lossless JPEG
MPEG-4 part2 mpeg4 livxvid
Scalable Vector Graphics
--------------------­--------------------­--------------------­---

Encoder Aufruf im ffmpeg Kommandzeile

--------------------­--------------------­--------------------­---
h263
libx264
libx265
jpeg2000
mpeg4
hevc
--------------------­--------------------­--------------------­---

Beispiel-Kommando-Zeilen für ffmpeg

--------------------­--------------------­--------------------­--------------------­-----
/ Informationen über Videoeinstellungen erfahren
ffmpeg -i video.mp4

/ Mit Voreinstellungen AVI in MP4 komprimieren
ffmpeg -i input.avi output.mp4

/ Mit H.264 und variabler Bitrate (CRF) komprimieren
ffmpeg -i input.mov -pix_fmt yuv420p -c:v libx264 -crf 18
-preset slow -profile:v high422 -level 4.0 -color_primaries
1 -color_trc 1 -colorspace 1 -movflags +faststart -c:a aac
-b:a 320k output.mp4

/ Mit H.265 und variabler Bitrate (CRF) Video komprimieren
ffmpeg -i input.mp4 -c:v libx265 -crf 23 -tag:v hvc1
-pix_fmt yuv420p -color_primaries 1 -color_trc 1 -colorspace 1
-movflags +faststart -an output.mp4

/ Mit VP9 und variabler Bitrate (CRF) Video komprimieren
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -speed 3
-pix_fmt yuv420p -color_primaries 1 -color_trc 1 -colorspace 1
-movflags +faststart -an output.webm

/ Mit VP9 und variabler Bitrate (CRF) Video komprimieren
ffmpeg -i input.mov -c:v libx265 -crf 23 -tag:v hvc1
-pix_fmt yuv420p -color_primaries 1 -color_trc 1 -colorspace 1
-movflags +faststart output.mp4

/ Mit H.264 und konstanter Bitrate konvertieren
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 2500k -profile:v high
-pix_fmt yuv420p -color_primaries 1 -color_trc 1 -colorspace 1
-movflags +faststart -an output.mp4

/ Kompatibilität herstellen mit Quicktime-Farbraum
ffmpeg -i input.mp4 -c:v libvpx-vp9 -pix_fmt yuv420p output.webm

/ Konstante Bitrate mit Zwei-Pass-Codec VP9
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 2M -pass 1 -an -f null /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 2M -pass 2 -c:a libopus output.webm

/ Variable Bitrate mit Zwei-Pass-Codec VP9, Bitrate 0 und CRF 30
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -pass 1 -an -f null /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -pass 2 -c:a libopus output.webm

/ Fulldome-Jena-Einzelbilder: Einzelbilder in H.265 Video umwandeln
/ CRT26 entspricht circa 8.000 kbit/s oder 8 Mbit/s bei 2048x2048
/ CRT26 entspricht circa 30.000 kbit/s oder 30 Mbit/s bei 4096x4096
/ %04d entspricht Anzahl der Stellen in Nummerierung der Einzelbilder 0000.png
ffmpeg -r 30 -i input_%04d.jpg -vcodec libx265 -r 30
-crf 26 -pix_fmt yuv420p output.mp4

/ Fulldome-Motus-Vorschaufilm: Einzelbilder 4096x4096 nach H.264 mit 2048x2048
/ start-number für Batch-Files beginnend mit 01060.jpg
/ -s 2048x2048 -c:a copy für Skalierung von Bilddaten
/ Videodatei ohne Audio
ffmpeg -r 30 -start_number 01060 -i input_%05d.jpg -vcodec libx264 -r 30
-crf 26 -s 2048x2048 -c:a copy -vf format=yuv420p output.mp4

/ Fulldome-Motus-Vorschaufilm mit Audio
/ Batch-Files beginnen mit Zählung bei 00000.jpg
ffmpeg -r 30 -i input_%05d.jpg -i audio.wav
-vcodec libx264 -r 30 -crf 26 -s 2048x2048 -c:a aac -b:a 320k
-vf format=yuv420p output.mp4

/ Youtube: mov in mp4 umwandlen und Audio beibehalten
ffmpeg -y -i input.mov -c:v libx264 -b:v 40000k -profile:v high -c:a aac -b:a 320k -pix_fmt yuv420p output.mp4

/ Vimeo: mov in mp4 umwandlen, Audio beibehalten und Datei komprimieren
ffmpeg -y -i input.mov -c:v libx264 -b:v 40000k -profile:v high -c:a aac -b:a 320k -vcodec libx264 -crf 26 -pix_fmt yuv420p output.mp4

/ Youtube und Vimeo: mov in mp4 unwandeln, Audio und Video in hoher Qualität komprimieren
ffmpeg -y -i input.mov -c:v libx264 -crf 18 -level 4.0 -profile:v high422 -pix_fmt yuv420p -c:a aac -b:a 320k -q:a 5 output.mp4

/ Fulldome-Settings-UK-Plymouth mit konstanter Bitrate von 60 MBits
ffmpeg -i input.mov -c:v libx265 -profile:v main -level:v 6.2 -b:v 7500k -pix_fmt yuv420p output.mp4

/ Fulldome-Settings-UK-Plymouth mit variabler Bitrate CR18, H.265 und Audio in mov-Datei enthalten
ffmpeg -i input.mov -vcodec libx265 -crf 26 -profile:v main -level:v 6.2 -c:a aac -b:a 320k -vf format=yuv420p output.mp4

/ Stapelverarbeitung für ganzen Ordner mit TIFF-Bildern zum Umwandeln in JPG-Bilder
for i in *.tif; do ffmpeg -i "$i" "${i%.*}.jpg"; done

/ Fulldome-Settings-Sous-Dome-Cite-Sciences-et-Industries mit max. 30 MBit/s Datendurchsatz
-vf "scale=out_range=full" -an -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p -x264-params "aqmode=3:fullrange=on " -maxrate 80M -bufsize 10M

/ Fulldome-Jena-Film: Filmsequenz in H.265 umwandeln, Audio abstellen (-an), 60fps in 30fps umwandeln (-r 60 zu -r 30)
ffmpeg -r 60 -i input.mov -an -vcodec libx265 -r 30 -crf 26 -pix_fmt yuv420p output.mp4

--------------------­--------------------­--------------------­--------------------­-----

 

zurück zur Übersicht