آموزش کار با FFmpeg در خط فرمان لینوکس ۱

آموزش FFmpeg

در مطلب قبل آموزش نصب FFmpeg را به اشتراک گذاشته ایم، در صورتی که به دنبال آموزش نصب این نرم افزار هستید به مطلب قبل مراجعه فرماید، در این آموزش قصد داریم تا با کارایی این نرم افزار بیشتر آشنا شویم .

فرمت کلی کار با این ابزار به صورت زیر است:

ffmpeg [global options] [options] -i input [options] output

در این دستور input نام ورودی و output نام خروجی است.
در این مطلب همیشه input ورودی و output خروجی را مشخص میکند. لازم به ذکر است که فرمت و کدک فایل ورودی به صورت خودکار تشخیص داده میشود و همچنین فرمت و کدک فایل خروجی نیز، بر اساس پسوند فایل، به صورت خودکار مشخص میشود. اگرچه هرکدام از این موارد نیز قابل تعیین شدن توسط کاربر هستند.
علاوه بر این شما میتوانید در بخشoptions ، با گزینهای بسیار بیشتری، روی عملیات تبدیل کنترل داشته باشید. و همچنین توجه کنید که دو بخش [options [وجود دارد که یکی قبل از فایل ورودی و دیگری قبل از فایل خروجی آورده شده است. دستورات به کار رفته در این دو بخش مشابه اند و هر کدام به ترتیب به فایل ورودی و خروجی اعمال میشوند. اگرچه ما اکثر این تنظیمات را به فایل خروجی اعمال میکنیم ولی در مواردی خاص شاید نیاز باشد برای فایل ورودی نیز برخی گزینها را معین کنیم. از این موارد خاص میتوان به تعیین اندازهی ورودی برای عکسبرداری با وبکم اشاره کرد.

بخش [options global [نیز تنظیمات کلی برنامه را تحت کنترل دارد. تمام گزینههای این بخش به صورت کامل در صفحات راهنمای ffmpeg موجود هستند. برای دیدن این صفحات از دستور ffmpeg man استفاده کنید. از این بخش میتوان به گزینههایی مانند formats -یا codecs -اشاره کرد.

کاربردهای ساده و معمول ffmpeg:

-تبدیل ویدئو به ویدئو یا صوت به صوت :

ffmpeg -i input output

– جدا کردن صوت از فایل :

ffmpeg -i input -nv output

البته در این دستور میتوان nv -را حذف کرد و برنامه به صورت خودکار از روی پسوند فایل خروجی) فرمت صوتی مانند (mp3 تصویر را حذف خواهد کرد. ولی برای اطمینان بیشتر این گزینه را اضافه کردیم .

-جداکردن تصویر از فایل:

ffmpeg -i input -na output

بر خالف دستور قبلی وجود na -ضروری است .

– بریدن بخشی از ویدئو یا صوت:

ffmpeg -i input -codec copy -ss start -t duration output

ورودی و خروجی در دستوز بالا مشخص هستند. بخش copy codec -به برنامه میگوید که از همان کدکهای فایل ورودی استفاده کند، و در صورتی که این بخش را حذف کنید کدکهای پیشفرض ffmpeg جایگزین خواهند شد و ممکن است با افت کیفیت و سرعت تبدیل روبه رو شوید start. زمان شروع برش را مشخص میکند. میتوانید آنرا به ثانیه یا به فرمت S:M:H مشخص کنید که در آن به جای Hساعت، به جای M دقیقه و به جای S ثانیه را بنویسید duration. هم زمان برش را مشخص میکند و مانند start تعیین میشود.
مثال زیر را مشاهده کنید :

ffmpeg -i input.mp4 -codec copy -ss 10 -t 0:1:2 output.mp4

یعنی اینکه از ثانیه ی ۱۰ فایل ورودی به مدت ۱ دقیقه و ۲ ثانیه جدا کن و در خروجی قرار بده.

– گرفتن فیلم از صفحه نمایش :

ffmpeg -f x11grab -r 25 -s size -i :0.0[+x,y] output

بسیار واضح است که output فایل خروجی را مشخص میکند. در بخش size اندازهی نمایشگر خود را برای ضبط تمام صفحه وارد کنید. فرمت ورودی به شکل WxH است ۲۳ که به جای H و W به ترتیب مقادیر ارتفاع و پهنای نمایشگر را قرار دهید. اگر میخواهید ضبط به صورت تمام صفحه انجام نشود اندازهی دلخواه را وارد کنید. در بخش دلخواه [y,x [+میتوانید مشخص کنید که ضبط از مکان مشخصی روی صفحه ی نمایشگر انجام شود. مبدأ این مختصات قسمت پایین چپ نمایشگر شما است.

– گرفتن عکس از صفحه نمایش :

ffmpeg -f x11grab -r 25 -s size -frames 1 -i :0.0[+x,y] output

به اضافه شدن گزینه ی ۱ frames -دقت کنید. این گزینه به برنامه میگوید که فقط یک فریم از ورودی )صفحه نمایش( را ذخیره کند. گزینههای دیگر همانند فیلم برداری است.

فیلمبرداری و عکس برداری با وبکم و دیگر دستگاههای ورودی :

ffmpeg -f video4linux2 -i /dev/video0 output

– فایل خروجی را بدهید تا برایتان ضبط کند. همچنین به جایvideo4linux2 ، در صورتی که نتیجه نگرفتید، میتوانید ازvideo4linuxاستفاده کنید.
– به video0/dev /دقت کنید. این مسیر دستگاه شما در لینوکس است. اکثر وبکم ها از همین مسیر استفاده میکنند ولی اگر میدانید دستگاهتان مسیر دیگری  دارد آن را جایگزین کنید.
– در صورت تمایل برای عکسبرداری، مانند عکسبرداری از صفحهنمایش، گزینه ی -۱ frames را اضافه کنید.

موفق باشید .

  1. rahil - 28 نوامبر 2020

    با سلام. من یک ویدئو که ذاتا SD بوده رو به HD تبذیل کردم و کنار یک ویدئو ذاتا HD گذاشتم. میخواستم ببینم دستوری توی FFMPEG وجود داره که بتونه فریم هایی که دچار تغییر کیفییت شده اند رو تشخیص بده. ممنونم.


همینک دیدگاه خود را برای ما بنویسید!