VIDEOCAMERA LIVE

WebRTC და HLS: როგორ მიდის კამერის ვიდეო მაყურებლამდე

კამერა ვიდეოს RTSP-ით გასცემს, ბრაუზერი კი RTSP-ს ვერ კითხულობს. ამიტომ სერვერი ვიდეოს ბრაუზერისთვის გასაგებ ფორმატში აწვდის — WebRTC-ით ან HLS-ით. აქ ავხსნით, რით განსხვავდება ეს ორი გზა და რატომ ვიყენებთ ორივეს.

რატომ არ ჩანს RTSP ბრაუზერში პირდაპირ

RTSP სათვალთვალო სისტემების პროტოკოლია: მას კამერა, ჩამწერი და VLC იგებს, Chrome, Safari და Firefox კი — არა. თანაც კამერის პირდაპირ ინტერნეტში გამოჩენა საშიშია და ასობით მაყურებელს ის ვერც გაუძლებს. ამიტომ ჩვენი სერვერი კამერიდან ერთ RTSP ნაკადს იღებს და მაყურებლებს ბრაუზერისთვის გასაგებ ფორმატში ურიგებს. ასეთი ფორმატი ორია.

WebRTC — თითქმის რეალურ დროში

WebRTC ვიდეოზარებისთვის შეიქმნა — იგივე ტექნოლოგია მუშაობს Google Meet-ში. ვიდეო პატარა პაკეტებად, ძირითადად UDP-ით მიდის და ბრაუზერი მას მაშინვე აჩვენებს, დიდი ბუფერის დაგროვების გარეშე. შედეგად დაყოვნება ჩვეულებრივ წამზე ნაკლებია — ანუ კადრში ხედავთ იმას, რაც ახლა ხდება. ტრანსლაციის მისაღებად ჩვენი პლეერი სტანდარტულ WHEP პროტოკოლს იყენებს. WebRTC ყოველთვის დაშიფრულია.

სუსტი მხარე: WebRTC-ს ქსელში საკუთარი გზა სჭირდება. კორპორაციული ფაიერვოლი, სასტუმროს ან კაფეს Wi-Fi, ზოგი VPN UDP ტრაფიკს ბლოკავს და მაშინ კავშირი უბრალოდ ვერ მყარდება.

HLS — ყველგან გადის, ოღონდ აგვიანებს

HLS ვიდეოს პატარა ფაილებად ჭრის, რომლებსაც ბრაუზერი ჩვეულებრივი HTTPS-ით, ისევე როგორც სურათებს, ერთმანეთის მიყოლებით ტვირთავს. ამიტომ ის გადის ყველგან, სადაც ვებგვერდი იხსნება — ფაიერვოლი მას ჩვეულებრივ საიტისგან ვერ არჩევს. ფასი დაყოვნებაა: კლასიკური HLS ხშირად 10–30 წამით აგვიანებს, რადგან პლეერი რამდენიმე ფაილს წინასწარ აგროვებს. ჩვენ ვიყენებთ LL-HLS-ს (Low-Latency HLS), რომელიც ფაილებს უფრო წვრილ ნაწილებად აწვდის და დაყოვნებას რამდენიმე წამამდე ამცირებს.

შედარება

WebRTCLL-HLS
დაყოვნების რიგიწამზე ნაკლებირამდენიმე წამი
ტრანსპორტიძირითადად UDPHTTPS (ჩვეულებრივი ვებ ტრაფიკი)
კორპორაციული ფაიერვოლიშეიძლება დაიბლოკოსთითქმის ყოველთვის გადის
ბრაუზერებიყველა თანამედროვეყველა თანამედროვე; iPhone-ზე ჩაშენებული
როდის გამოიყენებაპირველ რიგში — როცა „ახლა“ მნიშვნელოვანიაროცა WebRTC ვერ დაუკავშირდა

ზუსტი დაყოვნება კამერაზე, ქსელზე და მაყურებლის მდებარეობაზე დამოკიდებული. ცხრილში სიდიდის რიგია და არა დაპირება.

რატომ ჯერ WebRTC და შემდეგ HLS

