1。第一回使用Opencv的目的是为了能采集笔记本的视频,想要做一个视频聊天的软件,大概思路是采集到的码流转成H.264,然后再加上转成TS或者PS通过RTP协议或者RTP在TCP上来发送给另外一个用户,另一个用户收到视频流后,反向得到码流,然后显示到软件上,最终实现视频聊天的目的。
2.最简单的代码如下:
首先定义一个采集的类对象VideoCapture inputVideo(0);
下面是显示部分,通过一个MFC的定时器,定时40ms来触发一次,最终在界面上显示,大概是1000/40ms=25帧,一秒25帧的数据。
void CMFCApplication1Dlg::OnBnClickedButton1()
{
SetTimer(1, 40, NULL);
return;
}
void CMFCApplication1Dlg::OnBnClickedButton2()
{
KillTimer(1);
}
void CMFCApplication1Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
Mat src;
inputVideo >> src;
if (src.empty()) return;
imshow("view", src);
CDialogEx::OnTimer(nIDEvent);
}
最终就能出来视频了。大概界面效果如下:(比较宅,不晒本人照片了)