Ana Sayfa

Tarayıcıya Zamanı Yalan Söyleyerek Video Oluşturma Motoru Geliştirmek

1 dk okuma

Replit ekibi, web sayfalarını videoya dönüştürme sürecinde karşılaştıkları zorlukları aşmak için yenilikçi bir yaklaşım geliştirdi. Tarayıcılar, animasyonları gerçek zamanlı olarak işleyen ve kareleri yük altında atlayabilen sistemlerdir. Bu durum, bir web sayfasının ekran kaydını alırken animasyonların takılmasına ve izlenemez bir video oluşmasına neden olur. Çünkü tarayıcının kendi işleme hızı ile ekran yakalama hızı birbiriyle senkronize değildir. Mevcut çözümlerden Remotion gibi framework'ler bu sorunu çözse de, Replit'in özel ihtiyaçları (herhangi bir URL'den içerik yakalama ve yapay zeka ajanının esnekliği) nedeniyle kendi deterministik video işleme motorlarını inşa etmeleri gerekti.

Bu motorun kalbinde, yakalanacak her sayfaya enjekte edilen yaklaşık 1200 satırlık bir JavaScript dosyası bulunuyor. Bu dosya, tarayıcının ana zamanla ilgili API'lerini (setTimeout, setInterval, requestAnimationFrame, Date, Date.now(), performance.now()) sanal bir saatle değiştiriyor. Böylece sayfa, zamanın normal bir şekilde aktığını düşünürken, aslında zaman yalnızca Replit'in kontrolünde, her kare için tam olarak 1000/fps milisaniye ilerliyor. Bu sanal saat sayesinde, bir karenin gerçekte 500ms sürmesi bile, sayfanın her kareyi 16.67ms'de işlediğini düşünmesiyle pürüzsüz bir 60fps video elde ediliyor.

Bu yöntem, Replit'in Framer Motion, CSS animasyonları, canvas veya diğer kütüphanelerle oluşturulmuş herhangi bir web içeriğini mükemmel bir şekilde yakalamasına olanak tanıyor. Yapay zeka ajanının da belirli bir framework'e bağlı kalmadan tüm web platformunu kullanabilmesi, daha iyi çıktılar elde etmesini sağlıyor.

İçgörü

Tarayıcıların gerçek zamanlı doğasını manipüle ederek, herhangi bir web sayfasının animasyonlarını kusursuz ve deterministik bir şekilde videoya dönüştürmek mümkün hale geldi.

Kaynak