Ang logo ng isang FAST channel โ ang maliit na marka sa sulok โ ay ang nag-iisang biswal na konstante sa bawat programa, bawat ad break, bawat slate na ipinapalabas ng channel. Kailangan itong magmukhang propesyonal sa bawat antas ng kalidad na maaaring matanggap ng isang manonood. Ang simpleng paraan โ ang pag-upload ng isang master image at hayaan ang AWS MediaLive na i-scale ito bawat rendition โ ay gumagawa ng matalas na logo sa 1080p at kapansin-pansing malabo sa 360p. Problema iyon sa brand para sa bawat manonood na wala sa broadband. Narito kung paano namin sinukat ang logo sa eksaktong pixel grid ng bawat rendition.
Mabilis na Pangkalahatang-ideya
| Aspekto | Detalye |
|---|---|
| Domain | Channel-logo (DOG) overlay on FAST channels |
| Mechanism | Per-output StaticImageOutputActivate per rendition (1080p, 720p, 480p, 360p) |
| Asset generation | Python script using Lanczos resampling |
| Oras ng Pag-activate | 1.5s after each program's input switch |
| Status | 1ร per-rendition stack in production |
Ang Problema sa Negosyo
Ang isang FAST channel ay hindi naghahatid ng iisang antas ng kalidad. Ini-encode ng MediaLive ang parehong channel sa maraming rendition โ 1080p, 720p, 480p, 360p โ at pinipili ng player ng bawat manonood ang pinakamahusay na kayang suportahan ng kanilang koneksyon. Ang mga manonood sa mobile gamit ang cellular data ay nanonood sa 360p; ang mga manonood ng smart-TV sa broadband ay nakakakuha ng 1080p. Pare-pareho silang tumitingin sa parehong marka ng brand, at inaasahan nilang magmukha itong propesyonal. Kapag matalas ang logo sa 1080p at kapansin-pansing malabo sa 360p, hindi pare-pareho ang brand โ hindi isang maliit na detalye sa isang 24/7 na channel kung saan ang logo ang nag-iisang elemento na mas madalas makita ng mga manonood kaysa sa anumang solong programa.
Kung Saan Aktuwal na Inilalapat ang mga Overlay
Sa isang multi-rendition encoder pipeline, ang isang overlay ay maaaring ilapat sa dalawang lugar:
Bago ang per-rendition scaler, kung saan ang isang master image ay pinagsama sa source at ang buong bagay ay ibinababa ang sukat bawat output โ ito ang ginagawa ng MediaLive sa isang global StaticImageActivate action
pagkatapos ng scaler, kung saan ang bawat output ay nakakakuha ng sarili nitong overlay na inilapat kapag ang canvas ay nasa huling sukat na. Maliit ang pagkakaiba sa API. Sa biswal, hindi. Anumang pinagsama bago ang scaler ay namamana ang bawat artifact na ipinakikilala ng scaler, at sa 360p, agresibo ang scaler.

