IPCAM RTSP
因為不好找 怕自己忘記 所以做簡單的紀錄
首先 先下載 Emgu CV
確認IP cam 是否支援 RTSP 串流(各家有不一樣)
首先建立 加入emgu cv 的參考後
建立
private Capture cap = null;
private Capture[] cap1 =new Capture[2];
因為讀取會需要時間比較慢所以開啟程式我先建立了攝影機
public Form1()
{
try
{
InitializeComponent();
cap1[0] = new Capture("rtsp://admin:123456@192.168.1.88:554/H264?ch=1&subtype=1");
cap1[1] = new Capture(0);
// cap = new Capture("rtsp://admin:123456@192.168.1.88:554/H264?ch=1&subtype=1");
//我用的CAM 需要密碼所以在 串流前加入 帳號 密碼 大部分都要)
Application.Idle += new EventHandler(Application_Idle);
}
catch (NullReferenceException excpt)
{
MessageBox.Show(excpt.Message);
}
}
//顯示基本畫面
void Application_Idle(object sender, EventArgs e)
{
Image<Bgr, Byte> frame = cap1[0].QueryFrame();// 攝影機畫面
pictureBox1.Image = frame.ToBitmap();
}
//執行錄影程式
private void button2_Click(object sender, EventArgs e)
{
//cap = new Capture("rtsp://admin:123456@192.168.1.88:554/H264?ch=1&subtype=1");
if (cap1[0]== null)
{
MessageBox.Show("找不到攝影機", "error");
}
Image<Bgr, byte> temp = cap1[0].QueryFrame();
string nowstring = DateTime.Now.ToString("yyyyMMddhhmmss");
/* SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
SaveFileDialog1.FileName = nowstring;
Console.WriteLine("這裡"+SaveFileDialog1.FileName);
SaveFileDialog1.Filter = "Image Files(*.avi)|*.avi|All files (*.*)|*.*";
if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
{
MessageBox.Show("開始錄製,按ESC結束錄製");
}
*/
string seee = @"C:\Test\photos\" + nowstring+".avi";
//執行攝影的主要區域
VideoWriter video = new VideoWriter(seee, CvInvoke.CV_FOURCC('X', 'V', 'I', 'D'), 20, 800, 600, true);
//這邊是一直抓取圖片把他丟成 影片
while (temp != null)
{
CvInvoke.cvShowImage("camera", temp.Ptr);
temp = cap1[0].QueryFrame();
int c = CvInvoke.cvWaitKey(20);
video.WriteFrame<Bgr, byte>(temp);
//遇到事件停止錄影
if (c == 27)
{ break; }
//break;
}
Thread t1 = new Thread(MyBackgroundTask);
// t1.Join();
video.Dispose();
CvInvoke.cvDestroyWindow("camera");
//錄影完需將影像停止不然會出錯
_captureInProgress = false;
button1.Text = "開始";
Application.Idle -= Application_Idle;
}
基本為這樣如有錯誤希望能幫忙糾正
請問你使用的IP CAM的型號是什麼?
回覆刪除同上 我也想知道
回覆刪除基本上有 RTSP 串流的都可以
回覆刪除