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

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

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


person vominhtien961476    schedule 20.03.2015    source источник
comment
У вас есть решение указанной проблемы?   -  person theburningfire    schedule 13.12.2019
comment
Мне очень жаль, что я остановился и в то время больше не исследовал.   -  person vominhtien961476    schedule 17.12.2019


Ответы (3)


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

Вам необходимо позвонить: GetRecordingJobs

Найдите работу для записи.

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

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

person ChrisWard1000    schedule 20.03.2015
comment
@ChirsWard: Да. Я уже читал их из спецификации Onvif. Итак, нужно ли мне внедрять веб-службу SOAP для моего приложения ?. Доступно ли это в библиотеке Onvif? Если это так, я просто добавляю ссылку и использую ее как сессионную dll, то есть Getprofile, GetProfileConfiguration ... - person vominhtien961476; 21.03.2015
comment
Я не уверен, что доступно в Onvif SDK, поскольку я никогда его не использовал. Вам нужно будет реализовать запись и воспроизведение веб-служб SOAP прямо или косвенно, чтобы сделать соответствующие вызовы. - person ChrisWard1000; 21.03.2015
comment
Это не будет загружать запись. Это будет воспроизводить его в реальном времени, а это означает, что если кто-то пытается получить 1 час записи, потребуется 1 час для его потоковой передачи и сохранения потока где-нибудь. Необходимый подход - загрузить отснятый материал, что должно быть возможно через http://www.onvif.org/ver10/recording/wsdl/ExportRecordedData. - person Matyas; 31.05.2018
comment
@Matyas Сэр, не могли бы вы рассказать мне, как реализовать ExportRecordngData, в настоящее время я застрял на нем. В моем случае мне нужно загрузить записи из локального хранилища камеры в папку на моем компьютере, я прочитал о профиле G onvif, но не могу понять, как вызвать метод. пожалуйста, не возражайте, я новичок в onvif. заранее спасибо. - person theburningfire; 12.12.2019
comment
@Matyas, пожалуйста, ответьте. - person theburningfire; 13.12.2019

Я не уверен, что это идеально подходит для ваших нужд, но я думаю, что это может вам помочь. Этот код можно использовать для подключения к 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();
        }
    }
}

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

person doityourself    schedule 16.04.2015

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

person Tiago Dias    schedule 15.10.2018