با سلام و احترام خدمت بازدیدکنندگان عزیز
آموزش و آشنایی با نرم افزار FFmpeg – قسمت دوم – گروه بندی سوئیچ ها
برای مشاهده قسمت اول به
این پست
مراجعه نمایید.
گروه بندی سوئیچ ها
اول از همه،
مانند سایر نرم افزارهای کنسولی، سوئیچهای FFmpeg از یک لحاظ به دو دسته تقسیم میشوند. سوئیچهایی که مقدار ورودی میخواهند و سوئیچهایی که مقداری برای ورودی نمیخواهند. مثلا
-i
مقدار ورودی میخواهد اما
-y
خیر.
در مرحله دوم،
مدل سوئیچهای FFmpeg بصورت
-switch1 value1 -switch2 value2 -switch3 -switch4 value4
هست. یعنی (از چپ به راست) یک خط تیره سپس نام سوئیچ بدون معطلی و بعد یک فاصله و بعد مقدار ورودی سوئیچ (در صورت نیاز اون سوئیچ؛ مثلا
- switch3
در بالا از نوع سوئیچهای بدون مقدار ورودی بود). هر سوئیچ نیز با کارکتر فاصله از سوئیچ قبلی و بعدی خودش جدا میشود. و همانطور که در
آموزش خلاصه از طریقه استفاده مستقیم از نرم افزارهای کنسولی ویدئو و صوت - قسمت دوم
گفته شد اگر مقدار ورودی یک سوئیچ، دارای کارکتر فاصله بود باید escape بشود.
در مرحله سوم،
سوئیچهای FFmpeg از یک لحاظ دیگر به 3 دسته اصلی تقسیم میشوند. کلی، ورودی و خروجی.
دستورات کلی یا global options دستوراتی هستند که به خود FFmpeg مربوط میشوند مانند
-help
که راهنمای FFmpeg را چاپ میکند یا
-loglevel
که نحوه و میزان پرینت گزارش عملیات در حال اجرا را در صفحه مشخص میکند و غیره که این دستورات باید در اولین مکان بعد از فراخوانی ffmpeg.exe در بچ قرار بگیرند.
Input options و output options دستوراتی هستند که به ترتیب برای فایل ورودی و فایل خروجی تعیین میشوند. یعنی تمامی دستوراتی که قبل از "هر" دستور
-i
قرار میدهید بعنوان input option برای همان فایلی که بعنوان ورودی آن
-i
فراخوانی کردید استفاده میشوند. و بعد از
-i
و قبل از تعیین فایل خروجی، دستورات بعنوان output options برای همان فایل خروجی خوانده میشوند. استفاده از سوئیچهای ورودی بعنوان خروجی یا بالعکس شما را با ارور
Option x cannot be applied to input file i -- you are trying to apply an input option to an output file or vice versa.
مواجه میکند.
برخی سوئیچها نیز به اینگونه تعریف شدهاند که بعنوان ورودی، یک کار انجام میدهند و بعنوان خروجی یک کار یعنی برای هر دو مورد تعریف شده اند.
مثلا سوئیچ
-r
که برای تعیین یا تغییر نرخ فریم هست، اگر قبل از
-i
گذاشته بشود به نرم افزار میگوید که در زمان demux کردن فایل فراخوانی شده در آن
-i
، اون را با نرخ فریمی که ما تعیین کردیم مثلا 25 فریم دیماکس کن. ولی وقتی بعنوان output option استفاده کنیم به نرم افزار میگوید نرخ فریم آن خروجی را بکن 25. (معمولا وقتی از دستور
-r
بعنوان دستور ورودی استفاده میشود که نرخ فریم فایل ورودی برای FFmpeg قابل تشخیص نباشد مثلا در هنگام باز کردن یک فایل jpg برای انداختن آن بعنوان لوگو روی ویدئوی).
درون راهنمای خود FFmpeg ورودی و خروجی بودن یک سوئیچ را اینگونه مشخص کرده است:
-ac[:stream_specifier] channels
(input/output,per-stream)
-an
(output)
-acodec codec
(input/output)
-af filtergraph
(output)
و در مرحله چهارم،
از یک لحاظ دیگر سوئیچهای FFmpeg به دو دسته تقسیم میشوند. دسته اول سوئیچهای عمومی یا generic options هستند که به فرض مثال روی همه ی muxerها جواب میدهند و دسته دوم private options یا سوئیچهای خصوصی هستند و تنها روی یک muxer خاص جواب میدهند و اگر برای سایر muxerها استفاده شوند معمولا بی سرو صدا نادیده گرفته خواهند شد. (البته سوئیچهای خصوصی برای encoderها و decoderها و غیره نیز وجود دارند و muxerها در متن بالا تنها یک مثال بود).
امیدوارم به اندازه کافی خلاصه شده باشد
- مشاهده
قسمت سوم