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.
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."
../svn/configure --prefix=/home/christian/ffmpeg/built
--enable-gpl --enable-version3 --enable-nonfree --enable-postproc
--enable-memalign-hack --enable-libfaac --arch=x86 --target-os=mingw32
--cross-prefix=i686-mingw32- --enable-runtime-cpudetect --enable-libx264
--enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libmp3lame
make -j2
make install
i686-mingw32-gcc tools/qt-faststart.c -o built/qt-faststart.exe
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).
aus Dateiliste
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.
Ist behoben.