Bakit Nabibigo ang mga Maliwanag na Pagkumpuni
"Mag-upload ng isang master at hayaan itong i-scale ng MediaLive." Ang global action ay pinagsasama ang master bago tumakbo ang per-output scaler. Ang isang malaking master na ibinaba ang sukat sa isang 64ร21px na logo para sa 360p ay humigit-kumulang 40x na pagbawas โ kahit ang Lanczos resampling ay nawawalan ng pinong detalye sa ratio na iyon, at ang resulta ay dumadaan sa parehong compression chain tulad ng mismong video.
"Gumamit ng mas malaking master." Ginagawa nitong mas malaki ang downscale ratio, hindi mas maliit โ lumalala ang artifact, hindi bumubuti.
"Laktawan ang logo sa mga SD output." Kailangan ng compliance at brand requirements ang marka sa bawat rendition. Hindi ito opsyon.
"I-burn ang logo sa source video sa oras ng encode." Nawawala ang bawat operational lever โ walang pagbabago ng logo bawat campaign o bawat rehiyon, at walang update nang hindi muling ini-encode ang buong library.
"Gumamit ng global overlay na may manual coordinates per resolution." Kinakalkula ng global action ang posisyon laban sa isang nakapirming 1920ร1080 na reference, kaya ang mga source video na mas makitid kaysa doon ay gumagawa ng off-canvas coordinates โ ang logo ay lumalayo sa sulok o nape-crop.
Ang aktwal na solusyon ay ang ganap na paglampas sa overlay scaling ng MediaLive: sukatin ang logo sa canvas ng bawat rendition mismo, bago pa man ito hawakan ng encoder.
Ang Solusyon
Ang logo ng bawat rendition ay pre-rendered sa eksaktong pixel dimensions nito at nakaimbak bilang isang hiwalay na PNG. Sa bawat hangganan ng programa, ang isang Lambda orchestrator ay naglalabas ng apat na StaticImageOutputActivate actions โ isa bawat rendition โ bawat isa ay tumuturo sa PNG na nakasukat na para sa partikular na output na iyon. Ang MediaLive ay walang ginagawang scaling sa overlay.
GLOBAL (simpleng paraan) PER-OUTPUT (kung ano ang aming ipinapadala)
master.png โโโบ composite onto master.png โโโบ Lanczos resize (offline)
source canvas into 4 exact-size PNGs
โ โ
โผ โผ
per-rendition scaler per-rendition scaler
(ini-scale din ang (hindi hinahawakan ang overlay โ
overlay โ malabong logo pinagsasama pagkatapos, sa
sa mga SD output) eksaktong sukat ng pixel)Ang isang Python script ay bumubuo ng apat na sukat na PNG mula sa isang solong master gamit ang Lanczos resampling, na pinili para sa predictable, repeatable na pag-uugali sa maliliit na sukat sa halip na para manalo sa isang pixel-quality contest. Bawat logo ay lumalabas sa humigit-kumulang 10% ng lapad ng canvas nito โ nakikita nang hindi nakakaabala โ at ang pagdaragdag ng bagong rendition ay isang solong array entry plus isang bagong PNG.
Mga Pangunahing Desisyon na Karapat-dapat Banggitin
Pagkaantala ng Pag-activate ng 1.5 segundo. Ang mga watermark-on action ay nagpaputok ng 1.5 segundo pagkatapos ng bawat input switch, hindi sa eksaktong sandali ng switch โ ang agarang pag-activate ay maaaring kumurap laban sa hindi pa matatag na mga frame. Ang halaga ay inayos nang empirically at isinentralisa bilang isang solong konstante upang ang pag-tune sa hinaharap ay isang pagbabago sa isang linya lamang.
Offline, human-triggered asset generation โ sadyang ginawa. Ang Lanczos resize pipeline ay hindi automated bilang isang build step o CDN-side transform. Bihira lang magbago ang mga logo asset kaya ang isang one-command regeneration ay ang tamang antas ng automation; ang gastos sa pagbuo ng karagdagang automation ay mas malaki kaysa sa pagpapatakbo ng script dalawang beses sa isang taon.
Mayroon "makapal" na variant ngunit hindi ipinadala. Ang generator ay gumagawa din ng dilated-alpha variant na may mas makapal na stroke, na nilayon upang mabuhay sa H.264 quantization sa mababang SD bitrates. Wala ito sa production โ sapat ang standard variant para sa kasalukuyang bitrate range, at wala pang sukat na nagbibigay katarungan sa paglipat. Umiiral ito bilang code-tested standby: mura itong panatilihing available, maaga pa upang ipadala.
Ano ang Patuloy Naming Binabantayan
Walang production video pipeline ang tunay na natatapos, at mayroon pa ring mga pagkakataon upang pinuhin ang pamamaraang ito sa paglipas ng panahon.
Tinitiyak ng kasalukuyang implementasyon na ang bawat rendition ay tumatanggap ng logo na espesyal na inihanda para sa sarili nitong output resolution, na nagtatanggal ng runtime overlay scaling mula sa MediaLive pipeline. Gayunpaman, ang panghuling hitsura ay natural pa ring limitado ng resolution ng bawat rendition at video compression, lalo na sa mas mababang bitrates. Habang umuunlad ang streaming profiles, patuloy naming susuriin kung ang iba't ibang pagtrato sa logo ay nagbibigay ng masusukat na visual na benepisyo sa ilalim ng mga kondisyong iyon.
Sinusuportahan na ng asset generator ang parehong standard at mas makapal na variant ng logo. Kung ipinakita ng mga pagsubok sa hinaharap na mas mahusay ang makapal na bersyon para sa mga lower-bitrate rendition, gagawin naming configuration-driven ang pagpili ng variant ng logo upang mabago ito nang hindi muling dine-deploy ang application.
Mga Resulta
Ang bawat rendition ngayon ay tumatanggap ng logo na sinukat partikular para sa sarili nitong canvas, nang ang MediaLive ay walang ginagawang runtime overlay scaling. Gumagamit ang bawat output ng artwork na inihanda para sa target nitong resolution, iniiwasan ang karagdagang paglambot na ipinakikilala ng runtime overlay scaling habang pinapanatili ang pinakamahusay na praktikal na visual na kalidad na maaaring ibigay ng rendition na iyon.
Ang coordinate-drift bug mula sa nakaraang global overlay approach, kung saan ang mga logo ay maaaring lumipat sa mga source video na mas makitid kaysa 1920px, ay structurally eliminated dahil ang per-output activation ay ganap na nagpapatakbo sa output coordinates.
Ang pagpapalit ng logo ngayon ay isang simpleng operational task: i-regenerate ang rendition-specific na assets gamit ang isang script at i-upload ang mga ito. Walang kinakailangang video re-encoding at walang per-rendition manual editing.
Sumusunod ang implementasyong ito sa isang simpleng prinsipyo ng engineering: lutasin ang mga problema nang maaga sa pipeline hangga't maaari, at magdisenyo batay sa mga kakayahan ng platform sa halip na umasa sa mga downstream workaround. Sa paghahanda ng tamang asset bago ang encoding, nananatiling mas simple, mas predictable, at mas madaling mapanatili ang live pipeline.
Kung nakakaranas ka ng katulad na mga isyu sa kalidad ng rendition o overlay sa isang live video pipeline, makipag-ugnayan.
Technology Stack: AWS MediaLive ยท AWS Lambda ยท AWS S3 ยท NestJS ยท TypeScript ยท Python (Pillow)

