Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/40: Рейтинг темы: голосов - 40, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 5

Aforge, запись видео с веб камеры

14.11.2019, 19:41. Показов 7628. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем, моя задача записать видео с веб камеры и тут возникла проблема, запись идёт, но когда открываю файл после завершения записи вижу это http://skrinshoter.ru/s/141119/Fr5tu0pc у видео нет тайм лайна а оно само состоит из 1 кадра. вот код
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AForge.Video;
using AForge.Video.DirectShow;
using AForge.Video.FFMPEG;
using AForge;
 
 
namespace AreWeGoing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        #region all fields
        private FilterInfoCollection VideoCaptureDevices;
 
        private VideoCaptureDevice FinalVideo = null;
        private VideoCaptureDeviceForm captureDevice;
        private Bitmap video;
        private VideoFileWriter FileWriter = new VideoFileWriter();
        private SaveFileDialog saveAvi;
        private DateTime? isdate;
        #endregion
        private void Form1_Load(object sender, EventArgs e)
        {
            VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            captureDevice = new VideoCaptureDeviceForm();
            DevicesList();
            if (captureDevice.ShowDialog(this) == DialogResult.OK)
            {
 
                VideoCaptureDevice videoSource = captureDevice.VideoDevice;
                FinalVideo = captureDevice.VideoDevice;
                FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
                FinalVideo.Start();
            }           
        }
 
        private void StartVideoButton_Click(object sender, EventArgs e)
        {           
            FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[DevicesBox.SelectedIndex].MonikerString);     
            FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
            FinalVideo.Start();
        }
 
        void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            video = (Bitmap)eventArgs.Frame.Clone();
            MainPicture.Image = (Bitmap)eventArgs.Frame.Clone();
        }
 
        private void RecButton_Click(object sender, EventArgs e)
        {
            saveAvi = new SaveFileDialog();
            saveAvi.Filter = "Avi Files (*.avi)|*.avi";
            if (saveAvi.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                int h = captureDevice.VideoDevice.VideoResolution.FrameSize.Height;
                int w = captureDevice.VideoDevice.VideoResolution.FrameSize.Width;
                FileWriter.Open(saveAvi.FileName, w, h, 25, VideoCodec.Default, 5000000);
                FileWriter.WriteVideoFrame(video);
            }       
            label1.Text = "now Recording";
        }
 
        private void StopRecButton_Click(object sender, EventArgs e)
        {                       
                FileWriter.Close();               
                MainPicture.Image = null;               
                this.FinalVideo.Stop();
                FileWriter.Close();               
                MainPicture.Image = null;            
            label1.Text = "";
        }
        private void DevicesList() //метод для вывод устройств в комбобокс
        {
            if (VideoCaptureDevices.Count > 0)                                                         
            {
                foreach (FilterInfo dev in VideoCaptureDevices)
                {
                    DevicesBox.Items.Add(dev.Name);
                }
                DevicesBox.SelectedIndex = 0;
                FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[DevicesBox.SelectedIndex].MonikerString);      
                FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
                FinalVideo.Start();
            }
        }
 
        private void StopVideoButton_Click(object sender, EventArgs e)
        {
            FinalVideo.Stop();
        }
 
        private void capturedevicebutton_Click(object sender, EventArgs e)
        {
            if (captureDevice.ShowDialog(this) == DialogResult.OK)
            {
 
                VideoCaptureDevice videoSource = captureDevice.VideoDevice;
                FinalVideo = captureDevice.VideoDevice;
                FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
                FinalVideo.Start();
            }
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (FinalVideo == null)
            { return; }
            if (FinalVideo.IsRunning)
            {
                this.FinalVideo.Stop();
                FileWriter.Close();           
            }
        }
    }
}
и скрин формы
http://skrinshoter.ru/s/141119/apC9nfIc
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2019, 19:41
Ответы с готовыми решениями:

Видео с веб камеры
Как получить видео с веб камеры в С# без сторонних библиотек типа Emgu?

Как сохранять видео с веб-камеры
Нужно сохранять видео с веб-камеры в MP4 формате. нужно в mp4 так как WMV формат не годится для проигрывания на веб-сайтах.

Трансляция видео потока с веб камеры и управление
Есть необходимость получения с веб камеры изображения и трансляция его на другой ПК, другой же ПК в свою очередь может посылать управляющие...

