PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Софт для видеозахвата (http://pccar.ru/forumdisplay.php?f=102)
-   -   CamWorker - многокамерная регистрация (http://pccar.ru/showthread.php?t=16241)

Narkom 31.01.2012 23:03

А просто сразу запускается "исправление ошибки" и мгновенно исчезает.

Likn 01.02.2012 09:58

Конфигурацию можно узнать? Интересует наличие ЖПС и тип камер.
Скорее всего, проблема в конфигурации. Чуть позже поправлю потенциально опасные места программы.

Narkom 02.02.2012 14:32

ноут Acer 5520G, жпс есть подключена usb антена ,камера Microsoft LifeCam HD-3000

Narkom 02.02.2012 20:37

Цитата:

Сообщение от Likn (Сообщение 209602)
Конфигурацию можно узнать? Интересует наличие ЖПС и тип камер.
Скорее всего, проблема в конфигурации. Чуть позже поправлю потенциально опасные места программы.

проц. AMD Turion 64 TL-58, SDRAM DDR2 -4000mb, Видеокарта NVIDIA GeForce 8400M G, HDD-160Gb, камера Microsoft LifeCam HD-3000

Likn 03.02.2012 01:02

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

Narkom 03.02.2012 11:20

Да нет ни каких претензий, просто для инфы сбросил, тоже думаю как ее заставить работать.
А в ХР работает шикарно.

Kesha 04.02.2012 15:15

Попробовал.
Пишет хорошо.
После длительного использования CarDVR
и myDVR
решил перейти на CamWorker...

Только как её во фронт-енд встраивать - имени у окошка нету...
Ткните, хотя-бы, где в исходниках искать,
плашку затемнить и шрифт увеличить - нашел, а где заголовок формы прописывается ?

Hamster 04.02.2012 15:26

Цитата:

Сообщение от Kesha (Сообщение 209919)
Только как её во фронт-енд встраивать - имени у окошка нету...

Это как это в винде и окошко без имени? :)
Я использую для получения имени окна утилитку Window Spy из Autohotkey.

Kesha 04.02.2012 17:20

Цитата:

Сообщение от Hamster (Сообщение 209921)
Это как это в винде и окошко без имени? :)
Я использую для получения имени окна утилитку Window Spy из Autohotkey.

:dntknw:

Window Spy вообще никак в логе не отражает присутствие искомого окна
А вот выдача AHK :

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<

ahk_class WindowsForms10.Window.8.app.0.378734a

>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen: 543, 355 (less often used)
In Active Window: 543, 355

>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN: WindowsForms10.Window.8.app.0.378734a1
Text:
Color: 0xC8D0D4 (Blue=C8 Green=D0 Red=D4)

>>>>>>>>>>( Active Window Position )<<<<<<<<<<
left: 0 top: 0 width: 1024 height: 768

>>>>>>>>>>>( Status Bar Text )<<<<<<<<<<

>>>>>>>>>>>( Visible Window Text )<<<<<<<<<<<
Камера 1
Микшер

>>>>>>>>>>>( Hidden Window Text )<<<<<<<<<<<
Камера 3
Камера 2

>>>>( TitleMatchMode=slow Visible Text )<<<<

>>>>( TitleMatchMode=slow Hidden Text )<<<<

Либо туплю, либо не проснулся, либо... ?

Hamster 04.02.2012 18:02

Цитата:

Сообщение от Kesha (Сообщение 209929)
:dntknw:

Window Spy вообще никак в логе не отражает присутствие искомого окна

Я к сожалению не знаю как выглядит CamWorker (у меня windows7, не пашет на ней), но для того чтобы Spy показал инфу про окно нужно на этом окне кликнуть мышой.

А вообще попробуй название окна "WindowsForms10.Window.8.app.0.378734a"

Likn 04.02.2012 18:47

Сегодня ближе к ночи выложу поправленную версию. Выловил пару косяков с настройками + чуточку переделал интерфейс окна настроек.
Главное окно есть, конечно. Просто дело в том, что есть некоторые заморочки с DirectDraw, ему подавай абсолютные координаты экрана, иначе картинка будет резаться. Я пошел по пути наименьшего сопротивления - убрал заголовок и края окна. Это также связано с тем, что у меня программа работает, как плагин к самодельному фронт-енду. Попытаюсь сделать возможность управлять окном + возможность сворачиваться.

Все, выложил. Прошу поучаствовать в проекте, жду критику по интерфейсу и качеству алгоритмов. Если у кого будут предложения по оптимизации - с удовольствием выслушаю.
Если будут желающие протестировать под семеркой, то напишите, специально для этого сделаю отладочную версию, которая позволит выявить точное место возникновения ошибки.

