Mohsen
Mohsen
خواندن ۵ دقیقه·۳ سال پیش

ساخت استیکر متحرک ویدئویی تلگرام با استفاده از FFMpeg

درود.

اگه پیگیر تلگرام و اخبار بروزرسانیهاش باشید، حتما میدونید که از نسخه 8.5 این نرم افزار به بعد، یک قابلیت جدید به نام استیکر ویدئویی (https://core.telegram.org/stickers#video-stickers) اضافه شده که میشه باهاش ویدئوهای جالب رو بجای تبدیل کردن به گیف (جِف) تبدیل به یک پک استیکر کرد.

برای ساخت پک استیکر ویدئویی نیاز هست که این شروط برقرار باشه:

  • One side of the sticker must be exactly 512 pixels in size – the other side can be 512 pixels or less. | طول و یا عرض ویدئو یکیش باید حتما 512 پیکسل باشه و یکیش میتونه از این مقدار کمتر باشه.
  • Video duration must not exceed 3 seconds. | طول ویدئو برای استیکر نباید بیشتر از 3 ثانیه باشه
  • Frame rate can be up to 30 FPS. | فریم ریت میتونه حداکثر 30 فریم باشه
  • Video must have a transparent layer (this is no longer required).
  • Video should be looped for optimal user experience. | این مورد لوپ بودن و اجرای مدام خودش انجام میشه
  • Video size should not exceed 256 KB. | حجم ویدئو نباید بیشتر از 256 کیلوبایت بشه
  • Video must be in .WEBM format encoded with the VP9 codec. | از کدک گفته شده باید استفاده بشه برای فرمت خواسته شده
  • Video must have no audio stream. | و در نهایت ویدئو باید فاقد صدا باشه و میوتش کرد

ما همه این موارد رو به صورت خیلی ساده و با نوشتن چندتا دستور براحتی انجام میدیم. بدون نیاز به هیچ نرم افزار اضافه ای... خب بدون هیچ حرف اضافه دیگه ای میریم سراغ ساخت یه پک استیکر ویدئویی برای تست!

شروع: نصب FFMpeg

اول از همه نیاز دارید که FFMpeg رو روی سیستم عاملتون نصب کنید. FFMpeg یک کتابخونه رایگان، محبوب و معروف کار و دستکاری فرمتهای چندرسانه‌ای - مالتی مدیا هستش (ویدئو، تصویر، صوت و ...). من توی این آموزش کار با نسخه کامند لاین و روی ویندوز رو آموزش میدم و فکر نمیکنم فرق خاصی با لینوکس داشته باشه.

خب برید به این آدرس: https://www.ffmpeg.org/download.html و نسخه متناسب با سیستم عاملتون رو نصب کنید یا از طریق کامند گیتهاب، اون رو دانلود کنید.

برای نصب FFMpeg آموزش تصویری لینک پائین رو دنبال کنید:

https://windowsloop.com/install-ffmpeg-windows-10/#add-ffmpeg-to-Windows-path

بعد از اینکه نصب تموم شد، برای تست اینکه ببینید درست کار میکنه و صحیح نصب شده یا نه برید، توی CMD ویندوز و بنویسید ffmpeg -version و اگه نتیجه ای برگردوند مثل تصویر پائین، یعنی کارها رو درست پیش بردید.

حالا یه پوشه جدید هرجائی که دوست دارید ایجاد کنین، یه تیکه ویدئو با فرمت MP4 داخلش کپی کنین و اسمش رو بذارید input. یعنی در نهایت اسم فایل اصلی باید input.mp4 بشه، و بعد با استفاده از دستور پائین، 3 ثانیه از ویدئوی خودتون رو از هرجائیش که دوست داشتید جدا کنید.

برای نوشتن دستور تو همون پوشه شیفت رو نگه دارید، کلیک راست کنید و بعد بزنید روی گزینه Open PowerShell windows here و بعدشم دستور پائین رو کپی پیست کنید (من از ویندوز 10 استفاده میکنم و نمیدونم پاورشل برای ویندوزهای نسخه پائینتر نصب هست یا نه، اگه نبود از خود CMD استفاده کنین). برای پیست شدن کد کپی شده توی پاورشل، کافیه دکمه کلیک راست رو یه بار بزنید تا پیست بشه:

// trim to 3 second video
ffmpeg -i input.mp4 -ss 00:26 -to 00:29 -c:v libx264 -crf 30 trim.mp4

فکر میکنم کد دستوری بالا واضح باشه ولی بازم توضیح میدم:

نام input.mp4، اسم فایلی هست که قراره یه تیکه 3 ثانیه ای ازش جدا بشه. و اون 00:26 و 00:29 هم زمان شروع و پایان سه ثانیه مد نظرمونه پس باید اینا رو با توجه به کلیپ خودتون عوضش بکنید و در نهایت اون trim.mp4 آخر هم میشه اسم فایل جدید و جدا شده 3 ثانیه ای که بعد از اجرای دستور، بهتون تحویل داده میشه. اینجا به اف‌اف‌امپگ میگید که از ثانیه 26 تا 29 فایل Input.mp4، رو جدا کن و با اسم trim.mp4 برام تو همین پوشه جاری ذخیره کن.


حالا برای مرحله دوم با استفاده از دستور پائین، صدای ویدئوی مرحله قبلی که اسمش شده trim.mp4 رو حذف میکنیم:

//remove audio from video
ffmpeg -i trim.mp4 -c copy -an no_voice.mp4

برای مرحله بعد یعنی مرحله سوم، با استفاده از دستور پائین، سایز ویدئو رو به سایز استاندارد ویدئو استیکر تغییر میدیم:

//resize video with good quailty
ffmpeg -i no_voice.mp4 -vf scale=512:346 -preset slow -crf 18 resize.mp4

و در نهایت با استفاده از دستور آخر، اون رو به فرمت مناسب استیکر ویدئویی یعنی .WEBM و کدک VP9، تبدیل میکنیم:

// VP9 codec
ffmpeg -i resize.mp4 -c:v libvpx-vp9 -c:a libopus final_output.webm

بعد از انجام این مراحل، توی پوشه شما باید یک فایل نهائی 3 ثانیه ای به اسم final_output.webm (تصویر بالا) ایجاد شده باشد. اگر ایجاد نشده یک جای کار رو درست انجام ندادین.

مرحله دوم، آپلود فایل برای ساخت استیکر در ربات:

حالا که فایلمون ایجاد شد برید به ربات رسمی ساخت استیکر در تلگرام یعنی @Stickers. ربات رو باز کنید و از بین گزینه های اون، گزینه جدید /newvideo رو انتخاب کنید. اینجا ازتون میخواد که یه اسم برای پک خودتون وارد کنید. مثلا بزنید VideoStickerPack. بعد ازتون میخواد که فایل ویدئوییتون که با فرمت .webm ساختید رو براش بفرستین که قاعدتا باید این کار رو انجام بدید!

بعد اگه همه چی اوکی باشه از لحاظ سایز، فرمت و ...، میگه یه شکلک بفرستید تا ست بشه روی استیکری که ساختین اونم بفرستید و در نهایت بزنید روی گزینه /publish تا کار ساخت اولین استیکر ویدئوییتون تموم بشه و بتونید توی چتها ازش استفاده کنید.

البته بعد از زدن پابلیش یه سری سوالات دیگه مبنی بر اینکه لینک پکتون باید چی باشه و ... هم میپرسه که اولی رو میتونین skip کنید (این مربوط میشه به ارسال یه پیش نمایش برای پک استیکر که سایز 100*100 باید باشه) و گزینه بعدی باید یه یوزرنیم برای پک وارد کنید که اختصاصی باشه و میشه لینک دسترسی به پک برای ارسال تو گروهها و به اشتراک گذاری با بقیه ... تصویر پایین.

خب امیدوارم که لذت برده باشید و شروع کنید به ساخت پک استکیرهای ویدئویی خفن! اگه سوالی داشتید همینجا کامنت بذارید، اگرم پکی ساختید با استفاده از این آموزش، لینکشو بذارید باز همینجا ببینیم! مخلص.

راستی آدرس کانال آموزشیم اینه: @howCreateBot

و ببخشید که این آموزش مثل آموزشای قدیم با حوصله نوشته نشده، چون واقعا فرصت و حوصله سابق نیست ولی دوست داشتم اینو آموزش بدم. خوش بگذره.

ffmpeg
یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
شاید از این پست‌ها خوشتان بیاید