EmguCVプレビューRTSPビデオ、EmguCV RTSPビデオの保存を使ってC#

ビデオ関連のビジネスを行うには、あなたはハスSDKを使用することを目的とハスのブランドを使用して、ちょうどカメラのブランドではないかもしれないアカウントに顧客を撮るカメラビューの監視カメラを呼び出す必要があり、ハスのSDKは、他のかもしれブランドは互換性がありませんので、RTSPの方向通話を使用することを検討してください。

それでは、どのよう、まだC#RTSPライブ映像に呼び出し、インターネットに多くの情報を確認し、偉大な神が提供していますあなたは拍子抜けである情報を、そして最終的に外国のウェブサイトで答えを見つけたために、あなたの参照のための自由なシェア(の情報CSDNの多くで発見、)あなたがダウンロードする必要があり、統合は必ずしも有用ではありません。

システムを使用しました。
System.Collections.Genericを使用しました。
System.IOを使用しました。
System.Linqのを使用しました。
System.Runtime.InteropServicesを使用しました。
System.Textのを使用しました。
System.Windowsを使用しました。
System.Windows.Formsを使用しました。
Emgu.CVを使用しました。
Emgu.CV.Structureを使用しました。
名前空間WpfAppTest
{
    /// <要約>
    /// Window1.xamlインタラクションロジック
    /// </要約>
    公共部分クラスウィンドウ1:ウィンドウ
    {
        プライベートキャプチャcurrentDevice。
        プライベートVideoWriter videoWriter。
        プライベートブール記録。
        プライベートint型videoWidth。
        プライベートint型videoHeight。

        公共ウィンドウ1()
        {
            InitializeComponent();
            InitializeVariables();
        }
        プライベート無効InitializeVariables()
        {
            currentDevice =新しいキャプチャー( "RTSP://管理者:***@172.16.21.80:554");
            = falseを記録。
            videoWidth = currentDevice.Width。
            videoHeight = currentDevice.Height。
        }
        プライベートボイドCurrentDevice_ImageGrabbed(オブジェクト送信者、EventArgsの電子)
        {
            試します
            {
                マットM =新しいマット()。
                currentDevice.Retrieve(M、0);
                VideoPictureBox.Image = m.Bitmap。
                もし(記録&& videoWriter!= NULL)
                {
                    videoWriter.Write(M)。
                }
            }
            キャッチ(例外の例)
            {
            }
        }

        プライベート無効Preview_Click(オブジェクト送信者、RoutedEventArgs e)の
        {
            currentDevice.ImageGrabbed + = CurrentDevice_ImageGrabbed。
            currentDevice.Start();
        }

        プライベート無効StartRecording_Click(オブジェクト送信者、RoutedEventArgs e)の
        {
            記録=はtrue。
            SaveFileDialogダイアログ=新SaveFileDialog();
            dialog.DefaultExt =」.MP4" 。
            dialog.AddExtension =はtrue。
            dialog.FileName = DateTime.Now.ToString()。
            DialogResult dialogResult = dialog.ShowDialog()。
            もし(dialogResult!= System.Windows.Forms.DialogResult.OK)
            {
                返します。
            }
            videoWriter =新しいVideoWriter(dialog.FileName、VideoWriter.Fourcc( 'M'、 'P'、 '4'、 'V')、30、新しいSystem.Drawing.Size(videoWidth、videoHeight)、TRUE)。
        }

        プライベート無効StopRecording_Click(オブジェクト送信者、RoutedEventArgs e)の
        {
            = falseを記録。
            (videoWriter!= null)の場合
            {
                currentDevice.Stop();
                videoWriter.Dispose();
            }
        }

    }
}
    

  

おすすめ

転載: www.cnblogs.com/chengNet/p/11724429.html