ბრაუზერიდან კამერის მართვა WebRTC ტექნოლოგიით
თანამედროვე ვებ-ტექნოლოგიები საშუალებას იძლევა, რომ აპარატურულ კამერებთან კავშირი დამყარდეს პირდაპირ ბრაუზერიდან, ყოველგვარი გარე პლაგინებისა თუ დამატებითი პროგრამების ინსტალაციის გარეშე. "ვებ-კამერის ტესტი" ხელსაწყო იყენებს ბრაუზერის მედია ნაკადების (Media Streams) და შეზღუდვების (Constraints) API-ებს, რათა მოითხოვოს წვდომა ვიდეო მოწყობილობაზე და რეალურ დროში გამოსახოს მიღებული სიგნალი.
ტესტის გაშვებისას სისტემა ითხოვს მხოლოდ ვიდეო ნაკადს აუდიო სიგნალის გარეშე. ეს მიდგომა უზრუნველყოფს სწრაფ კავშირს და გამორიცხავს მიკროფონის შემთხვევით გააქტიურებას. მომხმარებელს შეუძლია მართოს კამერის ქცევა ინტერფეისში არსებული ღილაკებით:
- კამერის ჩართვა: იწყებს კამერის ნაკადს და ბრაუზერს სთხოვს შესაბამის ნებართვას.
- შეჩერება: თიშავს აქტიურ ნაკადს და სრულად ათავისუფლებს მოწყობილობას.
- სარკისებური გადაცემა: რთავს ან თიშავს პირდაპირი ვიდეო ნაკადის ჰორიზონტალურ სარკისებურ ასახვას.
უსაფრთხოების მიზნით, ხელსაწყო არასოდეს რთავს კამერას გვერდის ჩატვირთვისთანავე. მოწყობილობის გააქტიურება ხდება მხოლოდ მომხმარებლის მიერ ღილაკზე დაჭერის შემდეგ. გარდა ამისა, გვერდიდან ნავიგაციისას ან ჩანართის დახურვისას (pagehide მოვლენა), სისტემა ავტომატურად ათავისუფლებს ყველა აქტიურ მედია ტრეკს.
კამერის რეალური გაფართოება და მხარეთა თანაფარდობა
ვიდეო სიგნალის ხარისხის შეფასებისას უმნიშვნელოვანესია რეალური გაფართოების (Resolution) და მხარეთა თანაფარდობის (Aspect Ratio) განსაზღვრა. კამერის ჩართვის შემდეგ, განყოფილებაში კამერის დეტალები მომხმარებელი ხედავს შემდეგ მონაცემებს:
- სახელი: აქტიური კამერის დასახელება (თუ სახელი უცნობია ან დაბლოკილია, გამოჩნდება უსახელო კამერა).
- გაფართოება: მიმდინარე ვიდეო ტრეკის რეალური სიგანე და სიმაღლე პიქსელებში.
- მხარეთა თანაფარდობა: მიმდინარე სიგანისა და სიმაღლის გამარტივებული მათემატიკური პროპორცია (მაგალითად, 16:9 ან 4:3).
ხელსაწყოში ჩაშენებულია ფუნქცია გაფართოებების სკანირება, რომელიც ამოწმებს 11 სტანდარტულ რეზოლუციას. სკანირების პროცესი სათითაოდ მიმართავს exact შეზღუდვას თითოეულ რეჟიმზე, ამოწმებს კამერის პასუხს და მყისიერად თიშავს დროებით ტრეკს. ეს არის სტანდარტული რეჟიმების ტესტირება და არა აპარატურის ყველა შესაძლო პარამეტრის ამომწურავი ჩამონათვალი.
სკანირების დასრულების შემდეგ, განყოფილებაში მხარდაჭერილი გაფართოებები მომხმარებელი ხედავს სტატუსს: ‹count› / ‹total› გაფართოება ხელმისაწვდომია. თითოეული რეჟიმის გვერდით აისახება სტატუსი გამოყენებაშია ან მიუწვდომელია. მომხმარებელს შეუძლია სიაში არსებულ ნებისმიერ ხელმისაწვდომ გაფართოებაზე დაწკაპუნებით გადართოს პირდაპირი გადაცემა სასურველ რეჟიმზე.
კადრის სიხშირის (FPS) დინამიკა რეალურ დროში
კადრის სიხშირე (FPS) განსაზღვრავს ვიდეოს გლუვ მოძრაობას. "ვებ-კამერის ტესტი" აჩვენებს კადრის სიხშირეს ორი სხვადასხვა მეთოდით, რაც დამოკიდებულია ბრაუზერის მხარდაჭერაზე:
- ცოცხალი გაზომვა: ითვლება რეალურ დროში მცოცავი ფანჯრის პრინციპით ბრაუზერის API-ების მეშვეობით.
- კამერის მიერ მოწოდებული: აჩვენებს მნიშვნელობას, რომელსაც თავად ბრაუზერი აცხადებს მოწყობილობის პარამეტრებიდან გამომდინარე.
მნიშვნელოვანია გვახსოვდეს, რომ მწარმოებლის მიერ მითითებული ტექნიკური მახასიათებლები ხშირად განსხვავდება რეალური მუშაობისგან. კადრების სიხშირეზე და რეალურ გაფართოებაზე გავლენას ახდენს ოთახის განათება (დაბალი განათებისას კამერები ხშირად ზრდიან ექსპოზიციის დროს და ამცირებენ FPS-ს), USB პორტის გამტარუნარიანობა და ოპერაციული სისტემის დრაივერები.
კადრის დაფიქსირება და ლოკალური დამუშავება
ტესტირების პროცესში მომხმარებელს შეუძლია ვიდეო ნაკადიდან კონკრეტული კადრის შენახვა. ამისთვის გამოიყენება შემდეგი ფუნქციები:
- ფოტოს გადაღება: აფიქსირებს მიმდინარე კადრს პირდაპირი გადაცემიდან და გამოსახავს მას განყოფილებაში ფოტოს გადაღება (ალტერნატიული ტექსტით: კამერის გადახედვიდან გადაღებული კადრი).
- PNG გადმოწერა: საშუალებას იძლევა გადაღებული კადრი შეინახოს მომხმარებლის ლოკალურ მოწყობილობაზე PNG ფორმატში.
კონფიდენციალურობის დაცვის მიზნით, ყველა ოპერაცია სრულდება ექსკლუზიურად მომხმარებლის მოწყობილობაზე. ვიდეო ნაკადი, გაზომილი მონაცემები და გადაღებული ფოტოები არ იგზავნება სერვერზე, არ იწერება და არ ინახება გარე ბაზებში.
შეცდომების დიაგნოსტიკა და გადაჭრის გზები
კამერის გააქტიურებისას შესაძლოა წარმოიქმნას სხვადასხვა აპარატურული თუ პროგრამული შეცდომა. ხელსაწყო აანალიზებს ამ პრობლემებს და მომხმარებელს აწვდის ზუსტ შეტყობინებებს:
| პრობლემის აღწერა | ეკრანზე გამოსახული შეტყობინება |
|---|---|
| ბრაუზერს არ აქვს კამერასთან წვდომის მხარდაჭერა ან კავშირი არაა დაცული | ამ ბრაუზერს ან გვერდს კამერასთან წვდომა არ აქვს. გამოიყენეთ თანამედროვე ბრაუზერი და დაცული (HTTPS) კავშირი. |
| მომხმარებელმა დაბლოკა კამერის გამოყენების უფლება | კამერაზე წვდომა დაბლოკილია. ბრაუზერში მიეცით საიტს კამერის გამოყენების უფლება და თავიდან სცადეთ. |
| სისტემაში ფიზიკურად არ არის ნაპოვნი კამერა | კამერა ვერ მოიძებნა. შეაერთეთ ან ჩართეთ კამერა და სცადეთ თავიდან. |
| კამერას უკვე იყენებს სხვა პროგრამა ან ჩანართი | კამერა ვერ ჩაირთო — შესაძლოა მას სხვა აპლიკაცია იყენებს. დახურეთ ის აპლიკაცია და სცადეთ თავიდან. |
| ზოგადი შეცდომა კამერის გაშვებისას | კამერა ვერ ჩაირთო (‹error›). |
| კამერამ უარყო კონკრეტული გაფართოების რეჟიმი სკანირებისას | კამერამ უარყო ‹mode›; აღდგენილია წინა რეჟიმი. |
| კამერის კაბელის ფიზიკური გამორთვა მუშაობის დროს | აქტიური კამერა გაითიშა. |
ხშირად დასმული კითხვები
რატომ მჭირდება კამერაზე წვდომის მიცემა? ბრაუზერი კამერას მხოლოდ თქვენი თანხმობის შემდეგ უზიარებს საიტს, ხოლო ამ ნებართვის გაუქმება ნებისმიერ დროს შეგიძლიათ საიტის პარამეტრებიდან. ტესტი იყენებს წვდომას გადაცემის საჩვენებლად და კამერის რეჟიმების წასაკითხად; ტესტის შეჩერება კამერას მაშინვე ათავისუფლებს.
რატომ არ ჩანს ჩემი კამერის ტექნიკურ მახასიათებლებში მითითებული რომელიმე გაფართოება? სიაში ნაჩვენებია ის რეჟიმები, რასაც კამერა და ბრაუზერი რეალურად აწვდიან სისტემას ამ მომენტში და არა სარეკლამო მონაცემები. დრაივერებმა, USB გამტარუნარიანობამ და განათებამ შეიძლება შეცვალოს შეთავაზებული რეჟიმები, ზოგიერთი მათგანი კი მხოლოდ კონკრეტულ აპლიკაციებში ჩნდება.
რა ვქნა, თუ კამერას სხვა აპი იყენებს? კამერების უმეტესობას ერთდროულად მხოლოდ ერთი აპლიკაციის მომსახურება შეუძლია. დახურეთ ვიდეოზარის ან ჩაწერის აპები (მათ შორის სხვა ბრაუზერის ჩანართები) და თავიდან სცადეთ ტესტი. თუ პრობლემა განმეორდა, ხელახლა შეაერთეთ კამერა ან გადატვირთეთ ბრაუზერი.