Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
1

Анализ видео с видеорегистратора

25.05.2015, 21:08. Показов 2565. Ответов 12
Метки нет (Все метки)

Добрый всем времени суток!
Стоит задача написать программку для анализа цветов на видео и при нахождении нужного подать какой-либо сигнал. Я смог подключиться к веб камере и получить с неё видео, обработать его и сделать все нужные мне манипуляции, AForge творит чудеса) Основная беда в том, что нужно получить это видео с камеры, которая подключена к видеорегистратору iTech pro 401s. Ума не приложу как к нему подлезть... Просмотреть видео с камер в браузере, предварительно залогиневшись там же, могу, и всё. Уже были мысли о том чтобы просто снимать скриншоты с этого браузера... но это не выход. Как быть, куда копать? Перерыл уже кучу информации, ничего стоящего я так и не нашёл.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2015, 21:08
Ответы с готовыми решениями:

Частотный анализ звука в avi видео
Уважаемые формучане, надеюсь на вашу помощь. Нужно произвести частотный анализ звукового потока...

Конвертирование видео для видеорегистратора
Всем привет! Хочу собрать самодельный проектор, используя в качестве основы матрицу от...

Как сделать захват видео с видеорегистратора
Всем привет. Имеется видеорегистратор, который делает захв видео и аудио сигнал, для просмотра...

Воспроизведение видео с видеорегистратора Novicam (D8), open на "избранных" ПК или как открыть *.h264
Начну сначала, попросили включить видео и дали флешку, на которой 2 папки: 1. Сам проигрыватель...

12
887 / 796 / 326
Регистрация: 03.02.2015
Сообщений: 5,116
Записей в блоге: 9
26.05.2015, 00:39 2
Если там IP камера, то можно VLC библиотеки можно использовать, позволяют работать по RTSP. (На официальном сайте VLC)
1
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
26.05.2015, 07:17  [ТС] 3
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Если там IP камера, то можно VLC библиотеки можно использовать, позволяют работать по RTSP. (На официальном сайте VLC)
Подключены обычные аналоговые камеры, модель и марку вспомнить не смогу.
0
887 / 796 / 326
Регистрация: 03.02.2015
Сообщений: 5,116
Записей в блоге: 9
26.05.2015, 08:51 4
Цитата Сообщение от nick2 Посмотреть сообщение
Подключены обычные аналоговые камеры, модель и марку вспомнить не смогу.
Ну а они через IP сервер подключены?
1
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
26.05.2015, 10:11  [ТС] 5
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Ну а они через IP сервер подключены?
Нет. Камеры, аналоговые, подключены напрямую к видеорегистратору. Видеорегистратор подключен к сети через хаб. Через браузер я могу выйти на веб интерфейс видео регистратора. Это с одним регистратором.

Сейчас появилась возможность взять другой видеорегистратор, к нему через VLC по RTSP я подключился. Попробую пока с этим поработать, покапаю информацию, да попробую к нему через свою программку подключиться.
0
887 / 796 / 326
Регистрация: 03.02.2015
Сообщений: 5,116
Записей в блоге: 9
26.05.2015, 10:20 6
Цитата Сообщение от nick2 Посмотреть сообщение
Нет. Камеры, аналоговые, подключены напрямую к видеорегистратору. Видеорегистратор подключен к сети через хаб. Через браузер я могу выйти на веб интерфейс видео регистратора. Это с одним регистратором.
Тогда все нормально там VLC библиотеки позволяют получать отдельные кадры.

вот кусочек из моего проекта:
C#
1
2
3
4
5
6
7
// Сразу включаем воспроизведение
            string path = textBox_IP_RTSP.Text;
            Vlc.DotNet.Core.Medias.LocationMedia media = new Vlc.DotNet.Core.Medias.LocationMedia(path);
            vlcControl_RTSP.Media = media;
 
            if(vlcControl_RTSP.IsPlaying == false)
                vlcControl_RTSP.Play();
path - это строка подключения ее можно в докоментации посмотреть или под отладчиком в WEB интерфейсе поискать. Но в вашем случаи это та строка которую вы используете когда через VLC плеер подключаетесь.
0
887 / 796 / 326
Регистрация: 03.02.2015
Сообщений: 5,116
Записей в блоге: 9
26.05.2015, 10:26 7
Вот помоему они, может уже устарели правда. Вы на официальном сайте глянте.
0
Вложения
Тип файла: 7z VideoLan DotNet for WinForm, WPF, SL5 - 2014.04.18_VS_2013.7z (77.5 Кб, 19 просмотров)
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
26.05.2015, 14:15  [ТС] 8
Хорошо, подключиться я смогу, хоть и сейчас проблемы какие-то появляются...