9
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
14.11.2019, 19:59
C#
1
FileWriter.WriteVideoFrame(video);
у вас должно быть в методе
C#
1
void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
1
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 5
14.11.2019, 20:19  [ТС]
Спасибо, помогло)
0
-1 / 0 / 0
Регистрация: 21.11.2020
Сообщений: 47
10.06.2022, 14:53
Господа.
У меня проблема с 12 строкой.
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0234 Тип или имя пространства имен "FFMPEG" не существует в пространстве имен "AForge.Video" (возможно, отсутствует ссылка на сборку). SaveVideo_WebCam_2 C:\Users\опт\Desktop\GIT\GranTelegram\Пр оект в VS\SaveVideo_WebCam_2\Form1.cs 18 Активные

Подскажите, пожалуйста, решение проблемы.

P.s. Все пакеты AForge и AForge.Video устанавливал через NuGet.
А AForge.Video.FFMPEG не находится.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
10.06.2022, 15:18
AForge когда-то объединился с Accord. Следовательно нужно использовать пакеты Accord. Но сам Accord на данный момент так же уже заброшен.

Есть пакет https://www.nuget.org/packages... eo.FFMPEG/, пробуйте его...

Но лучше поискать живые альтернативы...
1
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
05.07.2023, 15:55
Someone007, а какие в целом есть альтернативы , то были хорошие библиотеки , которые включали в себя сразу пакет нужных вещей , таких как работа с камерами , работа с видеофайлами , поиск обьектов , детектор движения , фильтры изображений , а сейчас получается нужно все это собирать самому из различных библиотек , скрещивать бульдога с носорогом. Может быть ML.NET , но он вроде больше сфокусирован на машинном обучении...
У меня просто сейчас есть поректик на AForge , в котором все выше перечисленное , вот теперь думаю чем этот aforge заменить , да и работа с directshow тоже в целом уже устарела.
0
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 70
03.10.2023, 19:14
Поддерживаю последний вопрос. Что сейчас актуально для захвата и обработки видео?
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
04.10.2023, 08:49
Цитата Сообщение от sau Посмотреть сообщение
да и работа с directshow тоже в целом уже устарела.
Да и ничего страшного. Рабочий инструмент и простой. Есть новая Media Foundation, но по сути частично как я понял это обертка под все тот же DD. Да и работает на универсальной платформе. Так себе удовольствие.

Когда ковырялся так и не получилось установить декодер кадра. Хотя никаких ошибок не было но и событие декодера не вызывалось. Но в DD все стабильно работает, даже можно свои фильтры написать.

Цитата Сообщение от KimiRaikonnen Посмотреть сообщение
Поддерживаю последний вопрос. Что сейчас актуально для захвата и обработки видео?
Смотря как именно обрабатывать. Вместо Accord всю жизнь была актуальна OpenCV.
1
 Аватар для Midian
605 / 387 / 198
Регистрация: 31.03.2013
Сообщений: 2,687
04.10.2023, 14:23
Цитата Сообщение от Worldmaster Посмотреть сообщение
Вместо Accord всю жизнь была актуальна OpenCV
А есть примеры как сделать из картинок .jpg видео к примеру .avi?

Добавлено через 54 секунды
Я сейчас просто столкнулся с проблемой, переехал с 4.8 на .net 7, а там этот Accord не поддерживается и теперь ищу замену чем можно делать видео из картинок
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
05.10.2023, 08:09
Цитата Сообщение от Midian Посмотреть сообщение
из картинок .jpg видео к примеру .avi?
Так обрабатывать видео надо или картинки в видео упаковывать?

Я вот пользовал это:

https://github.com/cisco/openh264/
https://github.com/secile/OpenH264Lib.NET
https://github.com/cisco/openh264/releases
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2023, 08:09
Помогаю со студенческими работами здесь

Запись видео с веб камеры
Добрый день! Есть некая программа, к которой с помощью библиотеки Aforge.net подключена веб камера. В интернете нашел способ выводить...

Захват изображения с веб камеры используя AForge
Ребят помогите сделать снимок с веб камеры, есть код для записи видео с веб камеры: using System; using System.Collections.Generic; ...

Захват видео изображения с веб-камеры
Возникли проблемы при создании массива в C#.В общем дело обстоит так: имеется захват видео изображения с веб-камеры,необходимо сделать,...

Захват видео с веб-камеры через интернет
Доброе время суток В общем-то проблема описана в теме, нужно скачать видео веб-камеры, или же обрабатывать онлайн. Например с этой...

Запись видео с веб камеры
Новичок в этом деле. Я даже не знаю в какую тему мой вопрос опубликовать. Сейчас набираю теорию для программы. Попытался погуглить,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru