2 puan yazan GN⁺ 2025-12-28 | 1 yorum | WhatsApp'ta paylaş
  • 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
    • Yalnızca ff komutunu girerseniz dosya yolu, işlem türü, çıktı biçimi gibi bilgileri sırayla soruyor
    • Örnek:
      ? File path: video.mp4  
      ? What do you want to do? › Convert format  
      ? Convert to: › GIF  
      
    • Seçimden sonra ffmpeg komutu otomatik oluşturulup çalıştırılıyor
  • 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
    • Örnek:
      ff convert video.mp4 to gif --dry-run  
      → ffmpeg -i video.mp4 -vf fps=15,scale=480:-1:flags=lanczos -loop 0 -y video_output.gif
      
  • 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

 
GN⁺ 2025-12-28
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 copy seçeneğini hatırlarsanız çoğu durumda sorun yaşamazsınız
    Bu 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

    • “O kadar da zor değil” derken dikkatli olmak gerekir. Zorluk kişiden kişiye değişir
      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
    • Ben de ffmpeg’i yılda bir kez falan kullanıyorum; sanırım sözdizimini tamamen ezberlemem için 350 yıl falan geçmesi gerekir
    • Sık kullanan biri için kolay olabilir ama benim gibi ayda bir ya da iki ayda bir kullanan biri için zor geliyor
      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
    • “O kadar da zor değil” sözü şaka gibi geliyor. Sonuçta ffmpeg’te binlerce seçenek var
      Örnek seçenek listesi
    • Ben de Python paketleme kavramları için bazen “o kadar da zor değil” diyorum ama ffmpeg komutları neredeyse kendine özgü bir dil gibi hissettiriyor
      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

    • Günümüzde “gif” kelimesi sık sık yanlış kullanılıyor. Aslında mp4 daha verimli
      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
    • pngquant ffmpeg filtresi olarak entegre edilirse daha iyi paletler üretilebilir gibi görünüyor
      Böylece ffmpeg, gifski seviyesine yaklaşabilir
    • ffmpeg’in kare başına palet desteği ekleyip eklemediğini merak ediyorum
      Eskiden gifski bu özellik sayesinde aynı dosya boyutunda daha iyi kalite sunuyordu
    • gifski palet konusunda akıllı davrandığı için iyi bir alternatif
    • Böyle ayarların varsayılan olmaması üzücü
  • Bu yaklaşımı sevdim. Keşke Linux’taki tüm CLI’yi insan dostu hâle getiren bir işletim sistemi olsa
    tar, dd gibi birbirinden kopuk komutlar yerine doğal dil tabanlı, tutarlı bir CLI hayal ediyorum
    Örneğin:

    zip my-folder into my-zip.tar with compression level 9  
    write my-iso ./zip.zip onto external hard drive  
    git delete commit 1a4db4c  
    convert ./video.mp4 and ./audio.mp3 into ./out.mp4  
    merge ./video.mp4 and ./audio.mp3 to ./out.mp4 without re-encoding
    

    Otomatik tamamlama ve farklı ifade biçimlerini desteklemesi güzel olurdu. LLM bile gerekmez

    • Ama böyle doğal dil komutlarında sorun belirsizlik
      “Şu disk değil, öteki!” ya da “sil dedin ama gerçekten tamamen silmek mi istiyorsun?” gibi durumlar çıkar
    • Böyle bir yaklaşımı sevmiyorsanız Windows ya da macOS kullanabilirsiniz
      Ben Linux’un teknik özelliklerinin olduğu gibi korunmasını seviyorum
    • Bu fikri gerçekten hayata geçiren bir helpme betiği var
      Örneğin:
      helpme ffmpeg assemble all the .jpg files into an .mp4 timelapse video at 8fps
      helpme zip my-folder into my-zip.tar with compression level 9
      helpme git delete commit 1a4db4c
      
      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 .command dosyaları olarak kaydediyorum

    • LLM’ler doğal dili ayrıştırma konusunda gerçekten etkileyici bir ilerleme
      Sorun, Wikipedia ve birkaç veri kümesiyle “zeka” üretilebileceğini sanmakta yatıyor
    • Kulağa karamsar gelebilir ama LLM’ler, kullanıcının metin açıklamasını komutlara veya SQL’e dönüştürmekte faydalı
      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
    • Eski AI sistemleri “videoyu 0:00~0:03 oynatıp sonra ters çevirerek döngüye al” gibi bounce efektlerini pek iyi beceremiyordu
    • Yine de böyle bir arayüz, GPU kaynaklarını boşa harcayan verimsiz bir örnek gibi geliyor
      Çünkü ffmpeg için basit bir sarmalayıcı ile işlerin %90’ı çözülebilir
  • ezff GitHub deposuna erişemiyorum

    • Bende de 404 hatası çıkıyor. Sanırım npm sayfasının altındaki bağlantıda sorun var
    • Yine de npm code sekmesinde görülebiliyor
  • 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

    • Yine de tutarlı ve doğrulanmış araçların değeri hâlâ var
      Böyle girişimleri küçümsemeye gerek yok