Results 1 to 13 of 13

Thread: Ekrānšāviņi no Dahua IP kameras.

  1. #1

    Default Ekrānšāviņi no Dahua IP kameras.

    Sveiciens.
    Vajag ik pēc noteikta laika (teiksim,ik pa stundai,darba laikā)iegūt ekrānšāviņu no vienas konkrētas kameras.Ražotājs Dahua.Iebūvēto iespēju nokonfigurēju uz w10 defaulto ftp serveri.It kā jau viss notiek,bet kaut kā tizli.Nav kāds trešās puses softs kas ko tādu mācētu kulturāli izdarīt?

  2. #2
    Pieredzējis lietpratējs DJWoX's Avatar
    Join Date
    12-09-06
    Posts
    4,238
    Rep Power
    396

    Default

    tieši kas tizli? man lieks oks veids ka uz FTP sūtās. labāk neka uz epastu :>
    Tio/Teo

  3. #3

    Default

    Nu,pats FTP jau ir OK.problēma tāda,kamera sūtot ik pa stundai (mans definētais laiks),ekrānšāviņu ,,iepako,, katru attēlu atsevišķā mapē,un piešķir kaut kādu grūti saprotamu nosaukumu.Gribētos kaut kā pārskatamāk to visu.Pēc tam tās bildes visas būs jāsašķiro gada vai vairāk laika periodā.
    Mērķis?Kameras redzamības laukā ir jaunceļama ražošanas objekta būvlaukums.Doma ir pēc tam no tiem attēliem izveidot slaidšovu.(šī nav mana ideja,to vēlas objekta saimnieks.)
    Ienāca prātā tāda doma,ja jau ir trešās puses softi kas māk lietot IP kameru video,varbūt ir arī kāds softs kas māk lietot un taisīt ekrānšāviņus?

  4. #4

    Default

    Ja mērķis tikai tāds kā minēji, tad imho tur nav ko baigi iespringt uz citu risinājumu.

    Kad būs pagājis tas gads, ieiesi mapē, kurā būs visas tās entās bildes kaut tūkstots apakšmapēs un ar pilnīgi jebkādiem nosaukumiem - pēc searcha atradīsi visus *jpg (vai kādi tev tur viņi būs) failus, izkopēsi vienā atsevišķā mapē, sakārtosi pēc data created un visus reneimosi pēc kaut kāda cita principa.
    Voila! Finālā ir viena mape ar visām bildēm hronoloģiskā secībā, ko var kabināt iekš video/slaidshowa/whatnot.

  5. #5

    Default

    Nu ja nav citu variantu,nu tad jau arī kaut kas tāds būs jādara(bija arī plāns kā tādi darīt.).Doma gan bija tāda ka varbūt ir kāds zināms softs kas jau pie izveides visu māk smuki sakārtot.Teiksim visas konkrētās dienas bildes, mapē ar datumu,un attēla nosaukumā datums/laiks.
    Bet,nu ja jau nav,nu tad neko.Iztiksim ar to kas ir.

  6. #6
    Pieredzējis lietpratējs usver's Avatar
    Join Date
    03-06-09
    Posts
    1,476
    Rep Power
    288

    Default

    Visas bildes uz windows lokālā datora atrodas.

    Es kā programmētājs pie vajadzības uztaisītu skriptu, kurš izskraida pa visām dīvainajām mapēm (pēc regex "dīvainā nosaukuma"), nolasa "date/time created" un iekopē mapē "/final/25-10-2022/25-10-2022_10-00.jpg". Palaist pēc vajadzības reizi gadā vai reizi stundā, atkarībā no vajadzības.

    Update:
    Uz Mac failus smuki nolisto šāds Python 3.5+ skripts:
    Code:
    import glob
    import os
    import time
    
    def format_stamp(fmt, stamp):
         return time.strftime(fmt, time.localtime(stamp))
    
    root_dir = "/Users/user/Desktop/"
    for filename in glob.iglob(root_dir + '**/*.pdf', recursive=True):
         time_created = os.path.getctime(filename)
    
         txt_date_created = format_stamp("%d_%m_%Y", time_created)
         txt_time_created = format_stamp("%H:%M", time_created)
         print(f"[{txt_date_created} :: {txt_time_created}]filename: {filename}")
    Code:
    [30_06_2022 :: 13:40]filename: /Users/user/Desktop/Books/Book_A_Architecture_and_General_Rqmts_v2_6_Final_20160422011856105.pdf
    [22_12_2021 :: 18:53]filename: /Users/user/Desktop/Books/white-paper-16-metrics-every-mobile-team-should-monitor.pdf
    [22_12_2021 :: 11:23]filename: /Users/user/Desktop/Books/C-2_Kernel_2_V2.6_final-for_EMVCo_20160923093817522 (1).pdf
    [22_12_2021 :: 11:22]filename: /Users/user/Desktop/Books/EMV_v4.3_Book_3_Application_Specification_20120607062110791.pdf
    [22_12_2021 :: 11:23]filename: /Users/user/Desktop/Books/mchip-payment-system-public-keys-12042018.pdf
    [22_12_2021 :: 11:22]filename: /Users/user/Desktop/Books/BookB_Entry_Point_Specification_v2_6_20160809023257319.pdf
    [22_12_2021 :: 11:22]filename: /Users/user/Desktop/Offtopic/qbook1.pdf
    Tādam pieliktu klāt mapju uztaisīšanu (ja nav), failu iekopēšanu atbilstošā datuma mapē.
    Un ieliktu šedulerī laisties reizi dienā vai neregulāri palaistu ar roku.

    Man nav windows, bet ja autoram nav slinkums uzlikt Python 3.5+ un patestēt uz sava datora ar piemēra folderiem, tad tas ir reāls risinājums, ko pēc tam produkcijā ielikt un vajadzīgo funkcionalitāti nodrošināt.
    Last edited by usver; 10-25-22 at 11:36. Reason: code sample

  7. #7

    Default

    Ar powershell uz windows to būs daudz vieglāk izdarīt:

    Code:
    Get-ChildItem -Path "C:\folderis" -Recurse -File | Sort-Object -Property LastWriteTime -Descending |Select-Object -First 1

  8. #8

    Default

    nu,jā.Programmētajiem jau savādāk.Tas labi,bet laikam jau pie šitā es nepiespringšu.Nav mans.

  9. #9
    Bannned Kuuminsh's Avatar
    Join Date
    09-01-06
    Posts
    12,615
    Blog Entries
    1
    Rep Power
    577

    Default

    Tak ir visādi softi, kas monitorē folderi un ļauj veikt kaut kādas automatizētas darbības.
    Softu ir baigā jūra, jautājums tikai vai esi gatavs maksāt vai tomēr veltīt laiku bezmaksas risinājuma meklējumiem.
    Только массовые расстрелы програмистоф спасут Родину!

  10. #10
    Pieredzējis lietpratējs DJWoX's Avatar
    Join Date
    12-09-06
    Posts
    4,238
    Rep Power
    396

    Default

    mhm Microsoft powershell šajā gadijumā butu atbilde.
    Tio/Teo

  11. #11
    Pieredzējis lietpratējs usver's Avatar
    Join Date
    03-06-09
    Posts
    1,476
    Rep Power
    288

    Default

    redz kur pilnībā strādājošs risinājums:

    Code:
    import glob
    import os
    import time
    import shutil
    from pathlib import Path
    
    def format_stamp(fmt, stamp):
         return time.strftime(fmt, time.localtime(stamp))
    
    root_dir = "/Users/user/Desktop/"           # source folder
    sorted_dir = "/Users/user/Desktop/archive/" # sorted folder
    for filename in glob.iglob(root_dir + '**/*.pdf', recursive=True):
         time_created = os.path.getctime(filename) # raw timestamp
    
         txt_date_created = format_stamp("%Y%m%d", time_created)
         txt_time_created = format_stamp("%H%M", time_created)
         extension = Path(filename).suffix
         
         # ensure folder created
         target_dir = os.path.normpath(sorted_dir+os.sep+txt_date_created)
         Path(target_dir).mkdir(parents=True, exist_ok=True) # make folder if not exists
         # copy file to target folder
         try:
              shutil.copy2(filename, target_dir + os.sep + txt_time_created + extension)
         except shutil.SameFileError:
              print("File already exists, skipping..")
         print(f"[{txt_date_created}{os.sep}{txt_time_created}{extension}] created from [{filename}]")
    Es darītu tā, ka uzinstalētu Python no https://www.python.org/downloads/ , saglabātu šo failu kā "backup.py" , norādītu pareizos folderus un paplašinājumus (šobrīd PDF meklē) un izpildītu ar Python (dubultklikšķis). Ja viss labi strādā - ieliktu šedulerī.
    Pirms padsmit gadiem esmu taisījis utilītu, kas monitorē folderi un momentā pārkopē, bet nu tas ir overkills.
    Powershell arī tieši šo pašu var uztaisīt - gan ar WMI, gan šādu brutālu folderu apstaigāšanu, un tam nevajadzētu instalēt papildus runtime. Cits jautājums, vai kāds rakstīs.

    rezultātā uztaisās folderi ar attiecīgās dienas failiem iekšā:
    Code:
    .
    ├── 20210625
    │   └── 2254.pdf
    ├── 20210715
    │   └── 1811.pdf
    ├── 20210716
    │   └── 2137.pdf
    ├── 20210831
    │   └── 0923.pdf
    ..
    ├── 20221004
    │   └── 1927.pdf
    └── 20221025
        ├── 1857.pdf
        ├── 1858.pdf
        ├── 1859.pdf
        ├── 1900.pdf
        └── 1901.pdf

  12. #12
    Pieredzējis lietpratējs KPIEBC's Avatar
    Join Date
    17-12-08
    Posts
    1,551
    Rep Power
    298

    Default

    Quote Originally Posted by usver View Post
    redz kur pilnībā strādājošs risinājums:

    Code:
    import glob
    import os
    import time
    import shutil
    from pathlib import Path
    
    def format_stamp(fmt, stamp):
         return time.strftime(fmt, time.localtime(stamp))
    
    root_dir = "/Users/user/Desktop/"           # source folder
    sorted_dir = "/Users/user/Desktop/archive/" # sorted folder
    for filename in glob.iglob(root_dir + '**/*.pdf', recursive=True):
         time_created = os.path.getctime(filename) # raw timestamp
    
         txt_date_created = format_stamp("%Y%m%d", time_created)
         txt_time_created = format_stamp("%H%M", time_created)
         extension = Path(filename).suffix
         
         # ensure folder created
         target_dir = os.path.normpath(sorted_dir+os.sep+txt_date_created)
         Path(target_dir).mkdir(parents=True, exist_ok=True) # make folder if not exists
         # copy file to target folder
         try:
              shutil.copy2(filename, target_dir + os.sep + txt_time_created + extension)
         except shutil.SameFileError:
              print("File already exists, skipping..")
         print(f"[{txt_date_created}{os.sep}{txt_time_created}{extension}] created from [{filename}]")
    Es darītu tā, ka uzinstalētu Python no https://www.python.org/downloads/ , saglabātu šo failu kā "backup.py" , norādītu pareizos folderus un paplašinājumus (šobrīd PDF meklē) un izpildītu ar Python (dubultklikšķis). Ja viss labi strādā - ieliktu šedulerī.
    Pirms padsmit gadiem esmu taisījis utilītu, kas monitorē folderi un momentā pārkopē, bet nu tas ir overkills.
    Powershell arī tieši šo pašu var uztaisīt - gan ar WMI, gan šādu brutālu folderu apstaigāšanu, un tam nevajadzētu instalēt papildus runtime. Cits jautājums, vai kāds rakstīs.

    rezultātā uztaisās folderi ar attiecīgās dienas failiem iekšā:
    Code:
    .
    ├── 20210625
    │   └── 2254.pdf
    ├── 20210715
    │   └── 1811.pdf
    ├── 20210716
    │   └── 2137.pdf
    ├── 20210831
    │   └── 0923.pdf
    ..
    ├── 20221004
    │   └── 1927.pdf
    └── 20221025
        ├── 1857.pdf
        ├── 1858.pdf
        ├── 1859.pdf
        ├── 1900.pdf
        └── 1901.pdf
    Uz import glob izmet erroru

    P.S.
    Ļoti atvainojos, ne tur rakstīju.
    Last edited by KPIEBC; 10-27-22 at 08:32. Reason: Līki pirksti

  13. #13
    Pieredzējis lietpratējs usver's Avatar
    Join Date
    03-06-09
    Posts
    1,476
    Rep Power
    288

    Default

    Es liktu uz vecu Python versiju. Tiešām 3.5+?
    Pēc tava reporta paņēmu bērnu datoru, uzliku svaigāko Python (3.11.0) un mēģināju reproducēt.
    Viss perfekti aizgāja, norādot reālas folderu adreses un meklējot JPG nevis PDF. Forši, ka uz Mac uzrakstīts skripts tieši tāpat darbojas arī uz Windows.

    root_dir = "c:/Users/37126/" # source folder
    sorted_dir = "c:/Users/37126/Desktop/archive/" # sorted folder
    rezultāts:
    ─archive
    ├───20141125
    ..
    ├───20220128
    ├───20221016
    └───20221024
    Last edited by usver; 10-26-22 at 21:03.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •