Questo mi ha tenuto impegnato per buona parte del pomeriggio e non sono riuscito a farlo funzionare ma mi sento davvero vicino.Invio dell'output OpenCV al flusso VLC
Ho installato openCV che prende il video da una webcam. Per poter accedere a questo feed video (con overCV aperto) voglio canalizzare l'output dello script python openCV su uno stream VLC. Sono riuscito a far funzionare lo stream e a poterci connettere. VLC ridimensiona al rapporto di aspetto e alla risoluzione corretti in modo da ottenere alcuni dati corretti ma l'immagine che ottengo è solo 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}" &
L'output dello script è un feed video costante inviato a stdout come segue
from imutils.video import WebcamVideoStream
vs = WebcamVideoStream(src=0)
while True:
frame = vs.read()
sys.stdout.write(frame.tostring())
Sopra esempio è una versione dumbed giù dello script che sto utilizzando; Inoltre, come visto, sto facendo uso della libreria imutils; https://github.com/jrosebr1/imutils
Se qualcuno potesse darmi una spinta nella giusta direzione lo apprezzerei molto. La mia ipotesi è la stdout.write (frame.tostring()) non è ciò che si aspetta vlc ma non sono stato in grado di capirlo da solo.
cosa vuoi dire l'immagine è solo jitter? – incBrain
Fondamentalmente un'immagine veramente distorta che si sposta verso l'alto in diagonale. Non proprio collegato al feed video reale dalla webcam, per quanto ho potuto capire. (Non è cambiato quando ho spostato gli oggetti davanti alla webcam) Quindi suppongo che VLC non possa intercettare i dati frame.tostring(). –
è probabilmente una mancata corrispondenza nel formato video. Sei sicuro che RV24 sia il formato di output corretto? Assicurarsi inoltre che le dimensioni corrispondano a – incBrain