Ich habe einige Probleme bei der Verwendung von lavfi ffplay
zum Anwenden von Filtern.
Ich versuche einfach, ein Video aufzufüllen und ein anderes Video innerhalb des aufgefüllten Bereichs zu überlagern.
Mein Befehl und die Konsolenausgabe lauten wie folgt:
ffplay -f lavfi "movie=h:\test.mpg,pad=704:770:0:0[padded];movie=h:\test2.mpg[2];[padded][2]overlay=shortest=1:x=0:y=490[1]"
ffplay version N-69920-g8bc8001 Copyright (c) 2003-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab
le-zlib
libavutil 54. 18.100 / 54. 18.100
libavcodec 56. 22.100 / 56. 22.100
libavformat 56. 22.100 / 56. 22.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.100 / 5. 11.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
[Parsed_movie_0 @ 0000000000399480] Failed to avformat_open_input 'd'
[lavfi @ 0000000000396a60] Error initializing filter 'movie' with args 'd:test.mpg'
movie=d:\test.mpg,pad=704:770:0:0[padded];movie=d:\test2.mpg[2];[padded][2]overlay=shortest=1:x=0:y=490[1]: No such file or directory
Der Einfachheit halber erhalte ich den gleichen Fehler, wenn ich versuche, den Befehl drastisch zu vereinfachen:
ffplay -f lavfi "movie=d:/test.mpg"
Ich hoffe, dass ich einfach die falsche Syntax verwende, um den Dateispeicherort hier in lavfi anzugeben.
Antwort1
Zwei Dinge:
Deine Klammern und Anführungszeichen sind falsch. Du hättest
"][1]
am Ende stehen sollen, aber das wäre eine Klammer zu viel, und du solltest das Anführungszeichen erst ganz am Ende schließen.Unter Windows müssen Sie den Doppelpunkt im Filter doppelt maskieren
movie
. Andernfalls wird er als Optionstrennzeichen interpretiert. Ich weiß nicht genau, warum, aberTicket Nr. 2166 erwähnt es.
Das sollte funktionieren:
ffplay -f lavfi "movie=d\\:/test.mpg,pad=704:770:0:0[padded];movie=d\\:/test2.mpg[2];[padded][2]overlay=shortest=1:x=0:y=490[1]"