Tek Yükleme, Altı Teslimat
Günümüzde tek bir kaynak görüntü, 9:16 dikey bir reel, 1:1 kare bir kesim, 16:9 yatay bir versiyon, otomatik oynatma için sessiz ve altyazılı bir varyant, logo ve giriş/çıkış içeren markalı bir kesim ve zayıf bir bağlantıda anında yüklenen sıkıştırılmış bir versiyon haline gelmek zorundadır. Aynı içerik, altı veya daha fazla şekilde — her kampanya ve her içerik oluşturucu için her gün katlanarak çoğalır.

Bunu ölçekli olarak çözmek, videonun elle düzenlenmek yerine programatik olarak dönüştürülmesi gerektiği anlamına gelir. FFmpeg'in pipeline'ımızdaki görevi budur.
Neden Özellikle FFmpeg
FFmpeg, ses ve videoyu dönüştürme, filtreleme ve kodlama için ücretsiz, açık kaynaklı bir komut satırı aracıdır. Kullanıcı arayüzü yoktur — istediğinizi tam olarak bir komut olarak tanımlarsınız ve o da bunu yürütür. Tüm değer önerisi budur: bir komut kodla oluşturulabilir, kullanıcıya göre parametrelendirilebilir, bir pipeline'a sıraya alınabilir ve sıfır insan müdahalesiyle bir sunucuda çalıştırılabilir. Video düzenleme, tıkladığınız bir şey yerine programladığınız bir şeye dönüşür.
Üç özellik, onu sadece "çalışan bir video aracı" olmaktan ziyade bu özel sorun için doğru çözüm haline getirir:
Birleştirilebilir filtreler. FFmpeg'in filtergraph'ı, scale → crop → overlay → fade işlemlerini tek bir geçişte zincirlemenizi sağlar. Bu önemlidir çünkü her adımda ara dosyaların yazılmasını önler — her işlem arasında yeniden kodlama yapan basit bir pipeline, hem render süresini hem de depolama yıpranmasını artırır. Zincirleme, çok adımlı bir dönüşümü tek bir kodlamaya indirir.
Sadece yeniden kodlama değil, akış düzeyinde işlemler. Kırpma gibi işlemler için FFmpeg, mevcut akışları çözmek ve yeniden kodlamak yerine kopyalayabilir:
ffmpeg -i input.mp4 -ss 00:00:08 -t 15 -c copy highlight.mp4
-c copy, saniyeler içinde biten bir kırpma ile tam bir yeniden kodlama kadar süren bir işlem arasındaki farktır. Bunu, işlemin piksel verilerine dokunmayı gerektirmediği her yerde — kırpmalar, format remuxing — kullanırız ve tam yeniden kodlamayı, ölçekleme veya bindirme gibi gerçekten ihtiyaç duyan adımlar için saklarız.
Donanım duyarlı kodlama. FFmpeg, yalnızca CPU kullanan libx264 yerine GPU kodlayıcıları (NVENC, QSV, VideoToolbox) aracılığıyla yönlendirme yapabilir. GPU kodlama, yüksek hacimde ham verim açısından avantajlıdır; libx264 ise belirli bir bit hızında daha öngörülebilir, ayarlanabilir kalite sunar. Hangisinin kullanılacağı belirlenmiş bir varsayılan değil, gerçek bir denge meselesidir — kalite kontrolünün en önemli olduğu marka odaklı her şey için CPU kodlamaya yöneliriz ve GPU yollarını yüksek hacimli, daha düşük öncelikli toplu işlemler için ayırırız.
Pipeline Bunu Gerçekte Nasıl Kullanır
Yeniden Çerçeveleme.