Kesha 04.02.2012 23:41

Цитата:

Сообщение от Hamster (Сообщение 209930)
А вообще попробуй название окна "WindowsForms10.Window.8.app.0.378734a"

Первым делом попробовал :)

Но, спасибо разработчику за оперативность, теперь у окна есть полноценное имя.
Немного "откастомайзил" под себя, чтобы плашка была меньше по высоте и инфа в одну строку.
Ночью - тестдрайв, завтра, наверное, в машину :)

Да, заметил, в настройках при выборе камеры её доступные режимы/разрешения не сразу вываливаются в список, надо перещелкнуться на соседнюю вкладку и вернуться...

Likn 05.02.2012 00:37

Кстати, про одну строку - это хорошая мысль. Надо бы это автоматизировать.
Настройки камеры косячат и в новой версии?

Dens-v 05.02.2012 09:40

Цитата:

Если будут желающие протестировать под семеркой, то напишите, специально для этого сделаю отладочную версию, которая позволит выявить точное место возникновения ошибки.
Разве текущую версию нельзя использовать?На ноуте работает, сегодня перейду в машине на неё.

Narkom 05.02.2012 10:58

Цитата:

Описание:
Stopped working

Сигнатура проблемы:
Имя события проблемы: CLR20r3
Сигнатура проблемы 01: camworker.exe
Сигнатура проблемы 02: 1.0.0.0
Сигнатура проблемы 03: 4f2d6cf7
Сигнатура проблемы 04: CamWorker
Сигнатура проблемы 05: 1.0.0.0
Сигнатура проблемы 06: 4f2d6cf7
Сигнатура проблемы 07: d6
Сигнатура проблемы 08: 5f
Сигнатура проблемы 09: System.BadImageFormatException
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
вот где я делаю не так?
мой конфиг
Цитата:

[CamWorker]
Codec=xvid
FrameRate=20
Quality=-1
Output=-1
SavePath=D:\VIDEO\
ClipDuration=10
TotalClipSize=4161
Moniker1=@device:pnp:\\?\usb#vid_5986&pid_0241#5&816fc11&0&4#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
Moniker1Res=640X480X30
Moniker1Pos=0;0
Moniker1Use=1
Moniker3=
Moniker3Res=
Moniker3Pos=
Moniker3Use=0
Moniker2=
Moniker2Res=
Moniker2Pos=
Moniker2Use=0
UseGPS=1
ShowFrames=1
ShowQueue=1
ShowRec=1
ShowSpeed=1
MemoryUsePersent=40
AutoStartWrite=0
WriteAudio=1
AudioDevice=Realtek HD Audio Input
AudioFreq=22050
AutoHidePanel=0
AutoHidePanelC=10
Port=COM1
Speed=4800
ArchivePath=
StdWindow=1
StdWindowParams=100;100;755;480


Likn 05.02.2012 11:58

В какой момент появляется ошибка? При старте программы, или при старте записи?

Kesha 05.02.2012 21:24

Цитата:

Сообщение от Likn (Сообщение 209968)
Кстати, про одну строку - это хорошая мысль. Надо бы это автоматизировать.
Настройки камеры косячат и в новой версии?

Да.

На домашнем ПК параллельно с его обычным использованием CamWorker нормально отработал полный день, единственное - файлики периодически делает меньше установленной длины.

На ПК в машине вообще не запустился, - окна не появляется, в диспетчере задач проскакивает и сразу пропадает. Сообщения об ошибке нет, в xp-шных логах тоже пусто.

Пока грешу на то, что система предельно облегченная, без дотнет-ов, vc redistributable и т.п. - драйвера, да FFDShow...

Likn 06.02.2012 00:39

А насколько отклонение в длине происходит? Есть мысль - если прога не успевает писать, то она закрывает файл и открывает новый с другой частотой кадров. В остальных случаях такого быть не должно. В принципе, если пропуска кадров на стыках нет, то не считается)).
Программа дотнетовская, так что ей нужна полная версия дотнета, хотя бы 2.0.

Narkom 06.02.2012 09:50

Цитата:

Сообщение от Likn (Сообщение 210002)
В какой момент появляется ошибка? При старте программы, или при старте записи?

при старте программы

Kesha 06.02.2012 21:11

Цитата:

Сообщение от Likn (Сообщение 210088)
Есть мысль - если прога не успевает писать, то она закрывает файл и открывает новый с другой частотой кадров.

Похоже, что так, машинка слабенькая...
Цитата:

Сообщение от Likn (Сообщение 210088)
Программа дотнетовская, так что ей нужна полная версия дотнета, хотя бы 2.0.

