Получить данные из локального хранилища (SD-карты) камеры onvif

Я разрабатываю приложение WPF для Onvif Камера. Следуя Onvif SDK Я успешно подключил камеру для получения видеопотока и управления PTZ... Теперь я хочу работать с SD card, локальное хранилище на камеру, но у меня нет информации об этом. Кто-нибудь может дать мне идею, как использовать Onvif library подключиться к SD card и получить записанные данные от этого.

Спасибо за вашу помощь.

3 ответа

Я не уверен, что это идеально подходит для ваших нужд, но я думаю, что это может вам помочь. Этот код можно использовать для подключения к IP-камере Onvif и для записи потока в формат MPEG4. С помощью этого кода файлы записи будут автоматически сохраняться на компьютере.

namespace Basic_CameraViewer
{
    public partial class MainWindow : Window
    {
        private VideoViewerWPF _videoViewerWpf;

        private BitmapSourceProvider _provider;

        private IIPCamera _ipCamera;

        private WebCamera _webCamera;

        private MediaConnector _connector;

        private MPEG4Recorder _recorder;

        private IVideoSender _videoSender;

        public MainWindow()
        {
            InitializeComponent();

            _connector = new MediaConnector();

            _provider = new BitmapSourceProvider();

            SetVideoViewer();
        }

        private void SetVideoViewer()
        {
            _videoViewerWpf = new VideoViewerWPF
            {
                HorizontalAlignment = HorizontalAlignment.Stretch,
                VerticalAlignment = VerticalAlignment.Stretch,
                Background = Brushes.Black
            };
            CameraBox.Children.Add(_videoViewerWpf);

            _videoViewerWpf.SetImageProvider(_provider);
        }

        private void ConnectIPCamera_Click(object sender, RoutedEventArgs e)
        {
            var host = HostTextBox.Text;
            var user = UserTextBox.Text;
            var pass = Password.Password;

            _ipCamera = IPCameraFactory.GetCamera(host, user, pass);
            if (_ipCamera == null) return;
            _connector.Connect(_ipCamera.VideoChannel, _provider);

            _videoSender = _ipCamera.VideoChannel;
            _ipCamera.Start();
            _videoViewerWpf.Start();
        }

        private void DisconnectIPCamera_Click(object sender, RoutedEventArgs e)
        {
            _videoViewerWpf.Stop();

            _ipCamera.Disconnect();
            _ipCamera.Dispose();

            _connector.Disconnect(_ipCamera.VideoChannel, _provider);
        }

        private void StartCapture_Click(object sender, RoutedEventArgs e)
        {

            if (_videoSender == null) return;
            var date = DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + "-" +
                        DateTime.Now.Hour + "-" + DateTime.Now.Minute + "-" + DateTime.Now.Second;

            var currentpath = AppDomain.CurrentDomain.BaseDirectory + date + ".mpeg4";

            _recorder = new MPEG4Recorder(currentpath);
            _recorder.MultiplexFinished += _recorder_MultiplexFinished;

            _connector.Connect(_videoSender, _recorder.VideoRecorder);
        }

        void _recorder_MultiplexFinished(object sender, Ozeki.VoIP.VoIPEventArgs<bool> e)
        {
            _recorder.MultiplexFinished -= _recorder_MultiplexFinished;
            _recorder.Dispose();
        }

        private void StopCapture_Click(object sender, RoutedEventArgs e)
        {
            if (_videoSender == null) return;
            _connector.Disconnect(_videoSender, _recorder.VideoRecorder);
            _recorder.Multiplex();
        }
    }
}

Здесь вы можете найти видео объяснение о том, как осуществить запись видео.

Вы должны иметь возможность копировать видео с SD-карты в сетевое хранилище, используя http://www.onvif.org/onvif/ver10/recording.wsdl и метод ExportRecordedData().

Отсюда: http://www.onvif.org/onvif/ver10/recording.wsdl

Вам нужно позвонить: GetRecordingJobs

Найти работу записи.

Отсюда: http://www.onvif.org/ver10/replay.wsdl

Вам нужно позвонить: GetReplayUri

Другие вопросы по тегам