====== 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 Infos über verfügbare Formate oder codecs könne wie folgt beauskunftet werden. Formats * Alle formate: \\ ffmpeg -formats * Codecs * Alle Codecs: \\ (encoders and decoders): 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 ==== Flashvideo erstellen ==== ffmpeg -i -ab 128 -ar 44100 -b 350000 -r 25 -s 440x330 ^ 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 ** und **-vsync ** 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 .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 .mp4 .mp4 Konvertieren in webm: ffmpeg -i .mp4 -c:v libvpx -crf 10 -b:v 5M .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