- Alat CLI berbasis Node.js yang dibuat agar perintah ffmpeg bisa dijalankan dengan bahasa Inggris biasa, sehingga pengeditan video dapat dilakukan dengan kalimat sederhana tanpa opsi yang rumit
- Jika memasukkan perintah dalam bentuk kalimat seperti
ff convert video.mp4 to gif, alat ini akan otomatis mengubahnya menjadi perintah ffmpeg lalu menjalankannya
- Mendukung berbagai tugas seperti konversi format, kompresi, trim, ekstraksi audio, resize, pengaturan kecepatan, rotasi, penggabungan, dan lain-lain
- Dengan opsi
--dry-run, pengguna dapat melihat terlebih dahulu perintah ffmpeg tanpa benar-benar menjalankannya
- Bekerja cepat secara offline tanpa koneksi internet atau AI, dan dapat digunakan pada lingkungan dengan ffmpeg terpasang serta Node.js 16 atau lebih baru
Ikhtisar
- ezff adalah wrapper berbasis bahasa Inggris biasa yang dibuat untuk mempermudah penggunaan ffmpeg
- Pengguna dapat memasukkan perintah dalam bentuk bahasa alami tanpa perlu menghafal flag ffmpeg yang rumit atau membaca manual
- Contoh:
ff convert video.mp4 to gif → otomatis membuat dan menjalankan perintah ffmpeg
- Memerlukan Node.js 16 atau lebih baru dan ffmpeg yang sudah terpasang, serta bisa diinstal via npm dengan
npm install -g ezff
Fitur utama
- Menyediakan mode prompt interaktif
- Mendukung mode input perintah langsung
- Pengguna dapat memasukkan tugas yang diinginkan dalam satu baris
- Contoh:
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
Daftar tugas yang didukung
- Konversi (Convert) : mengubah format (
mp4 → gif, mp4 → mp3)
- Kompresi (Compress) : menetapkan batas ukuran file (
10mb, dll.)
- Trim (Trim) : mengekstrak bagian tertentu (
from 0:30 to 1:00)
- Ekstraksi audio (Extract audio) : memisahkan audio saja dari video
- Resize (Resize/Scale) : mengubah resolusi (
1280x720, 720p)
- Pengaturan kecepatan (Speed up / Slow down) : mengubah kecepatan pemutaran (
2x)
- Mendukung juga berbagai tugas lain seperti reverse, mute, rotate, flip, thumbnail, merge, grayscale, denoise, stabilize, dan sebagainya
Pratinjau perintah dan output
- Dengan opsi
--dry-run, hanya perintah ffmpeg yang akan ditampilkan tanpa benar-benar dieksekusi
- File hasil disimpan di folder yang sama dengan file asli dengan sufiks
_output (video_output.gif)
Struktur cara kerja internal
- Kalimat input dianalisis oleh Parser untuk mengekstrak action, file, dan opsi (seperti size)
- Builder lalu memetakan informasi tersebut menjadi perintah ffmpeg
- ffmpeg mengeksekusi perintah yang sebenarnya
- Seluruh proses dilakukan secara offline berbasis pattern matching tanpa AI atau pemanggilan API
Instalasi dan lingkungan
- Memerlukan Node.js 16 atau lebih baru
- ffmpeg harus terpasang pada PATH sistem
- macOS:
brew install ffmpeg
- Ubuntu/Debian:
sudo apt install ffmpeg
- Windows:
choco install ffmpeg
- Dirilis dengan lisensi MIT, dan Pull Request sangat diterima
Ringkasan
- ezff adalah alat CLI sederhana yang menghilangkan beban mempelajari perintah ffmpeg
- Memungkinkan otomatisasi pengeditan video hanya dengan input bahasa Inggris biasa
- Dengan offline, eksekusi cepat, dan dukungan banyak fitur, alat ini berguna baik untuk developer maupun pemula dalam edit video
1 komentar
Komentar Hacker News
Saya heran melihat betapa kerasnya orang berusaha agar tidak perlu menghafal cara memakai ffmpeg yang dasar
Sebenarnya ffmpeg tidak sesulit itu, dan manualnya juga menjelaskan konsep inti dengan baik
Memang, setelan bawaan punya jebakan seperti memicu re-encode atau hanya mempertahankan satu stream, tetapi kalau ingat
-c copy, sebagian besar masalah bisa dihindariMenyembunyikan “jebakan” seperti ini justru bisa menimbulkan masalah yang lebih besar. Misalnya, “ff convert video.mkv to mp4” sebenarnya cukup dengan remux sederhana, tetapi malah melakukan re-encode penuh
“ffmpeg extract audio from video.mp4” juga selalu me-re-encode menjadi mp3 sehingga kualitasnya turun
Multimedia pada dasarnya adalah ranah yang kompleks, jadi kalau kompleksitas ini disembunyikan, pengguna malah akan mempelajari konsep yang keliru
Menurut saya, daripada membuat wrapper yang terlalu disederhanakan, lebih baik mendidik pengguna dengan cheat sheet yang bagus tentang konsep yang benar
Ini mengingatkan saya pada perdebatan seperti “kenapa orang miskin tidak cari pekerjaan yang bagus saja”
Meski begitu, saya paham maksudmu adalah memberi motivasi
Yang saya inginkan adalah skrip interaktif. Sesuatu yang bertanya “apa yang ingin kamu lakukan”, lalu membuatkan perintah yang sesuai sambil menjelaskan arti tiap argumennya
Contoh daftar opsi
Masalah yang kamu sebutkan tampaknya bisa diselesaikan lewat bug report atau usulan fitur
Menyembunyikan pengaturan kualitas mungkin memang diniatkan agar pengguna tidak perlu memikirkannya
Menghindari re-encode saat hanya mengubah container bisa ditangani dengan tabel pemetaan
Saya juga baru-baru ini merasakan kurangnya pemetaan seperti itu saat mengekstrak audio dan menambahkan thumbnail
Saat mengonversi video menjadi gif, saya selalu memakai filter palettegen
Bersama contoh perintah, saya juga merujuk ke artikel blog terkait dari 10 tahun lalu
Jika sebuah situs web memakai gif animasi, menggantinya dengan mp4 akan menghasilkan file yang lebih kecil, lebih mulus, dan warna yang lebih akurat
Kalau begitu, ffmpeg bisa naik ke level gifski
Dulu gifski menghasilkan kualitas yang lebih baik pada ukuran file yang sama berkat fitur ini
Saya suka pendekatan seperti ini. Andai ada OS yang membuat seluruh CLI Linux lebih ramah manusia
Saya membayangkan CLI yang konsisten dan berbasis bahasa alami, alih-alih perintah yang serba berbeda seperti
tar,ddContoh:
Akan bagus kalau mendukung auto-complete dan berbagai cara pengungkapan. Tidak perlu sampai pakai LLM
Situasi seperti “bukan hard disk yang itu, yang satunya!” atau “hapus maksudnya benar-benar dihapus total?” bisa terjadi
Saya suka Linux justru karena karakteristik teknisnya tetap dipertahankan
Contoh: Awalnya dibuat sebagai wrapper ffmpeg, tetapi sekarang berkembang menjadi asisten CLI serbaguna
Satu-satunya kegunaan chatbot AI adalah menulis perintah ffmpeg
Kita bisa menyusun perintah yang dibutuhkan lewat percakapan, lalu menyimpan yang sering dipakai sebagai file
.commandMasalahnya, orang jadi keliru mengira “kecerdasan” bisa dibuat hanya dari Wikipedia dan sedikit data lain
Namun antarmukanya harus seperti tutor, menampilkan hasilnya agar pengguna bisa memeriksa, memahami, dan belajar
Karena 90% kebutuhan sebenarnya bisa diselesaikan dengan wrapper sederhana untuk ffmpeg
Saya tidak bisa mengakses repositori GitHub ezff
Sepertinya lebih baik memakai LLM untuk melihat opsi yang diusulkan lalu mengubahnya sesuai kebutuhan
Namun, karena ada konflik nama paket, sebaiknya pakai nama lain
“ezff” muncul sebagai library Python, dan “ez-ffmpeg” muncul sebagai library untuk Rust
LLM adalah antarmuka yang sangat bagus untuk ffmpeg
Memang kadang perlu 2~3 kali revisi untuk hal seperti sinkronisasi subtitle, tetapi tetap bisa menghasilkan perintah rumit dengan cepat
Saya penasaran dengan penjelasan “20 pola umum menangani 90% kebutuhan”
Saya ingin tahu apakah itu ucapan AI, atau memang kata-kata penulisnya sendiri
npm? Melihat insiden keamanan yang meledak hampir setiap minggu, saya tidak ingin membawa kekacauan itu ke lingkungan pengembangan saya
Perubahan paradigma yang dibawa AI pada akhirnya adalah “berbicara kepada komputer dengan bahasa alami”
Perintah seperti “buatkan gif dari adegan memasak di film ini” akan menjadi kenyataan
Paradigma berbasis perintah seperti sekarang pada akhirnya ditakdirkan untuk hilang
Tidak perlu meremehkan upaya seperti ini