Dieser Artikel widmet sich den diversen Videobearbeitungsmethoden und Videoformaten mit ffmpeg
.
Mit ffmpeg
können Videos verändert bzw. manipuliert werden.
Installiert wird FFMPEG wie folgt.
apt-get install ffmpeg
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
ffmpeg -formats
ffmpeg -codecs
Alle Encoders:
ffmpeg -encoders
Alle Decoders:
ffmpeg -decoders
Zeigt Informationen über einen bestimmten Encoder:
ffmpeg -h encoder=mpeg4
Zeigt Informationen über einen bestimmten Decoder:
ffmpeg -h decoder=aac
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) |
Damit das Video nicht interlaced gerendert wird muss ffmpeg
noch diese Parameter erhalten.
-filter:v yadif
„yadif“ steht für Yet Another DeInterlacing Filter.
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
Z.B. von einer Aufnahme vom VDR:
avconf -i 00001.ts -acodec libmp3lame -f mp3 -ab 192k -ar 48000 <NAME>.mp3
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
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“.
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.
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