دستور ffmpeg برای تغییر رزولوشن

نوشته حسین بهنودی در ۲۹ شهریور ۱۳۹۸

رزولوشن ویدیو تعداد پیکسل‌های تصویر در هر بعد (طول و عرض) است. این مقدار به قابلیت های صفحه نمایش شما بستگی دارد. در گذشته، نسبت طول به عرض تلویزیون و مانیتورها ۴:۳ بود ولی اکنون اکثرا این نسبت ۱۶:۹ شده است.

در جدول زیر برخی از رزولوشن‌های ویدیو که بیشترین استفاده را دارد آورده شده است.

Standard Aspect ratio Width (px) Height (px)
‌QVGA 4:3 320 240
CGA 16:9 320 180
VGA 4:3 640 480
WVGA 16:9 640 360
SVGA 4:3 800 600
XGA 4:3 1024 768
HD 16:9 1280 720
HD ~16:9 1366 768
HD+ 16:9 1600 900
FHD 16:9 1920 1080
4K UHD 16:9 3840 2160

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

از طرف دیگر هرچه رزولوشن کمتر باشد حجم فایل کوچکتر می‌شود و جابجایی و دانلود آن سریعتر می‌شود. ولی دانستن این نکته هم ضروری است که اگر رزولوشن و کیفیت ویدیو پایین باشد به هیچوجه با بالا بردن رزولوشن نمی‌توان آن را بهتر کرد. پس کاهش رزولوشن برگشت پذیر نیست و اگر رزولوشن را کم کردید و کیفیت کاهش پیدا کرد دیگر نمی‌توانید آن را افزایش دهید.

بنابراین باتوجه به نیازتان باید آن را تعیین کنید. اگر می‌خواهید آن را روی موبایل تماشا کنید از رزولوشن پایین مثل QVGA یا CGA استفاده کنید و اگر می‌خواهید آن را روی تلویزیون بزرگ تماشا کنید رزولوشن را روی HD یا FHD قرار دهید.

چگونه با FFmpeg رزولوشن ویدیو را تغییر دهیم:

هنگام تبدیل فرمت فایل می‌توانید رزولوشن آن را هم تغییر دهید.

گزینه filter:v برای اجرای یک فیلتر روی ویدیو است و  پارامتر scale اندازه تصویر را تعیین می‌کند.

ffmpeg -i input.avi -vf scale=320:180 output.mp4

در مثال بالا فایل input.avi هر رزولوشنی داشته باشد به فایل output.mp4 با رزولوشن 320×180 تبدیل می‌شود.

ممکن است طی این عمل نسبت طول به عرض تصویر تغییر کند و از اشکال از حالت طبیعی خارج شود. برای اینکه نسبت طول به عرض تغییر نکند بجای عرض تصویر 1- قرار دهید. در اینصورت ارتفاع را به نسبت عرض کوچک می‌کند.

ffmpeg -i input.avi -vf scale=320:-1 output.mp4

نکته: H.264 عدد فرد را به عنوان عرض یا طول نمی‌پذیرد. حتما از اعداد زوج استفاده کنید.

گزینه aspect برای تعیین نسبت طول به عرض برای نمایش ویدیو می‌باشد.

ممکن است شما رزولوشن را تغییر دهید ولی همچنان تصویر با نسبت قبلی نمایش داده شود. برای تغییر آن از مقادیر 4:3 یا 16:9 استفاده کنید.

ffmpeg -i input.avi -vf scale=320:180 -aspect 16:9 output.mp4