Как можно данный поток с библиотеками Aforge совместить? В них можно анализировать JPEG и MJPEG потоки, про RTSP ничего не нашёл. Алгоритм сжатия видео h.264.
0
887 / 796 / 326
Регистрация: 03.02.2015
Сообщений: 5,116
Записей в блоге: 9
26.05.2015, 14:36 9
Цитата Сообщение от nick2 Посмотреть сообщение
Как можно данный поток с библиотеками Aforge совместить? В них можно анализировать JPEG и MJPEG потоки, про RTSP ничего не нашёл.
Точно не скажу. Могу предположить что необходимо найти метод в VLC либах который позволяет выдернуть один кадр и его уже методами aforge обрабатывать. Типа этого:
C#
1
2
string tmp_str_data = System.DateTime.Now.ToString().Replace('.', '_').Replace(' ', '_').Replace(':', '_');
vlcControl_RTSP.TakeSnapshot("FOTO\\" + tmp_str_data + ".jpeg", 1920, 1080);

Ну или как выриант можно сохранять видео "кусочками" в файл и затем его также aforgem обрабатывать.


Еще к стати може у вас поддерживается MJPG - тогда можно только aforgem работать.


Вот как я aforgem пробывал записывать видео
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
        AForge.Video.VFW.AVIWriter writer;                  // Для записи в файл
        private int W_live_video;                           // Разрашение для записи видео
        private int H_live_video;                           // Разрашение для записи видео
 
 
 
