Jak mogę przesyłać dane wyjściowe z ffmpeg do ffplay?
W tej chwili używam obejścia w bash:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
Nie wiem, czy to nie jest w ffmpeg
stanie wyprowadzić danych na standardowe wyjście lub ffplay
że nie może pobrać danych wejściowych ze standardowego wejścia.
Jeśli tak ffmpeg
, to nie może wyprowadzić swoich danych na standardowe wyjście:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Musisz dodać -
argument, aby pobierał ffplay
dane wejściowe ze standardowego wejścia.)
Jeśli tak ffplay
, to nie może pobrać danych wejściowych ze standardowego wejścia:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Aby uzyskać więcej informacji na temat <(command)
i >(command)
konstrukcji, zobacz sekcję Podstawianie procesów w podręczniku bash.
będzie działać; musisz ustawić format kontenera dla danych wyjściowych. Zwykle jest to ustawiane przez ffmpeg patrząc na rozszerzenie, które podajesz, ale tutaj musisz ustawić je ręcznie za pomocą
-f
. Polecam matroska (MKV), ponieważ może zawierać prawie każdy film, więc wszystko, co go transkodujesz, powinno działać idealnie.Zauważ, że jeśli używasz Ubuntu 12.04, ffmpeg został zastąpiony przez libav fork i powinieneś użyć
avconv
iavplay
zamiast niego; w przeciwnym razie składnia jest identyczna. Jest tam coś w rodzaju ffmpeg, ale jest sparaliżowane przez projekt.źródło
pipe:: Invalid data found when processing inputK
w Power Shell, ale działa dobrze w wierszu poleceńffmpeg obsługuje operacje rurociągów. Zobacz tę sekcję dokumentacji tutaj .
Nie wiem, jak działa ffplay, ale aby przesłać dane wyjściowe ffmpeg do standardowego wyjścia, możesz dodać polecenie pip na końcu polecenia ffmpeg. Przykład:
źródło
man ffplay
przypadku nie widzęffplay
wsparcia dla-i
przełącznika - czy to możeffmpeg
tylko?pipe:1
kontra-
?-
działa na ffmpeg 2.8.6.wygląda jak normalne rury działające (przynajmniej w systemie Windows):
chociaż nie próbowałem tego z bardziej skomplikowanymi wejściami / wyjściami ...
jest nieco szybszy start
źródło
Unable to find a suitable output format for 'pipe:'
- musiałem podać kodek-f
.