اخیرا به چالشی برخورده بودم در استفاده از FFmpeg برای کارهای روزمره، چالشها رو لیست کردم و نتیجهش این شد که یک کتابخونهی پایتونی کوچیک بر پایهی FFmpeg پیادهسازی کردم و در GitHub قرار دادم. دربارهش اینجا کوتاه مینویسم.
کتابخونهی Flowmpeg برای وقتی بهخصوص به کار میاد که میخواید با FFmpeg کار جدی انجام بدید، ولی نمیخواید وسط یک دستور چند خطی با ۱۰ تا ورودی، filter label، map و option گم شید. user-friendlyتر از FFmpeg پیادهسازی شده و featureهای ترکیبی داره.
🔻 ایده اصلیش سادهست، به جای اینکه از اول یک دستور FFmpeg خام بسازید، کار رو به شکل یک plan قابل فهم میسازید. بعد میتونید قبل از اجرا، خود دستور دقیق رو ببینید، توضیحش رو بخونید، dry-run بگیرید، یا همون plan رو از داخل پایتون اجرا کنید.
چیزی که برای خودم مهم بود این بود که کارهای مدیا inspectable باشن. مثلا trim، resize، extract audio، watermark، podcast voice cleanup، contact sheet، HLS، DASH، batch conversion، loudness، quality check و یک سری موارد دیگه، همه در قالب shortcut یا command قابل استفادهست، ولی پشتش هنوز یک graph typed و قابل تست هست.
💳 فرقش با یک wrapper ساده اینه که فقط چند دستور آماده دور FFmpeg نمیپیچه. ورودی، خروجی، stream، filter، probe، progress، خطا، overwrite protection و UI محلی براش فکر شده. یعنی هم برای کار سریع ترمینالی جواب میده، هم برای اسکریپت پایتونی، هم برای کسی که میخواد با یک UI لوکال و کارهاش رو عادت داره روی صفحات visual انجام بده.
خود FFmpeg که فوقالعادهست، تنها مشکلی که داشتم معمولا این بود که وقتی دستورها بزرگ میشدن، مرور و اعتماد کردن بهشون سخت میشد. حالا Flowmpeg قرار نیست FFmpeg رو جایگزین کنه، قراره FFmpeg رو قابل خوندن، قابل بررسی و قابل تکرار کنه.
🔗 https://github.com/Imanm02/flowmpeg
✈️ @Mirage_Notes