Specify ffmpeg encoder in VideoCapture [closed]

asked 2017-03-20 13:52:20 -0600

everphilski gravatar image

I'm using an Orange Pi with a built in CSI webcam. On the command line with ffmpeg I can get 30+ frames a second no problem using the hardware-accelerated cedrus encoder.

From OpenCV, using the v4l2 bindings is much slower - I get about 10 frames per second in the best case. And it's no better if I specify CAP_FFMPEG because it isn't using the hardware-accelerated encoder.

Is there a way to either (a) specify an encoder in OpenCV VideoCapture (API suggests no) (b) a straightforward way to pipe output from an ffmpeg process to OpenCV VideoCApture (c) is there a third method I'm missing?

thanks philip

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by sturkmen
close date 2020-10-15 13:09:31.584969

Comments

" is there a third method I'm missing?" -- use libffmpeg directly, to aqcuire images, convert them to cv::Mat

(in other words, - sidestep opencv's VideoCapture class, which is a nice commodity, but for sure not optimal in all cases)

berak gravatar imageberak ( 2017-03-20 13:54:55 -0600 )edit

berak - thanks. I can't find good documentation on this. Is there an example you could point me to?

everphilski gravatar imageeverphilski ( 2017-03-23 23:51:33 -0600 )edit

sorry, no i can't.

berak gravatar imageberak ( 2017-03-24 01:23:37 -0600 )edit