Giriş
Maç klipleri üretmek hem içerik üreticileri hem de yayıncılar için yüksek değer üreten bir faaliyet. Ancak ham maç videolarından hızlı, doğru ve sosyal platformlar için uygun kısa formlar çıkarmak zahmetli olabilir. Bu rehberde açık kaynak araçlarla kuracağınız, tekrarlanabilir ve ölçeklenebilir bir pipeline ile otomatik özet çıkarma, doğru altyazı üretme ve vertical (kısa-form) videolar hazırlama sürecini 6 adımda anlatacağım.
Adım 1 — Hazırlık ve Ön İşleme
İyi bir otomasyonun temeli dosya ve meta veri düzeninden geçer. Burada amaç; ham videoların formatlandırılması, ses parçalarının ayrıştırılması ve hızlı ön-analiz için gerekli özet verilerin üretilmesidir.
- Dosya yapısı önerisi: raw/, clips/, subtitles/, shortform/, logs/
- Transkod ve normalize: FFmpeg ile bir standart oluşturun. Örnek komut:
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -c:a aac -ar 48000 output_standard.mp4
- Ses dalga formu ve RMS analizi: Özetleme için ses enerjisi kullanışlıdır. Librosa ile kısa enerji pencereleri hesaplayarak tezahürat/gol anlarını tespit etmek başlangıç için etkilidir.
- Meta veriler: maç türü, başlangıç saati, takım isimleri gibi bilgiler JSON olarak saklanmalı. Bu, altyazı ve başlık otomasyonunda işinizi kolaylaştırır.
Adım 2 — Olay (Event) Tespiti
Olay tespiti, hangi anların kliplenmesi gerektiğini belirler. Burada birden fazla sinyalin birleşimi en iyi sonucu verir: ses enerjisi, sahne değişimi, skorboard OCR ve görsel modeller.
- Ses tabanlı tetik: Yüksek RMS + ani enerji artışı gol/heyecan göstergesi olabilir.
- Görsel sahne algılama: PySceneDetect ile kamera kesme noktalarını bulun. Komut örneği:
scenedetect --input input.mp4 detect-content list-scenes
- Skorboard OCR: OpenCV ile skorboard bölgesini crop edip Tesseract ile metin çekin. Skor değişimi net bir gol göstergesidir.
- Derin öğrenme sinyalleri: YOLOv5/YOLOv8 ile top veya oyuncu yoğunluğu artışı, pose-estimation ile kutlama pozları (OpenPose, MediaPipe) gol anlarını doğrulayabilir.
Bu sinyallerin birleşik mantığı: örneğin ses enerjisi yüksek ve bir sahne değişimi var ve OCR skor değişimi tespit edildiyse olay yüksek öncelikli olur.
Adım 3 — Kesme ve Klip Çıkarma
Olay tespiti sonrasında ilgili zaman aralıklarını kesip klip dosyaları oluşturun. Burada amaç gereksiz yeniden kodlamayı azaltmak ve kesme sonrası metadata saklamaktır.
- Hızlı kesme: Kesimleri reencode etmeden yapmak için FFmpeg copy modu kullanın. Örnek:
ffmpeg -ss 00:12:34 -to 00:12:50 -i input.mp4 -c copy clip_01.mp4
- Giriş-çıkış tamponu: Gol öncesi 5-10s, gol sonrası 10-20s bırakmak izleyicide bağlam sağlar.
- Adlandırma ve JSON manifest: Her klip için start, end, reason, confidence gibi alanları içeren bir manifest.json oluşturun. Otomasyon bunu referans alır.
Adım 4 — Altyazı ve Metin İşleme
Doğru altyazı hem erişilebilirlik hem de kısa-form performansı için kritik. Açık kaynak sınırında en güçlü seçeneklerden biri Whisper (OpenAI tarafından açık kaynak) ve WhisperX gibi hizalama araçlarıdır.
- Transkripsiyon: Whisper ile ham transkript üretin. Örnek:
whisper clip_01.mp4 --model medium --task transcribe --language tr --output_format srt
- Kelime-hizalama: WhisperX veya Gentle gibi araçlarla kelime düzeyinde zamanlama alın. Bu, altyazıyı düzgün bir şekilde kısa kliplerde yaklaştırmak için önemli.
- Otomatik düzeltme: Spor terimleri, oyuncu isimleri ve takım adlarını önceden tanımlı sözlükle normalize edin. Basit bir lemmatize ve isim-yer kontrol listesi büyük fark yaratır.
- Çok dilli destek: Eğer hedefiniz uluslararasıysa, önce otomatik dil algılama yapıp sonra gerekli çeviriyi ekleyin.
Adım 5 — Kısa‑Form (Vertical) Videoların Hazırlanması
Sosyal ağlar için dikey (9:16) format, hızlandırılmış alt yazı ve görsel öğeler gerektirir. Burada otomasyon, her klibi sosyal platforma uygun hale getirir.
- Ölçeklendirme ve kırpma: FFmpeg ile güvenli bir kod akışı:
ffmpeg -i clip_01.mp4 -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,format=yuv420p" -c:v libx264 -crf 18 -preset fast -c:a aac out_vertical.mp4
- Görsel katmanlar: Alttan takım adı, üstten skorbox, ortada zamanlayıcı gibi şablonları ImageMagick veya FFmpeg overlay ile ekleyin.
- Burn-in altyazı: Çok kısa kliplerde overlay altyazı (burn-in) tercih edin. Stil için okunaklı font büyüklüğü, stroke (outline) ve yeterli line-height kullanın.
- Sosyal optimizasyon: TikTok ve Reels için 15–60s arası, erkenden vurucu sahne ve ilk 2–3 saniyede bağlayıcı görsel kullanın.
Adım 6 — Otomasyon, Deploy ve İzleme
Buraya kadar anlattıklarınızı çalıştırılır hale getirmek için otomasyon ve izleme gereklidir. Basit bir cron tabanlı akıştan, Airflow veya Prefect ile orkestrasyona kadar seçenekler var.
- Orkestrasyon: Adımlar için bağımsız konteynerler oluşturun. Her adımın giriş-çıkışları manifest.json ile tanımlı olsun. Prefect veya Apache Airflow ile retry/alert yapılandırın.
- Donanım: Transkripsiyon ve model çıkarımları için GPU önerilir. GPU yoksa whisper.cpp veya daha küçük modellerle maliyeti düşürün.
- Monitoring: Her çalıştırma sonucu için kısa performans metrikleri (CPU/GPU süresi, başarı/başarısız klip sayısı) kaydedin. Hataları Slack/Teams ile bildirin.
- Versiyonlama: Modeller, şablonlar ve yapılandırma ayarlarını Git ile versionlayın. Böylece geriye dönük tutarlılık sağlarsınız.
Pratik Örnek Akış
Örnek bir pipeline akışı şudur: Dosya alındı → ön-işleme (transkod) → ses/ görüntü sinyalleri ile event tespiti → kesme (FFmpeg copy) → transkript (Whisper) → hizalama (WhisperX) → kısa-form montaj (FFmpeg overlay) → upload. Her adımın çıktısı manifestte saklanır.
İyi Uygulamalar ve Tuzaklar
- Kalite vs hız: Realtime gereksinimi varsa model boyutunu küçültün. Batch üretim için kaliteyi ön planda tutun.
- Telif ve haklar: Yayıncı lisansları ve oyuncu haklarına dikkat edin. Özellikle platformlara yükleme öncesi hak kontrolleri gerekir.
- Altyazı doğruluğu: Spor isimleri ve jargon için özel sözlük kullanın. Yanlış altyazı sosyal medyada tepki çekebilir.
- İzlenebilir metrikler: Her kısa-form için CTR, izlenme süresi, etkileşim gibi metrikleri toplayın ve pipeline'ı buna göre optimize edin.
Sonuç
Bu rehberde açık kaynak araçlarla kurabileceğiniz 6 adımlı bir maç klibi otomasyonu sundum. Temel fikir, farklı sinyallerin (ses, görsel, OCR, modeller) birleşimiyle güvenilir olay tespiti yapmak ve ardından FFmpeg ve Whisper gibi araçlarla hızlı, kaliteli ve sosyal platformlara uygun videolar üretmektir. Uygulamada, küçük bir prototip kurup zaman içinde model eşiklerini ve görsel şablonları optimize etmek en verimli yol olacaktır.
Kısa checklist: Dosya yapısı hazır, transkod standardı belirlendi, event sinyalleri tanımlandı, Whisper altyazı akışı kuruldu, vertical şablon hazır, orkestrasyon ve monitoring aktif.
Kaynak ve Araç Önerileri
- FFmpeg — video işleme
- Whisper / WhisperX — transkripsiyon ve hizalama
- PySceneDetect — sahne tespiti
- OpenCV + Tesseract — scoreboard OCR
- YOLOv5/YOLOv8, OpenPose/MediaPipe — görsel olay doğrulama
- Prefect / Airflow — orkestrasyon
Uygulamaya geçirirken isterseniz daha spesifik komut örnekleri veya örnek Python betikleri paylaşabilirim. Hangi lig/ spor ve hangi platformu hedeflediğinizi söylerseniz, şablonları ona göre özelleştiririz.