
Cloudflare-მა გამოუშვა Streamline მორგებადი ვიდეო პაიპლაინებისთვის
Cloudflare-მა გამოუშვა Streamline, ღია კოდის სათამაშო მოედანი მორგებადი პაიპლაინების შესაქმნელად, რომლებიც ნაკადულ ან ჰოსტინგზე განთავსებულ ვიდეოს ცოცხალ ანოტაციებს, ჩაშენებულ სუბტიტრებსა და ფილტრებს ამატებს.
Streamline ხსნის Cloudflare-ის ვიდეოს მორგების შესაძლებლობებს
Cloudflare-მა Streamline გამოუშვა როგორც დეველოპერების სათამაშო მოედანი და ღია კოდის სისტემა მორგებული ვიდეო გამოცდილებების შესაქმნელად თავის Developer Platform-ზე. ის გვიჩვენებს, როგორ შეიძლება Workers-ის, Containers-ისა და Durable Objects-ის გაერთიანება მედია პროტოკოლებთან, რომ შეიცვალოს ვიდეო და შედეგი პირდაპირი ეთერის ან ახალი ჰოსტინგული ვიდეოს სახით გამოქვეყნდეს.
მაგალითები მოიცავს გამჭვირვალე ანოტაციის ფენებს, რომლებიც დამუშავების დროს შეიძლება შეიცვალონ, ჰოსტინგზე განთავსებულ ვიდეოში ჩაწერილ სუბტიტრებს, ფილტრებს, სურათი-სურათში რეჟიმს და ვებკამერებიდან ან ქარხნის კამერებიდან შემავალ სიგნალს. Cloudflare-მა ასევე ღია კოდად გამოუშვა მედია ძრავა და მაგალითური Worker-აპლიკაცია Astro ვებ-ფრონტენდით, ისევე როგორც საჯარო ჰოსტინგული სათამაშო მოედანი.
როგორ მუშაობს Streamline-ის არქიტექტურა
Streamline-ის განთავსებას ორი ძირითადი კომპონენტი აქვს. Media Engine მუშაობს Container-ში და ამუშავებს ყველა მედია შეყვანას, გამოყვანასა და დამუშავებას. მისი კონტროლერი Go-ზე დაწერილი HTTP სერვერია, მედიაზე მუშაობას კი FFmpeg პროცესორი ასრულებს. მიმდინარე პროცესორი შიდა იმპლემენტაციის დეტალია და არა მომხმარებლისკენ მიმართული API-ის ნაწილი.
მმართველი აპლიკაცია იყენებს Workers-ს და შეიძლება იყოს ბრაუზერის ინტერფეისი, აგენტი ან ჩაშენებული სისტემა. Durable Object-ი მართავს სესიებს, Container-ის სასიცოცხლო ციკლს და გადახედვის რელეს. ძრავას შეუძლია RTMPS-ის აღება ერთი Stream Live შეყვანიდან და მეორეში გამოქვეყნება, Cloudflare Stream-ის HLS manifest-ებისა და სეგმენტების მიღება, მოწოდებული ვიდეოს მიღება ან გადახედვის ფრაგმენტების WebSocket-რელეს მეშვეობით გაგზავნა. დამუშავება გრძელდება მაშინაც, თუ მმართველი Worker-ი გათიშდება. სესიის მაქსიმალური ხანგრძლივობა უზრუნველყოფს გამორთვას, აქტივობა კი განახლდება ამ ლიმიტის მიღწევამდე.
მედია პაიპლაინების კონფიგურაცია და გაშვება
სესიის API საშუალებას აძლევს აპლიკაციას შექმნას ან განაახლოს სესია, დაიწყოს პაიპლაინი JSON კონფიგურაციიდან, მიიღოს ვიდეოს ნაწილები, განაახლოს PNG ანოტაცია, მიიღოს მეტრიკები და შეაჩეროს დამუშავება. კონფიგურაციები განსაზღვრავენ შეყვანებს, ოპერაციებსა და გამოყვანებს. შეყვანა შეიძლება მოიცავდეს RTMP ტრანსლაციას, HLS-ზე განთავსებულ ვიდეოს ან ვებკამერის მედიას. გამოყვანისთვის შეიძლება გამოყენებულ იქნას RTMP ან WebSocket-ის მეშვეობით გადახედვის მიწოდება Durable Object-ის რელეს მეშვეობით.
ერთი მაგალითი პირდაპირ ეთერს უმატებს გამჭვირვალე სურათის ფენას და შეცვლილ შედეგს სხვა Stream Live შეყვანაზე აგზავნის. მეორე იღებს Cloudflare Stream-ის ვიდეოს, კითხულობს ჩაშენებულ დახურულ სუბტიტრებს, ასახავს მათ სურათზე და შედეგს RTMP-ით აგზავნის. Streamline ამჟამად მხარს უჭერს ფილტრის, გადაფარვის, სუბტიტრებისა და კოდირების ოპერაციებს. ძრავა მათ ფიქსირებული თანმიმდევრობით ახორციელებს, ამიტომ კონფიგურაციის მასივში ჩანაწერების რიგითობა შესრულებას არ ცვლის.
უსაფრთხოება, ლიმიტები და შესაძლო გაფართოებები
მფლობელის განთავსება კერძოა Workers Access-ის მეშვეობით. Worker-ი ამოწმებს Access სესიას, აქტიურ სესიას უკავშირებს გადამოწმებულ სუბიექტს და ერთდროულად მხოლოდ ერთ სესიას უშვებს. Stream Live Input-ის გასაღებები ინახება Worker-ის სეკრეტებში ან Durable Object-ის საცავში მხოლოდ ჩაწერის რეჟიმში გაზიარებულ გადაფარვებში და არ ბრუნდება პარამეტრების API-დან და არც ბრაუზერის საცავში თავსდება. აპლიკაციები მიმართავენ დასახელებულ შეყვანისა და გამოყვანის პროფილებს, რომლებსაც Worker-ი Container-თან დაკავშირებამდე წყვეტს.
გადახედვის გამოქვეყნება იყენებს Cloudflare Access-ის სერვისის ტოკენს კონტეინერის დატვირთვისთვის და შემთხვევით თითო-სესიის უნარს აქტიური რელესთვის. საჯარო სათამაშო მოედანი იყენებს ერთ კონტეინერის იდენტობას თითო გადამოწმებულ მომხმარებელზე, ერთ აქტიურ სესიას თითო მომხმარებელზე, გლობალურ დაშვების კონტროლს, კონკურენტულობისა და მედიის ლიმიტებს და ხელს უშლის ერთ მომხმარებელს მეორის სესიის ჩანაცვლებაში.
Streamline ამჟამად დამუშავებისთვის იყენებს Container-ის CPU-ს, რასაც Cloudflare ბოსტნეკად მიიჩნევს მაღალ ხარისხებზე ან კადრების სიხშირეზე. შესაძლო გაფართოებები მოიცავს კომპიუტერული ხედვის პაიპლაინებს, აპარატურულად აჩქარებულ დამუშავებას, WebRTC-ისა და MoQ-ის გამოცდილებებს და ვიდეოს ნატიურ კოდირებასა და დეკოდირებას Workers-ში.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.