ԸՆԴՀԱՆՈՒՐ ՊԱՏԿԵՐ
Համատեքստ
Windows background հավելվածը պետք է capture աներ մեկ կամ մի քանի էկրան, encode աներ յուրաքանչյուր stream-ը և հասանելի դարձներ հեռավար սպառողներին՝ առանց foreground interface-ից կախվածության։
ԽՆԴԻՐ
Ինչ պետք էր լուծել
Հուսալի streaming-ը պահանջում էր capture worker-ների և media server-ի համակարգված ownership, monitor geometry-ի ճիշտ կառավարում, capture կամ child-process failure-ից recovery և Windows restart-ներից հետո պահպանվող configuration։
ՍԱՀՄԱՆԱՓԱԿՈՒՄՆԵՐ
Համակարգային սահմաններ
- Հավելվածը պետք է աշխատեր silent/background ռեժիմում, ավտոմատ մեկնարկեր, հասանելի լիներ LAN-ում և հարմար լիներ installer-ով տեղադրման համար։
- Բազմաթիվ monitor-ները պահանջում էին առանձին bounds, offset, stream identity և process coordination։
ԻՄ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅՈՒՆԸ
Համակարգային ճարտարապետություն և իրականացում
- Նախագծել եմ .NET հավելվածը capture configuration-ի, process supervision-ի, recovery-ի և պահպանվող settings-ի շուրջ։
- Կառավարել եմ FFmpeg worker-ների և MediaMTX-ի lifecycle-ը՝ նույն stream-ի համար duplicate worker-ներ չթույլատրելով։
- Իրականացրել եմ multi-monitor stream generation, կարգավորվող resolution/FPS և RTSP port-եր, packaging և Windows firewall նկատառումներ։
ՃԱՐՏԱՐԱՊԵՏՈՒԹՅՈՒՆ
Համակարգային մոդել
ԻՆԺԵՆԵՐԱԿԱՆ ՄԱՐՏԱՀՐԱՎԵՐՆԵՐ
Որտեղ էր բարդությունը
- DXGI/Desktop Duplication ոճի capture՝ FFmpeg ddagrab-ի միջոցով, իսկ gdigrab-ը՝ որպես այլընտրանքային ուղի։
- Capture loss-ից recovery՝ խուսափելով cursor/mouse flicker առաջացնող վատ fallback վարքից։
- Monitor bounds-ի և offset-ների ճիշտ հաշվարկ և յուրաքանչյուր կարգավորված stream-ի համար մեկ synchronized worker-ի պահպանում։
- Crash-երի հայտնաբերում և միայն վնասված process path-ի անվտանգ վերագործարկում։
ՄՈՏԵՑՈՒՄ
Լուծման կառուցվածքը
- Process ownership-ը կենտրոնացվել է, որպեսզի հավելվածի state-ը և աշխատող FFmpeg/MediaMTX process-ները համադրվեն։
- Պահպանվել են monitor-ների, capture settings-ի, port-երի և startup behavior-ի configuration-ները։
- Հավելվածը փաթեթավորվել է Windows installation-ի համար՝ հաշվի առնելով firewall և external/LAN access պահանջները։
ՀՈՒՍԱԼԻՈՒԹՅՈՒՆ
Production վարք
- Child-process crash detection, automatic recovery և duplicate-worker prevention։
- Ավելի անվտանգ capture retry վարք՝ ժամանակավոր display կամ capture-path loss-ի դեպքում։
ԱՐԴՅՈՒՆՔ
Ինչ ձևավորվեց
- Կարգավորվող Windows streaming ճարտարապետություն՝ առանձին monitor stream-ներով, վերահսկվող process-ներով և հստակ recovery վարքով։
ՏԵԽՆԻԿԱԿԱՆ ՀԱՄԱՏԵՔՍՏ
Տեխնոլոգիաներ և համակարգեր
Մեքենային հատուկ configuration-ը, network address-ները, credentials-ը և մասնավոր deployment տվյալները չեն հրապարակվում։