// запись видео MJPG в файл
        private void panel_rec_on_MouseClick(object sender, MouseEventArgs e)
        {
            if (!rec)
            {
                if (W_live_video <= 0 || H_live_video <= 0)
                {
                    rec = false;
                    panel_rec.BackgroundImage = imageList_47x26.Images[1];
                    MessageBox.Show(lng.msg_l_video_2, lng.str_l_message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
 
                // Создадим директорию и активируем средства записи видео (MJPG)
                System.IO.Directory.CreateDirectory("VIDEO\\");
                string tmp_str_data = System.DateTime.Now.ToString().Replace('.', '_').Replace(' ', '_').Replace(':', '_');
 
 
                panel_rec.BackgroundImage = imageList_47x26.Images[4];
                writer = new AForge.Video.VFW.AVIWriter("DIB ");
                writer.FrameRate = 7;
                writer.Open("VIDEO\\" + tmp_str_data + ".avi", W_live_video, H_live_video);
                rec = true;
            }
            else
            {
                rec = false;
                panel_rec.BackgroundImage = imageList_47x26.Images[1];
                writer.Close();
            }
        }
Добавлено через 6 минут
Вот я тут что то пробывал писать год назад. Работает - это 100%.
Только по моему в aforge уже есть классы позволяющиис MJPG работать.
Еще могу порекомендовать посмотреть в сторону ffmpg (по моему так). Но я что то там тяму не дал.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace all_shmel.BL
{
    public interface ILiveVideo
    {
        bool live_video_ON { get; set; }
        string str_IP_patch { get; set; }
        string IP_login { get; set; }
        string IP_pass { get; set; }
        int Net_conect();
        int LiveVideo_get();
        bool cam_ping();
       
        System.Drawing.Image Getframe();
 
    }
 
    public class LiveVideo : ILiveVideo
    {
        #region переменные
 
        public bool live_video_ON { get; set; }             // Разрешение для тарансляции MJPEG
        public string str_IP_patch { get; set; }            // URL IP камеры
        public string IP_login { get; set; }                // Логин для авторизации IP камеры
        public string IP_pass { get; set; }                 // Пароль для авторизации IP камеры
 
        //AForge.Video.VFW.AVIWriter writer;                // Для записи в файл
 
        private System.Net.WebRequest reqwest;              // Для регистрации и получения кадра с IP камеры
        private System.Net.HttpWebResponse response;        // Для регистрации и получения кадра с IP камеры
        public System.Drawing.Image img_fram;               // Oдин кадр 
        public System.Drawing.Image Getframe()
        {
            return img_fram;
        }
 
        #endregion
 
        #region методы
 
        // Пронюхиваем состояния подключений
        public int Net_conect()
        {
                // флаг
                live_video_ON = false;
 
                // имеющиеся под-я
                System.Net.NetworkInformation.NetworkInterface[] Net_names = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
 
                // Если нет сетевых подключений то return
                if (Net_names == null || Net_names.Length < 1)
                {                    
                    return -1;
                }
 
                // Получаем перечислитель и перебираем массив с сетевыми ин-ми. Сразу пингуем      
                System.Collections.IEnumerator Net_ENUM = Net_names.GetEnumerator();
                while (Net_ENUM.MoveNext())
                {
                    // Если WiFi
                    if (((System.Net.NetworkInformation.NetworkInterface)(Net_ENUM.Current)).NetworkInterfaceType == System.Net.NetworkInformation.NetworkInterfaceType.Wireless80211)
                    {
                        live_video_ON = cam_ping();
                        return 1;
                    }
                    // Если Ethernet
                    else if (((System.Net.NetworkInformation.NetworkInterface)(Net_ENUM.Current)).NetworkInterfaceType == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet)
                    {
                        live_video_ON = cam_ping();
                        return 2;
                    }
                    else
 
                    // Если если другой
                    {
                        live_video_ON = cam_ping();
                        return 3;
                    }
                }
                return -2;
        }
 
        // Пинг 
        public bool cam_ping()
        {
 
            if (str_IP_patch != null || str_IP_patch != "")
            { 
                try
                {
                    System.Net.NetworkInformation.Ping ping_Sender = new System.Net.NetworkInformation.Ping();
                    System.Net.NetworkInformation.PingReply reply = ping_Sender.Send(str_cam_IP_adress(str_IP_patch));
                    if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
                    {
                        live_video_ON = true;
                        return true;
                    }
                    else
                    { 
                        live_video_ON = false;
                        return false;
                    }
                }
                catch (System.Exception)
                {
                    live_video_ON = false;
                    return false;
                }
            }
            return false;
        }
 
        // Вытаскиваем IP адресс для пинга
        private string str_cam_IP_adress(string str_patch_IP_cam)
        {
            if(str_patch_IP_cam.Length < 7)
                return "1.1.1.1";
 
            string result = "";
 
            for (int i = 7; i < 21; i++)
            {
                if (str_patch_IP_cam[i] != '/')
                    result = result + str_patch_IP_cam[i];
                else
                    return result;
            }
            return "1.1.1.1";
        }
 
        // Для видео (выполним в отдельном потоке)
        public int LiveVideo_get()
        {
            if (live_video_ON)
            {
                try
                {
                    reqwest = System.Net.WebRequest.Create(str_IP_patch);
                    reqwest.Credentials = new System.Net.NetworkCredential(IP_login, IP_pass);
                    response = (System.Net.HttpWebResponse)reqwest.GetResponse();
                    System.IO.Stream str = response.GetResponseStream();
                    img_fram = System.Drawing.Image.FromStream(str);
                    str.Close();
                    //if (get_frame != null) get_frame(this, EventArgs.Empty);
                }
                catch (System.Exception)
                {
                    return -1;
                }               
            }
            return 1;
        }
 
        #endregion
    }
 
}
Я просмотрел там код не красивый немного )))) . Так что не ругайте сильно. Ща я бы чуть по другому написал.
0
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
26.05.2015, 14:48  [ТС] 10
Sanya_sa, Реализация MJPEG с Aforge есть, веб камеры из интернета работаю отлично, моя же ссылка не работает, не работает как раз таки из-за того что у меня видео сжато h.264.
0
887 / 796 / 326
Регистрация: 03.02.2015
Сообщений: 5,116
Записей в блоге: 9
26.05.2015, 14:51 11
Цитата Сообщение от nick2 Посмотреть сообщение
Реализация MJPEG с Aforge есть, веб камеры из интернета работаю отлично, моя же ссылка не работает, не работает как раз таки из-за того что у меня видео сжато h.264.
Вы в доках на свой регистратор поищите может там строка для получения MJPEG будет. Или в настройка полазийте. На счет h.264 не подскажу.
0
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
26.05.2015, 15:13  [ТС] 12
Sanya_sa, изучил инструкцию, в нём только H.264, других больше нет.
0
7 / 7 / 2
Регистрация: 04.01.2011
Сообщений: 39
28.05.2015, 20:32  [ТС] 13
Сделал я плеер rtsp потока с видео h.264, прям как раз под свои нужды функционал добавил, но вот сейчас остался самый важный элемент, определение цвета, либо применение каких-либо фильтров к видео, дабы выделить определенный цвет на кадрах. Воспроизводится через проигрыватель из библиотеки vlc. Aforge не понимаю как прицепить...

Есть проектик который mjpeg поток по rtsp анализирует, а потом его aforge обрабатывает, делает всё достаточно шустро, но он же работает со своим плеером, да и не понимает он мой поток. Выдергивать кадры из моего видео и подсовывать их Aforge не подходит, aforge фото обрабатывает с небольшой задержкой, из-за этого от потока остается слайдшоу. В принципе и слайдшоу можно использовать, но я пока ищу другие варианты. Подскажите кто-нибудь, куда копать? Может кого есть наработки по анализу видео, буду очень признателен.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2015, 20:32

анализ цифрового видео
подскажите плиз скрипт сравнения изображений существует кое как а как с методами сравнения видео?...

Анализ изображений, звука и видео
Здравствуйте! У меня возник вопрос: возможно ли с помощью Delphi (и не только) анализировать...

Анализ видео с камеры с распознаванием объектов
#WM_CAP_START = #WM_USER #WM_CAP_SET_CALLBACK_ERROR = #WM_CAP_START + 2 ...

Выбор видеорегистратора
Здравствуйте. Хочу купить видеорегистратор в машину с двумя камерами, чтоб задняя камера тоже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.