- ffmpeg komutlarını düz İngilizceyle çalıştırmayı sağlayan Node.js tabanlı bir CLI aracı; karmaşık seçenekler olmadan basit cümlelerle video düzenleme yapılabiliyor
ff convert video.mp4 to gif gibi komutları cümle biçiminde girdiğinizde bunu otomatik olarak ffmpeg komutuna çevirip çalıştırıyor
- Biçim dönüştürme, sıkıştırma, kırpma, ses çıkarma, yeniden boyutlandırma, hız ayarlama, döndürme, birleştirme gibi birçok işi destekliyor
--dry-run seçeneğiyle gerçek çalıştırma olmadan ffmpeg komutunu önceden görmek mümkün
- İnternet bağlantısı ya da yapay zeka olmadan çevrimdışı ve hızlı çalışıyor; ffmpeg kurulu bir ortamda Node.js 16 ve üzeriyle kullanılabiliyor
Genel bakış
- ezff, ffmpeg kullanımını kolaylaştırmak için yapılmış düz İngilizce tabanlı bir wrapper
- Kullanıcıların karmaşık ffmpeg bayraklarını ya da kılavuzu ezberlemesine gerek kalmadan komutları doğal dilde girmesini sağlıyor
- Örnek:
ff convert video.mp4 to gif → otomatik olarak ffmpeg komutu oluşturulup çalıştırılır
- Node.js 16 ve üzeri ile ffmpeg kurulumu gerekiyor; npm üzerinden
npm install -g ezff ile kurulabiliyor
Başlıca özellikler
- Etkileşimli prompt modu sunuyor
- Doğrudan komut girme modu destekleniyor
- Kullanıcı istediği işlemi tek satırda yazabiliyor
- Örnek:
ff convert video.mp4 to mp3
ff compress video.mp4 to 10mb
ff trim video.mp4 from 0:30 to 1:00
ff resize video.mp4 to 1280x720
ff speed up video.mp4 by 2x
Desteklenen işlem listesi
- Dönüştürme(Convert) : biçim değiştirme (
mp4 → gif, mp4 → mp3)
- Sıkıştırma(Compress) : dosya boyutu sınırı belirleme (
10mb vb.)
- Kırpma(Trim) : belirli bir aralığı çıkarma (
from 0:30 to 1:00)
- Ses çıkarma(Extract audio) : videodan yalnızca sesi ayırma
- Yeniden boyutlandırma(Resize/Scale) : çözünürlüğü değiştirme (
1280x720, 720p)
- Hız ayarlama(Speed up / Slow down) : oynatma hızını değiştirme (
2x)
- Ters çevirme(Reverse), sesi kapatma(Mute), döndürme(Rotate), çevirme(Flip), küçük görsel çıkarma(Thumbnail), birleştirme(Merge), gri tonlama(Grayscale), gürültü giderme(Denoise), video sabitleme(Stabilize) gibi birçok işlemi destekliyor
Komut önizleme ve çıktı
--dry-run seçeneğiyle gerçek çalıştırma olmadan yalnızca ffmpeg komutunu yazdırabiliyorsunuz
- Sonuç dosyası, kaynakla aynı klasöre
_output sonekiyle kaydediliyor (video_output.gif)
İç çalışma yapısı
- Girilen cümleyi Parser analiz ederek işlem(action), dosya(file), seçenekler(size vb.) bilgilerini çıkarıyor
- Builder bu bilgileri ffmpeg komutuna eşliyor
- ffmpeg gerçek komutu çalıştırıyor
- Tüm süreç, AI ya da API çağrısı olmadan çevrimdışı olarak desen eşleme tabanlı yürütülüyor
Kurulum ve ortam
- Node.js 16 ve üzeri gerekli
- ffmpeg sistem PATH'inde kurulu olmalı
- macOS:
brew install ffmpeg
- Ubuntu/Debian:
sudo apt install ffmpeg
- Windows:
choco install ffmpeg
- MIT lisansı ile yayımlanıyor ve Pull Request'lere açık
Özet
- ezff, ffmpeg komutlarını öğrenme yükünü ortadan kaldıran basit bir CLI aracı
- Düz İngilizce girdilerle video düzenlemeyi otomatikleştirmek mümkün
- Çevrimdışı çalışma, hızlı yürütme ve geniş özellik desteğiyle hem geliştiriciler hem de video düzenlemeye yeni başlayanlar için kullanışlı bir araç
1 yorum
Hacker News yorumları
İnsanların temel ffmpeg kullanımını ezberlememek için ne kadar uğraştığını görmek şaşırtıcı
Aslında ffmpeg o kadar da zor değil ve kılavuzu da temel kavramları iyi açıklıyor
Elbette varsayılan ayarların yeniden kodlamaya yol açması ya da yalnızca tek bir akışı koruması gibi riskler var, ama sadece
-c copyseçeneğini hatırlarsanız çoğu durumda sorun yaşamazsınızBu tür “tehlikeleri” gizlemek aslında daha büyük sorunlar yaratabilir. Örneğin “ff convert video.mkv to mp4” komutu, basit bir remux yeterliyken tüm videoyu yeniden kodluyor
“ffmpeg extract audio from video.mp4” de sesi doğrudan çıkarmak yerine her seferinde mp3’e yeniden kodlayıp kaliteyi düşürüyor
Multimedya doğası gereği karmaşık bir alan, bu karmaşıklığı gizlemek kullanıcıların yanlış kavramlar öğrenmesine yol açabilir
Basitleştirilmiş sarmalayıcılar yerine, iyi bir kopya kâğıdıyla kullanıcılara doğru kavramları öğretmenin daha doğru olduğunu düşünüyorum
Bu bana bir zamanlar “Yoksul insanlar neden gidip iyi bir iş bulmuyor?” tarzı tartışmaları hatırlatıyor
Yine de bunu motive etmek için söylediğini anlıyorum
Benim istediğim şey etkileşimli bir betik. “Ne yapmak istiyorsun?” diye sorup buna uygun komutu oluşturan ve her argümanın ne anlama geldiğini açıklayan bir şey
Örnek seçenek listesi
Bahsettiğin sorunlar hata raporları ya da özellik önerileriyle çözülebilir gibi duruyor
Kalite ayarlarını gizlemek, kullanıcının bunları bilmek zorunda kalmaması amacıyla yapılmış olabilir
Basit kapsayıcı dönüşümlerinde yeniden kodlamayı önlemek, bir eşleme tablosuyla çözülebilir
Ben de yakın zamanda ses çıkarma ve küçük resim ekleme işlemleri yaparken böyle bir eşleme eksikliğini hissettim
Videoyu gif’e dönüştürürken her zaman palettegen filtresini kullanıyorum
Örnek komutla birlikte 10 yıl önce yazılmış şu ilgili blog yazısına bakıyorum
Bir web sitesinde animasyonlu gif kullanacaksanız, bunu mp4’e çevirmek dosyayı küçültür, akıcılığı artırır ve renkleri daha doğru verir
Böylece ffmpeg, gifski seviyesine yaklaşabilir
Eskiden gifski bu özellik sayesinde aynı dosya boyutunda daha iyi kalite sunuyordu
Bu yaklaşımı sevdim. Keşke Linux’taki tüm CLI’yi insan dostu hâle getiren bir işletim sistemi olsa
tar,ddgibi birbirinden kopuk komutlar yerine doğal dil tabanlı, tutarlı bir CLI hayal ediyorumÖrneğin:
Otomatik tamamlama ve farklı ifade biçimlerini desteklemesi güzel olurdu. LLM bile gerekmez
“Şu disk değil, öteki!” ya da “sil dedin ama gerçekten tamamen silmek mi istiyorsun?” gibi durumlar çıkar
Ben Linux’un teknik özelliklerinin olduğu gibi korunmasını seviyorum
Örneğin: Başlangıçta ffmpeg sarmalayıcısı olarak yapılmış ama zamanla genel amaçlı bir CLI yardımcısına dönüşmüş
AI sohbet botlarının tek gerçek kullanım alanı ffmpeg komutu yazmak olabilir
Sohbet ederek ihtiyaç duyduğum komutu oluşturuyorum, sık kullandıklarımı da
.commanddosyaları olarak kaydediyorumSorun, Wikipedia ve birkaç veri kümesiyle “zeka” üretilebileceğini sanmakta yatıyor
Ancak bunun için sonucu gösteren, kullanıcının doğrulamasına izin veren ve öğrenmesini sağlayan öğretici türü bir arayüz gerekli
Çünkü ffmpeg için basit bir sarmalayıcı ile işlerin %90’ı çözülebilir
ezff GitHub deposuna erişemiyorum
LLM kullanıp önerilen seçeneklere bakarak gerektiğinde düzeltmek mantıklı görünüyor
Ancak paket adı çakışması olduğu için başka bir isim seçmek daha iyi olur
“ezff” bir Python kütüphanesi olarak, “ez-ffmpeg” ise Rust için bir kütüphane olarak çıkıyor
LLM’ler ffmpeg için harika bir arayüz
Altyazı senkronu gibi konularda 2-3 kez düzeltme gerekse de karmaşık komutları hızlıca üretebiliyorlar
“20 yaygın desenle işin %90’ını çözüyor” açıklaması ilgimi çekti
Bunun AI’ın söylediği bir şey mi yoksa yazarın kendi ifadesi mi olduğunu merak ediyorum
npm mi? Her hafta patlayan güvenlik olaylarını görünce o kaosu geliştirme ortamıma taşımak istemiyorum
AI’ın getireceği paradigma değişimi sonunda “bilgisayarla doğal dille konuşmak” olacak
“Bu filmin yemek sahnesinden bana bir gif yap” gibi komutlar gerçeğe dönüşecek
Bugünkü komut temelli paradigma eninde sonunda ortadan kalkacak
Böyle girişimleri küçümsemeye gerek yok