رفتار و خطلوله انکودینگ (Encoding Pipeline)
این سند نحوه بازرسی ویدیو، محاسبه نردبان رندیشنها، تولید فیلترگرافهای تکپاس FFmpeg، تنظیم دارکِست و رمزنگاری را تشریح میکند.
۱. بازرسی متادیتا و ابعاد نمایش
کتابخانه Mosaic ابتدا با اجرای ابزار FFprobe مشخصات زیر را استخراج میکند:
- ابعاد نمایش واقعی (با در نظر گرفتن متادیتای چرخش موبایل)
- نرخ فریم متوسط (FPS) و مدتزمان دقیق ویدیو
- وجود استریم صوتی و تعداد کانالها
تمایز ابعاد ذخیرهشده و ابعاد نمایش
در گوشیهای هوشمند ممکن است ابعاد ذخیرهشده فایل 1920x1080 باشد اما متادیتای چرخش 90- درجه باشد. در این حالت، Mosaic ابعاد نمایش را 1080x1920 (عمودی) محاسبه میکند و نردبان کیفیت را بر پایه این ابعاد میسازد تا تصویر دچار دفرمه شدن نشود.
۲. تولید نردبان سازگار با نسبت تصویر (ABR Ladder)
طبقات کیفی بر اساس ارتفاع نمایش ویدیو تعیین میشوند:
| ارتفاع تصویر ورودی | رندیشنهای پیشنهادی |
|---|---|
>= 1080 | 1080p, 720p, 360p |
>= 720 | 720p, 360p |
>= 360 | 360p |
< 360 | ارتفاع اصلی منبع |
عرض هر رندیشن با فرمول ریاضی زیر محاسبه میشود: [ \text{target_width} = 2 \times \text{round}\left(\frac{\text{target_height} \times \text{display_width}}{2 \times \text{display_height}}\right) ]
۳. فیلترگراف تکپاس FFmpeg
تمامی رندیشنها و لایههای گرافیکی در یک فیلترگراف واحد پردازش میشوند:
[0:v]split=3[v0][v1][v2];
[v0]scale=1920:1080,setsar=1,setdar=16/9[v0o];
[v1]scale=1280:720,setsar=1,setdar=16/9[v1o];
[v2]scale=640:360,setsar=1,setdar=16/9[v2o]یکسانسازی Display Aspect Ratio (setdar)
در پروتکل MPEG-DASH استاندارد ایزو، تمامی رندیشنهای یک AdaptationSet باید نسبت تصویر یکسانی داشته باشند. موزاییک با اعمال خودکار setdar از هرگونه خطای عدم انطباق جلوگیری میکند.
۴. استاندارد بلندی صدای EBU R128
با فعالسازی WithNormalizeAudio()، فیلتر قدرتمند نرمالسازی صدا اعمال میشود:
-filter:a loudnorm=I=-16:TP=-1.5:LRA=11این کار از تغییرات ناگهانی و گوشخراش ولوم صدا بین ویدیوهای مختلف جلوگیری میکند.