Поставил 2.0. Без изменений. Поймал саму ошибку - появляется при попытке старта записи:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: Failed opening the specified file.
at AForge.Video.VFW.AVIWriter.Open(String fileName, Int32 width, Int32 height, Int32 asamples)
at CamWorker.VideoWorker.CreateAVI()
at CamWorker.CamWorker.button2_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
CamWorker
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/CamWorker/CamWorker.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
MainProg.Controls
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/CamWorker/MainProg.Controls.DLL
----------------------------------------
Microsoft.DirectX.DirectDraw
Assembly Version: 1.0.2902.0
Win32 Version: 5.04.00.2904
CodeBase: file:///D:/CamWorker/Microsoft.DirectX.DirectDraw.DLL
----------------------------------------
Microsoft.DirectX.DirectSound
Assembly Version: 1.0.2902.0
Win32 Version: 5.04.00.2904
CodeBase: file:///D:/CamWorker/Microsoft.DirectX.DirectSound.DLL
----------------------------------------
Microsoft.DirectX
Assembly Version: 1.0.2902.0
Win32 Version: 5.04.00.2904
CodeBase: file:///D:/CamWorker/Microsoft.DirectX.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:





When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

....................................
Папка, куда указано писать, есть, другой софт в неё пишет нормально...

Likn 06.02.2012 22:49

Ага. Это уже хорошо. Мысль такая - либо кодек не переваривается, либо че-то действительно с путем сохранения. Предлагаю в конфиге руками указать левую директорию, чтобы ее гарантировано ее не было. В этом случае программа создаст в своей директории папку Records и будет писать туда. С кодеками сложнее - я проверял только несколько распространенных, например divx, xvid.

Narkom. Про проблему помню. Остаются какие-нить следы ошибок? В системных событиях там, или еще где? Обычно такой незапуск происходит, когда каких-то компонентов не хватает.

Kesha 06.02.2012 23:32

Цитата:

Сообщение от Likn (Сообщение 210178)
либо че-то действительно с путем сохранения.

Именно так и оказалось - региональные настройки XP были английские, где разделителем день-месяц-год является не ".", а "/".

Что софтом воспринимается, как путь по вложенным папкам...

То есть, чтобы исключить данную проблему, 419-я строчка в VideoWorker.cs, я так понимаю,
должна теперь выглядеть так - string s = avipath + cdt.Replace("/", "_").Replace(".", "_").Replace(":", "_") + ".avi";

:)
Ушел спать, тест на всю ночь № 2 запущен...

Likn 07.02.2012 00:03

Сделаю по-другому - надо с культурами разобраться. Я как-то не учел англоязычную систему.

Likn 08.02.2012 23:22

Kesha, что ночное тестирование показало?

Обновил программу. Вычищена куча мелких косяков, в том числе те, о которых сообщали. Добавил возможность настройки GPS порта. Листовые контролы вроде больше не косячат.
Теперь можно убить конфиг, и программа должна успешно запуститься и создать настройки по-умолчанию.

Kesha 09.02.2012 01:14

Цитата:

Сообщение от Likn (Сообщение 210456)
Kesha, что ночное тестирование показало?

С безымянной веб-камерой отпахало отлично,
с установленной в машине Logitech c270 выпадает при включении записи звука. Демонтировать камеру и тащить домой, разбираться пока некогда было...

Likn 09.02.2012 08:57

Странно, у самого в машине стоит с310, с него отлично пишется звук. Вообще, думаю, надо делать снятие звука через директшоу. Полагаю, нужно будет всего-лишь граф захвата достроить. То, что есть щас - конечно, костыль.

ciclop 09.02.2012 17:33

Заметил на своей машинке одну весч. При записи со звуком начинает подтормаживать на записи видео (у меня довольно слабый комп - Атом 230) При том когда пишу просто видео без звука то все в норме и картинка плавная и все остальное в норме. В связи с этим есть пожелание - сделать на панели кнопку включения выключения записи звука (чтоб не лазить в настройки программы а запускать одним кликом) К примеру пока я еду мне вовсе не обязательно слышать на записи какая у меня в машине играет музыка. Но стоит меня остановить представителю власти я бы очень хотел чтоб наш диалог записывался на видео. Это реально сделать или слишким жирное пожелание?

Likn 09.02.2012 18:27

Хм... Придется подождать - для стабильности нужно перевести звук на директшоу. На выходных попробую сделать.

Dens-v 13.02.2012 14:44

Цитата:

сли будут желающие протестировать под семеркой, то напишите, специально для этого сделаю отладочную версию, которая позволит выявить точное место возникновения ошибки.
Можно мне отладочную?

Likn 13.02.2012 15:03