En yaygın istek "bunu her yere sığdır"dır. Yatay bir kaynak, ölçekleme ve kırpma yoluyla dikey bir reel haline gelir. Doğrudan kırpma hızlıdır ancak çerçevenin bir kısmını atar — merkezdeki konular için iyi, konu merkezden uzaklaştığında kötü. Bu durumlar için, hiçbir şeyin kesilmemesi için doğru ölçeklendirilmiş bir ön plan kopyasının arkasına bulanık, tam kare bir arka plan kullanırız:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]scale=1080:1920,boxblur=20:5[bg]; \
[0:v]scale=1080:-2[fg]; \
[bg][fg]overlay=(W-w)/2:(H-h)/2" \
-c:a copy output_blurred.mp4
Bu, tek bir varsayılan filtre değil, kasıtlı olarak iki yollu bir karardır — güvenli olduğunda kırpma, değilse bulanıklık-geri dönüşü.
Markalama, altyazılar, ses. Logolar, girişler ve çıkışlar parametreli katmanlar ve birleştirmeler olarak uygulanır, böylece konum, boyut ve opaklık, pipeline koduna dokunmadan markaya göre değişir. Altyazılar ayrı bir altyazı parçası olarak gönderilmek yerine doğrudan karelere işlenir — otomatik oynatma-sessiz akışlar, altyazının hedef platformun uyguladığı herhangi bir yeniden kodlamadan sağ çıkması gerektiği anlamına gelir ve işlenmiş bir altyazı her zaman bunu yapar; bir altyazı parçası bazen yapmaz. Ses karıştırılır ve ses yüksekliği normalleştirilir, böylece kaydırma akışında hiçbir klip bir öncekinden rahatsız edici derecede daha yüksek olmaz.
Teslimat. Her çıktı, dosya meta verilerini öne taşıyan +faststart ile kodlanır, böylece tüm dosya indirilmeden oynatma başlayabilir — özellikle kısa biçimli video için algılanan yükleme süresi üzerinde orantısız bir etkiye sahip küçük bir bayrak.
Hala Üzerinde Çalıştığımız Denge
Buradaki her karar kesinleşmiş değil. GPU ve CPU kodlama, en çok tekrar gözden geçirdiğimiz konudur: GPU verimi hacim büyüdükçe çekicidir, ancak bit hızı başına kalite tutarlılığı, marka açısından kritik çıktılar için hala CPU kodlamayı tercih eder. Şu anda bu ayrım, iş türüne göre manuel olarak ele alınmaktadır; bunu otomatik, kalite duyarlı bir yönlendirme kararı haline getirmek, bu pipeline'da inşa ettiğimiz bir sonraki parçadır.
Bu Neden Önemli
Bir araya getirildiğinde, tek bir yükleme, dikey, kare ve yatay varyantlara yeniden çerçeveleyen, markalayan, altyazıları işleyen, en iyi kesime göre kırpan, sesi karıştıran ve normalleştiren ve hızlı teslimat için sıkıştıran bir pipeline'ı tetikler — hiçbir editörün bir zaman çizelgesini açmasına gerek kalmadan. Daha fazla ölçeklendirme, her iş bağımsız ve durumsuz olduğu için daha fazla FFmpeg worker'ını paralel çalıştırmak anlamına gelir.
Reels trendi sadece içeriğin neye benzediğini değiştirmekle kalmadı — manuel düzenlemenin yetişemeyeceği bir zaman çizelgesinde tek bir içeriğin kaç farklı şekil alması gerektiğini de değiştirdi. FFmpeg buna ayak uydurur çünkü videoyu elle tıklanması gereken bir şey olarak değil, programlanabilir ve birleştirilebilir olarak ele alır. Bu pipeline'ın ölçeklenmesinin asıl nedeni budur: FFmpeg'in soyut olarak güçlü olması değil, içerisindeki her kararın — kırpma mı bulanıklık-geri dönüşü mü, akış kopyalama mı yeniden kodlama mı, GPU mu CPU mu — varsayılan olarak değil, duruma göre bilinçli olarak verilmesidir.
Buna benzer bir pipeline inşa ediyorsanız ve mimari hakkında ikinci bir görüş almak isterseniz, bize ulaşın.

