Ez FFmpeg – साधारण English में वीडियो एडिटिंग
(npmjs.com)- ffmpeg कमांड्स को plain English में चलाने के लिए बनाया गया Node.js-आधारित CLI टूल, जिससे जटिल options के बिना आसान वाक्यों में वीडियो एडिटिंग की जा सकती है
ff convert video.mp4 to gifकी तरह कमांड को sentence के रूप में इनपुट करने पर यह अपने-आप ffmpeg कमांड में बदलकर चलाता है- format conversion, compression, trim, audio extraction, resize, speed control, rotate, merge आदि कई तरह के काम सपोर्ट करता है
--dry-runoption के जरिए असली execution के बिना ffmpeg कमांड को पहले से देखा जा सकता है- इंटरनेट कनेक्शन या AI के बिना ऑफ़लाइन तेज़ी से चलता है, और ffmpeg इंस्टॉल किए गए environment में Node.js 16 या उससे ऊपर के साथ इस्तेमाल किया जा सकता है
परिचय
- ezff ffmpeg को आसान बनाने के लिए बनाया गया plain English-आधारित wrapper है
- यूज़र को जटिल ffmpeg flags या manual याद रखने की ज़रूरत नहीं, बल्कि natural language के रूप में कमांड दे सकते हैं
- उदाहरण:
ff convert video.mp4 to gif→ अपने-आप ffmpeg कमांड बनाकर execute करता है
- इसके लिए Node.js 16 या उससे ऊपर और ffmpeg इंस्टॉल होना ज़रूरी है, और npm के ज़रिए
npm install -g ezffसे इंस्टॉल किया जा सकता है
मुख्य फीचर
- interactive prompt mode उपलब्ध
- केवल
ffकमांड देने पर यह file path, काम का प्रकार, output format आदि क्रम से पूछता है - उदाहरण:
? File path: video.mp4 ? What do you want to do? › Convert format ? Convert to: › GIF - चयन करने के बाद ffmpeg कमांड अपने-आप बनती है और चलती है
- केवल
- direct command input mode भी सपोर्ट करता है
- यूज़र अपनी मनचाही क्रिया एक लाइन में लिख सकते हैं
- उदाहरण:
ff convert video.mp4 to mp3ff compress video.mp4 to 10mbff trim video.mp4 from 0:30 to 1:00ff resize video.mp4 to 1280x720ff speed up video.mp4 by 2x
सपोर्टेड कार्यों की सूची
- Convert : format बदलना (
mp4 → gif,mp4 → mp3) - Compress : file size limit सेट करना (
10mbआदि) - Trim : किसी खास हिस्से को निकालना (
from 0:30 to 1:00) - Extract audio : वीडियो से केवल ऑडियो अलग करना
- Resize/Scale : resolution बदलना (
1280x720,720p) - Speed up / Slow down : playback speed बदलना (
2x) - Reverse, Mute, Rotate, Flip, Thumbnail extraction, Merge, Grayscale, Denoise, Stabilize आदि कई तरह के काम सपोर्ट करता है
कमांड प्रीव्यू और आउटपुट
--dry-runoption से असली execution के बिना सिर्फ ffmpeg कमांड आउटपुट किया जा सकता है- उदाहरण:
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
- उदाहरण:
- result file उसी folder में
_outputsuffix के साथ सेव होती है (video_output.gif)
अंदरूनी कार्य संरचना
- इनपुट वाक्य को Parser analyze करता है और action, file, options (जैसे size) निकालता है
- Builder उस जानकारी को ffmpeg कमांड में map करता है
- ffmpeg असली कमांड execute करता है
- पूरी प्रक्रिया AI या API call के बिना offline pattern matching के आधार पर चलती है
इंस्टॉलेशन और environment
- Node.js 16 या उससे ऊपर आवश्यक
- ffmpeg सिस्टम PATH में इंस्टॉल होना चाहिए
- macOS:
brew install ffmpeg - Ubuntu/Debian:
sudo apt install ffmpeg - Windows:
choco install ffmpeg
- macOS:
- यह MIT लाइसेंस के तहत उपलब्ध है, और Pull Request का स्वागत है
सारांश
- ezff एक सरल CLI टूल है जो ffmpeg कमांड सीखने का बोझ कम करता है
- plain English इनपुट से वीडियो एडिटिंग automation संभव बनाता है
- offline, तेज़ execution, और कई फीचर्स के सपोर्ट की वजह से यह डेवलपर्स और वीडियो एडिटिंग शुरू करने वालों दोनों के लिए उपयोगी टूल है
1 टिप्पणियां
Hacker News की राय
यह देखकर हैरानी होती है कि लोग ffmpeg के बुनियादी इस्तेमाल को याद न रखने के लिए कितनी मेहनत करते हैं
सच कहें तो ffmpeg इतना मुश्किल नहीं है, और इसका मैनुअल भी मुख्य कॉन्सेप्ट्स को अच्छी तरह समझाता है
हाँ, डिफ़ॉल्ट सेटिंग्स में re-encoding हो जाना या सिर्फ़ एक stream को रखना जैसी जोखिम वाली बातें हैं, लेकिन
-c copyयाद रहे तो ज़्यादातर दिक्कत नहीं होतीऐसे “जोखिम” छिपाने से उल्टा और बड़ी समस्या हो सकती है। उदाहरण के लिए “ff convert video.mkv to mp4” में साधारण remux ही काफ़ी है, लेकिन यह पूरे वीडियो को फिर से encode कर देता है
“ffmpeg extract audio from video.mp4” भी हर बार mp3 में re-encode कर देता है, जिससे quality गिरती है
multimedia अपने स्वभाव से ही जटिल क्षेत्र है, इसलिए इस जटिलता को छिपाने से यूज़र गलत कॉन्सेप्ट सीख सकते हैं
मुझे लगता है कि सरल wrapper बनाने से बेहतर है कि अच्छे cheatsheet के ज़रिए यूज़र्स को सही कॉन्सेप्ट्स सिखाए जाएँ
इससे मुझे वह बहस याद आती है कि “गरीब लोग बस अच्छी नौकरी क्यों नहीं ढूँढ लेते”
फिर भी समझता हूँ कि तुम्हारा मतलब लोगों को motivate करना है
मुझे वास्तव में interactive script चाहिए। ऐसा कुछ जो पूछे “आप क्या करना चाहते हैं”, फिर उसी हिसाब से command बना दे और हर argument का मतलब भी समझाए
options सूची का उदाहरण
तुम्हारे बताए हुए मुद्दे bug report या feature request से हल हो सकते हैं
quality settings को छिपाने का मकसद शायद यह भी हो सकता है कि यूज़र को उनकी चिंता न करनी पड़े
साधारण container conversion में re-encoding से बचने के लिए mapping table का इस्तेमाल किया जा सकता है
मैंने भी हाल ही में audio extraction और thumbnail जोड़ने का काम करते समय ऐसी mapping की कमी महसूस की
वीडियो को gif में बदलते समय मैं हमेशा palettegen filter का इस्तेमाल करता हूँ
उदाहरण command के साथ 10 साल पुरानी यह संबंधित ब्लॉग पोस्ट देखता हूँ
वेबसाइट पर animation gif इस्तेमाल करते समय उसे mp4 में बदल दें तो फ़ाइल छोटी होती है, motion स्मूद होता है और colors भी ज़्यादा सही रहते हैं
तब ffmpeg, gifski के स्तर तक पहुँच सकता है
पहले इसी feature की वजह से gifski, समान file size में बेहतर quality देता था
यह तरीका मुझे पसंद आया। काश कोई ऐसा OS होता जो पूरे Linux CLI को इंसानों के लिए आसान बना देता
tar,ddजैसे बिखरे हुए commands की जगह natural language पर आधारित एक consistent CLI की कल्पना करता हूँउदाहरण:
अच्छा होगा अगर इसमें autocomplete हो और अलग-अलग तरह की phrasing भी समझे। LLM की भी ज़रूरत नहीं
“वह हार्ड डिस्क नहीं, दूसरी वाली!” “delete मतलब सचमुच पूरी तरह delete?” जैसी स्थितियाँ आ सकती हैं
मुझे Linux की तकनीकी प्रकृति को जस का तस बनाए रखना पसंद है
उदाहरण: यह मूल रूप से ffmpeg wrapper के रूप में शुरू हुआ था, लेकिन अब एक general-purpose CLI helper बन गया है
AI chatbot का एकमात्र उपयोग ffmpeg command लिखना है
बातचीत के ज़रिए ज़रूरी command तैयार कर लो, और जो अक्सर चाहिए उन्हें
.commandफ़ाइल में सेव कर लोसमस्या यह थी कि लोगों ने Wikipedia और थोड़े से data के आधार पर “intelligence” बना लेने का भ्रम पाल लिया
बस इंटरफ़ेस ऐसा tutor-जैसा होना चाहिए जो result दिखाए, और यूज़र को verify करने व सीखने दे
क्योंकि ffmpeg के लिए सरल wrapper बनाकर 90% काम किया जा सकता है
ezff GitHub repository तक पहुँचा नहीं जा रहा
LLM का इस्तेमाल करके सुझाए गए options को देखना और फिर उन्हें edit करना अच्छा तरीका लगता है
लेकिन package name conflict की वजह से कोई और नाम रखना बेहतर होगा
“ezff” खोजने पर Python library मिलती है, और “ez-ffmpeg” Rust की library के रूप में दिखाई देता है
LLM, ffmpeg के लिए शानदार interface है
subtitle sync जैसी चीज़ों के कारण 2-3 बार सुधार करना पड़ सकता है, लेकिन यह जटिल commands जल्दी बना देता है
“20 सामान्य patterns से 90% काम हो जाता है” वाली बात दिलचस्प लगी
जानना चाहता हूँ कि यह AI ने कहा था या लेखक ने खुद
npm? हर हफ़्ते होने वाली security incidents को देखकर, मैं उस अराजकता को अपने development environment में नहीं लाना चाहता
AI जो paradigm shift लाएगा, वह आखिरकार यही है कि कंप्यूटर से natural language में बात करना
“इस फ़िल्म के cooking scenes का gif बना दो” जैसे निर्देश आम हो जाएँगे
आज का command-based paradigm शायद ज़्यादा दिन नहीं टिकेगा
ऐसी कोशिशों को यूँ ही ख़ारिज करने की ज़रूरत नहीं है