Вечером выложу.
Коллеги, возникла проблема с переводом захвата звука на директшоу. Звук захватывается, но настроить формат не получается. Уперто присылаются данные 44100/16/2 два раза в секунду. Подсунул в AMMediaType сслыку на waveformatex и размер, задал Guid, вообще ничего не идет. Куда копать?

UPD. Проблема частично решена. Вроде все работает, но такое ощущение, что на звук не хватает ресурсов - он периодически подергивается, где-то 1 раз в 2-5 сек. Думаю, проблема решится формированием дополнительной очереди в 1 сек для видео и звука. Скорее всего, проблема именно в том, что буферизации звука, как таковой, не было.

Про отладочную версию помню, но щас проект в полурабочем состоянии, нужно сначала назад все собрать.

Likn 15.02.2012 16:56

Доделал нормальную работу с микрофоном. Прошу протестировать, особенно это касается многокамерного режима.

Likn 16.02.2012 23:11

Обновил первый пост. Текущую версию считаю стабильной, т.к. для себя дорабатывать пока больше не буду. Пожелания принимаются.

Хотелось бы получить статистику запускаемости проги на семерках. Отладочный комплект лежит в архиве с проектом - это pdb файл. В случае косяка он позволит получить стек ошибки и номер строки. Что делать с "молчаливым" способом аварийного завершения дотнет-приложений на семерке - не знаю, видимо, где-то что-то надо настроить.

_Вячеслав 18.02.2012 13:42

Вложений: 1
Не запускается на домашнем с подключеной камерой(без неё запускается)...и хотелось бы пару слов про установку программы и кратенько руководство пользования для далёких...

Likn 18.02.2012 17:26

Поковырялся в интернетах на тему этой ошибки - ничего внятного, утверждается, что что-то не так с самой .NET. Может быть, я проверял на 3х компах с ХР, везде запускается.
Что касается установки - она проводится простым копированием содержимого архива Build_x.x.x в нужное место. Далее, по идее, проблем быть не должно. Надо бы сделать описалово, как-нить соберусь.

Нашел нехороший баг - прогу нельзя сворачивать, иначе directdraw-устройство теряется со всеми вытекающими последствиями, причем оно теряется еще до того, как программа получает сообщение о сворачивании. Чтобы это победить, надо вспоминать, как восстанавливать устройство.

Kesha 19.02.2012 19:11

Добился более-менее ровной работы - поставил родные логитековские дрова на камеру (с виндовыми поток притормаживал раз в 7-10 сек) и выкинул ffdshow, заменив на PicVideo MJPEG.
Сворачивание окна тоже словил, но грешил на свои косяки. В принципе, не критично, пока буду пользоваться "как есть".
Да и голова уже другим занята - как подружить самосборное NR FM Radio, отлично работавшее с самописной програмкой через LPT, c последовательным портом...Чёт не получается :)

_Вячеслав 20.02.2012 12:32

Цитата:

Сообщение от Likn (Сообщение 211514)
...Что касается установки - она проводится простым копированием содержимого архива Build_x.x.x в нужное место....

а для чего тогда архив "CamWorker_1.1.2.rar"?...
Я в каталог CamWorker_1.1.2 скопировал папку Build с заменой файлов,полагая,что в ней новая версия программы...

Likn 20.02.2012 13:00

Вроде же все указал в первом сообщении:
Цитата:

в архивах находятся исполняемые файлы (Build_1.1.2.rar) и полностью проект (CamWorker_1.1.2.rar).

Kesha 21.02.2012 13:20

Покатался...
Всё равно не ровно -работает - то час, то 5 минут и молча падает...
Обидно, пока самое юзабельное, что пробовал...

Likn 21.02.2012 15:04

Хм... совсем молча падает? У меня даже зацепки нет, куда копать. По-хорошему, надо бы напихать блоков try {...}catch{...} в основные места, но это значительно снизит производительность. Если только для отладки. Если сегодня найду часик, сделаю. Хоть узнаем, где приблизительно падает.
Плохо, что народ в основном молчит - статистики нет.

Likn 21.02.2012 20:22

Вложений: 1
Итак, отладочная версия. Ничем не отличается от нормальной, кроме того, что указано постом выше. Во всех случаях просьба выкладывать содержимое файла Debug.txt, который создается в папке с программой.

UPD. Ура. Проблема, кажись, побеждена. Дело было в звуке, если точнее - в порядке очередности записи буферов в очереди. Видео записывалось чуть-чуть раньше, буквально строчкой выше. Этого копеечного времени иногда хватало, чтобы пишущий поток успел увидеть готовый фрейм и начать вытаскивать вместе со звуком до того, как звук окончательно приготовится. В результате попытка снятия с пустой очереди и вылет.


Часовой пояс GMT +4, время: 09:00.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot