Logo saluran FAST โ tanda kecil di penjuru โ adalah satu-satunya elemen visual yang konsisten di setiap program, setiap selingan iklan, setiap paparan yang disiarkan oleh saluran. Ia perlu kelihatan profesional pada setiap tahap kualiti yang mungkin diterima oleh penonton. Pendekatan naif โ memuat naik satu imej induk dan membiarkan AWS MediaLive mengubah saiznya mengikut setiap edaran โ menghasilkan logo yang tajam pada 1080p dan logo yang kelihatan kabur pada 360p. Itu adalah masalah jenama bagi setiap penonton yang tidak menggunakan jalur lebar. Berikut adalah cara kami menyesuaikan saiz logo mengikut grid piksel tepat setiap edaran.
Gambaran Keseluruhan Pantas
| Aspek | Perincian |
|---|---|
| Domain | Lapisan logo saluran (DOG) pada saluran FAST |
| Mekanisme | StaticImageOutputActivate setiap edaran bagi setiap output (1080p, 720p, 480p, 360p) |
| Penjanaan aset | Skrip Python menggunakan Lanczos resampling |
| Masa pengaktifan | 1.5s selepas setiap suis input program |
| Status | 1ร tumpukan setiap edaran dalam pengeluaran |
Masalah Perniagaan
Saluran FAST tidak menyampaikan satu tahap kualiti. MediaLive mengekod saluran yang sama kepada beberapa edaran โ 1080p, 720p, 480p, 360p โ dan pemain setiap penonton memilih yang terbaik yang boleh disokong oleh sambungan mereka. Penonton mudah alih menggunakan data selular menonton 360p; penonton smart-TV menggunakan jalur lebar mendapatkan 1080p. Mereka semua melihat tanda jenama yang sama, dan mereka semua mengharapkan ia kelihatan profesional. Apabila logo tajam pada 1080p dan kelihatan kabur pada 360p, jenama itu tidak konsisten โ bukan perincian kecil pada saluran 24/7 di mana logo adalah satu-satunya elemen yang dilihat penonton lebih kerap daripada mana-mana program tunggal.
Di Mana Lapisan Sebenarnya Diterapkan
Dalam saluran paip pengekod berbilang edaran, lapisan boleh diterapkan di dua tempat:
Sebelum penskalaan setiap edaran, di mana satu imej induk digabungkan pada sumber dan keseluruhannya dikecilkan mengikut setiap output โ ini adalah apa yang dilakukan MediaLive dengan tindakan StaticImageActivate global
selepas penskala, di mana setiap output mendapat lapisannya sendiri diterapkan setelah kanvas sudah pada saiz akhir. Perbezaan itu kelihatan kecil dalam API. Secara visual, tidak. Apa-apa yang digabungkan sebelum penskala mewarisi setiap artifak yang diperkenalkan oleh penskala, dan pada 360p, penskala sangat agresif.

