gstreamer获取视频采集卡的视频数据
gstreamer可以用于采集硬件视频数据,转码,播放,传输等,但由于框架相对于FFmpeg较为小众,所以资料较少,整理一份从usb中取视频的demo,后续更新取出数据后转码的demo。
#include "Camera/gstCamera.h"
#include "../gstDisplay.h"
#include "CameraSDK.h"
#include "Base/gstUtils.h"
#include <iostream>
using namespace camerasdk;
void CameraBuffer(GstBuffer *gst_buffer,void* user_data){
GstMapInfo map;
//把buffer映射到map,这样我们就可以通过map.data取到buffer的数据
if (gst_buffer_map (gst_buffer, &map, GST_MAP_READ)){
AERROR << "buffer size =" << map.size;
gst_buffer_unmap (gst_buffer, &map); //解除映射
}
}
int main(int argc, char *argv[]){
CameraSDK_Init();
CCameraOption option;
option.m_width = 1920;
option.m_height = 1080;
option.m_frame_rate = 30;
option.m_video_scale = false;
option.m_resource = "/dev/video2";
gstCamera *cam = gstCamera::Create(option);
cam->SetBufferCBFun(CameraBufferCBFun, dis);
cam->Open();
cam->Close();
delete cam;
CameraSDK_Uninit();
return 0;
}
sdk下载地址:https://download.csdn.net/download/tiaobolian6687/87617176