This is a small python3 script reading off picam using OpenCV : #picamStream.py import sys, os from picamera.array import PiRGBArray from picamera import PiCamera import time import cv2 # initialize the camera and grab a reference to the raw camera capture camera = PiCamera() camera.resolution = (960, 540) camera.framerate = 30 rawCapture = PiRGBArray(camera, size=(960, 540)) # allow the camera to warmup time.sleep(0.1) # capture frames from the camera for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True): image = frame.array # --------------------------------- # . # Opencv image processing goes here # . # --------------------------------- os.write(1, image.tostring()) # clear the stream in preparation for the next frame rawCapture.truncate(0) # end And I am trying to pipe it to ffmpeg to Youtube stream My understanding is that I need to reference below two commands to somehow come up with a new ffmpeg command. Piping picam live video to ffmpeg for Youtube streaming. raspivid -o - -t 0 -vf -hf -w 960 -h 540 -fps 25 -b 1000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/[STREAMKEY] Piping OPENCV raw video to ffmpeg for mp4 file. python3 picamStream.py | ffmpeg -f rawvideo -pixel_format bgr24 -video_size 960x540 -framerate 30 -i - foo.mp4 So far I've had no luck. Can anyone help me with this? Continue reading...