Mengapa Pembetulan Yang Jelas Gagal
"Muat naik satu induk dan biarkan MediaLive mengubah saiznya." Tindakan global menggabungkan induk sebelum penskala setiap output berjalan. Induk bersaiz besar yang dikecilkan kepada logo 64ร21px untuk 360p adalah pengurangan kira-kira 40x โ walaupun Lanczos resampling kehilangan perincian halus pada nisbah itu, dan hasilnya kemudian melalui rantaian mampatan yang sama seperti video itu sendiri.
"Gunakan induk yang lebih besar." Ini menjadikan nisbah pengecilan lebih besar, bukan lebih kecil โ artifak menjadi lebih teruk, bukan lebih baik.
"Langkau logo pada output SD." Keperluan pematuhan dan jenama memerlukan tanda itu pada setiap edaran. Bukan pilihan.
"Bakar logo ke dalam video sumber pada masa pengekodan." Kehilangan setiap tuas operasi โ tiada perubahan logo mengikut kempen atau mengikut wilayah, dan tiada kemas kini tanpa pengekodan semula keseluruhan pustaka.
"Gunakan lapisan global dengan koordinat manual mengikut resolusi." Tindakan global mengira kedudukan berdasarkan rujukan 1920ร1080 yang tetap, jadi video sumber yang lebih sempit daripada itu menghasilkan koordinat di luar kanvas โ logo terkeluar dari penjuru atau terpotong.
Tuas sebenar adalah memintas penskalaan lapisan MediaLive sepenuhnya: saizkan logo ke kanvas setiap edaran sendiri, sebelum pengekod menyentuhnya.
Penyelesaian
Logo setiap edaran dipra-render kepada dimensi piksel tepatnya dan disimpan sebagai PNG yang berasingan. Pada setiap sempadan program, orkestrator Lambda mengeluarkan empat tindakan StaticImageOutputActivate โ satu untuk setiap edaran โ setiap satu menunjuk kepada PNG yang telah disesuaikan saiznya untuk output tertentu itu. MediaLive tidak melakukan penskalaan pada lapisan.
GLOBAL (naif) PER-OUTPUT (apa yang kami sediakan)
master.png โโโบ gabungkan ke master.png โโโบ ubah saiz Lanczos (luar talian)
kanvas sumber kepada 4 PNG bersaiz tepat
โ โ
โผ โผ
penskala setiap edaran penskala setiap edaran
(juga mengubah saiz (lapisan tidak disentuh โ
lapisan โ logo kabur digabungkan selepas, pada
pada output SD) saiz piksel tepat)Skrip Python menjana empat PNG bersaiz itu daripada satu induk menggunakan Lanczos resampling, dipilih kerana tingkah laku yang boleh diramal dan diulang pada saiz kecil dan bukan untuk memenangi pertandingan kualiti piksel. Setiap logo diletakkan kira-kira 10% daripada lebar kanvasnya โ kelihatan tanpa mengganggu โ dan menambahkan edaran baharu hanyalah satu entri tatasusunan serta satu PNG baharu.
Keputusan Utama Yang Patut Disebutkan
Kelewatan pengaktifan 1.5 saat. Tindakan tanda air diaktifkan 1.5 saat selepas setiap suis input, bukan pada saat suis tepat โ mengaktifkan serta-merta boleh menyebabkan kelipan terhadap bingkai yang belum stabil. Nilai tersebut ditala secara empirikal dan disentralisasikan sebagai pemalar tunggal supaya penalaan masa depan adalah perubahan satu baris.
Penjanaan aset luar talian, dipicu manusia โ secara sengaja. Saluran paip ubah saiz Lanczos tidak diautomasi sebagai langkah binaan atau transformasi sisi CDN. Aset logo jarang berubah sehingga penjanaan semula satu arahan adalah jumlah automasi yang sesuai; kos membina automasi selanjutnya melebihi menjalankan skrip dua kali setahun.
Varian "tebal" wujud tetapi tidak dihantar. Penjana juga menghasilkan varian alpha-dilated dengan strok yang lebih tebal, bertujuan untuk bertahan daripada kuantisasi H.264 pada kadar bit SD rendah. Ia belum dalam pengeluaran โ varian standard mencukupi untuk julat kadar bit semasa, dan tiada ukuran lagi yang mewajarkan penukaran. Ia wujud sebagai sedia ada yang telah diuji kod: murah untuk disimpan, terlalu awal untuk dihantar.
Apa Yang Kami Masih Perhatikan
Tiada saluran paip video produksi yang benar-benar siap, dan masih ada peluang untuk memperhalusi pendekatan ini dari semasa ke semasa.
Pelaksanaan semasa memastikan setiap edaran menerima logo yang disediakan khusus untuk resolusi outputnya sendiri, menghapuskan penskalaan lapisan masa jalan daripada saluran paip MediaLive. Walau bagaimanapun, penampilan akhir masih terhad secara semula jadi oleh resolusi dan pemampatan video setiap edaran, terutamanya pada kadar bit yang lebih rendah. Apabila profil penstriman berkembang, kami akan terus menilai sama ada rawatan logo yang berbeza memberikan faedah visual yang boleh diukur di bawah keadaan tersebut.
Penjana aset sudah menyokong kedua-dua varian logo standard dan yang lebih tebal. Jika ujian masa depan menunjukkan bahawa versi yang lebih tebal berprestasi lebih baik untuk edaran kadar bit yang lebih rendah, kami akan menjadikan pemilihan varian logo berasaskan konfigurasi supaya ia boleh diubah tanpa menghantar semula aplikasi.
Keputusan
Setiap edaran kini menerima logo yang bersaiz khusus untuk kanvasnya sendiri, dengan MediaLive tidak melakukan penskalaan lapisan masa jalan. Setiap output menggunakan karya seni yang disediakan untuk resolusi sasarannya, mengelakkan pelembutan tambahan yang diperkenalkan oleh penskalaan lapisan masa jalan sambil mengekalkan kualiti visual praktikal terbaik yang boleh disampaikan oleh edaran tersebut.
Bug pergeseran koordinat daripada pendekatan lapisan global sebelumnya, di mana logo boleh beralih pada video sumber yang lebih sempit daripada 1920px, telah dihapuskan secara struktur kerana pengaktifan setiap output beroperasi sepenuhnya dalam koordinat output.
Menggantikan logo kini adalah tugas operasi yang mudah: menjana semula aset khusus edaran dengan satu skrip dan memuat naiknya. Tiada pengekodan semula video dan tiada penyuntingan manual setiap edaran diperlukan.
Pelaksanaan ini mengikut prinsip kejuruteraan mudah: selesaikan masalah seawal mungkin dalam saluran paip, dan reka bentuk berdasarkan keupayaan platform dan bukannya bergantung pada penyelesaian sementara hiliran. Dengan menyediakan aset yang betul sebelum pengekodan, saluran paip langsung kekal lebih mudah, lebih boleh diramal, dan lebih mudah diselenggara.
Jika anda menghadapi masalah kualiti edaran atau lapisan yang serupa pada saluran paip video langsung, hubungi kami.
Tumpukan Teknologi: AWS MediaLive ยท AWS Lambda ยท AWS S3 ยท NestJS ยท TypeScript ยท Python (Pillow)

