Ric*_*wan 6 opencv ffmpeg decoder h.264 hardware-acceleration
我正在开发一个视频分析应用程序,我必须解码RTSP流以提供IplImage帧,然后将其输入我的分析管道.现在,OpenCV VideoCapture结构允许我从RTSP流中提取帧(我认为它使用ffmpeg这样做),但性能不是那么好.它需要实时工作.
我也继续编写了自己的ffmpeg解码器.但就像OpenCv一样,使用RTSP流的性能并不好.丢弃了很多帧.但是,从本地文件解码工作正常.我仍然在努力改进代码.
我需要帮助的是这个.首先,我可以在这里使用硬件加速解码来提高性能吗?我的应用程序应该是跨平台的,所以我可能需要使用Directx VA(windows)和VAAPI(linux).如果是的话,那么在那里我可以学习如何在代码中实现硬件加速,特别是对于ffmpeg解码H264?
小智 0
据我所知,使用 ffmpeg 后端的 VideoCapture 不支持硬件加速。
我认为您可以选择以 gstreamer 作为后端的 VideoCapture,您可以自定义管道并通过 vaapi 启用硬件加速。
我正在使用这个管道:
rtspsrc location=%s latency=0 ! queue ! rtph264depay ! h264parse ! vaapidecodebin ! videorate ! videoscale ! videoconvert ! video/x-raw,width=640,height=480,framerate=5/1,format=BGR ! appsink
Run Code Online (Sandbox Code Playgroud)