یکی از روشهای ایجاد گیف یا عکس متحرک از ویدیوها، استفاده از ابزار معروفی به اسم FFMpeg است. با این ابزار قدرتمند میتوانید ویدیو را به عکس متحرکی که رزولوشن و فریمریت دلخواه شما را دارد، تبدیل کنید و حتی افکتهای پردازش تصویر روی ویدیو اعمال کنید تا حجم گیف کمتر شود.
در این مقاله با روش تبدیل ویدیو به GIF توسط FFMpeg آشنا میشویم که از طریق دستورات cmd صورت میگیرد. البته رابط کاربری گرافیکی یا به اصطلاح GUI هم برای این ابزار توانمند وجود دارد اما استفاده از آن به کمک واسط خط دستور هم بسیار ساده است.
ابزار FFMpeg از نظر قابلیتها بسیار عالی است و شاید تنها نقطه ضعف آن، فقدان GUI اصلی است. ممکن است برخی توسعهدهندگان نرمافزار، برای این ابزار، واسط کاربری گرافیکی یا به اختصار GUI طراحی کنند اما با توجه به بروزرسانیهای مرتب FFMpeg، بهترین روش استفاده از آن، یادگیری دستورات ساده و کاربردی است.
برش زدن ویدیو با نرمافزارهای ویرایش ویدیو
برش زدن ویدیوها توسط FFMpeg امکانپذیر است اما بهتر است برای سادهتر شدن استفاده از این ابزار غیرگرافیکی، از نرمافزارهای سادهی ویرایش ویدیو استفاده کنید و بخشی از ویدیوی موردنظر را برش بزنید و سپس برای تبدیل ویدیو به GIF سراغ FFMpeg بروید. در واقع برای برش زدن ویدیو در ویندوز ۱۰ حتی میتوان از اپ Photos هم استفاده کرد که کار را بسیار ساده میکند:
برای برش زدن ویدیو هم میتوان از سوییچ ss و t استفاده کرد. پس از ss زمان شروع به صورت ساعت و دقیقه و ثانیه و هزارم ثانیه ذکر میشود و پس از t نیز مدت زمان ویدیو ذکر میشود. به عنوان مثال برای برش زدن ویدیو با شروع از زمان ۳۰ ثانیه و به مدت ۱۰ ثانیه، از دستور زیر استفاده کنید:
ffmpeg -ss 00:00:30.0 -i video.mp4 -t 00:00:10.0 file.gif
تبدیل ویدیو به GIF با استفاده از FFMpeg
ابتدا آخرین نسخهی FFMpeg را از وبسایت رسمی آن دانلود کنید:
فایل زیپ دانلود شده را در فولدری اکسترکت کنید که دسترسی به آن ساده باشد. وارد فولدر Bin شوید و مسیر فولدر را به صورت کامل از نوار آدرس فایل اکسپلورر ویندوز ۱۰، کپی کنید. حال برای اجرا کردن cmd، کلید میانبر Win + R را فشار دهید و عبارت cmd را تایپ کرده و کلید Enter را فشار دهید.
در پنجرهی واسط خط دستور یا همان Command Prompt ویندوز، دستور زیر را وارد کنید و به جای Path، مسیر فولدر Bin که کپی کردهاید را قرار دهید:
cd path
به عنوان مثال اگر فایل زیپ FFMpeg را در درایو C اکسترکت کردهاید، دستور فوق در مورد نسخهی فعلی FFMpeg به صورت زیر تغییر میکند:
cd C:\ffmpeg-20180821-7e0df59-win64-static\bin
حال برای سادهتر شدن دستورات بعدی که در آن به نام و آدرس فایل ویدیویی و فایل GIF ساختهشده از آن نیاز داریم، ابتدا ویدیوی برشزدهشده را در فولدر Bin کپی کنید.
برای تبدیل ویدیو به GIF از دستور زیر استفاده کنید و نام ویدیو که video.mp4 است و همینطور نام فایل گیفی که از آن ساخته میشود را تغییر دهید:
ffmpeg -i video.mp4 file.gif
ابزار قدرتمند FFMpeg از ویدیوهایی با فرمت AVI و MKV و بسیاری از کدکها و پسوندهای رایج، پشتیبانی میکند. لذا میتوان گفت که تقریباً محدودیتی در تبدیل کردن ویدیو به گیف وجود ندارد.
تبدیل ویدیو به گیف با حجم کم و برش زدن ویدیو
دستور ffmpeg -i video.mp4 file.gif سادهترین حالت تبدیل ویدیو به گیف است اما میتوانید سوییچهای بیشتری استفاده کنید و به عنوان مثال ویدیو را به گیف با ابعاد کوچکتر و همینطور سرعت کمتر از ۲۰ فریم بر ثانیه تبدیل کنید. به این ترتیب حجم فایل گیف کمتر میشود.
برای کاهش فریمریت از عدد ۲۰ فریم بر ثانیه که حالت پیشفرض است به عددی بهینهتر مثل ۱۰ فریم بر ثانیه، از سوییچ r استفاده کنید و پس از آن فاصله و سپس فریمریت دلخواه را قرار دهید:
ffmpeg -i video.mp4 -r 10 file.gif
طبعاً اگر بخواهید حرکات کاملاً طبیعی و نرم باشد، باید فریمریت را به بیش از ۲۴ که در ویدیوهای معمولی استاندارد است، برسانید و حتی میتوانید از فریمریت بسیار بالایی مثل ۶۰ فریم بر ثانیه استفاده کنید که حجم فایل گیف را بسیار زیاد میکند.
ffmpeg -i video.mp4 -r 60 file.gif
در مورد تغییر رزلوشون ویدیو، از سوییچ vf و عبارت scale استفاده کنید. پس از scale میتوانید عرض را بر حسب پیکسل ذکر کنید و همینطور برای تنظیم خودکار ارتفاع عکس متحرک به تناسب عرض، از عدد منفی ۱ استفاده کنید.
به عنوان مثال برای تبدیل ویدیو به گیف با سرعت ۱۰ فریم بر ثانیه و همینطور عرض ۳۶۰ پیکسل و ارتفاعی که به صورت خودکار متناسب با عرض تنظیم میشود، دستور زیر مفید است:
ffmpeg -i video.mp4 -r 10 -vf scale=360:-1 file.gif
در صورت نیاز به ارتفاع خاص و دلخواه، میتوانید به جای منفی ۱ آن را ذکر کنید. مثلاً برای عکس گیف با عرض ۶۴۰ و ارتفاع ۳۶۰ پیکسل از دستور زیر استفاده کنید:
ffmpeg -i video.mp4 -r 10 -vf scale=640:360 file.gif
برای برش زدن و تبدیل ویدیو به کمک FFMpeg با توجه به توضیحات قبلی، میتوانید از دستور زیر استفاده کنید. پس از ss زمان شروع برش ۱۵ ثانیه ذکر شده و مدت کلیپ نیز عدد ۲۰ ثانیه است که پس از سوییچ t ذکر شده است.
ffmpeg -i video.mp4 -ss 15 -t 20 -r 10 -vf scale=360:-1 file.gif
همانطور که میبینید با استفاده از FFMpeg تبدیل ویدیو به گیف بسیار سادهتر از چیزی است که از یک ابزار بدون رابط کاربری گرافیکی انتظار میرود و تقریباً تمام چیزی که برای کاهش حجم فایل گیف نیاز دارید، پیشبینی شده است اما به هر حال برای پردازش تصویر و کاهش جزئیات ویدیو به منظور کم کردن حجم فایل GIF، میبایست از نرمافزارهای تخصصی در این عرصه استفاده کرد که قبلاً به معرفی مواردی پرداختهایم:
addictivetipsسیارهی آیتی
سلام و خسته نباشین.
من درهنگام استفاده از برنامه تبدیل ویدیو مشکل دارم. میخوام یک لوگو با طول و عرض ثابت را روی ویدیوهایی با طول و عرض متفاوت قرار بدم به طوریکه اندازه لوگو در همه ویدیوها یک اندازه باشه. در ویدیوهای با ابعاد بزرگ لوگو کوچیک میشه و در ویدیوهای با ابعاد کوچیک لوگو بزرگ میشه و این مدنظرم نبست. اگر ابعاد ویدیورو هم یکسان در نظر بگیرم یا ویدیو کشیده میشه یا فشرده میشه
سلام
از نرمافزارهای ادیت فیلم و ویدیو که تخصصیتر هستن استفاده کنید چون تنظیمات زیادی دارن برای بحث واترمارک. مثلاً خودم با Wondershare filmora کار میکنم که عالیه.
سلام مجدد.من دارم با ffmpeg در php برنامه مینویسم که خود برنامه این کارهارو اوتومات انجام بده مثل سایت اپارات. از برنامه هایی مثل wondershare filmora نميتونم استقاده کنم چون تعداد زیادی ویدیو برای برنامه ارسال میشه و سایت خودش باید این کارارو انجام بده.
من سرچ کردم گویا با فیلتر Scele2ref میشه به راحتی این کارو انجام داد. مثلاً برای عرض 5 درصد اینجور کدی پیشنهاد داده بودن: