ffplay - Nie można znaleźć pliku przy użyciu lavfi [duplikat]

4

To pytanie ma już odpowiedź tutaj:

Mam problem z używaniem lavfi w ffplaycelu zastosowania filtrów.

Po prostu próbuję uzupełnić jeden film i nałożyć inny film w wyściełanym obszarze.

Moje dane wyjściowe polecenia i konsoli są następujące:

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

Aby uprościć rzeczy, pojawia się ten sam błąd, gdy próbuję radykalnie uprościć polecenie, aby:

ffplay -f lavfi "movie=d:/test.mpg"

Mam nadzieję, że po prostu używam złej składni, aby określić lokalizację plików tutaj w lavfi.

occvtech
źródło
Po pierwszym „.mpg” masz przecinek, a po drugim średnik; czy mają to być przecinki czy średniki?
RockPaperLizard
Pokaż pełne dane wyjściowe konsoli.
llogan
Dodałem wyjście konsoli. Mam nadzieję, że to pomoże znaleźć odpowiedź. Dzięki!
occvtech
Pokaż zrzut jako tekst zamiast zrzutu ekranu. W każdym razie dane wyjściowe konsoli są tekstowe. Tekst jest przeszukiwalny, mniejszy w bajtach, a zawartość można łatwo skopiować w celu przetestowania.
llogan
Dodałem tekst. Czy jest odpowiednio sformatowany, czy jest lepszy sposób? Jeszcze raz dziękuję za wszelką pomoc!
occvtech

Odpowiedzi:

4

Dwie rzeczy:

  • Twoje nawiasy i cytaty są błędne. Miałeś "][1]na końcu, ale byłoby to o jedną nawias za dużo i powinieneś zamknąć cytat tylko na samym końcu.

  • W przypadku systemu Windows należy dwukrotnie usunąć dwukropek w moviefiltrze. W przeciwnym razie zostanie zinterpretowany jako separator opcji. Nie wiem dlaczego dokładnie, ale bilet nr 2166 o tym wspomina .

To powinno działać:

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]"

slhck
źródło
OK, zamykamy się !! Właśnie wypróbowałem całą różnorodność znaków cudzysłowu i nic nie działało. Za każdym razem pojawia się ten sam błąd. Próbowałem jednak skopiować test.mpg do c:\users\userkatalogu (moja bieżąca domyślna płyta CD), a teraz polecenie ffplay -f lavfi "movie=test.mpg"działa. Nie mogę go uruchomić z D (co jest ważne dla moich potrzeb), ale wygląda na to, że zbliżamy się. Wszelkie inne przemyślenia na temat formatowania ścieżki? Dzięki jeszcze raz!
occvtech
2
Rozumiem, zobacz moją zaktualizowaną odpowiedź. Potrzebujesz ucieczki od podwójnego ukośnika.
slhck 21.04.15
To zrobiło !! Dzięki za pomoc!! Mam jednak inne pytanie: tracę możliwość przewijania wideo za pomocą lavfi. Wiem, że to dlatego, że próbuje dodawać filtry i dekodować w locie. Czy jest coś takiego? Może przez inny filtr ... lub tworząc jakiś indeks? Dzięki jeszcze raz!
occvtech