Inhaltsverzeichnis

FFMPEG

Dieser Artikel widmet sich den diversen Videobearbeitungsmethoden und Videoformaten mit ffmpeg.
Mit ffmpeg können Videos verändert bzw. manipuliert werden.

installieren

Installiert wird FFMPEG wie folgt.

apt-get install ffmpeg

Informationen

Infos über ein Video-file können folgendermaßen ausgegeben werden.

ffmpeg -i <VIDEODATEI>

Infos über verfügbare Formate oder codecs könne wie folgt beauskunftet werden.
Formats

Flashvideo erstellen

ffmpeg -i <VIDEODATEI> -ab 128 -ar 44100 -b 350000 -r 25 -s 440x330 <AUSGABEDATEI.flv>
Option Parameter Beschreibung
File -i filename input file name
Audio -b:a bitrate set bitrate (in bits/s)
-ar rate set audio sampling rate (in Hz)
Video -b:v bitrate set bitrate (in bits/s)
-r rate set frame rate (Hz value, fraction or abbreviation)
-s size set frame size (WxH or abbreviation)

Deinterlacing

Damit das Video nicht interlaced gerendert wird muss ffmpeg noch diese Parameter erhalten.

-filter:v yadif

„yadif“ steht für Yet Another DeInterlacing Filter.

A/V Synchronität

Manchmal kann es vorkommen dass Audio und Video nicht synchron ablaufen.
Um Audio/Video Asynchronitzitäten auszugleichen, setzt man die Parameter -async <WERT> und -vsync <WERT> ein.

Wenn die Audiospur dem Film voraus eilt, setzt man den Parameter -async ein.
Wenn die Videospur dem Audio voraus eilt, setzt man den FFmpeg Parameter -vsync ein.
FFmpeg wird versuchen, die Audiospur auf die Videolänge zu stauchen und /oder umgekehrt.

Video vom VDR in Flash convertieren:

ffmpeg -i 00001.ts -ar 44100 -async 1  00001.flv

Audio aus Video extrahieren

Z.B. von einer Aufnahme vom VDR:

avconf -i 00001.ts -acodec libmp3lame -f mp3 -ab 192k -ar 48000  <NAME>.mp3

Audio und Video zusammenführen

Man hat z.B. Audio und Video separat gerendert und möchte nun diese wieder zusammenführen

ffmpeg -i input_video_file.mp4 -i input_audiofile.ac3 -c:v copy -c:a copy output_muxed_file.mp4

Arista Transcoder

Der Arista Transcoder ist eine GUI für ffmpeg, die es sehr einfach erlaubt Multimedia Inhalte in verschiedene
Formate umzuwandeln.
Installiert wird das Programm wie folgt:

apt-get install arista

In der GUI kann man Voreinstellungen und neue Converteinstellungen herunterladen.
Zunächst wählt man die Quelle (z.B. DVD oder Datei), und den Ausgabeort aus.
Danach wählt man einfach das Ausgabeformat aus und klickt dann unten auf „start“.

Webinhalte

Wenn man ein Video auf die eigene Website stellen möchte, sollte man nicht nur ein aktuelles Format wie „webm“ online stellen sondern noch ein weiteres Format zur Verfügung stellen.
Man kann hier z.B. das Format „mp4“ verwenden. Es ist recht verbreitet.

Wenn man z.B. mit einem Smartphone ein Video aufgenommen hat, dann kann man dieses mit Arista wunderbar in „webm“ konvertieren.
Das unter Android erstellte „mp4“ Video kann man noch mal durch FFMPEG jagen. So wird die Dateigröße geschrumpft.

ffmpeg -threads auto -i <DATEINAME>.mp4 <DATEINAME_NEU>.mp4

Konvertieren in webm:

ffmpeg -i <DATEINAME>.mp4 -c:v libvpx -crf 10 -b:v 5M <DATEINAME_NEU>.webm

Beschreibung (quelle: https://trac.ffmpeg.org/wiki/Encode/VP8):
In addition to the „default“ VBR mode, there's a constant quality mode (like in the x264 encoder) that will ensure that every frame gets the number of bits it deserves to achieve a certain quality level, rather than forcing the stream to have an average bit rate. This results in better overall quality and should be your method of choice when you encode video with libvpx. In this case, the target bitrate becomes the maximum allowed bitrate. You enable the constant quality mode with the CRF parameter:

ffmpeg -i input.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm
By default the CRF value can be from 4–63, and 10 is a good starting point. Lower values mean better quality.

Alle Dateien in einem Ordner verarbeiten

Möchte man viele Dateien in einem Ordner mit den selben Einstellungen verarbeiten (z.B. MP3-Dateien), so kann man diesen Befehl verwenden. Er erstellt aus den Originaldateien Kopien, hier mit dem Dateinamenszusatz „-1“ vor der Dateiendung.

for file in *; do outfile=${file%.*}"-1.mp3"; ffmpeg -i "$file" "$outfile"; done