Odpowiedzi:
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.
ffmpeg -i input.avi <options> -f matroska - | ffplay -
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
i avplay
zamiast niego; w przeciwnym razie składnia jest identyczna. Jest tam coś w rodzaju ffmpeg, ale jest sparaliżowane przez projekt.
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:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay
przypadku nie widzę ffplay
wsparcia dla -i
przełącznika - czy to może ffmpeg
tylko?
pipe:1
kontra -
? -
działa na ffmpeg 2.8.6.
wygląda jak normalne rury działające (przynajmniej w systemie Windows):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
chociaż nie próbowałem tego z bardziej skomplikowanymi wejściami / wyjściami ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
jest nieco szybszy start
Unable to find a suitable output format for 'pipe:'
- musiałem podać kodek -f
.