1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 2

Система видеонаблюдения своими руками - 2

Тема в разделе "Охрана дачных поселков. Безопасность", создана пользователем полтос, 18.02.22.

  1. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    Есть: XML очень, эээ, многословный, для передачи одного значения "2" нужна куча тегов, всё это парсится специальными парсерами, которые обрабатывают те или иные вхождения, и да, для поддержки чего-то в будущем туда поназапихивали кучу всего в самом начале проектирования.
    И всё это кстати здорово занимает память - ресурс конечно сейчас дешевый, но не бесконечный.

    А JSON парсится командой типа from_json (txt). И если завтра в работающий протокол приспичит воткнуть курс доллара на бирже в Найроби - вообще никаких проблем, просто добавить блок и всё. Кому надо поймет, кому не надо проигнорирует.

    Как бы есть сравнить удобство того и другого на практике.

    XML был очень популярен раньше, везде его пихали, от документов МС Офиса до протоколов связи с кардридерами. Сейчас - анахронизм.
     
  2. minvareg
    Регистрация:
    27.10.17
    Сообщения:
    120
    Благодарности:
    9

    minvareg

    Живу здесь

    minvareg

    Живу здесь

    Регистрация:
    27.10.17
    Сообщения:
    120
    Благодарности:
    9
    Да, презагружал. Вот начало беседы на эту тему https://www.forumhouse.ru/posts/33107083/. Благодаря форумчанинам все настроил и всё заработало. Несколько дней писалось в регистратор, потом перестало непонятно почему. 200% никто ничего не трогал за это время, только один раз роутер из сети вытаскивал на 5 минут. Но не думаю, что это как-то причем, камеру тоя вижу удаленно. Регистратор её потерял почему-то
     
  3. Chip_SET
    Регистрация:
    22.02.17
    Сообщения:
    1.488
    Благодарности:
    604

    Chip_SET

    Живу здесь

    Chip_SET

    Живу здесь

    Регистрация:
    22.02.17
    Сообщения:
    1.488
    Благодарности:
    604
    Адрес:
    МО
    Адрес тот же остался как я понял. Удалите камеру и добавьте заново. Попробуйте 80й порт, либо как вариант регистратор на 80й сам сбросил, перебейте на тот который был тогда.
     
  4. неформат
    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584

    неформат

    Живу здесь

    неформат

    Живу здесь

    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584
    Адрес:
    Санкт-Петербург
    Ну чуть больше буков, каждое значение (в самом простом случае) заключается в теги. Трафика в сети больше гонит. Ужас-ужас. На фоне передачи видео эта небольшая избыточность несущественна

    json проще по структуре, и однозначно маппится в понятную любому начинающему программисту систему объектов-массивов, "как слышится, так и пишется". XML наворочен, хотя в большинстве применений он все равно упрощается

    какие специальные парсеры, о чем это? :) Такой же парсер, как для парсинга json, разницы вообще нет.

    так это в протокол, в спецификацию, засунули кучу ненужных фич, кто ж заставляет их все реализовывать? Их и не реализуют. Место занимает только в PDF-файле описания.

    Так и XML парсится командой типа from_xml (txt). И точно так же, если завтра в работающий протокол приспичит воткнуть курс доллара на бирже в Найроби - вообще никаких проблем, просто добавить блок и всё. Кому надо поймет, кому не надо проигнорирует.

    Меня вообще мало волнует, что там ко мне прилетело в XML, кроме тех данных, которые мне нужны. А в одном из моих проектов бекенд, которому я засылаю данные в JSON, валится если там что-то неожиданное прилетело. Добавить что-то в протокол - ад какой-то. Не знаю, на чем там написано. У меня почему-то нет такой проблемы.

    Так это ж вопрос к практике. Она у всех разная. Я не буду про мартышку и очки, хотя там же тоже про практику, но вот если более приземленно: у несчастного скриптопрограммиста, у которого в его любимом фреймвоке нет нормальной поддержки XML запросто могут быть мучения. Но прошивки камер, и особенно реализации протоколов, пишут суровые люди на С/С+, и им вообще пофиг на формат данных - какой нужен, тот и напишут. Их там десяток может быть разных рядышком. json, xml, mime headers, sdp, двоичные форматы, не к ночи будут помянуты. Другой мир, другая квалификация, другой подход к разработке, и пофигизм в части форматов

    В документах XML'ю самое место, ибо как раз для них и разработан. Лучшее что сделали с офисом - это перешли на XML в документах.

    Я как-то писал нарезалку MP4 на javascript. Это не секс стоя в гамаке, это более сурово. Наверное надо было пострадать, что в MP4 не json :)
     
  5. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    Вы напишите его, для начала, впихнув например в ОЗУ какого-нибудь AVR, а потом рассуждайте о разнице и суровых дядях на С :)]
    Суровые дяди на ассемлере напишут, наверное, но это и другая квалификация и другая стоимость изделия.

    Кстати, развитие скриптовых языков потому и пошло, что на них проще, быстрее и дешевле писать, сопровождать и править баги, чем делать то же самое на ассемблере.
    Другое дело что все вокруг дураки, и только один суровый дядя умный...
     
  6. keysansa
    Регистрация:
    10.05.22
    Сообщения:
    526
    Благодарности:
    105

    keysansa

    Живу здесь

    keysansa

    Живу здесь

    Регистрация:
    10.05.22
    Сообщения:
    526
    Благодарности:
    105
    Библиотека SimlleXML для паскаля (без DOM моделей) - 27кБ на диске занимает. Создает, читает парсит все без проблем. На С/С+ не больше будет.
    А вот JSON - у которого формат данных зависит от разметки пробелами - то еще чудо...
     
  7. неформат
    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584

    неформат

    Живу здесь

    неформат

    Живу здесь

    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584
    Адрес:
    Санкт-Петербург
    У JSON не зависит, у YAML зависит

    Реальные размеры парсеров JSON и XML из одних рук (моих) под одно окружение (у JSON еще и в обратную сторону - в json-строку из внутренних данных программы, у XML только парсер):

    upload_2024-11-5_11-51-25.png

    чисто парсеры - 10кб JSON против 13кб XML

    там достаточно громоздкий код для работы с данными скриптоязыка, под которого эти модули. Без него такая же по функциями "библиотека" JSON под просто Си (с моей мелкой библиотечкой для универсальных объектов) занимает вообще 11кб вместо 15.
     
    Последнее редактирование: 05.11.24
  8. неформат
    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584

    неформат

    Живу здесь

    неформат

    Живу здесь

    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584
    Адрес:
    Санкт-Петербург
    В отличие от вас, я их писал. Почему очень хорошо понимаю ваши страдания.

    И при чем тут AVR? В камерах давно современные мощные процессоры с линухом и кучей памяти.

    Ассемблер - не про камеры и не про сетевые протоколы, а про мелкие устройства со слабыми микроконтроллерами и некропроекты, плюс мелкие куски работы с железом. Я последний раз видел реализацию сетевого протокола на ассемблере году в 96, в модеме :) Хотя еще не так давно видел вживую человека, который фигачил на ассеблере под AVR то, что можно спокойно писать на Си, объясняя это тем, что ему так удобней.

    Вы забыли, что кроме ассемблера и скриптоязыков есть еще и С/C+. И вот именно на них и пишут сетевой софт, поддержку протоколов типа ONVIF. А скриптоязыкам в проектах, типа видеокамеры (или софта работающего с камерами) место в формировании веб-страничек для UI и еще каких-то боковых кусках, в заменяемых модулях и т. д.

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

    Вот фрагмент настройки внешней камеры через ее веб-API из одного сетевого проекта, считываются разные ветки настроек у камеры, меняются отдельные параметры и засылаются назад. То, что в камере XML, видно только по названию переменной. Был бы JSON - код бы не отличался ничем

    upload_2024-11-5_12-19-49.png

    Не, дураки приходят на форум рассказать суровым дядям, которые 30 лет занимаются обсуждаемым вопросом, про проблемы мартышек и очков :) Оставьте сетевые протоколы тем, кто ими занимается. И сложности в работе с XML в сравнении с JSON - это сложности людей, живущих в рамках спущенных сверху фреймвоков, которые они ни улучшить не могут, ни заменить, если чуть-чуть отойти в сторону, нет никакой проблемы.
     
  9. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    Ну надо же, от пробелов :)]

    При том: возвращаясь к теме домашней автоматизации - например, разбираем mqtt-сообщение, которое в json-формате (даже не заморачиваясь с написанием с нуля, а взяв относительно громоздкую библиотеку)
    Код:
    {"DeviceInfo":{"CurrentData":{"Temperature":2}}}
    - эта задача решается без особых проблем, потому что в памяти помещается и код, и содержимое буфера с json, и результаты.
    Теперь попробуйте провернуть этот же финт с XML, в котором упомянутое значение "2" завернуто в теги типа
    Код:
    <DeviceInfo>
    <CurrentData>
      <Temperature>2</Temperature>
    </CurrentData>
    </DeviceInfo>
    Это если скромненько и кратенько, без дополнительных заголовков, как оно положено. Во сколько раз больше обьем в байтах? Причем абсолютно зря. А ресурс - дефицитный.
    Ну да, конечно, можно писать свой собственный XML, сократив всё до DI/CD/T или обмениваться бинарными данными (пока не налетаешь на LE/BE и прочие веселости) - но мы о стандартном, развернутом XML, как оно положено.

    Если взять более промышленный и с "много памяти!" - ну вот например ридер RFID, читающий метки на коробках на конвейре, ну такой, с несколькими антеннами и центральным блоком - знаете сколько мусора он шлет в сеть? Всё забито этими LLRP-XML, хотя всего-то надо передать список строк типа "232526123557453636-12-3".
    И зачем? Потому что на заре возникновения стандарта в моде был XML

    Суровый дядя настолько суров что даже не понял в чем проблема. Бывает.
    Ну вот похоже китайцы в своих железяках поняли...

    ЗЫ: много лет назад, примерно тогда когда мне тоже казалось XML-это круто, сейчас всё переведем в XML - от вебстраниц и документов до конфигов и протоколов! - умные люди говорили об этих проблемах, об избыточности, проблемах с обьемами данных, памяти и прочем, но кто слушает умных людей, правда же? Знакомо, очень знакомо, даже возражения такие же вижу ...
     
    Последнее редактирование: 05.11.24
  10. alexnik8
    Регистрация:
    28.10.17
    Сообщения:
    1.010
    Благодарности:
    433

    alexnik8

    Живу здесь

    alexnik8

    Живу здесь

    Регистрация:
    28.10.17
    Сообщения:
    1.010
    Благодарности:
    433
    А в сигнальном протоколе это займет от 6 до 9 байт (int или char тип значения, int значение, 1 байт crc). В зависимости от длины списка переменных типа. Вместо 49 байт за не особо нужную человекочитаемость.
     
  11. неформат
    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584

    неформат

    Живу здесь

    неформат

    Живу здесь

    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584
    Адрес:
    Санкт-Петербург
    Посмотрите название ветки и обсуждаемый протокол, и перестаньте придумывать проблему, которая в мире ONVIF не возникнет никогда в жизни. Просто напишите "сказал глупость, не подумал", это добавит вам очков. Видеонаблюдение не пишут на микроконтроллерах с килобайтом памяти.

    48 байт против 80 - это, конечно, охренительная проблема, при том, что в любой задаче где стоит вопрос об экономии трафика и ресурсов, но нужен XML, будет binaryXML, который даст и короче 48 байт, и парсится быстрее, чем JSON и XML. Но это лирика

    Не в видео. А там, где он дефицитный, и JSONу делать нечего

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

    Когда-то вы сидели в позиции идиота, считающего что XML - это круто. Теперь вы не поменяли подход, но поменяли мнение, и с тем же остервенением пихаете противоположную позицию. Что много лет назад, что сейчас, начните наконец слушать умных людей. Меня, например :)

    К реальности видеонаблюдения обе ваши позиции никаким местом, и форматов представления данных в одном проекте по видео пачка, никто не заморачивается, хорош XML или плох. ЧТо стандартизировали, то используем.
     
  12. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    типа SS7
     
  13. неформат
    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584

    неформат

    Живу здесь

    неформат

    Живу здесь

    Регистрация:
    29.09.21
    Сообщения:
    2.372
    Благодарности:
    584
    Адрес:
    Санкт-Петербург
    Остается понять, что в данном посте скрывается за словами "сигнальный протокол", так чтобы пост оставался верным после разъяснения :)
     
  14. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    Я просто говорю от том что XML - это НЕУДОБНО, и возможно поэтому китайцы на него начали забивать, могут себе позволить.
    Это неудобно составлять, это неудобно разбирать, и неудобно читать глазами.

    Вот вам по теме видео - если кому-то такое удобно - может повесить себе медаль на третью ложноножку:
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:ns1="http://www.w3.org/2005/05/xmlmime" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:ns7="http://docs.oasis-open.org/wsrf/r-2" xmlns:ns2="http://docs.oasis-open.org/wsrf/bf-2" xmlns:dndl="http://www.onvif.org/ver10/network/wsdl/DiscoveryLookupBinding" xmlns:dnrd="http://www.onvif.org/ver10/network/wsdl/RemoteDiscoveryBinding" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:dn="http://www.onvif.org/ver10/network/wsdl" xmlns:ns10="http://www.onvif.org/ver10/replay/wsdl" xmlns:ns11="http://www.onvif.org/ver10/search/wsdl" xmlns:ns13="http://www.onvif.org/ver20/analytics/wsdl/RuleEngineBinding" xmlns:ns14="http://www.onvif.org/ver20/analytics/wsdl/AnalyticsEngineBinding" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl" xmlns:ns15="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding" xmlns:ns16="http://www.onvif.org/ver10/events/wsdl/EventBinding" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:ns17="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding" xmlns:ns18="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding" xmlns:ns19="http://www.onvif.org/ver10/events/wsdl/NotificationConsumerBinding" xmlns:ns20="http://www.onvif.org/ver10/events/wsdl/PullPointBinding" xmlns:ns21="http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding" xmlns:ns22="http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:ns3="http://www.onvif.org/ver10/analyticsdevice/wsdl" xmlns:ns4="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:ns5="http://www.onvif.org/ver10/display/wsdl" xmlns:ns8="http://www.onvif.org/ver10/receiver/wsdl" xmlns:ns9="http://www.onvif.org/ver10/recording/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:tnsn="http://www.eventextension.com/2011/event/topics"><SOAP-ENV:Body><tds:GetCapabilitiesResponse><tds:Capabilities><tt:Analytics><tt:XAddr>http://X.X.X.X:8899/onvif/analytics_service</tt:XAddr><tt:RuleSupport>true</tt:RuleSupport><tt:AnalyticsModuleSupport>true</tt:AnalyticsModuleSupport></tt:Analytics><tt:Device><tt:XAddr>http://X.X.X.X:8899/onvif/device_service</tt:XAddr><tt:Network><tt:IPFilter>false</tt:IPFilter><tt:ZeroConfiguration>false</tt:ZeroConfiguration><tt:IPVersion6>false</tt:IPVersion6><tt:DynDNS>false</tt:DynDNS><tt:Extension><tt:Dot11Configuration>false</tt:Dot11Configuration></tt:Extension></tt:Network><tt:System><tt:DiscoveryResolve>false</tt:DiscoveryResolve><tt:DiscoveryBye>false</tt:DiscoveryBye><tt:RemoteDiscovery>false</tt:RemoteDiscovery><tt:SystemBackup>false</tt:SystemBackup><tt:SystemLogging>false</tt:SystemLogging><tt:FirmwareUpgrade>false</tt:FirmwareUpgrade><tt:SupportedVersions><tt:Major>2</tt:Major><tt:Minor>4</tt:Minor></tt:SupportedVersions><tt:Extension><tt:HttpFirmwareUpgrade>true</tt:HttpFirmwareUpgrade><tt:HttpSystemBackup>false</tt:HttpSystemBackup><tt:HttpSystemLogging>false</tt:HttpSystemLogging><tt:HttpSupportInformation>false</tt:HttpSupportInformation></tt:Extension></tt:System><tt:IO><tt:InputConnectors>0</tt:InputConnectors><tt:RelayOutputs>0</tt:RelayOutputs><tt:Extension><tt:Auxiliary>false</tt:Auxiliary><tt:AuxiliaryCommands>nothing</tt:AuxiliaryCommands><tt:Extension></tt:Extension></tt:Extension></tt:IO><tt:Security><tt:TLS1.1>false</tt:TLS1.1><tt:TLS1.2>false</tt:TLS1.2><tt:OnboardKeyGeneration>false</tt:OnboardKeyGeneration><tt:AccessPolicyConfig>false</tt:AccessPolicyConfig><tt:X.509Token>false</tt:X.509Token><tt:SAMLToken>false</tt:SAMLToken><tt:KerberosToken>false</tt:KerberosToken><tt:RELToken>false</tt:RELToken><tt:Extension><tt:TLS1.0>false</tt:TLS1.0><tt:Extension><tt:Dot1X>false</tt:Dot1X><tt:SupportedEAPMethod>0</tt:SupportedEAPMethod><tt:RemoteUserHandling>false</tt:RemoteUserHandling></tt:Extension></tt:Extension></tt:Security></tt:Device><tt:Events><tt:XAddr>http://X.X.X.X:8899/onvif/Events</tt:XAddr><tt:WSSubscriptionPolicySupport>true</tt:WSSubscriptionPolicySupport><tt:WSPullPointSupport>true</tt:WSPullPointSupport><tt:WSPausableSubscriptionManagerInterfaceSupport>false</tt:WSPausableSubscriptionManagerInterfaceSupport></tt:Events><tt:Imaging><tt:XAddr>http://X.X.X.X:8899/onvif/imaging</tt:XAddr></tt:Imaging><tt:Media><tt:XAddr>http://X.X.X.X:8899/onvif/Media</tt:XAddr><tt:StreamingCapabilities><tt:RTPMulticast>false</tt:RTPMulticast><tt:RTP_TCP>true</tt:RTP_TCP><tt:RTP_RTSP_TCP>true</tt:RTP_RTSP_TCP></tt:StreamingCapabilities><tt:Extension><tt:ProfileCapabilities><tt:MaximumNumberOfProfiles>2</tt:MaximumNumberOfProfiles></tt:ProfileCapabilities></tt:Extension></tt:Media><tt:PTZ><tt:XAddr>http://X.X.X.X:8899/onvif/PTZ</tt:XAddr></tt:PTZ><tt:Extension><tt:Extensions><tt:TelexCapabilities><tt:XAddr>http://X.X.X.X:8899/onvif/telecom_service</tt:XAddr><tt:MotionDetectorSupport>true</tt:MotionDetectorSupport><tt:TamperDetectorSupport>true</tt:TamperDetectorSupport></tt:TelexCapabilities></tt:Extensions></tt:Extension></tds:Capabilities></tds:GetCapabilitiesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

    Держите себя в руках :)]
     
  15. minvareg
    Регистрация:
    27.10.17
    Сообщения:
    120
    Благодарности:
    9

    minvareg

    Живу здесь

    minvareg

    Живу здесь

    Регистрация:
    27.10.17
    Сообщения:
    120
    Благодарности:
    9
    делал уже все сказанное :((
     
  16. Chip_SET
    Регистрация:
    22.02.17
    Сообщения:
    1.488
    Благодарности:
    604

    Chip_SET

    Живу здесь

    Chip_SET

    Живу здесь

    Регистрация:
    22.02.17
    Сообщения:
    1.488
    Благодарности:
    604
    Адрес:
    МО
    Добавляли вручную или через быстрое добавление? Заметил с камерами Тианди что их добавлять надо только руками. Поче му то при быстром добавлении видео не идет...