To zajęło mi dużo czasu po południu i nie mogłem go uruchomić, ale czuję, że jestem bardzo blisko.Wysyłanie wyjścia OpenCV do strumienia VLC
Mam zestaw openCV, który pobiera videofeed z kamery internetowej. Aby uzyskać dostęp do tego źródła wideo (z nakładką openCV), chcę wyprowadzić dane wyjściowe skryptu python openCV do strumienia VLC. Udało mi się uruchomić i uruchomić strumień i połączyć się z nim. Funkcja VLC zmienia rozmiar na prawidłowy współczynnik proporcji i rozdzielczość, aby uzyskać poprawne dane, ale obraz, który otrzymuję, jest po prostu Jitter;
python opencv.py | cvlc --demux=rawvideo --rawvid-fps=30 --rawvid-width=320 --rawvid-height=240 --rawvid-chroma=RV24 - --sout "#transcode{vcodec=h264,vb=200,fps=30,width=320,height=240}:std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=:8081/stream.flv}" &
Wyjście skryptu jest stały strumień wideo wysyłane do stdout następująco
from imutils.video import WebcamVideoStream
vs = WebcamVideoStream(src=0)
while True:
frame = vs.read()
sys.stdout.write(frame.tostring())
Powyższy przykład jest dumbed dół wersja skryptu używam; Jak widać, korzystam z biblioteki imutils; https://github.com/jrosebr1/imutils
Gdyby ktokolwiek mógł mnie popchnąć we właściwym kierunku, byłbym bardzo wdzięczny. Domyślam się, że stdout.write (frame.tostring()) nie jest tym, czego oczekuje vlc, ale nie byłem w stanie sam tego rozgryźć.
co masz na myśli, mówiąc, że obraz jest po prostu niestabilny? – incBrain
Zasadniczo naprawdę zniekształcony obraz, który porusza się w górę po przekątnej. Niezupełnie związane z rzeczywistym kanałem wideo z kamery internetowej, o ile mogłem się zorientować. (Nie zmieniło się, gdy przeniosłem obiekty przed kamerą). Zgaduję, że VLC nie może interpetować danych frame.tostring(). –
to prawdopodobnie niedopasowanie w formacie wideo. Czy jesteś pewien, że RV24 ma poprawny format wyjściowy? Upewnij się również, że wymiary pasują do: – incBrain