ჩვენი პლეერი ორივე გზას თავად ირჩევს. ჯერ WebRTC-ით ცდილობს, რადგან ეს საუკეთესო შედეგს იძლევა. თუ ქსელი WebRTC-ს არ უშვებს, პლეერი ავტომატურად გადადის LL-HLS-ზე. მაყურებელს არაფრის დაყენება და არჩევა არ სჭირდება — ის უბრალოდ ხედავს ვიდეოს, ოფისის ქსელიდანაც. ერთადერთი, რასაც შეიძლება შეამჩნიოს, ცოტა მეტი დაყოვნებაა.

  • ფერდობი, ზღვა, ქალაქის ხედი — რამდენიმე წამი არავის აწუხებს; მთავარია, რომ ვიდეო ყველასთან იხსნებოდეს.
  • მშენებლობა, ჭიშკარი, ღონისძიება — აქ „ახლა“ უფრო მნიშვნელოვანია, ამიტომ WebRTC-ის უპირატესობა ჩანს.

ტელეფონზე

ორივე გზა მუშაობს Android-სა და iPhone-ზე, Chrome-ში, Safari-ში, Firefox-სა და Edge-ში — აპლიკაციის გარეშე. მობილურ ინტერნეტში WebRTC ჩვეულებრივ მყარდება, თუმცა ზოგი ოპერატორის ქსელში ან VPN-ის ჩართვისას პლეერი HLS-ზე გადავა. iPhone-ზე ენერგიის დაზოგვის რეჟიმში ბრაუზერი ვიდეოს ავტომატურ ჩართვას შეიძლება ბლოკავდეს — მაშინ მაყურებელი დაკვრის ღილაკს ერთხელ დააჭერს.

რა გავლენა აქვს კამერის პარამეტრებს

  • I-კადრების ინტერვალი. ახალი მაყურებლის ვიდეო მომდევნო საკვანძო კადრიდან იწყება. 1–2 წამიანი ინტერვალი სწრაფ გაშვებას და მოკლე HLS ნაწილებს უზრუნველყოფს.
  • B-კადრები. H.264-ში B-კადრები ბრაუზერში, განსაკუთრებით WebRTC-ში, ვიდეოს ჩერდებას იწვევს. კამერაზე გამორთეთ.
  • H.265. ბრაუზერების დიდი ნაწილი მას ვერ აჩვენებს; ასეთ კამერას სერვერი ნახვისას H.264-ად გარდაქმნის. იხ. H.265 ბრაუზერში.

ყველა რეკომენდებული მნიშვნელობა ერთად: კამერის პარამეტრები ვებ ტრანსლაციისთვის.

რატომ აგვიანებს ვიდეო ზოგჯერ რამდენიმე წამით?

სავარაუდოდ, მაყურებლის ქსელმა WebRTC არ გაუშვა და პლეერი LL-HLS-ზე გადავიდა. ეს ხშირია ოფისის, სასტუმროს Wi-Fi-სა და VPN-ის დროს. ვიდეო მუშაობს, უბრალოდ ცოტა გვიან.

მაყურებელს რამე უნდა დააყენოს?

არა. პლეერი ჩვეულებრივ ბრაუზერში მუშაობს — კომპიუტერზეც და ტელეფონზეც — და გზას თავად ირჩევს.

მუშაობს iPhone-ზე?

დიახ, Safari-შიც და სხვა ბრაუზერებშიც. თუ ტელეფონი ენერგიის დაზოგვის რეჟიმშია, შეიძლება დაკვრის ღილაკზე ერთხელ შეხება დასჭირდეს.

უსაფრთხოა WebRTC?

დიახ, WebRTC ვიდეო ყოველთვის დაშიფრულია, HLS კი HTTPS-ით მიდის. ამასთან მაყურებელი მხოლოდ ჩვენს სერვერს უკავშირდება და კამერის მისამართს ვერ ხედავს.

გაუშვით კამერა საიტზე დღესვე

დარეგისტრირდით, დაამატეთ RTSP ბმული და მიიღეთ ჩასაშენებელი კოდი. გაქვთ კითხვა? დაგვირეკეთ — ქართულად გიპასუხებთ.