FFMPEG

Interlaced Video skalieren

Um Videobilder mit Zeilensprungverfahren zu skalieren ist es notwendig, zunächst aus dem 25i ein 50p zu deinterlacen, danach werden die 50p skaliert und anschließend wieder in 25i verwoben.

MEncoder bietet mit den Videofiltern yadif=1, scale, tinterlace=4 eine solche Filterkette, jedoch enthält das erzeugte Video Fehler.

Neuerdings (2012-06-01) ist mit FFMPEG auch das Skalieren von Interlaced-Material problemlos möglich, der Filterketten-Flush ist ebenfalls implementiert:

Für TFF: -vf yadif=1:0:0,scale=720:576,tinterlace=interleave_top
yadif verdoppelt die Frameanzahl aus erzwungen deinterlaceten TFF-Fields, tinterlace verwebt mit TFF

Für BFF: -vf yadif=1:1:0,scale=720:576,tinterlace=interleave_bottom

Bisher war in FFMPEG das tinterlace-Filter leider nicht mit yadif kompatibel (auch nicht mit dem MPlayer-Wrapper). Das bisherige scale-Filter besitzt zwar einen "Interlaced"-Modus, jedoch ist dieser unbrauchbar.

Basierend auf GIT g34b92db habe ich das scale-Filter um die Interlaced-Verarbeitung (mithilfe yadif) erweitert: vf_scale.c. Der Aufruf geschieht mit -vf scale w:h:i, wobei i folgende Werte annehmen kann:

In der GIT-Version ist leider noch kein "Flush" für die Filterkette vorgesehen, was zum Verlust des letzen Frames im YADIF-Algorithmus führt. In der Codebasis vom FFMBC ist ein entsprechender Flush umgesetzt. Hier dazu der passende vf_scale.c, der nun den überarbeiteten YADIF und eine breitere Palette an Pixelformaten enthält.

Weiterhin müssen bei interlaced-Material auch bei einer Pixelformatkonvertierung die Felder einzeln konvertiert werden, wenn sich die vertikalen Subsamplingfaktoren unterscheiden.

FFMPEG kompilieren

Zum Kompilieren bin ich dieser Anleitung gefolgt: http://ffmpeg.arrozcru.org/forum/viewtopic.php?f=1&t=1503&start=45, mit Ubuntu 10, 32-Bit auf einer VM. Nachteil: veraltete SVN-Version.

Damit gemeinsame Ordner mit der Oracle VM funktionieren, muss der Benutzer der Gruppe vboxsf angehören, ansonsten erscheint beim Zugriff auf /media/sf_Share die Fehlermeldung "Der Ordnerinhalt konnte nicht angezeigt werden. Sie haben nicht die nötigen Zugriffsrechte, um den Inhalt von >>sf_Share>> anzuzeigen."

Kompilieren mit der GIT-Version

Kompilieren von qt-faststart.exe

Videofilter -vf

Audiospur ersetzen / Mehrkanalaudio

Weitere Audio-Spur hinzufügen (ffmpeg 2011):

Weitere Audio-Spur hinzufügen (ffmpeg 2016):

Audiospur durch andere ersetzen:

sox zum Erstellen von Multi-Channel-WAVs:

sox zum Resamplen von Multi-Channel-Audio:

WaveWizard zum Anordnen der Kanäle in Multi-Channel-WAVs (mapping, mixing und merging).

Video aus Bildsequenz und WAV-Datei

aus Dateiliste

Bildsequenz aus Video

Ausschnitt festlegen

Mit -ss 00:00:00.000 wird der Startzeitpunkt festgelegt. Dabei spielt die Reihenfolge der Parameter eine Rolle: wird -ss VOR -i angegeben wird (sehr schnell) auf Container-Ebene gesucht, wird -ss NACH -i angegeben wird (langsamer Prozess) in den decodierten Frames gesucht.

Mit -t 00:00:00.000 wird die Dauer bzw. mit -vframes die Anzahl Bilder.

Mit -to 00:00:00.000 wird der Stop-Zeitpunkt festgelegt.

Einstellung Closed GOP every Keyframe und Fixed GOP Size 12

RTMP-Stream von FWplayer aufzeichnen

Mehrere Videodateien aneinanderreihen und nach H264 exportieren

BUG: Wenn CGOP dann wird fälschlicherweise MV4 aktiviert

Ist behoben.


Erstellt 03.05.2011, zuletzt geändert 09.03.2018 13:26:30, Zugriffszähler Besuche. © Christian Enders