." -*- mode: troff; coding: utf-8 -*- ." Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) ." .de Sp .if t .sp .5v .if n .sp .. .de Vb .ft CW .nf .ne \\$1 .. .de Ve .ft R .fi .. .ie n \{ . ds C` "" . ds C' "" 'br\} .el\{ . ds C` . ds C' 'br\} .ie \n(.g .ds Aq \(aq .el .ds Aq ' .de IX .. .if n .ds AD l .IX Title "FFPLAY-ALL 1" .TH FFPLAY-ALL 1 " " "FFmpeg" "راهنمای ابزارهای چندرسانه‌ای" .if n .ad l .nh .SH "نام (NAME)" ffplay-all \- مستندات جامع پخش‌کننده چندرسانه‌ای FFplay همراه با تمامی کامپوننت‌ها .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" ffplay [\fIگزینه‌ها\fR] [\fIنشانی_اینترنتی_ورودی\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" برنامه FFplay یک پخش‌کننده رسانه‌ای بسیار ساده و پرتابل است که از کتابخانه‌های FFmpeg و کتابخانه SDL استفاده می‌کند. این برنامه بیشتر به عنوان بستری برای آزمودن رابط‌های برنامه‌نویسی مختلف FFmpeg به کار می‌رود. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" تمامی گزینه‌های عددی، چنانچه به نحو دیگری مشخص نشده باشد، یک رشته نشان‌دهنده یک عدد را به عنوان ورودی می‌پذیرند که ممکن است با یکی از پیشوندهای یکای بین‌المللی (SI) مانند \*(AqK\*(Aq، \*(AqM\*(Aq یا \*(AqG\*(Aq همراه باشد. .PP اگر حرف \*(Aqi\*(Aq به پیشوند یکای SI الحاق شود، پیشوند کامل به عنوان پیشوند برای مضارب دودویی تفسیر می‌شود که بر پایه توان‌های ۱۰۲۴ به جای توان‌های ۱۰۰۰ هستند. افزودن \*(AqB\*(Aq به پیشوند یکای SI مقدار را در ۸ ضرب می‌کند. این اجازه می‌دهد تا به عنوان مثال از \*(AqKB\*(Aq، \*(AqMiB\*(Aq، \*(AqG\*(Aq و \*(AqB\*(Aq به عنوان پسوندهای عددی استفاده شود. .PP گزینه‌هایی که آرگومان دریافت نمی‌کنند، گزینه‌های بولی هستند و مقدار مربوطه را روی درست (true) تنظیم می‌کنند. می‌توان آن‌ها را با افزودن پیشوند "no" به نام گزینه روی نادرست (false) تنظیم کرد. به عنوان مثال استفاده از "\-nofoo" گزینه بولی با نام "foo" را روی false قرار می‌دهد. .PP گزینه‌های دارای آرگومان از یک ساختار نحوی ویژه پشتیبانی می‌کنند که در آن آرگومان داده‌شده در خط فرمان به عنوان مسیری به فایلی تفسیر می‌شود که مقدار واقعی آرگومان از آن بارگیری می‌شود. برای استفاده از این قابلیت، یک ممیز رو به جلو \*(Aq/\*(Aq بلافاصله پیش از نام گزینه (پس از خط تیره ابتدایی) اضافه کنید. برای نمونه: .PP .Vb 1 \& ffplay \-/vf filter.script input.mp4 .Ve .PP توصیف گراف فیلتر را از فایلی به نام \fIfilter.script\fR بارگیری می‌کند. .SS "مشخص‌کننده‌های استریم (Stream specifiers)" .IX Subsection "Stream specifiers" برخی گزینه‌ها به‌ازای‌هر‌استریم اعمال می‌شوند، مانند نرخ بیت (bitrate) یا کدک. مشخص‌کننده‌های استریم برای تعیین دقیق این‌که یک گزینه به کدام استریم (یا استریم‌ها) تعلق دارد به کار می‌روند. .PP مشخص‌کننده استریم رشته‌ای است که عموماً به انتهای نام گزینه الحاق شده و با دو‌نقطه (:) از آن جدا می‌شود. برای مثال، \f(CW\*(C`\-codec:a:1 ac3\*(C'\fR حاوی مشخص‌کننده استریم \f(CW\*(C`a:1\*(C'\fR است که با دومین استریم صوتی مطابقت دارد. بنابراین، کدک ac3 را برای دومین استریم صوتی انتخاب خواهد کرد. .PP یک مشخص‌کننده استریم می‌تواند با چندین استریم مطابقت داشته باشد، به طوری که گزینه بر روی تمامی آن‌ها اعمال شود. برای مثال مشخص‌کننده استریم در \f(CW\*(C`\-b:a 128k\*(C'\fR با تمام استریم‌های صوتی مطابقت دارد. .PP یک مشخص‌کننده استریم خالی با تمام استریم‌ها مطابقت دارد. برای نمونه، \f(CW\*(C`\-codec copy\*(C'\fR یا \f(CW\*(C`\-codec: copy\*(C'\fR تمامی استریم‌ها را بدون انکود مجدد کپی می‌کند. .PP شکل‌های ممکن مشخص‌کننده‌های استریم عبارتند از: .IP \fIstream_index\fR 4 .IX Item "stream_index" با استریم دارای این اندیس مطابقت می‌یابد. برای مثال \f(CW\*(C`\-threads:1 4\*(C'\fR تعداد ریسه‌های دومین استریم را روی 4 تنظیم می‌کند. اگر \fIstream_index\fR به عنوان یک مشخص‌کننده استریم اضافی استفاده شود (به پایین مراجعه کنید)، استریم شماره \fIstream_index\fR را از میان استریم‌های منطبق انتخاب می‌نماید. شماره‌گذاری استریم‌ها بر اساس ترتیب استریم‌ها به گونه‌ای است که توسط libavformat شناسایی شده‌اند، مگر زمانی که مشخص‌کننده گروه استریم یا شناسه برنامه (program ID) نیز مشخص شده باشد. در این حالت بر اساس ترتیب استریم‌ها درون آن گروه یا برنامه خواهد بود. .IP \fIstream_type\fR\fB[:\fR\fIadditional_stream_specifier\fR\fB]\fR 4 .IX Item "stream_type[:additional_stream_specifier]" پارامتر \fIstream_type\fR یکی از موارد زیر است: \*(Aqv\*(Aq یا \*(AqV\*(Aq برای ویدیو، \*(Aqa\*(Aq برای صدا، \*(Aqs\*(Aq برای زیرنویس، \*(Aqd\*(Aq برای داده، و \*(Aqt\*(Aq برای پیوست‌ها. حرف \*(Aqv\*(Aq با تمام استریم‌های ویدیو مطابقت دارد، در حالی که \*(AqV\*(Aq تنها با استریم‌های ویدیویی مطابقت دارد که تصاویر پیوست‌شده، تصاویر بندانگشتی (thumbnails) یا طرح جلد نیستند. اگر \fIadditional_stream_specifier\fR استفاده شود، با استریم‌هایی مطابقت دارد که هم دارای این نوع باشند و هم با \fIadditional_stream_specifier\fR مطابقت داشته باشند. در غیر این صورت، با تمام استریم‌های از نوع مشخص‌شده مطابقت دارد. .IP \fBg:\fR\fIgroup_specifier\fR\fB[:\fR\fIadditional_stream_specifier\fR\fB]\fR 4 .IX Item "g:group_specifier[:additional_stream_specifier]" با استریم‌هایی مطابقت دارد که در گروه دارای مشخص‌کننده \fIgroup_specifier\fR قرار دارند. اگر \fIadditional_stream_specifier\fR استفاده شود، با استریم‌هایی مطابقت دارد که هم بخشی از گروه باشند و هم با \fIadditional_stream_specifier\fR تطابق داشته باشند. \&\fIgroup_specifier\fR می‌تواند یکی از موارد زیر باشد: .RS 4 .IP \fIgroup_index\fR 4 .IX Item "group_index" تطابق با استریم دارای این اندیس گروه. .IP "\fB#\fR\fIgroup_id\fR \fBor i:\fR\fIgroup_id\fR" 4 .IX Item "#group_id or i:group_id" تطابق با استریم دارای این شناسه گروه. .RE .RS 4 .RE .IP \fBp:\fR\fIprogram_id\fR\fB[:\fR\fIadditional_stream_specifier\fR\fB]\fR 4 .IX Item "p:program_id[:additional_stream_specifier]" با استریم‌هایی مطابقت دارد که در برنامه با شناسه \fIprogram_id\fR قرار دارند. اگر \fIadditional_stream_specifier\fR استفاده شود، با استریم‌هایی مطابقت دارد که هم بخشی از برنامه باشند و هم با \fIadditional_stream_specifier\fR مطابقت داشته باشند. .IP "\fB#\fR\fIstream_id\fR \fBor i:\fR\fIstream_id\fR" 4 .IX Item "#stream_id or i:stream_id" تطابق با استریم بر اساس شناسه استریم (مثلاً PID در کانتینر MPEG\-TS). .IP \fBm:\fR\fIkey\fR\fB[:\fR\fIvalue\fR\fB]\fR 4 .IX Item "m:key[:value]" با استریم‌هایی مطابقت دارد که تگ متادیتای \fIkey\fR آن‌ها دارای مقدار مشخص‌شده باشد. اگر \fIvalue\fR داده نشود، با استریم‌هایی که حاوی تگ داده‌شده با هر مقداری باشند مطابقت می‌یابد. نویسه دو‌نقطه \*(Aq:\*(Aq در \fIkey\fR یا \fIvalue\fR باید با بک‌اسلش گریز داده شود (escape شود). .IP \fBdisp:\fR\fIdispositions\fR\fB[:\fR\fIadditional_stream_specifier\fR\fB]\fR 4 .IX Item "disp:dispositions[:additional_stream_specifier]" با استریم‌های دارای وضعیت(های) مشخص‌شده مطابقت دارد. \fIdispositions\fR فهرستی از یک یا چند وضعیت (همان‌طور که توسط گزینه \fB\-dispositions\fR چاپ می‌شود) است که با \*(Aq+\*(Aq به هم پیوسته‌اند. .IP \fBu\fR 4 .IX Item "u" با استریم‌های دارای پیکربندی قابل استفاده مطابقت می‌یابد؛ کدک باید تعریف شده باشد و اطلاعات اساسی مانند ابعاد تصویر یا نرخ نمونه‌برداری صدا باید موجود باشند. .Sp توجه داشته باشید که در \fBffplay\fR، تطابق بر اساس متادیتا تنها برای فایل‌های ورودی به درستی کار خواهد کرد. .SS "گزینه‌های عمومی (Generic options)" .IX Subsection "Generic options" این گزینه‌ها میان تمامی ابزارهای مجموعه ff* به اشتراک گذاشته شده‌اند. .IP "\fB\-L, \-license\fR" 4 .IX Item "-L, -license" نمایش مجوز برنامه. .IP "\fB\-h, \-?, \-help, \-\-help [\fR\fIarg\fR\fB]\fR" 4 .IX Item "-h, -?, -help, --help [arg]" نمایش راهنما. یک پارامتر اختیاری می‌تواند برای دریافت راهنما درباره یک مؤلفه خاص مشخص شود. اگر هیچ آرگومانی مشخص نگردد، تنها گزینه‌های پایه (غیرپیشرفته) ابزار نمایش داده می‌شوند. .Sp مقادیر ممکن برای \fIarg\fR عبارتند از: .RS 4 .IP \fBlong\fR 4 .IX Item "long" چاپ گزینه‌های پیشرفته ابزار علاوه بر گزینه‌های پایه. .IP \fBfull\fR 4 .IX Item "full" چاپ فهرست کامل تمامی گزینه‌ها، شامل گزینه‌های مشترک و اختصاصی برای انکودرها، دیکودرها، دی‌ماکسرها، ماکسرها، فیلترها و غیره. .IP \fBdecoder=\fR\fIdecoder_name\fR 4 .IX Item "decoder=decoder_name" چاپ اطلاعات تفصیلی درباره دیکودر با نام \fIdecoder_name\fR. از گزینه \fB\-decoders\fR برای دریافت فهرستی از تمام دیکودرها استفاده کنید. .IP \fBencoder=\fR\fIencoder_name\fR 4 .IX Item "encoder=encoder_name" چاپ اطلاعات تفصیلی درباره انکودر با نام \fIencoder_name\fR. از گزینه \fB\-encoders\fR برای دریافت فهرستی از تمام انکودرها استفاده کنید. .IP \fBdemuxer=\fR\fIdemuxer_name\fR 4 .IX Item "demuxer=demuxer_name" چاپ اطلاعات تفصیلی درباره دی‌ماکسر با نام \fIdemuxer_name\fR. از گزینه \fB\-formats\fR برای دریافت فهرستی از تمام دی‌ماکسرها و ماکسرها استفاده کنید. .IP \fBmuxer=\fR\fImuxer_name\fR 4 .IX Item "muxer=muxer_name" چاپ اطلاعات تفصیلی درباره ماکسر با نام \fImuxer_name\fR. از گزینه \fB\-formats\fR برای دریافت فهرستی از تمام ماکسرها و دی‌ماکسرها استفاده کنید. .IP \fBfilter=\fR\fIfilter_name\fR 4 .IX Item "filter=filter_name" چاپ اطلاعات تفصیلی درباره فیلتر با نام \fIfilter_name\fR. از گزینه \fB\-filters\fR برای دریافت فهرستی از تمام فیلترها استفاده کنید. .IP \fBbsf=\fR\fIbitstream_filter_name\fR 4 .IX Item "bsf=bitstream_filter_name" چاپ اطلاعات تفصیلی درباره فیلتر بیت‌استریم با نام \fIbitstream_filter_name\fR. از گزینه \fB\-bsfs\fR برای دریافت فهرستی از تمام فیلترهای بیت‌استریم استفاده کنید. .IP \fBprotocol=\fR\fIprotocol_name\fR 4 .IX Item "protocol=protocol_name" چاپ اطلاعات تفصیلی درباره پروتکل با نام \fIprotocol_name\fR. از گزینه \fB\-protocols\fR برای دریافت فهرستی از تمام پروتکل‌ها استفاده نمایید. .RE .RS 4 .RE .IP \fB\-version\fR 4 .IX Item "-version" نمایش نسخه برنامه و کتابخانه‌ها. .IP \fB\-buildconf\fR 4 .IX Item "-buildconf" نمایش پیکربندی ساخت (build)، یک گزینه در هر خط. .IP \fB\-formats\fR 4 .IX Item "-formats" نمایش قالب‌های در دسترس (شامل دستگاه‌ها). .IP \fB\-demuxers\fR 4 .IX Item "-demuxers" نمایش دی‌ماکسرهای در دسترس. .IP \fB\-muxers\fR 4 .IX Item "-muxers" نمایش ماکسرهای در دسترس. .IP \fB\-devices\fR 4 .IX Item "-devices" نمایش دستگاه‌های در دسترس. .IP \fB\-codecs\fR 4 .IX Item "-codecs" نمایش تمام کدک‌های شناخته‌شده برای کتابخانه libavcodec. .Sp توجه داشته باشید که اصطلاح \*(Aqcodec\*(Aq در سرتاسر این مستندات به عنوان یک میان‌بر برای آنچه که به طور دقیق‌تر قالب بیت‌استریم رسانه نامیده می‌شود به کار رفته است. .IP \fB\-decoders\fR 4 .IX Item "-decoders" نمایش دیکودرهای در دسترس. .IP \fB\-encoders\fR 4 .IX Item "-encoders" نمایش تمام انکودرهای در دسترس. .IP \fB\-bsfs\fR 4 .IX Item "-bsfs" نمایش فیلترهای بیت‌استریم در دسترس. .IP \fB\-protocols\fR 4 .IX Item "-protocols" نمایش پروتکل‌های در دسترس. .IP \fB\-filters\fR 4 .IX Item "-filters" نمایش فیلترهای در دسترس کتابخانه libavfilter. .IP \fB\-pix_fmts\fR 4 .IX Item "-pix_fmts" نمایش فرمت‌های پیکسل در دسترس. .IP \fB\-sample_fmts\fR 4 .IX Item "-sample_fmts" نمایش فرمت‌های نمونه صدای در دسترس. .IP \fB\-layouts\fR 4 .IX Item "-layouts" نمایش نام‌های کانال و چیدمان‌های استاندارد کانال. .IP \fB\-dispositions\fR 4 .IX Item "-dispositions" نمایش وضعیت‌های استریم. .IP \fB\-colors\fR 4 .IX Item "-colors" نمایش نام‌های رنگ شناخته‌شده. .IP "\fB\-sources\fR \fIdevice\fR\fB[,\fR\fIopt1\fR\fB=\fR\fIval1\fR\fB[,\fR\fIopt2\fR\fB=\fR\fIval2\fR\fB]...]\fR" 4 .IX Item "-sources device[,opt1=val1[,opt2=val2]...]" نمایش منابع شناسایی‌شده خودکار دستگاه ورودی. برخی دستگاه‌ها ممکن است نام‌های منبع وابسته به سیستم را ارائه دهند که نمی‌توانند به طور خودکار شناسایی شوند. نمی‌توان فرض کرد که فهرست ارائه‌شده همیشه کامل است. .Sp .Vb 1 \& ffmpeg \-sources pulse,server=192.168.0.4 .Ve .IP "\fB\-sinks\fR \fIdevice\fR\fB[,\fR\fIopt1\fR\fB=\fR\fIval1\fR\fB[,\fR\fIopt2\fR\fB=\fR\fIval2\fR\fB]...]\fR" 4 .IX Item "-sinks device[,opt1=val1[,opt2=val2]...]" نمایش مقصدهای (sinks) شناسایی‌شده خودکار دستگاه خروجی. برخی دستگاه‌ها ممکن است نام‌های مقصد وابسته به سیستم را ارائه دهند که به صورت خودکار شناسایی نمی‌شوند. نمی‌توان فرض کرد که فهرست ارائه‌شده همیشه کامل است. .Sp .Vb 1 \& ffmpeg \-sinks pulse,server=192.168.0.4 .Ve .IP "\fB\-loglevel [\fR\fIflags\fR\fB+]\fR\fIloglevel\fR \fB| \-v [\fR\fIflags\fR\fB+]\fR\fIloglevel\fR" 4 .IX Item "-loglevel [flags+]loglevel | -v [flags+]loglevel" تنظیم سطح لاگ‌گیری و فلگ‌های مورد استفاده توسط کتابخانه. .Sp پیشوند اختیاری \fIflags\fR می‌تواند شامل مقادیر زیر باشد: .RS 4 .IP \fBrepeat\fR 4 .IX Item "repeat" نشان می‌دهد که خروجی‌های تکراری لاگ نباید به خط اول فشرده شوند و خط "Last message repeated n times" حذف خواهد شد. .IP \fBlevel\fR 4 .IX Item "level" نشان می‌دهد که خروجی لاگ باید یک پیشوند \f(CW\*(C`[level]\*(C'\fR را به هر خط پیام بیفزاید. این می‌تواند به عنوان جایگزینی برای رنگ‌آمیزی لاگ استفاده شود، مثلاً هنگام ذخیره خروجی لاگ در فایل. .IP \fBtime\fR 4 .IX Item "time" نشان می‌دهد که خطوط لاگ باید با اطلاعات زمان پیشوندگذاری شوند. .IP \fBdatetime\fR 4 .IX Item "datetime" نشان می‌دهد که خطوط لاگ باید با اطلاعات تاریخ و زمان پیشوندگذاری شوند. .RE .RS 4 .Sp فلگ‌ها همچنین می‌توانند به تنهایی با افزودن پیشوند \*(Aq+\*(Aq/\*(Aq\-\*(Aq برای فعال/غیرفعال‌سازی یک فلگ منفرد بدون تأثیر بر سایر \fIflags\fR یا تغییر \fIloglevel\fR استفاده شوند. هنگام تنظیم هم‌زمان \fIflags\fR و \fIloglevel\fR، یک جداکننده \*(Aq+\*(Aq میان آخرین مقدار \fIflags\fR و پیش از \fIloglevel\fR انتظار می‌رود. .Sp پارامتر \fIloglevel\fR یک رشته یا یک عدد حاوی یکی از مقادیر زیر است: .IP "\fBquiet, \-8\fR" 4 .IX Item "quiet, -8" هیچ پیامی نشان ندهد؛ کاملاً ساکت باشد. .IP "\fBpanic, 0\fR" 4 .IX Item "panic, 0" تنها خطاهای مرگباری را نمایش دهد که می‌توانند منجر به کرش و فروپاشی فرایند شوند، مانند شکست assertion. در حال حاضر برای موردی استفاده نمی‌شود. .IP "\fBfatal, 8\fR" 4 .IX Item "fatal, 8" تنها خطاهای مهلک را نشان دهد. این‌ها خطاهایی هستند که پس از آن‌ها فرایند مطلقاً نمی‌تواند ادامه یابد. .IP "\fBerror, 16\fR" 4 .IX Item "error, 16" تمام خطاها را نمایش دهد، از جمله خطاهایی که برنامه قادر به بازیابی از آن‌ها است. .IP "\fBwarning, 24\fR" 4 .IX Item "warning, 24" تمام هشدارها و خطاها را نشان دهد. هر پیامی مرتبط با رویدادهای غیرمنتظره یا احتمالاً نادرست نمایش داده خواهد شد. .IP "\fBinfo, 32\fR" 4 .IX Item "info, 32" پیام‌های اطلاع‌رسانی را در طول پردازش نمایش دهد. این پیام‌ها علاوه بر هشدارها و خطاها است. این مقدار پیش‌فرض است. .IP "\fBverbose, 40\fR" 4 .IX Item "verbose, 40" مشابه \f(CW\*(C`info\*(C'\fR، اما با جزئیات و تفصیل بیشتر. .IP "\fBdebug, 48\fR" 4 .IX Item "debug, 48" همه چیز را نمایش دهد، شامل اطلاعات اشکال‌زدایی. .IP "\fBtrace, 56\fR" 4 .IX Item "trace, 56" .RE .RS 4 .Sp برای مثال جهت فعال‌سازی خروجی تکراری لاگ، افزودن پیشوند \f(CW\*(C`level\*(C'\fR، و تنظیم \fIloglevel\fR روی \f(CW\*(C`verbose\*(C'\fR: .Sp \& ffmpeg \-loglevel repeat+level+verbose \-i input output .Ve .Sp .Sp مثال دیگری که خروجی تکراری لاگ را بدون تأثیر بر وضعیت جاری فلگ پیشوند \f(CW\*(C`level\*(C'\fR یا \fIloglevel\fR فعال می‌سازد: .Sp \& ffmpeg [...] \-loglevel +repeat .Ve .Sp .Sp به طور پیش‌فرض برنامه در stderr لاگ می‌اندازد. اگر رنگ‌آمیزی توسط ترمینال پشتیبانی شود، از رنگ‌ها برای نشانه‌گذاری خطاها و هشدارها استفاده می‌گردد. رنگ‌آمیزی لاگ را می‌توان با تنظیم متغیر محیطی \fBAV_LOG_FORCE_NOCOLOR\fR غیرفعال کرد، یا با تنظیم متغیر محیطی \fBAV_LOG_FORCE_COLOR\fR آن را اجباری نمود. .RE .IP \fB\-report\fR 4 .IX Item "-report" ذخیره کامل خط فرمان و خروجی لاگ در فایلی با نام \f(CW\*(C`\fR\f(CIprogram\fR\f(CW\-\fR\f(CIYYYYMMDD\fR\f(CW\-\fR\f(CIHHMMSS\fR\f(CW.log\*(C'\fR در دایرکتوری جاری. این فایل می‌تواند برای گزارش اشکالات بسیار سودمند باشد. این گزینه همچنین \f(CW\*(C`\-loglevel debug\*(C'\fR را شامل می‌شود. .Sp تنظیم متغیر محیطی \fBFFREPORT\fR روی هر مقداری اثر یکسانی دارد. اگر این مقدار یک دنباله key=value جداشده با \*(Aq:\*(Aq باشد، این گزینه‌ها بر گزارش تأثیر می‌گذارند؛ مقادیر گزینه‌ها چنانچه حاوی نویسه‌های ویژه یا جداکننده گزینه‌ها \*(Aq:\*(Aq باشند باید گریز داده شوند (به بخش "Quoting and escaping" در راهنمای ffmpeg\-utils مراجعه کنید). .Sp گزینه‌های زیر شناخته شده هستند: .RS 4 .IP \fBfile\fR 4 .IX Item "file" تنظیم نام فایل مورد استفاده برای گزارش؛ \f(CW%p\fR به نام برنامه، \f(CW%t\fR به یک برچسب زمانی و \f(CW\*(C`%%\*(C'\fR به یک \f(CW\*(C`%\*(C'\fR ساده گسترش می‌یابد. .IP \fBlevel\fR 4 .IX Item "level" تنظیم سطح پرگویی لاگ با یک مقدار عددی (به \f(CW\*(C`\-loglevel\*(C'\fR مراجعه کنید). .RE .RS 4 .Sp برای مثال، جهت ثبت یک گزارش در فایلی با نام \fIffreport.log\fR با استفاده از سطح لاگ \f(CW32\fR (نام مستعار سطح لاگ \f(CW\*(C`info\*(C'\fR): .Sp \& FFREPORT=file=ffreport.log:level=32 ffmpeg \-i input output .Ve .Sp .Sp خطاها در تجزیه متغیر محیطی مرگبار نیستند و در گزارش ظاهر نخواهند شد. .RE .IP \fB\-hide_banner\fR 4 .IX Item "-hide_banner" جلوگیری از چاپ بنر کپی‌رایت و بیلد. .Sp تمامی ابزارهای FFmpeg معمولاً اطلاعیه حق نشر، گزینه‌های ساخت و نسخه‌های کتابخانه‌ها را نمایش می‌دهند. از این گزینه می‌توان برای جلوگیری از چاپ این اطلاعات استفاده کرد. .IP "\fB\-cpuflags flags (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-cpuflags flags (global)" امکان تنظیم و پاک کردن فلگ‌های پردازنده (CPU) را فراهم می‌سازد. این گزینه برای اهداف آزمایشی در نظر گرفته شده است. از آن استفاده نکنید مگر این‌که بدانید چه کاری انجام می‌دهید. .Sp \& ffmpeg \-cpuflags \-sse+mmx ... \& ffmpeg \-cpuflags mmx ... \& ffmpeg \-cpuflags 0 ... .Ve .Sp .Sp فلگ‌های ممکن برای این گزینه عبارتند از: .RS 4 .IP \fBx86\fR 4 .IX Item "x86" .RS 4 .PD 0 .IP \fBmmx\fR 4 .IX Item "mmx" .IP \fBmmxext\fR 4 .IX Item "mmxext" .IP \fBsse\fR 4 .IX Item "sse" .IP \fBsse2\fR 4 .IX Item "sse2" .IP \fBsse2slow\fR 4 .IX Item "sse2slow" .IP \fBsse3\fR 4 .IX Item "sse3" .IP \fBsse3slow\fR 4 .IX Item "sse3slow" .IP \fBssse3\fR 4 .IX Item "ssse3" .IP \fBatom\fR 4 .IX Item "atom" .IP \fBsse4.1\fR 4 .IX Item "sse4.1" .IP \fBsse4.2\fR 4 .IX Item "sse4.2" .IP \fBavx\fR 4 .IX Item "avx" .IP \fBavx2\fR 4 .IX Item "avx2" .IP \fBxop\fR 4 .IX Item "xop" .IP \fBfma3\fR 4 .IX Item "fma3" .IP \fBfma4\fR 4 .IX Item "fma4" .IP \fB3dnow\fR 4 .IX Item "3dnow" .IP \fB3dnowext\fR 4 .IX Item "3dnowext" .IP \fBbmi1\fR 4 .IX Item "bmi1" .IP \fBbmi2\fR 4 .IX Item "bmi2" .IP \fBcmov\fR 4 .IX Item "cmov" .PD .RE .RS 4 .RE .IP \fBARM\fR 4 .IX Item "ARM" .RS 4 .PD 0 .IP \fBarmv5te\fR 4 .IX Item "armv5te" .IP \fBarmv6\fR 4 .IX Item "armv6" .IP \fBarmv6t2\fR 4 .IX Item "armv6t2" .IP \fBvfp\fR 4 .IX Item "vfp" .IP \fBvfpv3\fR 4 .IX Item "vfpv3" .IP \fBneon\fR 4 .IX Item "neon" .IP \fBsetend\fR 4 .IX Item "setend" .PD .RE .RS 4 .RE .IP \fBAArch64\fR 4 .IX Item "AArch64" .RS 4 .PD 0 .IP \fBarmv8\fR 4 .IX Item "armv8" .IP \fBvfp\fR 4 .IX Item "vfp" .IP \fBneon\fR 4 .IX Item "neon" .PD .RE .RS 4 .RE .IP \fBPowerPC\fR 4 .IX Item "PowerPC" .RS 4 .PD 0 .IP \fBaltivec\fR 4 .IX Item "altivec" .PD .RE .RS 4 .RE .IP "\fBSpecific Processors\fR" 4 .IX Item "Specific Processors" .RS 4 .PD 0 .IP \fBpentium2\fR 4 .IX Item "pentium2" .IP \fBpentium3\fR 4 .IX Item "pentium3" .IP \fBpentium4\fR 4 .IX Item "pentium4" .IP \fBk6\fR 4 .IX Item "k6" .IP \fBk62\fR 4 .IX Item "k62" .IP \fBathlon\fR 4 .IX Item "athlon" .IP \fBathlonxp\fR 4 .IX Item "athlonxp" .IP \fBk8\fR 4 .IX Item "k8" .PD .RE .RS 4 .RE .RE .RS 4 .RE .IP "\fB\-cpucount\fR \fIcount\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-cpucount count (global)" نادیده‌گرفتن تعداد هسته‌های پردازنده شناسایی‌شده. این گزینه برای اهداف آزمایشی در نظر گرفته شده است. از آن استفاده نکنید مگر این‌که بدانید چه کاری انجام می‌دهید. .Sp .Vb 1 \& ffmpeg \-cpucount 2 .Ve .IP "\fB\-max_alloc\fR \fIbytes\fR" 4 .IX Item "-max_alloc bytes" تنظیم سقف حداکثر اندازه برای تخصیص یک بلوک در حافظه هیپ (heap) توسط خانواده توابع malloc در ffmpeg. هنگام استفاده از این گزینه \fBنهایت احتیاط\fR را به خرج دهید. اگر از تمام عواقب انجام آن آگاهی ندارید از آن استفاده نکنید. مقدار پیش‌فرض INT_MAX است. .SS AVOptions .IX Subsection "AVOptions" این گزینه‌ها مستقیماً توسط کتابخانه‌های libavformat، libavdevice و libavcodec ارائه می‌شوند. برای مشاهده فهرست AVOptions موجود، از گزینه \fB\-help\fR استفاده کنید. آن‌ها به دو دسته تقسیم می‌شوند: .IP \fBgeneric\fR 4 .IX Item "generic" این گزینه‌ها را می‌توان برای هر کانتینر، کدک یا دستگاهی تنظیم کرد. گزینه‌های عمومی برای کانتینرها/دستگاه‌ها ذیل گزینه‌های AVFormatContext و برای کدک‌ها ذیل گزینه‌های AVCodecContext فهرست شده‌اند. .IP \fBprivate\fR 4 .IX Item "private" این گزینه‌ها مختص کانتینر، دستگاه یا کدک داده‌شده هستند. گزینه‌های اختصاصی ذیل کانتینرها/دستگاه‌ها/کدک‌های متناظر خود لیست شده‌اند. .PP برای مثال جهت نوشتن یک هدر ID3v2.3 به جای هدر پیش‌فرض ID3v2.4 در یک فایل MP3، از گزینه اختصاصی \fBid3v2_version\fR در ماکسر MP3 استفاده کنید: .PP .Vb 1 \& ffmpeg \-i input.flac \-id3v2_version 3 out.mp3 .Ve .PP تمامی گزینه‌های AVOptions کدک به‌ازای‌هر‌استریم هستند، و بنابراین باید یک مشخص‌کننده استریم به آن‌ها پیوست شود: .PP .Vb 1 \& ffmpeg \-i multichannel.mxf \-map 0:v:0 \-map 0:a:0 \-map 0:a:0 \-c:a:0 ac3 \-b:a:0 640k \-ac:a:1 2 \-c:a:1 aac \-b:2 128k out.mp4 .Ve .PP در مثال فوق، یک استریم صوتی چندکاناله دو بار برای خروجی نگاشت شده است. اولین نمونه با کدک ac3 و نرخ بیت 640k انکود می‌شود. دومین نمونه به ۲ کانال کاهش می‌یابد (downmix) و با کدک aac کدگذاری می‌گردد. نرخ بیت 128k برای آن با استفاده از اندیس مطلق استریم خروجی مشخص شده است. .PP نکته: ساختار \fB\-nooption\fR نمی‌تواند برای AVOptions بولی استفاده شود، از \fB\-option 0\fR/\fB\-option 1\fR استفاده کنید. .PP نکته: شیوه قدیمی و غیرمستند تعیین AVOptions به‌ازای‌هر‌استریم با افزودن پیشوند v/a/s به ابتدای نام گزینه اکنون منسوخ شده است و به زودی حذف خواهد شد. .SS "گزینه‌های اصلی (Main options)" .IX Subsection "Main options" .IP "\fB\-x\fR \fIعرض\fR" 4 .IX Item "-x width" اجبار به نمایش با این عرض (عرض تصویر). .IP "\fB\-y\fR \fIارتفاع\fR" 4 .IX Item "-y height" اجبار به نمایش با این ارتفاع (ارتفاع تصویر). .IP \fB\-fs\fR 4 .IX Item "-fs" شروع در حالت تمام صفحه (fullscreen). .IP \fB\-an\fR 4 .IX Item "-an" غیرفعال کردن صدا. .IP \fB\-vn\fR 4 .IX Item "-vn" غیرفعال کردن ویدیو. .IP \fB\-sn\fR 4 .IX Item "-sn" غیرفعال کردن زیرنویس. .IP "\fB\-ss\fR \fIموقعیت\fR" 4 .IX Item "-ss pos" پرش به موقعیت زمانی مشخص‌شده. توجه داشته باشید که در بیشتر قالب‌ها امکان پرش کاملاً دقیق وجود ندارد، بنابراین \fBffplay\fR به نزدیک‌ترین نقطه کلیدی به این موقعیت پرش می‌کند. .IP "\fB\-t\fR \fIمدت_زمان\fR" 4 .IX Item "-t duration" پخش به میزان مشخص‌شده از صدا/ویدیو (به ثانیه). .IP \fB\-bytes\fR 4 .IX Item "-bytes" پرش بر پایه بایت به جای زمان. .IP \fB\-seek_interval\fR 4 .IX Item "-seek_interval" تنظیم فاصله سفارشی پرش (بر حسب ثانیه) هنگام استفاده از کلیدهای چپ/راست. پیش‌فرض ۱۰ ثانیه است. .IP \fB\-nodisp\fR 4 .IX Item "-nodisp" غیرفعال کردن نمایش گرافیکی تصویر. .IP \fB\-noborder\fR 4 .IX Item "-noborder" نمایش پنجره بدون حاشیه (borderless window). .IP \fB\-alwaysontop\fR 4 .IX Item "-alwaysontop" پنجره همواره در بالا قرار داشته باشد. .IP \fB\-volume\fR 4 .IX Item "-volume" تنظیم بلندی صدای آغازین. 0 به معنای سکوت و 100 به معنای حجم صدای طبیعی بدون کاهش یا افزایش است. .IP "\fB\-f\fR \fIقالب\fR" 4 .IX Item "-f fmt" اجبار قالب فایل ورودی. .IP "\fB\-window_title\fR \fIعنوان\fR" 4 .IX Item "-window_title title" تنظیم عنوان پنجره (پیش‌فرض نام فایل ورودی است). .IP "\fB\-left\fR \fIموقعیت_افقی\fR" 4 .IX Item "-left title" تنظیم موقعیت افقی x برای سمت چپ پنجره (پیش‌فرض پنجره وسط‌چین است). .IP "\fB\-top\fR \fIموقعیت_عمودی\fR" 4 .IX Item "-top title" تنظیم موقعیت عمودی y برای بالای پنجره (پیش‌فرض پنجره وسط‌چین است). .IP "\fB\-loop\fR \fIتعداد\fR" 4 .IX Item "-loop number" تکرار پخش فیلم به میزان <تعداد> بار. مقدار 0 به معنای تکرار نامحدود است. .IP "\fB\-showmode\fR \fIحالت\fR" 4 .IX Item "-showmode mode" تنظیم حالت نمایش مورد استفاده. مقادیر ممکن عبارتند از: .RS 4 .IP "\fB0, video\fR" 4 .IX Item "0, video" نمایش ویدیو .IP "\fB1, waves\fR" 4 .IX Item "1, waves" نمایش امواج صوتی .IP "\fB2, rdft\fR" 4 .IX Item "2, rdft" نمایش باند فرکانس صوتی با استفاده از RDFT .RE .RS 4 .Sp مقدار پیش‌فرض "video" است. با فشردن کلید \fBw\fR می‌توانید بین حالت‌ها جابه‌جا شوید. .RE .IP "\fB\-vf\fR \fIfiltergraph\fR" 4 .IX Item "-vf filtergraph" ایجاد گراف فیلتر مشخص‌شده و استفاده از آن برای فیلتر کردن استریم ویدیو. .IP "\fB\-af\fR \fIfiltergraph\fR" 4 .IX Item "-af filtergraph" گراف فیلتر برای اعمال روی صدای ورودی. .IP "\fB\-i\fR \fIurl\fR" 4 .IX Item "-i input_url" خواندن از نشانی ورودی. .SS "گزینه‌های پیشرفته (Advanced options)" .IX Subsection "Advanced options" .IP \fB\-stats\fR 4 .IX Item "-stats" چاپ آمارهای مختلف پخش شامل مدت استریم، پارامترهای کدک، موقعیت فعلی در استریم و رانش همگام‌سازی صدا/تصویر. برای غیرفعال کردن از \f(CW\*(C`\-nostats\*(C'\fR استفاده کنید. .IP \fB\-fast\fR 4 .IX Item "-fast" بهینه‌سازی‌های غیراستاندارد برای افزایش سرعت. .IP \fB\-genpts\fR 4 .IX Item "-genpts" تولید pts (برچسب‌های زمانی ارائه). .IP "\fB\-sync\fR \fIname\fR" 4 .IX Item "-sync type" تنظیم ساعت مرجع اصلی روی صدا (\f(CW\*(C`type=audio\*(C'\fR)، ویدیو (\f(CW\*(C`type=video\*(C'\fR) یا خارجی (\f(CW\*(C`type=ext\*(C'\fR). پیش‌فرض صدا است. .IP "\fB\-ast\fR \fIتعیین‌کننده_استریم_صدا\fR" 4 .IX Item "-ast audio_stream_specifier" انتخاب استریم صوتی دلخواه با استفاده از تعیین‌کننده استریم داده‌شده. .IP "\fB\-vst\fR \fIتعیین‌کننده_استریم_ویدیو\fR" 4 .IX Item "-vst video_stream_specifier" انتخاب استریم ویدیویی دلخواه با استفاده از تعیین‌کننده استریم داده‌شده. .IP "\fB\-sst\fR \fIتعیین‌کننده_استریم_زیرنویس\fR" 4 .IX Item "-sst subtitle_stream_specifier" انتخاب استریم زیرنویس دلخواه با استفاده از تعیین‌کننده استریم داده‌شده. .IP \fB\-autoexit\fR 4 .IX Item "-autoexit" خروج خودکار از برنامه هنگام پایان یافتن پخش ویدیو. .IP \fB\-exitonkeydown\fR 4 .IX Item "-exitonkeydown" خروج در صورت فشرده شدن هر کلیدی روی صفحه‌کلید. .IP \fB\-exitonmousedown\fR 4 .IX Item "-exitonmousedown" خروج در صورت کلیک شدن هر دکمه‌ای از موش‌واره (ماوس). .IP "\fB\-codec:\fR\fImedia_specifier\fR\fB \fR\fIcodec_name\fR" 4 .IX Item "-codec:media_specifier codec_name" اجبار پیاده‌سازی یک دیکودر خاص برای استریم مشخص‌شده با \fImedia_specifier\fR (شامل \f(CW\*(C`a\*(C'\fR برای صدا، \f(CW\*(C`v\*(C'\fR برای ویدیو و \f(CW\*(C`s\*(C'\fR برای زیرنویس). .IP "\fB\-acodec\fR \fIcodec_name\fR" 4 .IX Item "-acodec codec_name" اجبار دیکودر صوتی خاص. .IP "\fB\-vcodec\fR \fIcodec_name\fR" 4 .IX Item "-vcodec codec_name" اجبار دیکودر ویدیویی خاص. .IP "\fB\-scodec\fR \fIcodec_name\fR" 4 .IX Item "-scodec codec_name" اجبار دیکودر زیرنویس خاص. .IP \fB\-autorotate\fR 4 .IX Item "-autorotate" چرخش خودکار ویدیو بر اساس فراداده فایل. به طور پیش‌فرض فعال است. برای غیرفعال کردن از \fB\-noautorotate\fR استفاده کنید. .IP \fB\-framedrop\fR 4 .IX Item "-framedrop" ریختن فریم‌های ویدیویی (Drop frames) در صورت عدم هماهنگی ویدیو با صدا. .IP \fB\-infbuf\fR 4 .IX Item "-infbuf" نامحدود کردن اندازه بافر ورودی، خواندن هرچه سریع‌تر داده‌ها از ورودی. .IP "\fB\-filter_threads\fR \fInb_threads\fR" 4 .IX Item "-filter_threads nb_threads" تعیین تعداد رشته‌های پردازشی (threads) مورد استفاده برای پایپ‌لاین فیلتر. .IP \fB\-enable_vulkan\fR 4 .IX Item "-enable_vulkan" استفاده از رندرکننده Vulkan به جای رندرکننده داخلی SDL. وابسته به libplacebo است. .IP \fB\-vulkan_params\fR 4 .IX Item "-vulkan_params" پیکربندی ولکان (Vulkan) با استفاده از فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR که با «:» از یکدیگر جدا شده‌اند. .IP \fB\-hwaccel\fR 4 .IX Item "-hwaccel" استفاده از رمزگشایی با شتاب‌دهنده سخت‌افزاری. فعال کردن این گزینه، رندرکننده ولکان را به صورت خودکار فعال خواهد کرد. .IP "\fB\-video_bg\fR \fIالگو\fR" 4 .IX Item "-video_bg pattern" تنظیم الگوی پس‌زمینه ویدیو برای ویدیوهای شفاف (دارای کانال آلفا). برای الگوهای تک‌رنگ ساده می‌توانید از نام رنگ یا کد رنگ به صورتی که در \&\fBبخش Color در راهنمای ffmpeg\-utils\|(1)\fR مشخص شده است استفاده کنید. همچنین می‌توانید از کلمه کلیدی ویژه \f(CW\*(C`tiles\*(C' R برای یک الگوی شطرنجی استفاده کنید که حالت پیش‌فرض نیز است. الگوی \f(CW\*(C`none\*(C' R بدون ترکیب آلفا (alpha blending) رندر را انجام می‌دهد و در واقع کانال آلفا را نادیده می‌گیرد. .SS "هنگام پخش (While playing)" .IX Subsection "While playing" کلیدهای میانبر در زمان پخش: .IP "\fBq, ESC\fR" 4 .IX Item "q, ESC" خروج از برنامه. .IP \fBf\fR 4 .IX Item "f" جابه‌جایی بین حالت تمام‌صفحه و پنجره‌ای. .IP "\fBp, فاصله (SPC)\fR" 4 .IX Item "p, SPC" مکث (Pause) و ادامه پخش. .IP \fBm\fR 4 .IX Item "m" قطع/وصل صدا (Mute). .IP "\fB9, 0\fR" 4 .IX Item "9, 0" .PD 0 .IP "\fB/, *\fR" 4 .IX Item "/, *" .PD کاهش و افزایش حجم صدا به ترتیب. .IP \fBa\fR 4 .IX Item "a" جابه‌جایی بین کانال‌های صوتی در برنامه جاری. .IP \fBv\fR 4 .IX Item "v" جابه‌جایی بین کانال‌های ویدیویی. .IP \fBt\fR 4 .IX Item "t" جابه‌جایی بین کانال‌های زیرنویس در برنامه جاری. .IP \fBc\fR 4 .IX Item "c" جابه‌جایی بین برنامه‌ها (Programs). .IP \fBw\fR 4 .IX Item "w" جابه‌جایی بین حالت‌های نمایش صوتی یا فیلترهای ویدیویی. .IP \fBs\fR 4 .IX Item "s" گام به فریم بعدی (نمایش فریم‌به‌فریم). .IP "\fBچپ/راست (left/right)\fR" 4 .IX Item "left/right" پرش به عقب/جلو به میزان ۱۰ ثانیه (یا فاصله سفارشی با \-seek_interval). .IP "\fBپایین/بالا (down/up)\fR" 4 .IX Item "down/up" پرش به عقب/جلو به میزان ۱ دقیقه. .IP "\fBصفحه بعد/صفحه قبل (page down/page up)\fR" 4 .IX Item "page down/page up" پرش به فصل قبل/بعد (یا ۱۰ دقیقه عقب/جلو در صورت عدم وجود فصل‌ها). .IP "\fBراست‌کلیک موش‌واره (right mouse click)\fR" 4 .IX Item "right mouse click" پرش به درصدی از فایل متناظر با عرض پنجره کلیک‌شده. .IP "\fBدوبار‌کلیک چپ موش‌واره (left mouse double\-click)\fR" 4 .IX Item "left mouse double-click" تغییر وضعیت تمام صفحه. .SH "سینتکس و قالب‌ها (SYNTAX)" .IX Header "SYNTAX" این بخش سینتکس و قالب‌های مورد استفاده توسط کتابخانه‌ها و ابزارهای FFmpeg را شرح می‌دهد. .SS "نقل‌قول و گریز (Quoting and escaping)" .IX Subsection "Quoting and escaping" ابزار FFmpeg سازوکار نقل‌قول و گریز (Quoting and Escaping) زیر را به کار می‌گیرد، مگر اینکه صریحاً چیز دیگری مشخص شده باشد. قواعد زیر اعمال می‌شوند: .IP \(bu 4 \&\fB\*(Aq\fR و \fB\e\fR نویسه‌های ویژه هستند (به ترتیب برای نقل‌قول و گریز/اسکیپ استفاده می‌شوند). علاوه بر آن‌ها، بسته به سینتکس خاصی که اسکیپ و نقل‌قول در آن به کار می‌رود ممکن است نویسه‌های ویژهٔ دیگری نیز وجود داشته باشند. .IP \(bu 4 یک نویسهٔ ویژه با قرار دادن پیشوند \fB\e\fR قبل از آن اسکیپ می‌شود. .IP \(bu 4 تمام نویسه‌های محصور میان \fB\*(Aq\*(Aq\fR به صورت تحت‌اللفظی (literal) در رشتهٔ پردازش‌شده گنجانده می‌شوند. خود نویسهٔ نقل‌قول \fB\*(Aq\fR نمی‌تواند داخل نقل‌قول قرار گیرد، بنابراین ممکن است لازم باشد نقل‌قول را ببندید و آن را اسکیپ کنید. .IP \(bu 4 فاصله‌های خالی (whitespaces) ابتدایی و انتهایی، مگر اینکه اسکیپ یا در نقل‌قول قرار گرفته باشند، از رشتهٔ پردازش‌شده حذف می‌شوند. .PP توجه داشته باشید که هنگام استفاده از خط فرمان یا یک اسکریپت، ممکن است لازم باشد یک سطح دوم از اسکیپ کردن را اضافه کنید، که به سینتکس زبان پوسته (shell) مورد استفاده بستگی دارد. .PP تابع \f(CW\*(C`av_get_token\*(C'\fR تعریف‌شده در \&\fIlibavutil/avstring.h\fR می‌تواند برای تجزیه توکنی که بر اساس قواعد تعریف‌شده در بالا نقل‌قول یا اسکیپ شده است استفاده شود. .PP ابزار \fItools/ffescape\fR در درخت منبع FFmpeg می‌تواند برای نقل‌قول یا اسکیپ کردن خودکار یک رشته در اسکریپت استفاده شود. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 اسکیپ کردن رشتهٔ \f(CW\*(C`Crime d\*(AqAmour\*(C'\fR شامل نویسهٔ ویژهٔ \f(CW\*(C`\*(Aq\*(C'\fR: .Sp .Vb 1 \& Crime d\e\*(AqAmour .Ve .IP \(bu 4 رشته بالا شامل یک کوتیشن است، بنابراین هنگام قرار دادن آن در نقل‌قول، \f(CW\*(C`\*(Aq\*(C'\fR باید اسکیپ شود: .Sp .Vb 1 \& \*(AqCrime d\*(Aq\e\*(Aq\*(AqAmour\*(Aq .Ve .IP \(bu 4 گنجاندن فاصله‌های خالی ابتدایی یا انتهایی با استفاده از نقل‌قول: .Sp .Vb 1 \& \*(Aq this string starts and ends with whitespaces \*(Aq .Ve .IP \(bu 4 اسکیپ کردن و نقل‌قول می‌توانند با هم ترکیب شوند: .Sp .Vb 1 \& \*(Aq The string \*(Aq\e\*(Aqstring\e\*(Aq\*(Aq is a string \*(Aq .Ve .IP \(bu 4 برای گنجاندن یک \fB\e\fR واقعی می‌توانید از اسکیپ کردن یا نقل‌قول استفاده کنید: .Sp .Vb 1 \& \*(Aqc:\efoo\*(Aq can be written as c:\e\efoo .Ve .SS "تاریخ (Date)" .IX Subsection "Date" سینتکس پذیرفته‌شده عبارت است از: .PP .Vb 2 \& [(YYYY\-MM\-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z] \& now .Ve .PP اگر مقدار برابر با "now" باشد، زمان فعلی را می‌گیرد. .PP زمان به عنوان زمان محلی تفسیر می‌شود مگر اینکه Z به آن اضافه شود، که در این صورت به عنوان UTC در نظر گرفته می‌شود. اگر بخش سال-ماه-روز مشخص نشود، سال-ماه-روز فعلی را در نظر می‌گیرد. .SS "مدت زمان (Time duration)" .IX Subsection "Time duration" دو سینتکس پذیرفته‌شده برای بیان مدت زمان وجود دارد: .PP .Vb 1 \& [\-][:]:[....] .Ve .PP \&\fIHH\fR تعداد ساعت‌ها، \fIMM\fR تعداد دقیقه‌ها را با حداکثر ۲ رقم، و \fISS\fR تعداد ثانیه‌ها را با حداکثر ۲ رقم بیان می‌کند. مقدار \fIm\fR در انتها مقدار اعشاری را برای \&\fISS\fR بیان می‌نماید. .PP \&\fIیا\fR .PP .Vb 1 \& [\-]+[....][s|ms|us] .Ve .PP \&\fIS\fR تعداد ثانیه‌ها را همراه با بخش اعشاری اختیاری \&\fIm\fR بیان می‌کند. پسوندهای اختیاری \fBs\fR، \fBms\fR یا \fBus\fR به ترتیب نشان‌دهنده تفسیر مقدار بر حسب ثانیه، میلی‌ثانیه یا میکروثانیه هستند. .PP در هر دو عبارت، علامت اختیاری \fB\-\fR نشان‌دهنده مدت زمان منفی است. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .PP مثال‌های زیر همگی مدت زمان‌های معتبر هستند: .IP \fB55\fR 4 .IX Item "55" 55 ثانیه .IP \fB0.2\fR 4 .IX Item "0.2" 0.2 ثانیه .IP \fB200ms\fR 4 .IX Item "200ms" 200 میلی‌ثانیه، یعنی 0.2s .IP \fB200000us\fR 4 .IX Item "200000us" 200000 میکروثانیه، یعنی 0.2s .IP \fB12:03:45\fR 4 .IX Item "12:03:45" 12 ساعت و 03 دقیقه و 45 ثانیه .IP \fB23.189\fR 4 .IX Item "23.189" 23.189 ثانیه .SS "اندازه ویدیو (Video size)" .IX Subsection "Video size" اندازه ویدیوی منبع را مشخص می‌کند، می‌تواند رشته‌ای به شکل \&\fIwidth\fRx\fIheight\fR یا نام یکی از اختصارات اندازه باشد. .PP اختصارات زیر شناخته‌شده هستند: .IP \fBntsc\fR 4 .IX Item "ntsc" 720x480 .IP \fBpal\fR 4 .IX Item "pal" 720x576 .IP \fBqntsc\fR 4 .IX Item "qntsc" 352x240 .IP \fBqpal\fR 4 .IX Item "qpal" 352x288 .IP \fBsntsc\fR 4 .IX Item "sntsc" 640x480 .IP \fBspal\fR 4 .IX Item "spal" 768x576 .IP \fBfilm\fR 4 .IX Item "film" 352x240 .IP \fBntsc\-film\fR 4 .IX Item "ntsc-film" 352x240 .IP \fBsqcif\fR 4 .IX Item "sqcif" 128x96 .IP \fBqcif\fR 4 .IX Item "qcif" 176x144 .IP \fBcif\fR 4 .IX Item "cif" 352x288 .IP \fB4cif\fR 4 .IX Item "4cif" 704x576 .IP \fB16cif\fR 4 .IX Item "16cif" 1408x1152 .IP \fBqqvga\fR 4 .IX Item "qqvga" 160x120 .IP \fBqvga\fR 4 .IX Item "qvga" 320x240 .IP \fBvga\fR 4 .IX Item "vga" 640x480 .IP \fBsvga\fR 4 .IX Item "svga" 800x600 .IP \fBxga\fR 4 .IX Item "xga" 1024x768 .IP \fBuxga\fR 4 .IX Item "uxga" 1600x1200 .IP \fBqxga\fR 4 .IX Item "qxga" 2048x1536 .IP \fBsxga\fR 4 .IX Item "sxga" 1280x1024 .IP \fBqsxga\fR 4 .IX Item "qsxga" 2560x2048 .IP \fBhsxga\fR 4 .IX Item "hsxga" 5120x4096 .IP \fBwvga\fR 4 .IX Item "wvga" 852x480 .IP \fBwxga\fR 4 .IX Item "wxga" 1366x768 .IP \fBwsxga\fR 4 .IX Item "wsxga" 1600x1024 .IP \fBwuxga\fR 4 .IX Item "wuxga" 1920x1200 .IP \fBwoxga\fR 4 .IX Item "woxga" 2560x1600 .IP \fBwqsxga\fR 4 .IX Item "wqsxga" 3200x2048 .IP \fBwquxga\fR 4 .IX Item "wquxga" 3840x2400 .IP \fBwhsxga\fR 4 .IX Item "whsxga" 6400x4096 .IP \fBwhuxga\fR 4 .IX Item "whuxga" 7680x4800 .IP \fBcga\fR 4 .IX Item "cga" 320x200 .IP \fBega\fR 4 .IX Item "ega" 640x350 .IP \fBhd480\fR 4 .IX Item "hd480" 852x480 .IP \fBhd720\fR 4 .IX Item "hd720" 1280x720 .IP \fBhd1080\fR 4 .IX Item "hd1080" 1920x1080 .IP \fB2k\fR 4 .IX Item "2k" 2048x1080 .IP \fB2kflat\fR 4 .IX Item "2kflat" 1998x1080 .IP \fB2kscope\fR 4 .IX Item "2kscope" 2048x858 .IP \fB4k\fR 4 .IX Item "4k" 4096x2160 .IP \fB4kflat\fR 4 .IX Item "4kflat" 3996x2160 .IP \fB4kscope\fR 4 .IX Item "4kscope" 4096x1716 .IP \fBnhd\fR 4 .IX Item "nhd" 640x360 .IP \fBhqvga\fR 4 .IX Item "hqvga" 240x160 .IP \fBwqvga\fR 4 .IX Item "wqvga" 400x240 .IP \fBfwqvga\fR 4 .IX Item "fwqvga" 432x240 .IP \fBhvga\fR 4 .IX Item "hvga" 480x320 .IP \fBqhd\fR 4 .IX Item "qhd" 960x540 .IP \fB2kdci\fR 4 .IX Item "2kdci" 2048x1080 .IP \fB4kdci\fR 4 .IX Item "4kdci" 4096x2160 .IP \fBuhd2160\fR 4 .IX Item "uhd2160" 3840x2160 .IP \fBuhd4320\fR 4 .IX Item "uhd4320" 7680x4320 .SS "نرخ فریم ویدیو (Video rate)" .IX Subsection "Video rate" نرخ فریم ویدیو را مشخص می‌کند که بر حسب تعداد فریم‌های تولیدشده در هر ثانیه بیان می‌شود. باید رشته‌ای در قالب \&\fIframe_rate_num\fR/\fIframe_rate_den\fR، یک عدد صحیح، یک عدد اعشاری یا یک اختصار معتبر نرخ فریم ویدیو باشد. .PP اختصارات زیر شناخته‌شده هستند: .IP \fBntsc\fR 4 .IX Item "ntsc" 30000/1001 .IP \fBpal\fR 4 .IX Item "pal" 25/1 .IP \fBqntsc\fR 4 .IX Item "qntsc" 30000/1001 .IP \fBqpal\fR 4 .IX Item "qpal" 25/1 .IP \fBsntsc\fR 4 .IX Item "sntsc" 30000/1001 .IP \fBspal\fR 4 .IX Item "spal" 25/1 .IP \fBfilm\fR 4 .IX Item "film" 24/1 .IP \fBntsc\-film\fR 4 .IX Item "ntsc-film" 24000/1001 .SS "نسبت ابعاد (Ratio)" .IX Subsection "Ratio" یک نسبت می‌تواند به صورت یک عبارت محاسباتی، یا به شکل \&\fInumerator\fR:\fIdenominator\fR بیان شود. .PP توجه داشته باشید که نسبت با مقدار بی‌نهایت (1/0) یا منفی معتبر در نظر گرفته می‌شود، بنابراین اگر می‌خواهید این مقادیر را مستثنی کنید باید مقدار بازگردانده‌شده را بررسی نمایید. .PP مقدار تعریف‌نشده می‌تواند با استفاده از رشتهٔ "0:0" بیان شود. .SS "رنگ (Color)" .IX Subsection "Color" می‌تواند نام یک رنگ همان‌طور که در زیر تعریف شده است (تطبیق غیرحساس به حروف بزرگ و کوچک) یا یک توالی \&\f(CW\*(C`[0x|#]RRGGBB[AA]\*(C'\fR باشد که ممکن است با @ و یک رشته به عنوان مولفهٔ آلفا دنبال شود. .PP مولفهٔ آلفا ممکن است رشته‌ای متشکل از "0x" و به دنبال آن یک عدد هگزادسیمال یا یک عدد اعشاری بین 0.0 و 1.0 باشد که مقدار شفافیت (opacity) را نشان می‌دهد (\fB0x00\fR یا \fB0.0\fR به معنی کاملاً شفاف، \fB0xff\fR یا \fB1.0\fR به معنی کاملاً مات است). اگر مولفهٔ آلفا مشخص نشود، \fB0xff\fR در نظر گرفته می‌شود. .PP رشتهٔ \fBrandom\fR منجر به یک رنگ تصادفی خواهد شد. .PP نام‌های رنگ‌های زیر شناخته‌شده هستند: .IP \fBAliceBlue\fR 4 .IX Item "AliceBlue" 0xF0F8FF .IP \fBAntiqueWhite\fR 4 .IX Item "AntiqueWhite" 0xFAEBD7 .IP \fBAqua\fR 4 .IX Item "Aqua" 0x00FFFF .IP \fBAquamarine\fR 4 .IX Item "Aquamarine" 0x7FFFD4 .IP \fBAzure\fR 4 .IX Item "Azure" 0xF0FFFF .IP \fBBeige\fR 4 .IX Item "Beige" 0xF5F5DC .IP \fBBisque\fR 4 .IX Item "Bisque" 0xFFE4C4 .IP \fBBlack\fR 4 .IX Item "Black" 0x000000 .IP \fBBlanchedAlmond\fR 4 .IX Item "BlanchedAlmond" 0xFFEBCD .IP \fBBlue\fR 4 .IX Item "Blue" 0x0000FF .IP \fBBlueViolet\fR 4 .IX Item "BlueViolet" 0x8A2BE2 .IP \fBBrown\fR 4 .IX Item "Brown" 0xA52A2A .IP \fBBurlyWood\fR 4 .IX Item "BurlyWood" 0xDEB887 .IP \fBCadetBlue\fR 4 .IX Item "CadetBlue" 0x5F9EA0 .IP \fBChartreuse\fR 4 .IX Item "Chartreuse" 0x7FFF00 .IP \fBChocolate\fR 4 .IX Item "Chocolate" 0xD2691E .IP \fBCoral\fR 4 .IX Item "Coral" 0xFF7F50 .IP \fBCornflowerBlue\fR 4 .IX Item "CornflowerBlue" 0x6495ED .IP \fBCornsilk\fR 4 .IX Item "Cornsilk" 0xFFF8DC .IP \fBCrimson\fR 4 .IX Item "Crimson" 0xDC143C .IP \fBCyan\fR 4 .IX Item "Cyan" 0x00FFFF .IP \fBDarkBlue\fR 4 .IX Item "DarkBlue" 0x00008B .IP \fBDarkCyan\fR 4 .IX Item "DarkCyan" 0x008B8B .IP \fBDarkGoldenRod\fR 4 .IX Item "DarkGoldenRod" 0xB8860B .IP \fBDarkGray\fR 4 .IX Item "DarkGray" 0xA9A9A9 .IP \fBDarkGreen\fR 4 .IX Item "DarkGreen" 0x006400 .IP \fBDarkKhaki\fR 4 .IX Item "DarkKhaki" 0xBDB76B .IP \fBDarkMagenta\fR 4 .IX Item "DarkMagenta" 0x8B008B .IP \fBDarkOliveGreen\fR 4 .IX Item "DarkOliveGreen" 0x556B2F .IP \fBDarkorange\fR 4 .IX Item "Darkorange" 0xFF8C00 .IP \fBDarkOrchid\fR 4 .IX Item "DarkOrchid" 0x9932CC .IP \fBDarkRed\fR 4 .IX Item "DarkRed" 0x8B0000 .IP \fBDarkSalmon\fR 4 .IX Item "DarkSalmon" 0xE9967A .IP \fBDarkSeaGreen\fR 4 .IX Item "DarkSeaGreen" 0x8FBC8F .IP \fBDarkSlateBlue\fR 4 .IX Item "DarkSlateBlue" 0x483D8B .IP \fBDarkSlateGray\fR 4 .IX Item "DarkSlateGray" 0x2F4F4F .IP \fBDarkTurquoise\fR 4 .IX Item "DarkTurquoise" 0x00CED1 .IP \fBDarkViolet\fR 4 .IX Item "DarkViolet" 0x9400D3 .IP \fBDeepPink\fR 4 .IX Item "DeepPink" 0xFF1493 .IP \fBDeepSkyBlue\fR 4 .IX Item "DeepSkyBlue" 0x00BFFF .IP \fBDimGray\fR 4 .IX Item "DimGray" 0x696969 .IP \fBDodgerBlue\fR 4 .IX Item "DodgerBlue" 0x1E90FF .IP \fBFireBrick\fR 4 .IX Item "FireBrick" 0xB22222 .IP \fBFloralWhite\fR 4 .IX Item "FloralWhite" 0xFFFAF0 .IP \fBForestGreen\fR 4 .IX Item "ForestGreen" 0x228B22 .IP \fBFuchsia\fR 4 .IX Item "Fuchsia" 0xFF00FF .IP \fBGainsboro\fR 4 .IX Item "Gainsboro" 0xDCDCDC .IP \fBGhostWhite\fR 4 .IX Item "GhostWhite" 0xF8F8FF .IP \fBGold\fR 4 .IX Item "Gold" 0xFFD700 .IP \fBGoldenRod\fR 4 .IX Item "GoldenRod" 0xDAA520 .IP \fBGray\fR 4 .IX Item "Gray" 0x808080 .IP \fBGreen\fR 4 .IX Item "Green" 0x008000 .IP \fBGreenYellow\fR 4 .IX Item "GreenYellow" 0xADFF2F .IP \fBHoneyDew\fR 4 .IX Item "HoneyDew" 0xF0FFF0 .IP \fBHotPink\fR 4 .IX Item "HotPink" 0xFF69B4 .IP \fBIndianRed\fR 4 .IX Item "IndianRed" 0xCD5C5C .IP \fBIndigo\fR 4 .IX Item "Indigo" 0x4B0082 .IP \fBIvory\fR 4 .IX Item "Ivory" 0xFFFFF0 .IP \fBKhaki\fR 4 .IX Item "Khaki" 0xF0E68C .IP \fBLavender\fR 4 .IX Item "Lavender" 0xE6E6FA .IP \fBLavenderBlush\fR 4 .IX Item "LavenderBlush" 0xFFF0F5 .IP \fBLawnGreen\fR 4 .IX Item "LawnGreen" 0x7CFC00 .IP \fBLemonChiffon\fR 4 .IX Item "LemonChiffon" 0xFFFACD .IP \fBLightBlue\fR 4 .IX Item "LightBlue" 0xADD8E6 .IP \fBLightCoral\fR 4 .IX Item "LightCoral" 0xF08080 .IP \fBLightCyan\fR 4 .IX Item "LightCyan" 0xE0FFFF .IP \fBLightGoldenRodYellow\fR 4 .IX Item "LightGoldenRodYellow" 0xFAFAD2 .IP \fBLightGreen\fR 4 .IX Item "LightGreen" 0x90EE90 .IP \fBLightGrey\fR 4 .IX Item "LightGrey" 0xD3D3D3 .IP \fBLightPink\fR 4 .IX Item "LightPink" 0xFFB6C1 .IP \fBLightSalmon\fR 4 .IX Item "LightSalmon" 0xFFA07A .IP \fBLightSeaGreen\fR 4 .IX Item "LightSeaGreen" 0x20B2AA .IP \fBLightSkyBlue\fR 4 .IX Item "LightSkyBlue" 0x87CEFA .IP \fBLightSlateGray\fR 4 .IX Item "LightSlateGray" 0x778899 .IP \fBLightSteelBlue\fR 4 .IX Item "LightSteelBlue" 0xB0C4DE .IP \fBLightYellow\fR 4 .IX Item "LightYellow" 0xFFFFE0 .IP \fBLime\fR 4 .IX Item "Lime" 0x00FF00 .IP \fBLimeGreen\fR 4 .IX Item "LimeGreen" 0x32CD32 .IP \fBLinen\fR 4 .IX Item "Linen" 0xFAF0E6 .IP \fBMagenta\fR 4 .IX Item "Magenta" 0xFF00FF .IP \fBMaroon\fR 4 .IX Item "Maroon" 0x800000 .IP \fBMediumAquaMarine\fR 4 .IX Item "MediumAquaMarine" 0x66CDAA .IP \fBMediumBlue\fR 4 .IX Item "MediumBlue" 0x0000CD .IP \fBMediumOrchid\fR 4 .IX Item "MediumOrchid" 0xBA55D3 .IP \fBMediumPurple\fR 4 .IX Item "MediumPurple" 0x9370D8 .IP \fBMediumSeaGreen\fR 4 .IX Item "MediumSeaGreen" 0x3CB371 .IP \fBMediumSlateBlue\fR 4 .IX Item "MediumSlateBlue" 0x7B68EE .IP \fBMediumSpringGreen\fR 4 .IX Item "MediumSpringGreen" 0x00FA9A .IP \fBMediumTurquoise\fR 4 .IX Item "MediumTurquoise" 0x48D1CC .IP \fBMediumVioletRed\fR 4 .IX Item "MediumVioletRed" 0xC71585 .IP \fBMidnightBlue\fR 4 .IX Item "MidnightBlue" 0x191970 .IP \fBMintCream\fR 4 .IX Item "MintCream" 0xF5FFFA .IP \fBMistyRose\fR 4 .IX Item "MistyRose" 0xFFE4E1 .IP \fBMoccasin\fR 4 .IX Item "Moccasin" 0xFFE4B5 .IP \fBNavajoWhite\fR 4 .IX Item "NavajoWhite" 0xFFDEAD .IP \fBNavy\fR 4 .IX Item "Navy" 0x000080 .IP \fBOldLace\fR 4 .IX Item "OldLace" 0xFDF5E6 .IP \fBOlive\fR 4 .IX Item "Olive" 0x808000 .IP \fBOliveDrab\fR 4 .IX Item "OliveDrab" 0x6B8E23 .IP \fBOrange\fR 4 .IX Item "Orange" 0xFFA500 .IP \fBOrangeRed\fR 4 .IX Item "OrangeRed" 0xFF4500 .IP \fBOrchid\fR 4 .IX Item "Orchid" 0xDA70D6 .IP \fBPaleGoldenRod\fR 4 .IX Item "PaleGoldenRod" 0xEEE8AA .IP \fBPaleGreen\fR 4 .IX Item "PaleGreen" 0x98FB98 .IP \fBPaleTurquoise\fR 4 .IX Item "PaleTurquoise" 0xAFEEEE .IP \fBPaleVioletRed\fR 4 .IX Item "PaleVioletRed" 0xD87093 .IP \fBPapayaWhip\fR 4 .IX Item "PapayaWhip" 0xFFEFD5 .IP \fBPeachPuff\fR 4 .IX Item "PeachPuff" 0xFFDAB9 .IP \fBPeru\fR 4 .IX Item "Peru" 0xCD853F .IP \fBPink\fR 4 .IX Item "Pink" 0xFFC0CB .IP \fBPlum\fR 4 .IX Item "Plum" 0xDDA0DD .IP \fBPowderBlue\fR 4 .IX Item "PowderBlue" 0xB0E0E6 .IP \fBPurple\fR 4 .IX Item "Purple" 0x800080 .IP \fBRed\fR 4 .IX Item "Red" 0xFF0000 .IP \fBRosyBrown\fR 4 .IX Item "RosyBrown" 0xBC8F8F .IP \fBRoyalBlue\fR 4 .IX Item "RoyalBlue" 0x4169E1 .IP \fBSaddleBrown\fR 4 .IX Item "SaddleBrown" 0x8B4513 .IP \fBSalmon\fR 4 .IX Item "Salmon" 0xFA8072 .IP \fBSandyBrown\fR 4 .IX Item "SandyBrown" 0xF4A460 .IP \fBSeaGreen\fR 4 .IX Item "SeaGreen" 0x2E8B57 .IP \fBSeaShell\fR 4 .IX Item "SeaShell" 0xFFF5EE .IP \fBSienna\fR 4 .IX Item "Sienna" 0xA0522D .IP \fBSilver\fR 4 .IX Item "Silver" 0xC0C0C0 .IP \fBSkyBlue\fR 4 .IX Item "SkyBlue" 0x87CEEB .IP \fBSlateBlue\fR 4 .IX Item "SlateBlue" 0x6A5ACD .IP \fBSlateGray\fR 4 .IX Item "SlateGray" 0x708090 .IP \fBSnow\fR 4 .IX Item "Snow" 0xFFFAFA .IP \fBSpringGreen\fR 4 .IX Item "SpringGreen" 0x00FF7F .IP \fBSteelBlue\fR 4 .IX Item "SteelBlue" 0x4682B4 .IP \fBTan\fR 4 .IX Item "Tan" 0xD2B48C .IP \fBTeal\fR 4 .IX Item "Teal" 0x008080 .IP \fBThistle\fR 4 .IX Item "Thistle" 0xD8BFD8 .IP \fBTomato\fR 4 .IX Item "Tomato" 0xFF6347 .IP \fBTurquoise\fR 4 .IX Item "Turquoise" 0x40E0D0 .IP \fBViolet\fR 4 .IX Item "Violet" 0xEE82EE .IP \fBWheat\fR 4 .IX Item "Wheat" 0xF5DEB3 .IP \fBWhite\fR 4 .IX Item "White" 0xFFFFFF .IP \fBWhiteSmoke\fR 4 .IX Item "WhiteSmoke" 0xF5F5F5 .IP \fBYellow\fR 4 .IX Item "Yellow" 0xFFFF00 .IP \fBYellowGreen\fR 4 .IX Item "YellowGreen" 0x9ACD32 .SS "چینش کانال‌ها (Channel Layout)" .IX Subsection "Channel Layout" چینش کانال‌ها آرایش مکانی کانال‌ها را در یک استریم صوتی چندکاناله مشخص می‌کند. برای مشخص کردن چینش کانال، FFmpeg از سینتکس ویژه‌ای استفاده می‌نماید. .PP کانال‌های منفرد با یک شناسه همان‌طور که در جدول زیر آمده است مشخص می‌شوند: .IP \fBFL\fR 4 .IX Item "FL" جلوی چپ (front left) .IP \fBFR\fR 4 .IX Item "FR" جلوی راست (front right) .IP \fBFC\fR 4 .IX Item "FC" جلوی مرکز (front center) .IP \fBLFE\fR 4 .IX Item "LFE" فرکانس پایین / ساب‌ووفر (low frequency) .IP \fBBL\fR 4 .IX Item "BL" عقب چپ (back left) .IP \fBBR\fR 4 .IX Item "BR" عقب راست (back right) .IP \fBFLC\fR 4 .IX Item "FLC" جلوی متمایل به چپِ مرکز .IP \fBFRC\fR 4 .IX Item "FRC" جلوی متمایل به راستِ مرکز .IP \fBBC\fR 4 .IX Item "BC" عقب مرکز .IP \fBSL\fR 4 .IX Item "SL" سمت چپ (side left) .IP \fBSR\fR 4 .IX Item "SR" سمت راست (side right) .IP \fBTC\fR 4 .IX Item "TC" بالای مرکز .IP \fBTFL\fR 4 .IX Item "TFL" بالای جلو چپ .IP \fBTFC\fR 4 .IX Item "TFC" بالای جلو مرکز .IP \fBTFR\fR 4 .IX Item "TFR" بالای جلو راست .IP \fBTBL\fR 4 .IX Item "TBL" بالای عقب چپ .IP \fBTBC\fR 4 .IX Item "TBC" بالای عقب مرکز .IP \fBTBR\fR 4 .IX Item "TBR" بالای عقب راست .IP \fBDL\fR 4 .IX Item "DL" داون‌میکس چپ .IP \fBDR\fR 4 .IX Item "DR" داون‌میکس راست .IP \fBWL\fR 4 .IX Item "WL" عریض چپ .IP \fBWR\fR 4 .IX Item "WR" عریض راست .IP \fBSDL\fR 4 .IX Item "SDL" فراگیر مستقیم چپ .IP \fBSDR\fR 4 .IX Item "SDR" فراگیر مستقیم راست .IP \fBLFE2\fR 4 .IX Item "LFE2" فرکانس پایین ۲ .PP ترکیب‌های استاندارد چینش کانال را می‌توان با شناسه‌های زیر مشخص کرد: .IP \fBmono\fR 4 .IX Item "mono" FC .IP \fBstereo\fR 4 .IX Item "stereo" FL+FR .IP \fB2.1\fR 4 .IX Item "2.1" FL+FR+LFE .IP \fB3.0\fR 4 .IX Item "3.0" FL+FR+FC .IP \fB3.0(back)\fR 4 .IX Item "3.0(back)" FL+FR+BC .IP \fB4.0\fR 4 .IX Item "4.0" FL+FR+FC+BC .IP \fBquad\fR 4 .IX Item "quad" FL+FR+BL+BR .IP \fBquad(side)\fR 4 .IX Item "quad(side)" FL+FR+SL+SR .IP \fB3.1\fR 4 .IX Item "3.1" FL+FR+FC+LFE .IP \fB5.0\fR 4 .IX Item "5.0" FL+FR+FC+BL+BR .IP \fB5.0(side)\fR 4 .IX Item "5.0(side)" FL+FR+FC+SL+SR .IP \fB4.1\fR 4 .IX Item "4.1" FL+FR+FC+LFE+BC .IP \fB5.1\fR 4 .IX Item "5.1" FL+FR+FC+LFE+BL+BR .IP \fB5.1(side)\fR 4 .IX Item "5.1(side)" FL+FR+FC+LFE+SL+SR .IP \fB6.0\fR 4 .IX Item "6.0" FL+FR+FC+BC+SL+SR .IP \fB6.0(front)\fR 4 .IX Item "6.0(front)" FL+FR+FLC+FRC+SL+SR .IP \fB3.1.2\fR 4 .IX Item "3.1.2" FL+FR+FC+LFE+TFL+TFR .IP \fBhexagonal\fR 4 .IX Item "hexagonal" FL+FR+FC+BL+BR+BC .IP \fB6.1\fR 4 .IX Item "6.1" FL+FR+FC+LFE+BC+SL+SR .IP \fB6.1\fR 4 .IX Item "6.1" FL+FR+FC+LFE+BL+BR+BC .IP \fB6.1(front)\fR 4 .IX Item "6.1(front)" FL+FR+LFE+FLC+FRC+SL+SR .IP \fB7.0\fR 4 .IX Item "7.0" FL+FR+FC+BL+BR+SL+SR .IP \fB7.0(front)\fR 4 .IX Item "7.0(front)" FL+FR+FC+FLC+FRC+SL+SR .IP \fB7.1\fR 4 .IX Item "7.1" FL+FR+FC+LFE+BL+BR+SL+SR .IP \fB7.1(wide)\fR 4 .IX Item "7.1(wide)" FL+FR+FC+LFE+BL+BR+FLC+FRC .IP \fB7.1(wide\-side)\fR 4 .IX Item "7.1(wide-side)" FL+FR+FC+LFE+FLC+FRC+SL+SR .IP \fB5.1.2\fR 4 .IX Item "5.1.2" FL+FR+FC+LFE+BL+BR+TFL+TFR .IP \fBoctagonal\fR 4 .IX Item "octagonal" FL+FR+FC+BL+BR+BC+SL+SR .IP \fBcube\fR 4 .IX Item "cube" FL+FR+BL+BR+TFL+TFR+TBL+TBR .IP \fB5.1.4\fR 4 .IX Item "5.1.4" FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR .IP \fB7.1.2\fR 4 .IX Item "7.1.2" FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR .IP \fB7.1.4\fR 4 .IX Item "7.1.4" FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR .IP \fB7.2.3\fR 4 .IX Item "7.2.3" FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBC+LFE2 .IP \fB9.1.4\fR 4 .IX Item "9.1.4" FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR .IP \fB9.1.6\fR 4 .IX Item "9.1.6" FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR+TSL+TSR .IP \fBhexadecagonal\fR 4 .IX Item "hexadecagonal" FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR .IP \fBbinaural\fR 4 .IX Item "binaural" BIL+BIR .IP \fBdownmix\fR 4 .IX Item "downmix" DL+DR .IP \fB22.2\fR 4 .IX Item "22.2" FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR .PP یک چینش کانال سفارشی می‌تواند به صورت توالی‌ای از عبارت‌ها که با \*(Aq+\*(Aq جدا شده‌اند مشخص شود. هر عبارت می‌تواند یکی از موارد زیر باشد: .IP \(bu 4 نام یک کانال منفرد (مانند \fBFL\fR، \fBFR\fR، \fBFC\fR، \fBLFE\fR و غیره)، که هر کدام اختیاری می‌تواند شامل یک نام سفارشی پس از \*(Aq@\*(Aq باشد (مانند \fBFL@Left\fR، \&\fBFR@Right\fR، \fBFC@Center\fR، \fBLFE@Low_Frequency\fR و غیره) .PP یک چینش کانال استاندارد می‌تواند با موارد زیر مشخص شود: .IP \(bu 4 نام یک کانال منفرد (مانند \fBFL\fR، \fBFR\fR، \fBFC\fR، \fBLFE\fR و غیره) .IP \(bu 4 نام یک چینش کانال استاندارد (مانند \fBmono\fR، \&\fBstereo\fR، \fB4.0\fR، \fBquad\fR، \fB5.0\fR و غیره) .IP \(bu 4 تعداد کانال‌ها، به صورت ده‌دهی، به همراه \*(Aqc\*(Aq در انتها، که چینش کانال پیش‌فرض را برای آن تعداد کانال ایجاد می‌کند (تابع \&\f(CW\*(C`av_channel_layout_default\*(C'\fR را ببینید). توجه داشته باشید که همه تعداد کانال‌ها چینش پیش‌فرض ندارند. .IP \(bu 4 تعداد کانال‌ها، به صورت ده‌دهی، به همراه \*(AqC\*(Aq در انتها، که یک چینش کانال ناشناخته را با تعداد کانال مشخص‌شده ارائه می‌دهد. توجه داشته باشید که همه رشته‌های تعیین چینش کانال از چینش‌های کانال ناشناخته پشتیبانی نمی‌کنند. .IP \(bu 4 یک ماسک چینش کانال، به صورت هگزادسیمال که با "0x" شروع می‌شود (ماکروهای \&\f(CW\*(C`AV_CH_*\*(C'\fR را در \fIlibavutil/channel_layout.h\fR ببینید). .PP قبل از نسخه 53 کتابخانه libavutil نویسهٔ انتهایی "c" برای مشخص کردن تعداد کانال‌ها اختیاری بود، اما اکنون الزامی است، در حالی که ماسک چینش کانال می‌تواند به صورت یک عدد ده‌دهی نیز مشخص شود (تنها در صورتی که با "c" یا "C" دنبال نشده باشد). .PP همچنین تابع \f(CW\*(C`av_channel_layout_from_string\*(C'\fR تعریف‌شده در \&\fIlibavutil/channel_layout.h\fR را ببینید. .SH "ارزیابی عبارات محاسباتی (EXPRESSION EVALUATION)" .IX Header "EXPRESSION EVALUATION" هنگام ارزیابی یک عبارت حسابی، FFmpeg از یک ارزیاب فرمول داخلی استفاده می‌کند که از طریق رابط \fIlibavutil/eval.h\fR پیاده‌سازی شده است. .PP یک عبارت می‌تواند شامل عملگرهای یکانی، دودویی، ثابت‌ها و توابع باشد. .PP دو عبارت \fIexpr1\fR و \fIexpr2\fR می‌توانند برای تشکیل عبارت دیگری به شکل "\fIexpr1\fR;\fIexpr2\fR" ترکیب شوند. \&\fIexpr1\fR و \fIexpr2\fR به نوبت ارزیابی می‌شوند، و عبارت جدید به مقدار \fIexpr2\fR ارزیابی می‌گردد. .PP عملگرهای دودویی زیر در دسترس هستند: \f(CW\*(C`+\*(C'\fR، \f(CW\*(C`\-\*(C'\fR، \&\f(CW\*(C`*\*(C'\fR، \f(CW\*(C`/\*(C'\fR، \f(CW\*(C`^\*(C'\fR. .PP عملگرهای یکانی زیر در دسترس هستند: \f(CW\*(C`+\*(C'\fR، \f(CW\*(C`\-\*(C'\fR. .PP برخی متغیرهای داخلی می‌توانند برای ذخیره و بارگذاری نتایج واسط استفاده شوند. آن‌ها با استفاده از توابع \f(CW\*(C`ld\*(C'\fR و \f(CW\*(C`st\*(C'\fR با یک آرگومان نمایه متغیر از 0 تا 9 برای تعیین متغیر داخلی مورد نظر قابل دسترسی هستند. .PP توابع زیر در دسترس هستند: .IP \fBabs(x)\fR 4 .IX Item "abs(x)" محاسبه قدر مطلق \fIx\fR. .IP \fBacos(x)\fR 4 .IX Item "acos(x)" محاسبه آرک‌کوسینوس \fIx\fR. .IP \fBasin(x)\fR 4 .IX Item "asin(x)" محاسبه آرک‌سینوس \fIx\fR. .IP \fBatan(x)\fR 4 .IX Item "atan(x)" محاسبه آرک‌تانژانت \fIx\fR. .IP "\fBatan2(y, x)\fR" 4 .IX Item "atan2(y, x)" محاسبه مقدار اصلی آرک‌تانژانت \fIy\fR/\fIx\fR. .IP "\fBbetween(x, min, max)\fR" 4 .IX Item "between(x, min, max)" بازگرداندن 1 اگر \fIx\fR بزرگتر یا مساوی \fImin\fR و کوچکتر یا مساوی \fImax\fR باشد، در غیر این صورت 0. .IP "\fBbitand(x, y)\fR" 4 .IX Item "bitand(x, y)" .PD 0 .IP "\fBbitor(x, y)\fR" 4 .IX Item "bitor(x, y)" .PD محاسبه عملیات بیتی AND یا OR روی \fIx\fR و \fIy\fR. .Sp نتایج ارزیابی \fIx\fR و \fIy\fR قبل از اجرای عملیات بیتی به عدد صحیح تبدیل می‌شوند. .Sp توجه داشته باشید که هم تبدیل به عدد صحیح و هم تبدیل مجدد به ممیز شناور می‌توانند دقت را کاهش دهند. مراقب نتایج غیرمنتظره برای اعداد بزرگ (معمولاً 2^53 و بزرگتر) باشید. .IP \fBceil(expr)\fR 4 .IX Item "ceil(expr)" گرد کردن مقدار عبارت \fIexpr\fR به سمت بالا به نزدیک‌ترین عدد صحیح. برای مثال "ceil(1.5)" برابر "2.0" است. .IP "\fBclip(x, min, max)\fR" 4 .IX Item "clip(x, min, max)" بازگرداندن مقدار \fIx\fR محدودشده میان \fImin\fR و \fImax\fR. .IP \fBcos(x)\fR 4 .IX Item "cos(x)" محاسبه کوسینوس \fIx\fR. .IP \fBcosh(x)\fR 4 .IX Item "cosh(x)" محاسبه کوسینوس هذلولوی (هایپربولیک) \fIx\fR. .IP "\fBeq(x, y)\fR" 4 .IX Item "eq(x, y)" بازگرداندن 1 اگر \fIx\fR و \fIy\fR معادل باشند، در غیر این صورت 0. .IP \fBexp(x)\fR 4 .IX Item "exp(x)" محاسبه تابع نمایی \fIx\fR (بر مبنای \f(CW\*(C`e\*(C'\fR، عدد اویلر). .IP \fBfloor(expr)\fR 4 .IX Item "floor(expr)" گرد کردن مقدار عبارت \fIexpr\fR به سمت پایین به نزدیک‌ترین عدد صحیح. برای مثال "floor(\e-1.5)" برابر "\e-2.0" است. .IP \fBgauss(x)\fR 4 .IX Item "gauss(x)" محاسبه تابع گاوس برای \fIx\fR، متناظر با \&\f(CW\*(C`exp(\e-x*x/2) / sqrt(2*PI)\*(C'\fR. .IP "\fBgcd(x, y)\fR" 4 .IX Item "gcd(x, y)" بازگرداندن بزرگترین مقسوم‌علیه مشترک (ب.م.م) \fIx\fR و \fIy\fR. اگر هر دو \fIx\fR و \&\fIy\fR برابر 0 باشند یا یکی یا هر دو کمتر از صفر باشند رفتار تعریف‌نشده است. .IP "\fBgt(x, y)\fR" 4 .IX Item "gt(x, y)" بازگرداندن 1 اگر \fIx\fR بزرگتر از \fIy\fR باشد، در غیر این صورت 0. .IP "\fBgte(x, y)\fR" 4 .IX Item "gte(x, y)" بازگرداندن 1 اگر \fIx\fR بزرگتر یا مساوی \fIy\fR باشد، در غیر این صورت 0. .IP "\fBhypot(x, y)\fR" 4 .IX Item "hypot(x, y)" این تابع مشابه تابع C با همین نام است؛ مقدار "sqrt(\fIx\fR*\fIx\fR + \fIy\fR*\fIy\fR)" یعنی طول وتر یک مثلث قائم‌الزاویه با اضلاع به طول \fIx\fR و \fIy\fR، یا فاصله نقطه (\fIx\fR, \fIy\fR) از مبدا مختصات را بازمی‌گرداند. .IP "\fBif(x, y)\fR" 4 .IX Item "if(x, y)" ارزیابی \fIx\fR، و اگر نتیجه غیرصفر باشد نتیجه ارزیابی \fIy\fR را بازمی‌گرداند، در غیر این صورت 0. .IP "\fBif(x, y, z)\fR" 4 .IX Item "if(x, y, z)" ارزیابی \fIx\fR، و اگر نتیجه غیرصفر باشد نتیجه ارزیابی \fIy\fR، در غیر این صورت نتیجه ارزیابی \fIz\fR را بازمی‌گرداند. .IP "\fBifnot(x, y)\fR" 4 .IX Item "ifnot(x, y)" ارزیابی \fIx\fR، و اگر نتیجه صفر باشد نتیجه ارزیابی \fIy\fR را بازمی‌گرداند، در غیر این صورت 0. .IP "\fBifnot(x, y, z)\fR" 4 .IX Item "ifnot(x, y, z)" ارزیابی \fIx\fR، و اگر نتیجه صفر باشد نتیجه ارزیابی \fIy\fR، در غیر این صورت نتیجه ارزیابی \fIz\fR را بازمی‌گرداند. .IP \fBisinf(x)\fR 4 .IX Item "isinf(x)" بازگرداندن 1.0 اگر \fIx\fR برابر با +/\-INFINITY باشد، در غیر این صورت 0.0. .IP \fBisnan(x)\fR 4 .IX Item "isnan(x)" بازگرداندن 1.0 اگر \fIx\fR برابر با NAN باشد، در غیر این صورت 0.0. .IP \fBld(idx)\fR 4 .IX Item "ld(idx)" بارگذاری مقدار متغیر داخلی با نمایه \fIidx\fR، که قبلاً با st(\fIidx\fR, \fIexpr\fR) ذخیره شده است. تابع مقدار بارگذاری‌شده را بازمی‌گرداند. .IP "\fBlerp(x, y, z)\fR" 4 .IX Item "lerp(x, y, z)" بازگرداندن درون‌یابی خطی میان \fIx\fR و \fIy\fR به میزان \fIz\fR. .IP \fBlog(x)\fR 4 .IX Item "log(x)" محاسبه لگاریتم طبیعی \fIx\fR. .IP "\fBlt(x, y)\fR" 4 .IX Item "lt(x, y)" بازگرداندن 1 اگر \fIx\fR کوچکتر از \fIy\fR باشد، در غیر این صورت 0. .IP "\fBlte(x, y)\fR" 4 .IX Item "lte(x, y)" بازگرداندن 1 اگر \fIx\fR کوچکتر یا مساوی \fIy\fR باشد، در غیر این صورت 0. .IP "\fBmax(x, y)\fR" 4 .IX Item "max(x, y)" بازگرداندن بیشینه میان \fIx\fR و \fIy\fR. .IP "\fBmin(x, y)\fR" 4 .IX Item "min(x, y)" بازگرداندن کمینه میان \fIx\fR و \fIy\fR. .IP "\fBmod(x, y)\fR" 4 .IX Item "mod(x, y)" محاسبه باقیمانده تقسیم \fIx\fR بر \fIy\fR. .IP \fBnot(expr)\fR 4 .IX Item "not(expr)" بازگرداندن 1.0 اگر \fIexpr\fR صفر باشد، در غیر این صورت 0.0. .IP "\fBpow(x, y)\fR" 4 .IX Item "pow(x, y)" محاسبه توان \fIx\fR به توان \fIy\fR، معادل "(\fIx\fR)^(\fIy\fR)". .IP \fBprint(t)\fR 4 .IX Item "print(t)" .PD 0 .IP "\fBprint(t, l)\fR" 4 .IX Item "print(t, l)" .PD چاپ مقدار عبارت \fIt\fR با سطح گزارش‌گیری (loglevel) برابر با \fIl\fR. اگر \fIl\fR مشخص نشود، از یک سطح گزارش‌گیری پیش‌فرض استفاده می‌شود. مقدار عبارت چاپ‌شده را بازمی‌گرداند. .IP \fBrandom(idx)\fR 4 .IX Item "random(idx)" بازگرداندن یک مقدار شبه‌تصادفی بین 0.0 و 1.0. مقدار \fIidx\fR نمایه متغیر داخلی مورد استفاده برای ذخیره seed/state است که قبلاً با \f(CWst(idx)\fR ذخیره شده است. .Sp برای مقداردهی اولیه seed، باید مقدار seed را به صورت یک عدد صحیح بدون‌علامت ۶۴ بیتی در متغیر داخلی با نمایه \fIidx\fR ذخیره کنید. .Sp برای مثال، برای ذخیره seed با مقدار \f(CW42\fR در متغیر داخلی با نمایه \f(CW0\fR و چاپ چند مقدار تصادفی: .Sp .Vb 1 \& st(0,42); print(random(0)); print(random(0)); print(random(0)) .Ve .IP "\fBrandomi(idx, min, max)\fR" 4 .IX Item "randomi(idx, min, max)" بازگرداندن یک مقدار شبه‌تصادفی در بازه بین \fImin\fR و \&\fImax\fR. مقدار \fIidx\fR نمایه متغیر داخلی است که برای ذخیره seed/state استفاده خواهد شد، و قبلاً می‌تواند با \f(CWst(idx)\fR ذخیره شده باشد. .Sp برای مقداردهی اولیه seed، باید مقدار seed را به صورت یک عدد صحیح بدون‌علامت ۶۴ بیتی در متغیر داخلی با نمایه \fIidx\fR ذخیره کنید. .IP "\fBroot(expr, max)\fR" 4 .IX Item "root(expr, max)" یافتن یک مقدار ورودی که تابع نمایش‌داده‌شده توسط \fIexpr\fR با آرگومان \fR\f(BIld\fR\fI\|(0)\fR به ازای آن در بازه 0..\fImax\fR برابر 0 باشد. .Sp عبارت در \fIexpr\fR باید نشان‌دهنده یک تابع پیوسته باشد در غیر این صورت نتیجه تعریف‌نشده است. .Sp مقدار \&\fR\f(BIld\fR\fI\|(0)\fR برای نشان دادن مقدار ورودی تابع استفاده می‌شود، به این معنی که عبارت داده‌شده چندین بار با مقادیر ورودی مختلف ارزیابی خواهد شد که عبارت می‌تواند از طریق \f(CWld(0)\fR به آن‌ها دسترسی داشته باشد. هنگامی که عبارت به 0 ارزیابی شود، مقدار ورودی مربوطه بازگردانده خواهد شد. .IP \fBround(expr)\fR 4 .IX Item "round(expr)" گرد کردن مقدار عبارت \fIexpr\fR به نزدیک‌ترین عدد صحیح. برای مثال "round(1.5)" برابر "2.0" است. .IP \fBsgn(x)\fR 4 .IX Item "sgn(x)" محاسبه علامت \fIx\fR. .IP \fBsin(x)\fR 4 .IX Item "sin(x)" محاسبه سینوس \fIx\fR. .IP \fBsinh(x)\fR 4 .IX Item "sinh(x)" محاسبه سینوس هذلولوی \fIx\fR. .IP \fBsqrt(expr)\fR 4 .IX Item "sqrt(expr)" محاسبه ریشه دوم (جذر) \fIexpr\fR. معادل "(\fIexpr\fR)^.5". .IP \fBsquish(x)\fR 4 .IX Item "squish(x)" محاسبه عبارت \f(CW\*(C`1/(1 + exp(4*x))\*(C'\fR. .IP "\fBst(idx, expr)\fR" 4 .IX Item "st(idx, expr)" ذخیره مقدار عبارت \fIexpr\fR در یک متغیر داخلی. \fIidx\fR نمایه متغیری را مشخص می‌کند که مقدار در آن ذخیره شود، و مقداری از 0 تا 9 است. تابع مقدار ذخیره‌شده در متغیر داخلی را بازمی‌گرداند. .Sp مقدار ذخیره‌شده می‌تواند با \f(CWld(var)\fR بازیابی شود. .Sp نکته: متغیرها در حال حاضر میان عبارات مختلف به اشتراک گذاشته نمی‌شوند. .IP \fBtan(x)\fR 4 .IX Item "tan(x)" محاسبه تانژانت \fIx\fR. .IP \fBtanh(x)\fR 4 .IX Item "tanh(x)" محاسبه تانژانت هذلولوی \fIx\fR. .IP "\fBtaylor(expr, x)\fR" 4 .IX Item "taylor(expr, x)" .PD 0 .IP "\fBtaylor(expr, x, idx)\fR" 4 .IX Item "taylor(expr, x, idx)" .PD ارزیابی یک سری تیلور در \fIx\fR، با توجه به عبارتی که مشتق \f(CWld(idx)\fR\-ام یک تابع را در 0 نشان می‌دهد. .Sp هنگامی که سری همگرا نشود، نتیجه تعریف‌نشده است. .Sp مقدار \&\fIld(idx)\fR برای نشان دادن مرتبه مشتق در \fIexpr\fR استفاده می‌شود، به این معنی که عبارت داده‌شده چندین بار با مقادیر ورودی مختلف ارزیابی خواهد شد که عبارت می‌تواند از طریق \&\f(CWld(idx)\fR به آن‌ها دسترسی داشته باشد. اگر \fIidx\fR مشخص نشود، 0 فرض می‌شود. .Sp نکته: هنگامی که مشتقات را در y به جای 0 دارید، \&\f(CW\*(C`taylor(expr, x\-y)\*(C'\fR می‌تواند استفاده شود. .IP \fBtime\|(0)\fR 4 .IX Item "time" بازگرداندن زمان فعلی (ساعت دیواری) بر حسب ثانیه. .IP \fBtrunc(expr)\fR 4 .IX Item "trunc(expr)" گرد کردن مقدار عبارت \fIexpr\fR به سمت صفر به نزدیک‌ترین عدد صحیح. برای مثال "trunc(\e-1.5)" برابر "\e-1.0" است. .IP "\fBwhile(cond, expr)\fR" 4 .IX Item "while(cond, expr)" ارزیابی عبارت \fIexpr\fR تا زمانی که عبارت \fIcond\fR غیرصفر باشد، و بازگرداندن مقدار آخرین ارزیابی \fIexpr\fR، یا NAN اگر \fIcond\fR همیشه نادرست بوده باشد. .PP ثابت‌های زیر در دسترس هستند: .IP \fBPI\fR 4 .IX Item "PI" مساحت دیسک واحد، تقریباً 3.14 .IP \fBE\fR 4 .IX Item "E" \&\fBexp\fR\|(1) (عدد اویلر)، تقریباً 2.718 .IP \fBPHI\fR 4 .IX Item "PHI" نسبت طلایی (1+\fBsqrt\fR\|(5))/2، تقریباً 1.618 .PP با فرض اینکه یک عبارت در صورت داشتن مقدار غیرصفر "درست" (true) در نظر گرفته می‌شود، توجه داشته باشید که: .PP \&\f(CW\*(C`*\*(C'\fR مانند AND عمل می‌کند .PP \&\f(CW\*(C`+\*(C'\fR مانند OR عمل می‌کند .PP برای مثال ساختار: .PP .Vb 1 \& if (A AND B) then C .Ve .PP معادل است با: .PP .Vb 1 \& if(A*B, C) .Ve .PP در کد زبان C خود، می‌توانید فهرست توابع یکانی و دودویی را گسترش دهید و ثابت‌های شناخته‌شده را تعریف کنید، به طوری که برای عبارات شما در دسترس باشند. .PP ارزیاب همچنین پیشوندهای یکای دستگاه بین‌المللی (SI) را می‌شناسد. اگر \*(Aqi\*(Aq بعد از پیشوند اضافه شود، از پیشوندهای دودویی (باینری) استفاده می‌شود که بر پایه توان‌های 1024 هستند به جای توان‌های 1000. پسوند \*(AqB\*(Aq مقدار را در ۸ ضرب می‌کند، و می‌تواند بعد از پیشوند یکا اضافه شود یا به تنهایی به کار رود. این امکان استفاده از مثلاً \*(AqKB\*(Aq، \*(AqMiB\*(Aq، \&\*(AqG\*(Aq و \*(AqB\*(Aq را به عنوان پسوند عدد فراهم می‌کند. .PP فهرست پیشوندهای بین‌المللی موجود در ادامه می‌آید، همراه با نشان دادن توان‌های متناظر 10 و 2. .IP \fBy\fR 4 .IX Item "y" 10^\-24 / 2^\-80 .IP \fBz\fR 4 .IX Item "z" 10^\-21 / 2^\-70 .IP \fBa\fR 4 .IX Item "a" 10^\-18 / 2^\-60 .IP \fBf\fR 4 .IX Item "f" 10^\-15 / 2^\-50 .IP \fBp\fR 4 .IX Item "p" 10^\-12 / 2^\-40 .IP \fBn\fR 4 .IX Item "n" 10^\-9 / 2^\-30 .IP \fBu\fR 4 .IX Item "u" 10^\-6 / 2^\-20 .IP \fBm\fR 4 .IX Item "m" 10^\-3 / 2^\-10 .IP \fBc\fR 4 .IX Item "c" 10^\-2 .IP \fBd\fR 4 .IX Item "d" 10^\-1 .IP \fBh\fR 4 .IX Item "h" 10^2 .IP \fBk\fR 4 .IX Item "k" 10^3 / 2^10 .IP \fBK\fR 4 .IX Item "K" 10^3 / 2^10 .IP \fBM\fR 4 .IX Item "M" 10^6 / 2^20 .IP \fBG\fR 4 .IX Item "G" 10^9 / 2^30 .IP \fBT\fR 4 .IX Item "T" 10^12 / 2^40 .IP \fBP\fR 4 .IX Item "P" 10^15 / 2^50 .IP \fBE\fR 4 .IX Item "E" 10^18 / 2^60 .IP \fBZ\fR 4 .IX Item "Z" 10^21 / 2^70 .IP \fBY\fR 4 .IX Item "Y" 10^24 / 2^80 .SH "گزینه‌های کدک (CODEC OPTIONS)" .IX Header "CODEC OPTIONS" کتابخانه libavcodec مجموعه‌ای از گزینه‌های عمومی سراسری را فراهم می‌کند که می‌توانند روی تمام انکودرها و دیکودرها تنظیم شوند. علاوه بر این، هر کدک ممکن است از گزینه‌های به‌اصطلاح اختصاصی (private options) پشتیبانی کند که مختص یک کدک معین هستند. .PP گاهی اوقات یک گزینه سراسری ممکن است تنها بر نوع خاصی از کدک تأثیر بگذارد، و برای کدک دیگری بی‌معنی بوده یا نادیده گرفته شود، بنابراین باید از مفهوم گزینه‌های تعیین‌شده آگاه باشید. همچنین برخی گزینه‌ها فقط برای دیکود یا انکود در نظر گرفته شده‌اند. .PP گزینه‌ها را می‌توان با مشخص کردن \-\fIoption\fR \fIvalue\fR در ابزارهای FFmpeg، یا با تنظیم صریح مقدار در گزینه‌های \&\f(CW\*(C`AVCodecContext\*(C'\fR یا با استفاده از API موجود در \fIlibavutil/opt.h\fR برای کاربردهای برنامه‌نویسی تنظیم کرد. .PP فهرست گزینه‌های پشتیبانی‌شده در ادامه می‌آید: .IP "\fBb\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "b integer (encoding,audio,video)" تنظیم نرخ بیت بر حسب بیت بر ثانیه. مقدار پیش‌فرض 200K است. .IP "\fBab\fR \fIinteger\fR \fB(\fR\fIانکود،صدا\fR\fB)\fR" 4 .IX Item "ab integer (encoding,audio)" تنظیم نرخ بیت صدا (بر حسب بیت بر ثانیه). مقدار پیش‌فرض 128K است. .IP "\fBbt\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "bt integer (encoding,video)" تنظیم میزان تلورانس (انحراف مجاز) نرخ بیت ویدیو (بر حسب بیت بر ثانیه). در حالت 1-pass، تلورانس نرخ بیت مشخص می‌کند که کنترل نرخ چقدر مجاز است از مقدار میانگین نرخ بیت هدف انحراف داشته باشد. این به حداقل/حداکثر نرخ بیت ارتباطی ندارد. کاهش بیش از حد تلورانس تأثیر نامطلوبی بر کیفیت خواهد داشت. .IP "\fBflags\fR \fIflags\fR \fB(\fR\fIدیکود/انکود،صدا،ویدیو،زیرنویس\fR\fB)\fR" 4 .IX Item "flags flags (decoding/encoding,audio,video,subtitles)" تنظیم پرچم‌های عمومی. .Sp مقادیر ممکن: .RS 4 .IP \fBmv4\fR 4 .IX Item "mv4" استفاده از چهار بردار حرکت به‌ازای هر ماکروبلاک (mpeg4). .IP \fBqpel\fR 4 .IX Item "qpel" استفاده از جبران حرکت 1/4 پیکسلی (qpel). .IP \fBloop\fR 4 .IX Item "loop" استفاده از فیلتر حلقه (loop filter). .IP \fBqscale\fR 4 .IX Item "qscale" استفاده از مقیاس qscale ثابت. .IP \fBpass1\fR 4 .IX Item "pass1" استفاده از کنترل نرخ داخلی 2pass در حالت پاس اول. .IP \fBpass2\fR 4 .IX Item "pass2" استفاده از کنترل نرخ داخلی 2pass در حالت پاس دوم. .IP \fBgray\fR 4 .IX Item "gray" دیکود/انکود فقط به صورت مقیاس خاکستری (سیاه و سفید). .IP \fBpsnr\fR 4 .IX Item "psnr" تنظیم متغیرهای error[?] در حین انکود. .IP \fBtruncated\fR 4 .IX Item "truncated" استریم بیت ورودی ممکن است به صورت تصادفی کوتاه یا ناقص شده باشد. .IP \fBdrop_changed\fR 4 .IX Item "drop_changed" عدم خروجی دادن فریم‌هایی که پارامترهای آن‌ها با اولین فریم دیکودشده در استریم تفاوت دارد. خطای AVERROR_INPUT_CHANGED هنگام دور انداختن فریم بازگردانده می‌شود. .IP \fBildct\fR 4 .IX Item "ildct" استفاده از DCT درهم‌تنیده (interlaced). .IP \fBlow_delay\fR 4 .IX Item "low_delay" اجبار تأخیر کم. .IP \fBglobal_header\fR 4 .IX Item "global_header" قرار دادن هدرهای سراسری در extradata به جای تک‌تک فریم‌های کلیدی. .IP \fBbitexact\fR 4 .IX Item "bitexact" فقط نوشتن داده‌های مستقل از پلتفرم، ساخت و زمان (به جز (I)DCT). این اطمینان حاصل می‌کند که چک‌سام‌های پرونده و داده قابل تکرار بوده و میان پلتفرم‌های مختلف مطابقت دارند. کاربرد اصلی آن در آزمون رگرسیون است. .IP \fBaic\fR 4 .IX Item "aic" اعمال کدگذاری پیشرفته اینترا در H263 / پیش‌بینی AC در mpeg4. .IP \fBilme\fR 4 .IX Item "ilme" اعمال تخمین حرکت درهم‌تنیده. .IP \fBcgop\fR 4 .IX Item "cgop" استفاده از GOP بسته (closed GOP). .IP \fBoutput_corrupt\fR 4 .IX Item "output_corrupt" خروجی دادن فریم‌ها حتی اگر احتمال خرابی آن‌ها وجود داشته باشد. .RE .RS 4 .RE .IP "\fBtime_base\fR \fIrational number\fR" 4 .IX Item "time_base rational number" تنظیم مبنای زمانی کدک. .Sp واحد بنیادین زمان (بر حسب ثانیه) است که برچسب‌های زمانی فریم بر پایه آن نشان داده می‌شوند. برای محتوای با نرخ فریم ثابت، مبنای زمانی باید \f(CW\*(C`1 / frame_rate\*(C'\fR باشد و افزایش برچسب زمانی باید دقیقاً 1 باشد. .IP "\fBg\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "g integer (encoding,video)" تنظیم اندازه گروه تصاویر (GOP). مقدار پیش‌فرض 12 است. .IP "\fBar\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،صدا\fR\fB)\fR" 4 .IX Item "ar integer (decoding/encoding,audio)" تنظیم نرخ نمونه‌برداری صدا (بر حسب هرتز). .IP "\fBac\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،صدا\fR\fB)\fR" 4 .IX Item "ac integer (decoding/encoding,audio)" تنظیم تعداد کانال‌های صوتی. .IP "\fBcutoff\fR \fIinteger\fR \fB(\fR\fIانکود،صدا\fR\fB)\fR" 4 .IX Item "cutoff integer (encoding,audio)" تنظیم پهنای باند قطع (تنها توسط انکودرهای برگزیده پشتیبانی می‌شود، بخش مستندات مربوطه آن‌ها را ببینید). .IP "\fBframe_size\fR \fIinteger\fR \fB(\fR\fIانکود،صدا\fR\fB)\fR" 4 .IX Item "frame_size integer (encoding,audio)" تنظیم اندازه فریم صوتی. .Sp هر فریم ارائه‌شده به جز آخرین فریم باید دقیقاً شامل frame_size نمونه به‌ازای هر کانال باشد. در صورتی که کدک CODEC_CAP_VARIABLE_FRAME_SIZE را تنظیم کرده باشد می‌تواند 0 باشد، که در این حالت اندازه فریم محدودیتی ندارد. توسط برخی دیکودرها برای نشان دادن اندازه فریم ثابت تنظیم می‌شود. .IP "\fBframe_number\fR \fIinteger\fR" 4 .IX Item "frame_number integer" تنظیم شماره فریم. .IP "\fBdelay\fR \fIinteger\fR" 4 .IX Item "delay integer" .PD 0 .IP "\fBqcomp\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "qcomp float (encoding,video)" .PD تنظیم فشرده‌سازی مقیاس کوانتیایزر ویدیو (VBR). به عنوان یک ثابت در معادله کنترل نرخ استفاده می‌شود. محدوده توصیه‌شده برای rc_eq پیش‌فرض: 0.0-1.0. .IP "\fBqblur\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "qblur float (encoding,video)" تنظیم محو کردن مقیاس کوانتیایزر ویدیو (VBR). .IP "\fBqmin\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "qmin integer (encoding,video)" تنظیم حداقل مقیاس کوانتیایزر ویدیو (VBR). باید بین -1 و 69 باشد، مقدار پیش‌فرض 2 است. .IP "\fBqmax\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "qmax integer (encoding,video)" تنظیم حداکثر مقیاس کوانتیایزر ویدیو (VBR). باید بین -1 و 1024 باشد، مقدار پیش‌فرض 31 است. .IP "\fBqdiff\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "qdiff integer (encoding,video)" تنظیم حداکثر اختلاف میان مقیاس‌های کوانتیایزر (VBR). .IP "\fBbf\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "bf integer (encoding,video)" تنظیم حداکثر تعداد فریم‌های B میان فریم‌های غیر B. .Sp باید یک عدد صحیح بین -1 و 16 باشد. مقدار 0 به این معنی است که فریم‌های B غیرفعال هستند. اگر از مقدار -1 استفاده شود، یک مقدار خودکار بسته به انکودر انتخاب خواهد شد. .Sp مقدار پیش‌فرض 0 است. .IP "\fBb_qfactor\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "b_qfactor float (encoding,video)" تنظیم فاکتور QP میان فریم‌های P و B. .IP "\fBcodec_tag\fR \fIinteger\fR" 4 .IX Item "codec_tag integer" .PD 0 .IP "\fBbug\fR \fIflags\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "bug flags (decoding,video)" .PD دور زدن اشکالات انکودرهایی که به صورت خودکار شناسایی نشده‌اند. .Sp مقادیر ممکن: .RS 4 .IP \fBautodetect\fR 4 .IX Item "autodetect" .PD 0 .IP \fBxvid_ilace\fR 4 .IX Item "xvid_ilace" .PD باگ درهم‌تنیدگی Xvid (در صورت fourcc==XVIX به صورت خودکار شناسایی می‌شود) .IP \fBump4\fR 4 .IX Item "ump4" (در صورت fourcc==UMP4 به صورت خودکار شناسایی می‌شود) .IP \fBno_padding\fR 4 .IX Item "no_padding" باگ پدینگ (شناسایی خودکار) .IP \fBamv\fR 4 .IX Item "amv" .PD 0 .IP \fBqpel_chroma\fR 4 .IX Item "qpel_chroma" .IP \fBstd_qpel\fR 4 .IX Item "std_qpel" .PD qpel استاندارد قدیمی (شناسایی خودکار بر اساس fourcc/نسخه) .IP \fBqpel_chroma2\fR 4 .IX Item "qpel_chroma2" .PD 0 .IP \fBdirect_blocksize\fR 4 .IX Item "direct_blocksize" .PD باگ direct-qpel-blocksize (شناسایی خودکار بر اساس fourcc/نسخه) .IP \fBedge\fR 4 .IX Item "edge" باگ edge padding (شناسایی خودکار بر اساس fourcc/نسخه) .IP \fBhpel_chroma\fR 4 .IX Item "hpel_chroma" .PD 0 .IP \fBdc_clip\fR 4 .IX Item "dc_clip" .IP \fBms\fR 4 .IX Item "ms" .PD دور زدن باگ‌های مختلف در دیکودرهای معیوب مایکروسافت. .IP \fBtrunc\fR 4 .IX Item "trunc" فریم‌های ناقص/بریده‌شده .RE .RS 4 .RE .IP "\fBstrict\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "strict integer (decoding/encoding,audio,video)" مشخص کردن میزان سخت‌گیری در پیروی از استانداردها. .Sp مقادیر ممکن: .RS 4 .IP \fBvery\fR 4 .IX Item "very" انطباق دقیق با یک نسخه قدیمی‌تر و سخت‌گیرانه‌تر از مشخصات فنی یا نرم‌افزار مرجع .IP \fBstrict\fR 4 .IX Item "strict" انطباق دقیق با تمام موارد مشخصات فنی صرف‌نظر از پیامدها .IP \fBnormal\fR 4 .IX Item "normal" .PD 0 .IP \fBunofficial\fR 4 .IX Item "unofficial" .PD اجازه دادن به پسوندهای غیررسمی .IP \fBexperimental\fR 4 .IX Item "experimental" اجازه دادن به قابلیت‌های آزمایشی غیراستاندارد، و دیکودرها و انکودرهای آزمایشی (ناتمام/در حال توسعه/آزمایش‌نشده). توجه: دیکودرهای آزمایشی می‌توانند خطرات امنیتی داشته باشند، از این گزینه برای رمزگشایی ورودی‌های غیرقابل اعتماد استفاده نکنید. .RE .RS 4 .RE .IP "\fBb_qoffset\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "b_qoffset float (encoding,video)" تنظیم آفست QP میان فریم‌های P و B. .IP "\fBerr_detect\fR \fIflags\fR \fB(\fR\fIدیکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "err_detect flags (decoding,audio,video)" تنظیم پرچم‌های تشخیص خطا. .Sp مقادیر ممکن: .RS 4 .IP \fBcrccheck\fR 4 .IX Item "crccheck" تایید CRCهای تعبیه‌شده .IP \fBbitstream\fR 4 .IX Item "bitstream" تشخیص انحرافات از مشخصات استریم بیت .IP \fBbuffer\fR 4 .IX Item "buffer" تشخیص طول نامناسب بافر استریم بیت .IP \fBexplode\fR 4 .IX Item "explode" توقف و خروج از دیکود با تشخیص کوچکترین خطا .IP \fBignore_err\fR 4 .IX Item "ignore_err" نادیده گرفتن خطاهای دیکود و ادامه دادن به دیکود. این گزینه در صورتی که قصد تجزیه و تحلیل محتوای یک ویدیو را داشته باشید و بخواهید هر داده‌ای به هر نحو دیکود شود مفید است. این گزینه در صورت وجود خطا منجر به ویدیویی با کیفیت مطلوب برای تماشا نخواهد شد. .IP \fBcareful\fR 4 .IX Item "careful" مواردی را که مشخصات را نقض می‌کنند و در عمل دیده نشده‌اند به عنوان خطا در نظر بگیر .IP \fBcompliant\fR 4 .IX Item "compliant" تمام موارد عدم انطباق با مشخصات را خطا در نظر بگیر .IP \fBaggressive\fR 4 .IX Item "aggressive" مواردی را که یک انکودر عاقل نباید انجام دهد خطا در نظر بگیر .RE .RS 4 .RE .IP "\fBhas_b_frames\fR \fIinteger\fR" 4 .IX Item "has_b_frames integer" .PD 0 .IP "\fBblock_align\fR \fIinteger\fR" 4 .IX Item "block_align integer" .IP "\fBrc_override_count\fR \fIinteger\fR" 4 .IX Item "rc_override_count integer" .IP "\fBmaxrate\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "maxrate integer (encoding,audio,video)" .PD تنظیم حداکثر تلورانس نرخ بیت (بر حسب بیت بر ثانیه). نیازمند تنظیم bufsize است. .IP "\fBminrate\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "minrate integer (encoding,audio,video)" تنظیم حداقل تلورانس نرخ بیت (بر حسب بیت بر ثانیه). بیشترین کاربرد را در تنظیم انکود CBR دارد، در غیر این صورت کاربرد کمی دارد. .IP "\fBbufsize\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "bufsize integer (encoding,audio,video)" تنظیم اندازه بافر کنترل نرخ (بر حسب بیت). .IP "\fBi_qfactor\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "i_qfactor float (encoding,video)" تنظیم فاکتور QP میان فریم‌های P و I. .IP "\fBi_qoffset\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "i_qoffset float (encoding,video)" تنظیم آفست QP میان فریم‌های P و I. .IP "\fBdct\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "dct integer (encoding,video)" تنظیم الگوریتم DCT. .Sp مقادیر ممکن: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" انتخاب خودکار یک گزینه مناسب (پیش‌فرض) .IP \fBfastint\fR 4 .IX Item "fastint" عدد صحیح سریع .IP \fBint\fR 4 .IX Item "int" عدد صحیح دقیق .IP \fBmmx\fR 4 .IX Item "mmx" .PD 0 .IP \fBaltivec\fR 4 .IX Item "altivec" .IP \fBfaan\fR 4 .IX Item "faan" .PD تبدیل DCT ممیز شناور AAN .RE .RS 4 .RE .IP "\fBlumi_mask\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "lumi_mask float (encoding,video)" فشرده‌سازی شدیدتر نواحی بسیار روشن نسبت به نواحی متوسط. .IP "\fBtcplx_mask\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "tcplx_mask float (encoding,video)" تنظیم ماسک پیچیدگی زمانی (temporal complexity masking). .IP "\fBscplx_mask\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "scplx_mask float (encoding,video)" تنظیم ماسک پیچیدگی مکانی (spatial complexity masking). .IP "\fBp_mask\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "p_mask float (encoding,video)" تنظیم ماسک‌گذاری بین‌فریمی (inter masking). .IP "\fBdark_mask\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "dark_mask float (encoding,video)" فشرده‌سازی شدیدتر نواحی تاریک نسبت به نواحی متوسط. .IP "\fBidct\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "idct integer (decoding/encoding,video)" انتخاب پیاده‌سازی IDCT. .Sp مقادیر ممکن: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" .PD 0 .IP \fBint\fR 4 .IX Item "int" .IP \fBsimple\fR 4 .IX Item "simple" .IP \fBsimplemmx\fR 4 .IX Item "simplemmx" .IP \fBsimpleauto\fR 4 .IX Item "simpleauto" .PD انتخاب خودکار یک IDCT سازگار با simple .IP \fBarm\fR 4 .IX Item "arm" .PD 0 .IP \fBaltivec\fR 4 .IX Item "altivec" .IP \fBsh4\fR 4 .IX Item "sh4" .IP \fBsimplearm\fR 4 .IX Item "simplearm" .IP \fBsimplearmv5te\fR 4 .IX Item "simplearmv5te" .IP \fBsimplearmv6\fR 4 .IX Item "simplearmv6" .IP \fBsimpleneon\fR 4 .IX Item "simpleneon" .IP \fBxvid\fR 4 .IX Item "xvid" .IP \fBfaani\fR 4 .IX Item "faani" .PD تبدیل IDCT ممیز شناور AAN .RE .RS 4 .RE .IP "\fBslice_count\fR \fIinteger\fR" 4 .IX Item "slice_count integer" .PD 0 .IP "\fBec\fR \fIflags\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "ec flags (decoding,video)" .PD تنظیم راهبرد پنهان‌سازی خطا (Error Concealment). .Sp مقادیر ممکن: .RS 4 .IP \fBguess_mvs\fR 4 .IX Item "guess_mvs" جستجوی تکرارشونده بردار حرکت (MV) (کند) .IP \fBdeblock\fR 4 .IX Item "deblock" استفاده از فیلتر deblock قوی برای ماکروبلاک‌های آسیب‌دیده .IP \fBfavor_inter\fR 4 .IX Item "favor_inter" ترجیح پیش‌بینی از فریم قبلی به جای فریم فعلی .RE .RS 4 .RE .IP "\fBbits_per_coded_sample\fR \fIinteger\fR" 4 .IX Item "bits_per_coded_sample integer" .PD 0 .IP "\fBaspect\fR \fIrational number\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "aspect rational number (encoding,video)" .PD تنظیم نسبت ابعاد نمونه (SAR). .IP "\fBsar\fR \fIrational number\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "sar rational number (encoding,video)" تنظیم نسبت ابعاد نمونه. نام مستعار برای \fIaspect\fR. .IP "\fBdebug\fR \fIflags\fR \fB(\fR\fIدیکود/انکود،صدا،ویدیو،زیرنویس\fR\fB)\fR" 4 .IX Item "debug flags (decoding/encoding,audio,video,subtitles)" چاپ اطلاعات اشکال‌زدایی مشخص. .Sp مقادیر ممکن: .RS 4 .IP \fBpict\fR 4 .IX Item "pict" اطلاعات تصویر .IP \fBrc\fR 4 .IX Item "rc" کنترل نرخ .IP \fBbitstream\fR 4 .IX Item "bitstream" .PD 0 .IP \fBmb_type\fR 4 .IX Item "mb_type" .PD نوع ماکروبلاک (MB) .IP \fBqp\fR 4 .IX Item "qp" پارامتر کوانتیزاسیون به‌ازای هر ماکروبلاک (QP) .IP \fBmv\fR 4 .IX Item "mv" بردار حرکت .IP \fBdct_coeff\fR 4 .IX Item "dct_coeff" .PD 0 .IP \fBskip\fR 4 .IX Item "skip" .IP \fBstartcode\fR 4 .IX Item "startcode" .IP \fBpts\fR 4 .IX Item "pts" .IP \fBer\fR 4 .IX Item "er" .PD تاب‌آوری خطا .IP \fBmmco\fR 4 .IX Item "mmco" دستورات مدیریت حافظه (کنترل رفرنس فریم H.264) .IP \fBbugs\fR 4 .IX Item "bugs" .PD 0 .IP \fBbuffers\fR 4 .IX Item "buffers" .PD عملیات بافر تصویر .IP \fBthread_ops\fR 4 .IX Item "thread_ops" عملیات چندرشته‌ای .IP \fBnomc\fR 4 .IX Item "nomc" صرف‌نظر کردن از جبران حرکت (فقط رسم بردارها) .RE .RS 4 .RE .IP "\fBcmp\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "cmp integer (encoding,video)" تنظیم تابع مقایسه تخمین حرکت در سطح پیکسل کامل (full pel me). .Sp مقادیر ممکن: .RS 4 .IP \fBsad\fR 4 .IX Item "sad" مجموع قدر مطلق تفاضل‌ها، سریع (پیش‌فرض) .IP \fBsse\fR 4 .IX Item "sse" مجموع مربعات خطاها .IP \fBsatd\fR 4 .IX Item "satd" مجموع قدر مطلق تفاضل‌های تبدیل هادامارد .IP \fBdct\fR 4 .IX Item "dct" مجموع قدر مطلق تفاضل‌های تبدیل DCT .IP \fBpsnr\fR 4 .IX Item "psnr" مجموع مربعات خطاهای کوانتیزاسیون (اجتناب شود، کیفیت پایین) .IP \fBbit\fR 4 .IX Item "bit" تعداد بیت‌های مورد نیاز برای بلوک .IP \fBrd\fR 4 .IX Item "rd" بهینه‌سازی نرخ-اعوجاج (RD)، کند .IP \fBzero\fR 4 .IX Item "zero" 0 .IP \fBvsad\fR 4 .IX Item "vsad" مجموع قدر مطلق تفاضل‌های عمودی .IP \fBvsse\fR 4 .IX Item "vsse" مجموع مربعات تفاضل‌های عمودی .IP \fBnsse\fR 4 .IX Item "nsse" مجموع مربعات تفاضل‌ها با حفظ نویز .IP \fBw53\fR 4 .IX Item "w53" موجک 5/3، تنها در snow استفاده می‌شود .IP \fBw97\fR 4 .IX Item "w97" موجک 9/7، تنها در snow استفاده می‌شود .IP \fBdctmax\fR 4 .IX Item "dctmax" .PD 0 .IP \fBchroma\fR 4 .IX Item "chroma" .PD .RE .RS 4 .RE .IP "\fBsubcmp\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "subcmp integer (encoding,video)" تنظیم تابع مقایسه تخمین حرکت زیرپیکسل (sub pel me). .Sp مقادیر ممکن: .RS 4 .IP \fBsad\fR 4 .IX Item "sad" مجموع قدر مطلق تفاضل‌ها، سریع (پیش‌فرض) .IP \fBsse\fR 4 .IX Item "sse" مجموع مربعات خطاها .IP \fBsatd\fR 4 .IX Item "satd" مجموع قدر مطلق تفاضل‌های تبدیل هادامارد .IP \fBdct\fR 4 .IX Item "dct" مجموع قدر مطلق تفاضل‌های تبدیل DCT .IP \fBpsnr\fR 4 .IX Item "psnr" مجموع مربعات خطاهای کوانتیزاسیون (اجتناب شود، کیفیت پایین) .IP \fBbit\fR 4 .IX Item "bit" تعداد بیت‌های مورد نیاز برای بلوک .IP \fBrd\fR 4 .IX Item "rd" بهینه‌سازی نرخ-اعوجاج (RD)، کند .IP \fBzero\fR 4 .IX Item "zero" 0 .IP \fBvsad\fR 4 .IX Item "vsad" مجموع قدر مطلق تفاضل‌های عمودی .IP \fBvsse\fR 4 .IX Item "vsse" مجموع مربعات تفاضل‌های عمودی .IP \fBnsse\fR 4 .IX Item "nsse" مجموع مربعات تفاضل‌ها با حفظ نویز .IP \fBw53\fR 4 .IX Item "w53" موجک 5/3، تنها در snow استفاده می‌شود .IP \fBw97\fR 4 .IX Item "w97" موجک 9/7، تنها در snow استفاده می‌شود .IP \fBdctmax\fR 4 .IX Item "dctmax" .PD 0 .IP \fBchroma\fR 4 .IX Item "chroma" .PD .RE .RS 4 .RE .IP "\fBmbcmp\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "mbcmp integer (encoding,video)" تنظیم تابع مقایسه تصمیم‌گیری ماکروبلاک. .Sp مقادیر ممکن: .RS 4 .IP \fBsad\fR 4 .IX Item "sad" مجموع قدر مطلق تفاضل‌ها، سریع (پیش‌فرض) .IP \fBsse\fR 4 .IX Item "sse" مجموع مربعات خطاها .IP \fBsatd\fR 4 .IX Item "satd" مجموع قدر مطلق تفاضل‌های تبدیل هادامارد .IP \fBdct\fR 4 .IX Item "dct" مجموع قدر مطلق تفاضل‌های تبدیل DCT .IP \fBpsnr\fR 4 .IX Item "psnr" مجموع مربعات خطاهای کوانتیزاسیون (اجتناب شود، کیفیت پایین) .IP \fBbit\fR 4 .IX Item "bit" تعداد بیت‌های مورد نیاز برای بلوک .IP \fBrd\fR 4 .IX Item "rd" بهینه‌سازی نرخ-اعوجاج (RD)، کند .IP \fBzero\fR 4 .IX Item "zero" 0 .IP \fBvsad\fR 4 .IX Item "vsad" مجموع قدر مطلق تفاضل‌های عمودی .IP \fBvsse\fR 4 .IX Item "vsse" مجموع مربعات تفاضل‌های عمودی .IP \fBnsse\fR 4 .IX Item "nsse" مجموع مربعات تفاضل‌ها با حفظ نویز .IP \fBw53\fR 4 .IX Item "w53" موجک 5/3، تنها در snow استفاده می‌شود .IP \fBw97\fR 4 .IX Item "w97" موجک 9/7، تنها در snow استفاده می‌شود .IP \fBdctmax\fR 4 .IX Item "dctmax" .PD 0 .IP \fBchroma\fR 4 .IX Item "chroma" .PD .RE .RS 4 .RE .IP "\fBildctcmp\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "ildctcmp integer (encoding,video)" تنظیم تابع مقایسه درهم‌تنیده DCT. .Sp مقادیر ممکن: .RS 4 .IP \fBsad\fR 4 .IX Item "sad" مجموع قدر مطلق تفاضل‌ها، سریع (پیش‌فرض) .IP \fBsse\fR 4 .IX Item "sse" مجموع مربعات خطاها .IP \fBsatd\fR 4 .IX Item "satd" مجموع قدر مطلق تفاضل‌های تبدیل هادامارد .IP \fBdct\fR 4 .IX Item "dct" مجموع قدر مطلق تفاضل‌های تبدیل DCT .IP \fBpsnr\fR 4 .IX Item "psnr" مجموع مربعات خطاهای کوانتیزاسیون (اجتناب شود، کیفیت پایین) .IP \fBbit\fR 4 .IX Item "bit" تعداد بیت‌های مورد نیاز برای بلوک .IP \fBrd\fR 4 .IX Item "rd" بهینه‌سازی نرخ-اعوجاج (RD)، کند .IP \fBzero\fR 4 .IX Item "zero" 0 .IP \fBvsad\fR 4 .IX Item "vsad" مجموع قدر مطلق تفاضل‌های عمودی .IP \fBvsse\fR 4 .IX Item "vsse" مجموع مربعات تفاضل‌های عمودی .IP \fBnsse\fR 4 .IX Item "nsse" مجموع مربعات تفاضل‌ها با حفظ نویز .IP \fBw53\fR 4 .IX Item "w53" موجک 5/3، تنها در snow استفاده می‌شود .IP \fBw97\fR 4 .IX Item "w97" موجک 9/7، تنها در snow استفاده می‌شود .IP \fBdctmax\fR 4 .IX Item "dctmax" .PD 0 .IP \fBchroma\fR 4 .IX Item "chroma" .PD .RE .RS 4 .RE .IP "\fBdia_size\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "dia_size integer (encoding,video)" تنظیم نوع و اندازه لوزی (diamond) برای تخمین حرکت. .Sp مقادیر ممکن: .RS 4 .IP "\fB(1024, INT_MAX)\fR" 4 .IX Item "(1024, INT_MAX)" الگوی لوزی تطبیقی با اندازه (1024-INT_MAX) .IP "\fB(768, 1024]\fR" 4 .IX Item "(768, 1024]" الگوی شش‌ضلعی تطبیقی (HEX) .IP "\fB(512, 768]\fR" 4 .IX Item "(512, 768]" الگوی شش‌ضلعی ناهموار چندمنظوره (UMH) .IP "\fB(256, 512]\fR" 4 .IX Item "(256, 512]" الگوی ستاره‌ای تطبیقی .IP "\fB(\-1, 2)\fR" 4 .IX Item "(-1, 2)" لوزی با شعاع ۱ .IP "\fB(INT_MIN, \-1)\fR" 4 .IX Item "(INT_MIN, -1)" الگوی لوزی با اندازه معکوس .RE .RS 4 .RE .IP "\fBlast_pred\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "last_pred integer (encoding,video)" میزان پیش‌بینی‌کننده‌های حرکت از فریم قبلی. .IP "\fBprecmp\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "precmp integer (encoding,video)" تنظیم تابع مقایسه پیش‌پاس تخمین حرکت. .Sp مقادیر ممکن: .RS 4 .IP \fBsad\fR 4 .IX Item "sad" مجموع قدر مطلق تفاضل‌ها، سریع (پیش‌فرض) .IP \fBsse\fR 4 .IX Item "sse" مجموع مربعات خطاها .IP \fBsatd\fR 4 .IX Item "satd" مجموع قدر مطلق تفاضل‌های تبدیل هادامارد .IP \fBdct\fR 4 .IX Item "dct" مجموع قدر مطلق تفاضل‌های تبدیل DCT .IP \fBpsnr\fR 4 .IX Item "psnr" مجموع مربعات خطاهای کوانتیزاسیون (اجتناب شود، کیفیت پایین) .IP \fBbit\fR 4 .IX Item "bit" تعداد بیت‌های مورد نیاز برای بلوک .IP \fBrd\fR 4 .IX Item "rd" بهینه‌سازی نرخ-اعوجاج (RD)، کند .IP \fBzero\fR 4 .IX Item "zero" 0 .IP \fBvsad\fR 4 .IX Item "vsad" مجموع قدر مطلق تفاضل‌های عمودی .IP \fBvsse\fR 4 .IX Item "vsse" مجموع مربعات تفاضل‌های عمودی .IP \fBnsse\fR 4 .IX Item "nsse" مجموع مربعات تفاضل‌ها با حفظ نویز .IP \fBw53\fR 4 .IX Item "w53" موجک 5/3، تنها در snow استفاده می‌شود .IP \fBw97\fR 4 .IX Item "w97" موجک 9/7، تنها در snow استفاده می‌شود .IP \fBdctmax\fR 4 .IX Item "dctmax" .PD 0 .IP \fBchroma\fR 4 .IX Item "chroma" .PD .RE .RS 4 .RE .IP "\fBpre_dia_size\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "pre_dia_size integer (encoding,video)" تنظیم نوع و اندازه لوزی برای پیش‌پاس تخمین حرکت. .IP "\fBsubq\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "subq integer (encoding,video)" تنظیم کیفیت تخمین حرکت زیرپیکسلی. .IP "\fBme_range\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "me_range integer (encoding,video)" تنظیم محدودیت دامنه بردارهای حرکت (1023 برای پخش‌کننده DivX). .IP "\fBglobal_quality\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "global_quality integer (encoding,audio,video)" .PD 0 .IP "\fBslice_flags\fR \fIinteger\fR" 4 .IX Item "slice_flags integer" .IP "\fBmbd\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "mbd integer (encoding,video)" .PD تنظیم الگوریتم تصمیم‌گیری ماکروبلاک (حالت با کیفیت بالا). .Sp مقادیر ممکن: .RS 4 .IP \fBsimple\fR 4 .IX Item "simple" استفاده از mbcmp (پیش‌فرض) .IP \fBbits\fR 4 .IX Item "bits" استفاده از کمترین بیت .IP \fBrd\fR 4 .IX Item "rd" استفاده از بهترین بهینه‌سازی نرخ-اعوجاج (RD) .RE .RS 4 .RE .IP "\fBrc_init_occupancy\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "rc_init_occupancy integer (encoding,video)" تنظیم تعداد بیت‌هایی که باید پیش از آغاز دیکود در بافر کنترل نرخ (rc buffer) بارگذاری شوند. .IP "\fBflags2\fR \fIflags\fR \fB(\fR\fIدیکود/انکود،صدا،ویدیو،زیرنویس\fR\fB)\fR" 4 .IX Item "flags2 flags (decoding/encoding,audio,video,subtitles)" مقادیر ممکن: .RS 4 .IP \fBfast\fR 4 .IX Item "fast" اجازه دادن به ترفندهای افزایش سرعت مغایر با مشخصات استاندارد. .IP \fBnoout\fR 4 .IX Item "noout" صرف‌نظر کردن از انکود استریم بیت. .IP \fBignorecrop\fR 4 .IX Item "ignorecrop" نادیده گرفتن اطلاعات برش (crop) از sps. .IP \fBlocal_header\fR 4 .IX Item "local_header" قرار دادن هدرهای سراسری در هر فریم کلیدی به جای extradata. .IP \fBchunks\fR 4 .IX Item "chunks" داده‌های فریم ممکن است به چندین بخش تقسیم شوند. .IP \fBshowall\fR 4 .IX Item "showall" نمایش تمام فریم‌ها قبل از اولین فریم کلیدی. .IP \fBexport_mvs\fR 4 .IX Item "export_mvs" برون‌ریزی بردارهای حرکت به داده‌های جانبی فریم (\f(CW\*(C`AV_FRAME_DATA_MOTION_VECTORS\*(C'\fR را ببینید) برای کدک‌هایی که پشتیبانی می‌کنند. همچنین \fIdoc/examples/export_mvs.c\fR را ببینید. .IP \fBskip_manual\fR 4 .IX Item "skip_manual" صرف‌نظر نکردن از نمونه‌ها و برون‌ریزی اطلاعات پرش به عنوان داده‌های جانبی فریم. .IP \fBass_ro_flush_noop\fR 4 .IX Item "ass_ro_flush_noop" عدم بازنشانی فیلد ReadOrder در ASS هنگام flush. .IP \fBicc_profiles\fR 4 .IX Item "icc_profiles" تولید/تجزیه پروفایل‌های تعبیه‌شده ICC از/به تگ‌های رنگ‌سنجی (colorimetry). .IP \fBfixed_frame_size\fR 4 .IX Item "fixed_frame_size" اجبار انکودرهای صوتی به استفاده از اندازه فریم ثابت. .RE .RS 4 .RE .IP "\fBexport_side_data\fR \fIflags\fR \fB(\fR\fIدیکود/انکود،صدا،ویدیو،زیرنویس\fR\fB)\fR" 4 .IX Item "export_side_data flags (decoding/encoding,audio,video,subtitles)" مقادیر ممکن: .RS 4 .IP \fBmvs\fR 4 .IX Item "mvs" برون‌ریزی بردارهای حرکت در داده‌های جانبی فریم (\f(CW\*(C`AV_FRAME_DATA_MOTION_VECTORS\*(C'\fR را ببینید) برای کدک‌های دارای پشتیبانی. همچنین \fIdoc/examples/export_mvs.c\fR را ببینید. .IP \fBprft\fR 4 .IX Item "prft" برون‌ریزی زمان مرجع تولیدکننده انکودر به داده‌های جانبی بسته (\f(CW\*(C`AV_PKT_DATA_PRFT\*(C'\fR را ببینید) برای کدک‌های دارای پشتیبانی. .IP \fBvenc_params\fR 4 .IX Item "venc_params" برون‌ریزی پارامترهای انکود ویدیو از طریق داده‌های جانبی فریم (\f(CW\*(C`AV_FRAME_DATA_VIDEO_ENC_PARAMS\*(C'\fR را ببینید) برای کدک‌های دارای پشتیبانی. در حال حاضر H.264 و VP9. .IP \fBfilm_grain\fR 4 .IX Item "film_grain" برون‌ریزی پارامترهای دانه فیلم از طریق داده‌های جانبی فریم (\f(CW\*(C`AV_FRAME_DATA_FILM_GRAIN_PARAMS\*(C'\fR را ببینید). در حال حاضر توسط دیکودرهای AV1 پشتیبانی می‌شود. .IP \fBenhancements\fR 4 .IX Item "enhancements" برون‌ریزی متاداده‌های بهبود تصویر از طریق داده‌های جانبی فریم، مثلاً LCEVC (به \f(CW\*(C`AV_FRAME_DATA_LCEVC\*(C'\fR مراجعه کنید). .RE .RS 4 .RE .IP "\fBthreads\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "threads integer (decoding/encoding,video)" تنظیم تعداد رشته‌های پردازشی (threads) مورد استفاده، در صورتی که پیاده‌سازی کدک انتخابی از چندرشتگی پشتیبانی کند. .Sp مقادیر ممکن: .RS 4 .IP "\fBauto, 0\fR" 4 .IX Item "auto, 0" انتخاب خودکار تعداد رشته‌ها .RE .RS 4 .Sp مقدار پیش‌فرض \fBauto\fR است. .RE .IP "\fBdc\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "dc integer (encoding,video)" تنظیم intra_dc_precision. .IP "\fBnssew\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "nssew integer (encoding,video)" تنظیم وزن nsse. .IP "\fBskip_top\fR \fIinteger\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "skip_top integer (decoding,video)" تنظیم تعداد ردیف‌های ماکروبلاک بالایی که صرف‌نظر می‌شوند. .IP "\fBskip_bottom\fR \fIinteger\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "skip_bottom integer (decoding,video)" تنظیم تعداد ردیف‌های ماکروبلاک پایینی که صرف‌نظر می‌شوند. .IP "\fBprofile\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "profile integer (encoding,audio,video)" تنظیم پروفایل کدک انکودر. مقدار پیش‌فرض \fBunknown\fR است. پروفایل‌های خاص انکودرها در مستندات انکودر مربوطه شرح داده شده‌اند. .IP "\fBlevel\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "level integer (encoding,audio,video)" تنظیم سطح (level) انکودر. این سطح به کدک مشخص بستگی دارد و ممکن است با سطح پروفایل مطابقت داشته باشد. به‌طور پیش‌فرض روی \&\fBunknown\fR تنظیم است. .Sp مقادیر ممکن: .RS 4 .IP \fBunknown\fR 4 .IX Item "unknown" .RE .RS 4 .RE .IP "\fBlowres\fR \fIinteger\fR \fB(\fR\fIدیکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "lowres integer (decoding,audio,video)" دیکود در وضوح‌های پایین‌تر 1= 1/2، 2=1/4، 3=1/8. .IP "\fBmblmin\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "mblmin integer (encoding,video)" تنظیم حداقل مقیاس کوانتیایزر ماکروبلاک (VBR). باید بین -1 و 69 باشد، مقدار پیش‌فرض 2 است. .IP "\fBmblmax\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "mblmax integer (encoding,video)" تنظیم حداکثر مقیاس کوانتیایزر ماکروبلاک (VBR). باید بین -1 و 1024 باشد، مقدار پیش‌فرض 31 است. .IP "\fBskip_loop_filter\fR \fIinteger\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "skip_loop_filter integer (decoding,video)" .PD 0 .IP "\fBskip_idct\fR \fIinteger\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "skip_idct integer (decoding,video)" .IP "\fBskip_frame\fR \fIinteger\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "skip_frame integer (decoding,video)" .PD صرف‌نظر کردن از پردازش فیلتر حلقه / IDCT / فریم‌ها بر اساس معیار انتخاب‌شده. .Sp مقادیر ممکن: .RS 4 .IP \fBnone\fR 4 .IX Item "none" صرف‌نظر نکردن از هیچ فیلتر حلقه‌ای / فریمی .IP \fBdefault\fR 4 .IX Item "default" پیش‌فرض .IP \fBnoref\fR 4 .IX Item "noref" صرف‌نظر کردن از فریم‌های غیرمرجع .IP \fBbidir\fR 4 .IX Item "bidir" صرف‌نظر کردن از فریم‌های دوطرفه (B) .IP \fBnokey\fR 4 .IX Item "nokey" صرف‌نظر کردن از تمام فریم‌ها به جز فریم‌های کلیدی .IP \fBall\fR 4 .IX Item "all" صرف‌نظر کردن از تمام فریم‌ها .RE .RS 4 .RE .IP "\fBbidir_refine\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "bidir_refine integer (encoding,video)" بهبود و اصلاح بردارهای حرکت دوطرفه مورد استفاده در فریم‌های B. .IP "\fBkeyint_min\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "keyint_min integer (encoding,video)" حداقل فاصله میان فریم‌های IDR/کلیدی. .IP "\fBrefs\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "refs integer (encoding,video)" تعداد فریم‌های مرجع مورد استفاده برای جبران حرکت. .IP "\fBtrellis\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "trellis integer (encoding,audio,video)" کوانتیزاسیون بهینه‌سازی نرخ-اعوجاج Trellis. .IP "\fBmv0_threshold\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "mv0_threshold integer (encoding,video)" آستانه بردار حرکت صفر (mv0). .IP "\fBcompression_level\fR \fIinteger\fR \fB(\fR\fIانکود،صدا،ویدیو\fR\fB)\fR" 4 .IX Item "compression_level integer (encoding,audio,video)" سطح فشرده‌سازی. .IP "\fBbits_per_raw_sample\fR \fIinteger\fR" 4 .IX Item "bits_per_raw_sample integer" تعداد بیت‌ها به‌ازای هر نمونه خام. .IP "\fBchannel_layout\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،صدا\fR\fB)\fR" 4 .IX Item "channel_layout integer (decoding/encoding,audio)" چینش کانال صوتی. .IP "\fBrc_max_vbv_use\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "rc_max_vbv_use float (encoding,video)" .PD 0 .IP "\fBrc_min_vbv_use\fR \fIfloat\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "rc_min_vbv_use float (encoding,video)" .PD حداکثر / حداقل استفاده مجاز از بافر VBV. .IP "\fBcolor_primaries\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 .IX Item "color_primaries integer (decoding/encoding,video)" .PD Possible values: .RS 4 .IP \fBbt709\fR 4 .IX Item "bt709" BT.709 .IP \fBbt470m\fR 4 .IX Item "bt470m" BT.470 M .IP \fBbt470bg\fR 4 .IX Item "bt470bg" BT.470 BG .IP \fBsmpte170m\fR 4 .IX Item "smpte170m" SMPTE 170 M .IP \fBsmpte240m\fR 4 .IX Item "smpte240m" SMPTE 240 M .IP \fBfilm\fR 4 .IX Item "film" Film .IP \fBbt2020\fR 4 .IX Item "bt2020" BT.2020 .IP \fBsmpte428\fR 4 .IX Item "smpte428" .PD 0 .IP \fBsmpte428_1\fR 4 .IX Item "smpte428_1" .PD SMPTE ST 428\-1 .IP \fBsmpte431\fR 4 .IX Item "smpte431" SMPTE 431\-2 .IP \fBsmpte432\fR 4 .IX Item "smpte432" SMPTE 432\-1 .IP \fBjedec\-p22\fR 4 .IX Item "jedec-p22" JEDEC P22 .RE .RS 4 .RE .IP "\fBcolor_trc\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 .IX Item "color_trc integer (decoding/encoding,video)" Possible values: .RS 4 .IP \fBbt709\fR 4 .IX Item "bt709" BT.709 .IP \fBgamma22\fR 4 .IX Item "gamma22" BT.470 M .IP \fBgamma28\fR 4 .IX Item "gamma28" BT.470 BG .IP \fBsmpte170m\fR 4 .IX Item "smpte170m" SMPTE 170 M .IP \fBsmpte240m\fR 4 .IX Item "smpte240m" SMPTE 240 M .IP \fBlinear\fR 4 .IX Item "linear" Linear .IP \fBlog\fR 4 .IX Item "log" .PD 0 .IP \fBlog100\fR 4 .IX Item "log100" .PD Log .IP \fBlog_sqrt\fR 4 .IX Item "log_sqrt" .PD 0 .IP \fBlog316\fR 4 .IX Item "log316" .PD Log square root .IP \fBiec61966_2_4\fR 4 .IX Item "iec61966_2_4" .PD 0 .IP \fBiec61966\-2\-4\fR 4 .IX Item "iec61966-2-4" .PD IEC 61966\-2\-4 .IP \fBbt1361\fR 4 .IX Item "bt1361" .PD 0 .IP \fBbt1361e\fR 4 .IX Item "bt1361e" .PD BT.1361 .IP \fBiec61966_2_1\fR 4 .IX Item "iec61966_2_1" .PD 0 .IP \fBiec61966\-2\-1\fR 4 .IX Item "iec61966-2-1" .PD IEC 61966\-2\-1 .IP \fBbt2020_10\fR 4 .IX Item "bt2020_10" .PD 0 .IP \fBbt2020_10bit\fR 4 .IX Item "bt2020_10bit" .PD BT.2020 \- 10 bit .IP \fBbt2020_12\fR 4 .IX Item "bt2020_12" .PD 0 .IP \fBbt2020_12bit\fR 4 .IX Item "bt2020_12bit" .PD BT.2020 \- 12 bit .IP \fBsmpte2084\fR 4 .IX Item "smpte2084" SMPTE ST 2084 .IP \fBsmpte428\fR 4 .IX Item "smpte428" .PD 0 .IP \fBsmpte428_1\fR 4 .IX Item "smpte428_1" .PD SMPTE ST 428\-1 .IP \fBarib\-std\-b67\fR 4 .IX Item "arib-std-b67" ARIB STD\-B67 .RE .RS 4 .RE .IP "\fBcolorspace\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4 .IX Item "colorspace integer (decoding/encoding,video)" Possible values: .RS 4 .IP \fBrgb\fR 4 .IX Item "rgb" RGB .IP \fBbt709\fR 4 .IX Item "bt709" BT.709 .IP \fBfcc\fR 4 .IX Item "fcc" FCC .IP \fBbt470bg\fR 4 .IX Item "bt470bg" BT.470 BG .IP \fBsmpte170m\fR 4 .IX Item "smpte170m" SMPTE 170 M .IP \fBsmpte240m\fR 4 .IX Item "smpte240m" SMPTE 240 M .IP \fBycocg\fR 4 .IX Item "ycocg" YCOCG .IP \fBbt2020nc\fR 4 .IX Item "bt2020nc" .PD 0 .IP \fBbt2020_ncl\fR 4 .IX Item "bt2020_ncl" .PD BT.2020 NCL .IP \fBbt2020c\fR 4 .IX Item "bt2020c" .PD 0 .IP \fBbt2020_cl\fR 4 .IX Item "bt2020_cl" .PD BT.2020 CL .IP \fBsmpte2085\fR 4 .IX Item "smpte2085" SMPTE 2085 .IP \fBchroma\-derived\-nc\fR 4 .IX Item "chroma-derived-nc" Chroma\-derived NCL .IP \fBchroma\-derived\-c\fR 4 .IX Item "chroma-derived-c" Chroma\-derived CL .IP \fBictcp\fR 4 .IX Item "ictcp" ICtCp .RE .RS 4 .RE .IP "\fBcolor_range\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "color_range integer (decoding/encoding,video)" در صورت استفاده به عنوان پارامتر ورودی، به عنوان راهنمایی برای دیکودر عمل می‌کند که ورودی دارای چه color_range است. مقادیر ممکن: .RS 4 .IP \fBtv\fR 4 .IX Item "tv" .PD 0 .IP \fBmpeg\fR 4 .IX Item "mpeg" .IP \fBlimited\fR 4 .IX Item "limited" .PD محدوده محدود MPEG (219*2^(n\-8)) .IP \fBpc\fR 4 .IX Item "pc" .PD 0 .IP \fBjpeg\fR 4 .IX Item "jpeg" .IP \fBfull\fR 4 .IX Item "full" .PD محدوده کامل JPEG (2^n\-1) .RE .RS 4 .RE .IP "\fBchroma_sample_location\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "chroma_sample_location integer (decoding/encoding,video)" موقعیت نمونه‌برداری کروما. مقادیر ممکن: .RS 4 .IP \fBleft\fR 4 .IX Item "left" .PD 0 .IP \fBcenter\fR 4 .IX Item "center" .IP \fBtopleft\fR 4 .IX Item "topleft" .IP \fBtop\fR 4 .IX Item "top" .IP \fBbottomleft\fR 4 .IX Item "bottomleft" .IP \fBbottom\fR 4 .IX Item "bottom" .PD .RE .RS 4 .RE .IP "\fBalpha_mode\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "alpha_mode integer (decoding/encoding,video)" حالت کانال آلفا. مقادیر ممکن: .RS 4 .IP \fBpremultiplied\fR 4 .IX Item "premultiplied" .PD 0 .IP \fBstraight\fR 4 .IX Item "straight" .PD .RE .RS 4 .RE .IP "\fBlog_level_offset\fR \fIinteger\fR" 4 .IX Item "log_level_offset integer" تنظیم آفست سطح گزارش‌گیری (log level). .IP "\fBslices\fR \fIinteger\fR \fB(\fR\fIانکود،ویدیو\fR\fB)\fR" 4 .IX Item "slices integer (encoding,video)" تعداد اسلایس‌ها، مورد استفاده در انکود موازی. .IP "\fBthread_type\fR \fIflags\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "thread_type flags (decoding/encoding,video)" انتخاب روش‌های چندرشتگی برای استفاده. .Sp استفاده از \fBframe\fR تأخیر دیکود را به میزان یک فریم به‌ازای هر رشته افزایش می‌دهد، بنابراین کلاینت‌هایی که نمی‌توانند فریم‌های آینده را فراهم کنند نباید از آن استفاده نمایند. .Sp مقادیر ممکن: .RS 4 .IP \fBslice\fR 4 .IX Item "slice" دیکود همزمان بیش از یک بخش از یک تک فریم. .Sp چندرشتگی با استفاده از اسلایس‌ها تنها در صورتی کار می‌کند که ویدیو با اسلایس‌ها انکود شده باشد. .IP \fBframe\fR 4 .IX Item "frame" دیکود همزمان بیش از یک فریم. .RE .RS 4 .Sp مقدار پیش‌فرض \fBslice+frame\fR است. .RE .IP "\fBaudio_service_type\fR \fIinteger\fR \fB(\fR\fIانکود،صدا\fR\fB)\fR" 4 .IX Item "audio_service_type integer (encoding,audio)" تنظیم نوع سرویس صدا. .Sp مقادیر ممکن: .RS 4 .IP \fBma\fR 4 .IX Item "ma" سرویس اصلی صدا (Main Audio Service) .IP \fBef\fR 4 .IX Item "ef" جلوه‌های صوتی (Effects) .IP \fBvi\fR 4 .IX Item "vi" ویژه آسیب‌دیدگان بینایی (Visually Impaired) .IP \fBhi\fR 4 .IX Item "hi" ویژه آسیب‌دیدگان شنوایی (Hearing Impaired) .IP \fBdi\fR 4 .IX Item "di" گفتگو و دیالوگ (Dialogue) .IP \fBco\fR 4 .IX Item "co" تفسیر و توضیحات (Commentary) .IP \fBem\fR 4 .IX Item "em" وضعیت اضطراری (Emergency) .IP \fBvo\fR 4 .IX Item "vo" صداپیشگی و نریشن (Voice Over) .IP \fBka\fR 4 .IX Item "ka" کارائوکه (Karaoke) .RE .RS 4 .RE .IP "\fBrequest_sample_fmt\fR \fIsample_fmt\fR \fB(\fR\fIدیکود،صدا\fR\fB)\fR" 4 .IX Item "request_sample_fmt sample_fmt (decoding,audio)" تنظیم قالب نمونه ترجیحی دیکودرهای صوتی. مقدار پیش‌فرض \&\f(CW\*(C`none\*(C'\fR است. .IP "\fBpkt_timebase\fR \fIrational number\fR" 4 .IX Item "pkt_timebase rational number" .PD 0 .IP "\fBsub_charenc\fR \fIencoding\fR \fB(\fR\fIدیکود،زیرنویس\fR\fB)\fR" 4 .IX Item "sub_charenc encoding (decoding,subtitles)" .PD تنظیم کدگذاری نویسه‌های زیرنویس ورودی. .IP "\fBfield_order\fR \fIfield_order\fR \fB(\fR\fIویدیو\fR\fB)\fR" 4 .IX Item "field_order field_order (video)" تنظیم/بازنویسی ترتیب فیلدهای ویدیو. مقادیر ممکن: .RS 4 .IP \fBprogressive\fR 4 .IX Item "progressive" ویدیوی پروگرسیو (Progressive) .IP \fBtt\fR 4 .IX Item "tt" ویدیوی درهم‌تنیده، فیلد بالایی ابتدا کدگذاری و نمایش داده می‌شود .IP \fBbb\fR 4 .IX Item "bb" ویدیوی درهم‌تنیده، فیلد پایینی ابتدا کدگذاری و نمایش داده می‌شود .IP \fBtb\fR 4 .IX Item "tb" ویدیوی درهم‌تنیده، بالایی ابتدا کدگذاری، پایینی ابتدا نمایش داده می‌شود .IP \fBbt\fR 4 .IX Item "bt" ویدیوی درهم‌تنیده، پایینی ابتدا کدگذاری، بالایی ابتدا نمایش داده می‌شود .RE .RS 4 .RE .IP "\fBskip_alpha\fR \fIbool\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "skip_alpha bool (decoding,video)" تنظیم روی 1 برای غیرفعال کردن پردازش آلفا (شفافیت). این همانند پرچم \&\fBgray\fR در گزینهٔ \fBflags\fR عمل می‌کند که از اطلاعات کروما به جای آلفا صرف‌نظر می‌نماید. مقدار پیش‌فرض 0 است. .IP "\fBcodec_whitelist\fR \fIlist\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "codec_whitelist list (input)" فهرست با کاما جداشده از دیکودرهای مجاز. به‌طور پیش‌فرض تمام دیکودرها مجاز هستند. .IP "\fBdump_separator\fR \fIstring\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "dump_separator string (input)" جداکننده مورد استفاده برای تفکیک فیلدهای چاپ‌شده در خط فرمان درباره پارامترهای استریم. برای مثال، برای جداسازی فیلدها با خطوط جدید و دندانه‌گذاری: .Sp .Vb 2 \& ffprobe \-dump_separator " \& " \-i ~/videos/matrixbench_mpeg2.mpg .Ve .IP "\fBmax_pixels\fR \fIinteger\fR \fB(\fR\fIدیکود/انکود،ویدیو\fR\fB)\fR" 4 .IX Item "max_pixels integer (decoding/encoding,video)" حداکثر تعداد پیکسل‌ها به‌ازای هر تصویر. این مقدار می‌تواند برای جلوگیری از خطای کمبود حافظه به دلیل تصاویر بسیار بزرگ استفاده شود. .IP "\fBapply_cropping\fR \fIbool\fR \fB(\fR\fIدیکود،ویدیو\fR\fB)\fR" 4 .IX Item "apply_cropping bool (decoding,video)" فعال‌سازی برش (cropping) در صورتی که پارامترهای برش مضربی از تراز مورد نیاز برای پارامترهای چپ و بالا باشند. اگر تراز برقرار نباشد، برش به صورت جزئی اعمال خواهد شد تا تراز حفظ شود. مقدار پیش‌فرض 1 (فعال) است. نکته: تراز مورد نیاز بستگی به این دارد که آیا \f(CW\*(C`AV_CODEC_FLAG_UNALIGNED\*(C'\fR تنظیم شده باشد یا خیر و به پردازنده (CPU) وابسته است. مقدار \f(CW\*(C`AV_CODEC_FLAG_UNALIGNED\*(C'\fR از خط فرمان قابل تغییر نیست. همچنین دیکودرهای سخت‌افزاری برش چپ/بالا را اعمال نخواهند کرد. .SH "دیکودرها (DECODERS)" .IX Header "DECODERS" دیکودرها عناصر پیکربندی‌شده‌ای در FFmpeg هستند که امکان رمزگشایی (دیکود کردن) جریان‌های چندرسانه‌ای را فراهم می‌سازند. .PP هنگام پیکربندی بیلد FFmpeg، تمامی دیکودرهای توکار (native) پشتیبانی‌شده به صورت پیش‌فرض فعال هستند. دیکودرهایی که به یک کتابخانه خارجی نیاز دارند باید به صورت دستی از طریق گزینه متناظر \f(CW\*(C`\-\-enable\-lib\*(C'\fR فعال شوند. می‌توانید با استفاده از گزینه پیکربندی \f(CW\*(C`\-\-list\-decoders\*(C'\fR فهرستی از تمام دیکودرهای موجود را مشاهده کنید. .PP می‌توانید تمامی دیکودرها را با گزینه پیکربندی \&\f(CW\*(C`\-\-disable\-decoders\*(C'\fR غیرفعال کنید و دیکودرهای تکی را به صورت انتخابی با گزینه‌های \f(CW\*(C`\-\-enable\-decoder=\fR\f(CIDECODER\fR\f(CW\*(C'\fR / \&\f(CW\*(C`\-\-disable\-decoder=\fR\f(CIDECODER\fR\f(CW\*(C'\fR فعال یا غیرفعال نمایید. .PP گزینه \f(CW\*(C`\-decoders\*(C'\fR در ابزارهای *ff فهرست دیکودرهای فعال‌شده را نمایش می‌دهد. .SH "دیکودرهای ویدیو (VIDEO DECODERS)" .IX Header "VIDEO DECODERS" توضیحات مربوط به برخی از دیکودرهای ویدیویی در دسترس در ادامه آمده است. .SS av1 .IX Subsection "av1" دیکودر AOMedia Video 1 (AV1). .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBoperating_point\fR 4 .IX Item "operating_point" انتخاب نقطه عملیاتی یک جریان بیت مقیاس‌پذیر AV1 (از 0 تا 31). مقدار پیش‌فرض 0 است. .SS hevc .IX Subsection "hevc" دیکودر HEVC (شناخته‌شده با عنوان ITU\-T H.265 یا ISO/IEC 23008\-2). .PP این دیکودر از جریان‌های چندنمایی MV\-HEVC با حداکثر دو نما پشتیبانی می‌کند. نماهایی که باید به عنوان خروجی ارائه شوند با ارسال فهرستی از شناسه‌های نما به دیکودر (گزینه \&\fBview_ids\fR) انتخاب می‌گردند. این گزینه می‌تواند به صورت ایستا پیش از مقداردهی اولیه دیکودر، یا از فراخوان بازگشتی \f(CWget_format()\fR تنظیم شود \- که برای مواردی که تعداد نماها یا شناسه‌ها در حین دیکود به صورت پویا تغییر می‌کنند مفید است. .PP به طور پیش‌فرض تنها لایه پایه دیکود می‌شود. .PP توجه داشته باشید که اگر از ابزار خط فرمان \f(CW\*(C`ffmpeg\*(C'\fR استفاده می‌کنید، باید به جای گزینه‌های ذکرشده در اینجا، از مشخص‌کننده‌های نما همان‌طور که در راهنمای آن مستند شده است استفاده نمایید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBview_ids (MV\-HEVC)\fR" 4 .IX Item "view_ids (MV-HEVC)" فهرستی از شناسه‌های نما که باید در خروجی قرار گیرند را مشخص می‌کند. این گزینه همچنین می‌تواند روی یک مقدار تکی \*(Aq\-1\*(Aq تنظیم شود که باعث می‌شود تمامی نماهای تعریف‌شده در VPS دیکود شده و به خروجی فرستاده شوند. .IP "\fBview_ids_available (MV\-HEVC)\fR" 4 .IX Item "view_ids_available (MV-HEVC)" این گزینه ممکن است توسط فراخوان‌کننده خوانده شود تا آرایه‌ای از شناسه‌های نمای موجود در VPS فعال را بازیابی کند. این آرایه برای ویدیوی تک‌لایه‌ای خالی است. .Sp دقت مقدار این گزینه هنگامی که از فراخوان بازگشتی \&\f(CWget_format()\fR خوانده شود تضمین شده است. همچنین ممکن است در زمان‌های دیگر (مانند پس از باز کردن دیکودر) تنظیم شود، اما مقدار آن صرفاً جنبه اطلاع‌رسانی دارد و ممکن است نادرست باشد (مثلاً زمانی که جریان حاوی چندین VPS NALU متمایز باشد). .IP "\fBview_pos_available (MV\-HEVC)\fR" 4 .IX Item "view_pos_available (MV-HEVC)" این گزینه ممکن است توسط فراخوان‌کننده خوانده شود تا آرایه‌ای از موقعیت‌های نما (چپ، راست، یا نامشخص) موجود در VPS فعال را به عنوان مقادیر \&\f(CW\*(C`AVStereo3DView\*(C'\fR بازیابی کند. هنگامی که این آرایه در دسترس باشد، عناصر آن بر عناصر متناظر در \fBview_ids_available\fR اعمال می‌شوند؛ به این معنی که \&\f(CW\*(C`view_pos_available[i]\*(C'\fR موقعیت نمای با شناسه \&\f(CW\*(C`view_ids_available[i]\*(C'\fR را در بر دارد. .Sp همان محدودیت‌های اعتبارسنجی مربوط به \fBview_ids_available\fR بر این گزینه نیز اعمال می‌شود. .SS rawvideo .IX Subsection "rawvideo" دیکودر ویدیوی خام (Raw video). .PP این دیکودر جریان‌های rawvideo را دیکود می‌کند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBtop\fR \fItop_field_first\fR" 4 .IX Item "top top_field_first" تعیین نوع فیلد فرض‌شده برای ویدیوی ورودی. .RS 4 .IP \fB\-1\fR 4 .IX Item "-1" ویدیو به عنوان پروگرسیو در نظر گرفته می‌شود (پیش‌فرض) .IP \fB0\fR 4 .IX Item "0" حالت ابتدا فیلد پایینی (Bottom-field-first) فرض می‌شود .IP \fB1\fR 4 .IX Item "1" حالت ابتدا فیلد بالایی (Top-field-first) فرض می‌شود .RE .RS 4 .RE .SS libdav1d .IX Subsection "libdav1d" دیکودر dav1d AV1. .PP کتابخانه libdav1d به libavcodec اجازه می‌دهد کدک AOMedia Video 1 (AV1) را دیکود کند. نیازمند وجود هدرها و کتابخانه libdav1d در زمان پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-libdav1d\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش libdav1d پشتیبانی می‌شوند. .IP \fBmax_frame_delay\fR 4 .IX Item "max_frame_delay" تنظیم حداکثر تعداد فریم‌هایی که دیکودر می‌تواند در حافظه موقت داخلی بافر کند. مقدار پیش‌فرض 0 است (تشخیص خودکار). .IP \fBfilmgrain\fR 4 .IX Item "filmgrain" اعمال گرین فیلم (Film Grain) بر ویدیوی دیکودشده در صورت وجود در استریم بیت. به مقدار پیش‌فرض داخلی کتابخانه برمی‌گردد. این گزینه منسوخ شده است و در آینده حذف خواهد شد. برای استخراج پارامترهای گرین فیلم به جای اعمال مستقیم آن، به گزینه عمومی \&\f(CW\*(C`export_side_data\*(C'\fR مراجعه کنید. .IP \fBoppoint\fR 4 .IX Item "oppoint" انتخاب نقطه عملیاتی از جریان بیت مقیاس‌پذیر AV1 (از 0 تا 31). به مقدار پیش‌فرض داخلی کتابخانه بازمی‌گردد. .IP \fBalllayers\fR 4 .IX Item "alllayers" خروجی دادن تمامی لایه‌های فضایی جریان بیت مقیاس‌پذیر AV1. مقدار پیش‌فرض false است. .SS libdavs2 .IX Subsection "libdavs2" پوشش دیکودر ویدیوی AVS2\-P2/IEEE1857.4. .PP این دیکودر به libavcodec امکان می‌دهد جریان‌های AVS2 را با کتابخانه davs2 دیکود کند. .SS libuavs3d .IX Subsection "libuavs3d" دیکودر ویدیوی AVS3\-P2/IEEE1857.10. .PP کتابخانه libuavs3d به libavcodec امکان رمزگشایی جریان‌های AVS3 را می‌دهد. نیازمند وجود هدرها و کتابخانه libuavs3d در زمان پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-libuavs3d\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه زیر توسط پوشش libuavs3d پشتیبانی می‌شود. .IP \fBframe_threads\fR 4 .IX Item "frame_threads" تنظیم تعداد نخ‌های پردازشی فریم برای استفاده در هنگام دیکود. مقدار پیش‌فرض 0 است (تشخیص خودکار). .SS libxevd .IX Subsection "libxevd" پوشش دیکودر eXtra\-fast Essential Video Decoder (XEVD) برای MPEG\-5 EVC. .PP این دیکودر نیازمند وجود هدرها و کتابخانه libxevd در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\fB\-\-enable\-libxevd\fR پیکربندی کنید. .PP وب‌سایت پروژه xevd در <\fBhttps://github.com/mpeg5/xevd\fR> قرار دارد. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش libxevd پشتیبانی می‌شوند. گزینه‌ها یا مقادیر معادل در xevd برای تسهیل مهاجرت درون پرانتز درج شده‌اند. .PP برای دستیابی به مستندات دقیق‌تر و جامع‌تر درباره گزینه‌های libxevd، دستور \f(CW\*(C`xevd_app \-\-help\*(C'\fR را اجرا کنید یا به مستندات libxevd مراجعه نمایید. .IP "\fBthreads (\fR\fIthreads\fR\fB)\fR" 4 .IX Item "threads (threads)" اجبار به استفاده از تعداد مشخصی نخ پردازشی (Thread). .SS "QSV Decoders" .IX Subsection "QSV Decoders" خانواده دیکودرهای شتاب‌یافته Intel QuickSync Video (شامل VC1، MPEG\-2، H.264، HEVC، JPEG/MJPEG، VP8، VP9، AV1، VVC). .PP \fIگزینه‌های مشترک (Common Options)\fR .IX Subsection "Common Options" .PP گزینه‌های زیر توسط تمامی دیکودرهای qsv پشتیبانی می‌شوند. .IP \fIasync_depth\fR 4 .IX Item "async_depth" عمق موازی‌سازی داخلی؛ هرچه مقدار بالاتر باشد، تاخیر بیشتر خواهد بود. .IP \fIgpu_copy\fR 4 .IX Item "gpu_copy" کپی با شتاب GPU میان حافظه ویدیو و حافظه سیستم. .RS 4 .IP \fBdefault\fR 4 .IX Item "default" .PD 0 .IP \fBon\fR 4 .IX Item "on" .IP \fBoff\fR 4 .IX Item "off" .PD .RE .RS 4 .RE .PP \fIگزینه‌های HEVC (HEVC Options)\fR .IX Subsection "HEVC Options" .PP گزینه‌های اضافی برای hevc_qsv. .IP \fIload_plugin\fR 4 .IX Item "load_plugin" یک پلاگین کاربری برای بارگذاری در نشست داخلی. .RS 4 .IP \fBnone\fR 4 .IX Item "none" .PD 0 .IP \fBhevc_sw\fR 4 .IX Item "hevc_sw" .IP \fBhevc_hw\fR 4 .IX Item "hevc_hw" .PD .RE .RS 4 .RE .IP \fIload_plugins\fR 4 .IX Item "load_plugins" فهرستی جداشده با نویسه دو‌نقطه (:) از شناسه یکتای هگزادسیمال (UID) پلاگین‌ها جهت بارگذاری در یک نشست داخلی. .SS v210 .IX Subsection "v210" دیکودر غیرفشرده 4:2:2 ده بیتی (10\-bit). .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBcustom_stride\fR 4 .IX Item "custom_stride" تنظیم اندازه خط داده‌های v210 بر حسب بایت. مقدار پیش‌فرض 0 است (تشخیص خودکار). می‌توانید از مقدار ویژه \-1 برای v210 فاقد Stride مانند آنچه در فایل‌های BOXX دیده می‌شود استفاده کنید. .SH "دیکودرهای صدا (AUDIO DECODERS)" .IX Header "AUDIO DECODERS" توضیحات مربوط به برخی از دیکودرهای صوتی در دسترس در ادامه آمده است. .SS ac3 .IX Subsection "ac3" دیکودر صوتی AC\-3. .PP این دیکودر بخشی از استانداردهای ATSC A/52:2010 و ETSI TS 102 366 و همچنین RealAudio 3 غیرمستند (شناخته‌شده با نام dnet) را پیاده‌سازی می‌کند. .PP \fIگزینه‌های دیکودر AC\-3 (AC\-3 Decoder Options)\fR .IX Subsection "AC-3 Decoder Options" .IP "\fB\-drc_scale\fR \fIvalue\fR" 4 .IX Item "-drc_scale value" ضریب مقیاس دامنه دینامیکی. ضریبی که بر مقادیر دامنه دینامیکی حاصل از جریان AC\-3 اعمال می‌شود. این ضریب به صورت نمایی اعمال می‌گردد. مقدار پیش‌فرض 1 است. سه محدوده ضریب مقیاس قابل توجه وجود دارد: .RS 4 .IP "\fBdrc_scale == 0\fR" 4 .IX Item "drc_scale == 0" قابلیت DRC غیرفعال است. صدای با دامنه کامل تولید می‌کند. .IP "\fB0 < drc_scale <= 1\fR" 4 .IX Item "0 < drc_scale <= 1" قابلیت DRC فعال است. کسری از مقدار DRC جریان را اعمال می‌کند. بازتولید صدا در حدی میان دامنه کامل و فشرده‌سازی کامل قرار می‌گیرد. .IP "\fBdrc_scale > 1\fR" 4 .IX Item "drc_scale > 1" قابلیت DRC فعال است. مقدار drc_scale را به صورت نامتقارن اعمال می‌کند. صداهای بلند کاملاً فشرده می‌شوند. صداهای آهسته تقویت می‌گردند. .RE .RS 4 .RE .SS flac .IX Subsection "flac" دیکودر صوتی FLAC. .PP هدف این دیکودر پیاده‌سازی مشخصات کامل استاندارد FLAC از بنیاد Xiph است. .PP \fIگزینه‌های دیکودر FLAC (FLAC Decoder options)\fR .IX Subsection "FLAC Decoder options" .IP \fB\-use_buggy_lpc\fR 4 .IX Item "-use_buggy_lpc" انکودر FLAC در lavc سابقاً جریان‌هایی با مقادیر LPC بالا (مانند مقدار پیش‌فرض) تولید می‌کرد که دارای باگ بودند. این گزینه امکان دیکود صحیح چنین استریم‌هایی را با استفاده از منطق قدیمی و معیوب LPC در lavc فراهم می‌سازد. .SS ffwavesynth .IX Subsection "ffwavesynth" سینت سایزر موجی داخلی. .PP این دیکودر الگوهای موجی را بر اساس توالی‌های از پیش تعریف‌شده تولید می‌کند. کاربرد آن صرفاً داخلی است و قالب داده‌هایی که می‌پذیرد به صورت عمومی مستند نشده است. .SS libgsm .IX Subsection "libgsm" پوشش دیکودر libgsm. .PP کتابخانه libgsm به libavcodec امکان می‌دهد کدک صوتی نرخ کامل GSM را دیکود کند. نیازمند وجود هدرها و کتابخانه libgsm در هنگام پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-libgsm\*(C'\fR پیکربندی کنید. .PP این دیکودر از هر دو گونه استاندارد GSM و گونه متعلق به مایکروسافت پشتیبانی می‌کند. .SS libilbc .IX Subsection "libilbc" پوشش دیکودر libilbc. .PP کتابخانه libilbc به libavcodec امکان می‌دهد کدک صوتی نرخ بیت پایین اینترنت (iLBC) را دیکود کند. نیازمند وجود هدرها و کتابخانه libilbc در حین پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libilbc\*(C'\fR پیکربندی نمایید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه زیر توسط پوشش libilbc پشتیبانی می‌شود. .IP \fBenhance\fR 4 .IX Item "enhance" در صورت تنظیم بر روی 1، بهبود کیفیت صدای دیکودشده را فعال می‌کند. مقدار پیش‌فرض 0 است (غیرفعال). .SS libmpeghdec .IX Subsection "libmpeghdec" پوشش دیکودر libmpeghdec. .PP کتابخانه libmpeghdec به FFmpeg اجازه می‌دهد تا کدک صوتی سه‌بعدی MPEG\-H 3D را دیکود کند. نیازمند هدرها و کتابخانه libmpeghdec در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libmpeghdec \-\-enable\-nonfree\*(C'\fR پیکربندی نمایید. .SS libopencore\-amrnb .IX Subsection "libopencore-amrnb" پوشش دیکودر libopencore\-amrnb. .PP کتابخانه libopencore\-amrnb به libavcodec امکان رمزگشایی کدک صوتی چندنرخی تطبیقی باند باریک (AMR\-NB) را می‌دهد. استفاده از آن مستلزم وجود هدرها و کتابخانه libopencore\-amrnb در زمان پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-libopencore\-amrnb\*(C'\fR پیکربندی کنید. .PP یک دیکودر بومی در FFmpeg برای AMR\-NB وجود دارد، بنابراین کاربران می‌توانند بدون نیاز به این کتابخانه فایل‌های AMR\-NB را دیکود کنند. .SS libopencore\-amrwb .IX Subsection "libopencore-amrwb" پوشش دیکودر libopencore\-amrwb. .PP کتابخانه libopencore\-amrwb به libavcodec اجازه می‌دهد کدک صوتی چندنرخی تطبیقی باند پهن (AMR\-WB) را دیکود کند. استفاده از آن مستلزم حضور هدرها و کتابخانه libopencore\-amrwb در زمان پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-libopencore\-amrwb\*(C'\fR پیکربندی نمایید. .PP یک دیکودر بومی FFmpeg برای AMR\-WB وجود دارد، بنابراین کاربران می‌توانند بدون این کتابخانه نیز AMR\-WB را رمزگشایی کنند. .SS libopus .IX Subsection "libopus" پوشش دیکودر libopus. .PP کتابخانه libopus به libavcodec امکان می‌دهد تا کدک صوتی تعاملی Opus را دیکود نماید. نیازمند هدرها و کتابخانه libopus در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libopus\*(C'\fR پیکربندی کنید. .PP یک دیکودر بومی در FFmpeg برای Opus وجود دارد، بنابراین کاربران بدون این کتابخانه نیز قادر به دیکود کردن Opus هستند. .SH "دیکودرهای زیرنویس (SUBTITLES DECODERS)" .IX Header "SUBTITLES DECODERS" .SS libaribb24 .IX Subsection "libaribb24" دیکودر زیرنویس ARIB STD\-B24. .PP پروفایل‌های A و C از استاندارد ARIB STD\-B24 را پیاده‌سازی می‌کند. .PP \fIگزینه‌های دیکودر libaribb24 (libaribb24 Decoder Options)\fR .IX Subsection "libaribb24 Decoder Options" .IP "\fB\-aribb24\-base\-path\fR \fIpath\fR" 4 .IX Item "-aribb24-base-path path" مسیر پایه را برای کتابخانه libaribb24 تعیین می‌کند. این مسیر برای خواندن پرونده‌های پیکربندی (جهت تبدیل‌های سفارشی یونیکد) و ذخیره نمادهای غیرمتنی به صورت تصویر در آن مکان به کار می‌رود. .Sp به طور پیش‌فرض تعیین‌نشده است. .IP "\fB\-aribb24\-skip\-ruby\-text\fR \fIboolean\fR" 4 .IX Item "-aribb24-skip-ruby-text boolean" به پوشش دیکودر دستور می‌دهد از بلوک‌های متنی حاوی نویسه‌های نیمه‌ارتفاع روبی (Ruby text) صرف‌نظر کند. .Sp به طور پیش‌فرض فعال است. .SS libaribcaption .IX Subsection "libaribcaption" یک دیکودر دیگر برای زیرنویس ARIB STD\-B24 با استفاده از کتابخانه خارجی \fIlibaribcaption\fR. .PP پروفایل‌های A و C از استاندارد ژاپنی ARIB STD\-B24، استاندارد برزیلی ABNT NBR 15606\-1 و نسخه فیلیپینی ISDB\-T را پیاده‌سازی می‌کند. .PP نیازمند وجود هدرها و کتابخانه libaribcaption (<\fBhttps://github.com/xqq/libaribcaption\fR>) در هنگام پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-libaribcaption\*(C'\fR پیکربندی کنید. اگر هر دو دیکودر \fIlibaribb24\fR و \fIlibaribcaption\fR فعال باشند، دیکودر \fIlibaribcaption\fR اولویت خواهد داشت. .PP \fIگزینه‌های دیکودر libaribcaption (libaribcaption Decoder Options)\fR .IX Subsection "libaribcaption Decoder Options" .IP "\fB\-sub_type\fR \fIsubtitle_type\fR" 4 .IX Item "-sub_type subtitle_type" قالب زیرنویس‌های دیکودشده را مشخص می‌کند. .RS 4 .IP \fBbitmap\fR 4 .IX Item "bitmap" تصویر گرافیکی (بیت‌مپ). .IP \fBass\fR 4 .IX Item "ass" متن فرمت‌بندی‌شده ASS. .IP \fBtext\fR 4 .IX Item "text" خروجی ساده مبتنی بر متن بدون قالب‌بندی. .RE .RS 4 .Sp پیش‌فرض همانند دیکودر \fIlibaribb24\fR مقدار \fIass\fR است. برخی از پخش‌کننده‌های امروزی (مانند \fImpv\fR) برای زیرنویس ARIB انتظار قالب ASS را دارند. .RE .IP "\fB\-caption_encoding\fR \fIencoding_scheme\fR" 4 .IX Item "-caption_encoding encoding_scheme" طرح کدگذاری متن زیرنویس ورودی را مشخص می‌کند. .RS 4 .IP \fBauto\fR 4 .IX Item "auto" تشخیص خودکار انکودینگ متن (پیش‌فرض). .IP \fBjis\fR 4 .IX Item "jis" انکودینگ نویسه ۸ بیتی JIS تعریف‌شده در ARIB STD B24. این انکودینگ در ژاپن برای زیرنویس‌های ISDB استفاده می‌شود. .IP \fButf8\fR 4 .IX Item "utf8" انکودینگ UTF\-8 تعریف‌شده در ARIB STD B24. این انکودینگ در فیلیپین برای زیرنویس‌های ISDB\-T استفاده می‌شود. .IP \fBlatin\fR 4 .IX Item "latin" انکودینگ نویسه‌های لاتین تعریف‌شده در ABNT NBR 15606\-1. این انکودینگ در آمریکای جنوبی برای زیرنویس‌های SBTVD / ISDB\-Tb استفاده می‌گردد. .RE .RS 4 .RE .IP "\fB\-font\fR \fIfont_name[,font_name2,...]\fR" 4 .IX Item "-font font_name[,font_name2,...]" فهرستی جداشده با کاما از نام‌های خانواده قلم را برای استفاده در رندر زیرنویس نوع \fIbitmap\fR یا \fIass\fR مشخص می‌کند. برای زیرنویس نوع \fIass\fR تنها نام اولین فونت استفاده می‌شود. .Sp در صورت عدم تعیین، از خانواده قلم پیش‌فرض تعریف‌شده در داخل استفاده می‌گردد. .IP "\fB\-ass_single_rect\fR \fIboolean\fR" 4 .IX Item "-ass_single_rect boolean" استاندارد ARIB STD\-B24 مشخص می‌کند که برخی زیرنویس‌ها ممکن است هم‌زمان در موقعیت‌های متفاوتی نمایش داده شوند (زیرنویس چندمستطیلی). از آنجا که برخی از پخش‌کننده‌ها (مانند نسخه‌های قدیمی \fImpv\fR) نمی‌توانند چندین مستطیل ASS را در یک AVSubtitle واحد پردازش کنند، یا چند مستطیل ASS با مدت نامشخص و برچسب زمانی شروع یکسان را به درستی نمایش دهند، این گزینه می‌تواند رفتار را به گونه‌ای تغییر دهد که تمام متن‌ها در یک مستطیل واحد ASS نمایش داده شوند. .Sp مقدار پیش‌فرض \fIfalse\fR است. .Sp اگر پخش‌کننده شما نمی‌تواند AVSubtitleهای دارای چندین مستطیل ASS را به درستی پردازش کند، این گزینه را روی \fItrue\fR تنظیم کنید یا مقدار \fBASS_SINGLE_RECT=1\fR را تعریف نمایید تا رفتار پیش‌فرض در زمان کامپایل تغییر کند. .IP "\fB\-force_outline_text\fR \fIboolean\fR" 4 .IX Item "-force_outline_text boolean" مشخص می‌کند که آیا همیشه برای تمامی نویسه‌ها خط بیرونی (Outline) رندر شود، بدون توجه به آنچه سبک نویسه نشان می‌دهد. .Sp مقدار پیش‌فرض \fIfalse\fR است. .IP "\fB\-outline_width\fR \fInumber\fR \fB(0.0 \- 3.0)\fR" 4 .IX Item "-outline_width number (0.0 - 3.0)" عرض خط دور متن را بر حسب نقطه (نسبی) تعیین می‌کند. .Sp مقدار پیش‌فرض \fI1.5\fR است. .IP "\fB\-ignore_background\fR \fIboolean\fR" 4 .IX Item "-ignore_background boolean" مشخص می‌کند که آیا از رندر رنگ پس‌زمینه صرف‌نظر شود یا خیر. .Sp مقدار پیش‌فرض \fIfalse\fR است. .IP "\fB\-ignore_ruby\fR \fIboolean\fR" 4 .IX Item "-ignore_ruby boolean" مشخص می‌کند که آیا از رندر نویسه‌های شبیه به روبی (فوریگانا) صرف‌نظر شود یا خیر. .Sp مقدار پیش‌فرض \fIfalse\fR است. .IP "\fB\-replace_drcs\fR \fIboolean\fR" 4 .IX Item "-replace_drcs boolean" مشخص می‌کند که آیا نویسه‌های جایگزین DRCS به صورت نویسه‌های یونیکد رندر شوند یا خیر. .Sp مقدار پیش‌فرض \fItrue\fR است. .IP "\fB\-replace_msz_ascii\fR \fIboolean\fR" 4 .IX Item "-replace_msz_ascii boolean" مشخص می‌کند که آیا نویسه‌های عددی-حرفی تمام‌عرض MSZ (اندازه متوسط؛ نیم‌عرض) با نویسه‌های نیم‌عرض جایگزین شوند یا خیر. .Sp مقدار پیش‌فرض \fItrue\fR است. .IP "\fB\-replace_msz_japanese\fR \fIboolean\fR" 4 .IX Item "-replace_msz_japanese boolean" مشخص می‌کند که آیا برخی نویسه‌های ویژه ژاپنی تمام‌عرض MSZ (اندازه متوسط؛ نیم‌عرض) با نمونه‌های نیم‌عرض جایگزین شوند یا خیر. .Sp مقدار پیش‌فرض \fItrue\fR است. .IP "\fB\-replace_msz_glyph\fR \fIboolean\fR" 4 .IX Item "-replace_msz_glyph boolean" مشخص می‌کند که در صورت پشتیبانی فونت، آیا نویسه‌های MSZ (اندازه متوسط؛ نیم‌عرض) با گلیف‌های نیم‌عرض جایگزین شوند یا خیر. این گزینه تحت موتورهای رندر FreeType یا DirectWrite با قلم‌های سازگار با Adobe\-Japan1 کار می‌کند؛ مانند IBM Plex Sans JP، Morisawa BIZ UDGothic، Morisawa BIZ UDMincho، Yu Gothic، Yu Mincho و Meiryo. .Sp مقدار پیش‌فرض \fItrue\fR است. .IP "\fB\-canvas_size\fR \fIimage_size\fR" 4 .IX Item "-canvas_size image_size" وضوح بوم (Canvas) را جهت رندر زیرنویس‌ها مشخص می‌کند؛ معمولاً این مقدار باید با اندازه فریم ویدیوی ورودی برابر باشد. این گزینه تنها زمانی اعمال می‌شود که \f(CW\*(C`\-subtitle_type\*(C'\fR بر روی \fIbitmap\fR تنظیم شده باشد. .Sp دیکودر libaribcaption اندازه فریم ورودی را برای رندر بیت‌مپ به صورت زیر فرض می‌کند: .RS 4 .IP 1. 4 پروفایل PROFILE_A : ابعاد 1440 x 1080 با SAR (PAR) 4:3 .IP 2. 4 پروفایل PROFILE_C : ابعاد 320 x 180 با SAR (PAR) 1:1 .RE .RS 4 .Sp اگر ابعاد واقعی فریم ویدیوی ورودی با این فرض‌ها مطابقت نداشته باشد، ممکن است زیرنویس‌های رندرشده دچار اعوجاج شوند. برای جلوگیری از اعوجاج، گزینه \f(CW\*(C`\-canvas_size\*(C'\fR را برای مشخص کردن اندازه واقعی ویدیوی ورودی اضافه کنید. .Sp توجه داشته باشید که گزینه \f(CW\*(C`\-canvas_size\*(C'\fR برای ویدیوهایی با ابعاد متفاوت اما با نسبت تصویر یکسان لازم نیست. در چنین مواردی اگر \f(CW\*(C`\-canvas_size\*(C'\fR مشخص نشده باشد، زیرنویس متناسب با اندازه واقعی ویدیو کشیده یا کوچک می‌شود. در صورتی که \f(CW\*(C`\-canvas_size\*(C'\fR با اندازه متفاوتی مشخص شود، زیرنویس به اندازه تعیین‌شده با SAR محاسبه‌شده کشیده یا جمع خواهد شد. .RE .PP \fIمثال‌های استفاده از دیکودر libaribcaption (libaribcaption decoder usage examples)\fR .IX Subsection "libaribcaption decoder usage examples" .PP نمایش فایل MPEG\-TS با زیرنویس ARIB توسط ابزار \f(CW\*(C`ffplay\*(C'\fR: .PP .Vb 1 \& ffplay \-sub_type bitmap MPEG.TS .Ve .PP نمایش فایل MPEG\-TS با ابعاد فریم ورودی 1920x1080 توسط ابزار \f(CW\*(C`ffplay\*(C'\fR: .PP .Vb 1 \& ffplay \-sub_type bitmap \-canvas_size 1920x1080 MPEG.TS .Ve .PP گنجاندن زیرنویس ARIB در ویدیوی ترنسکدشده: .PP .Vb 1 \& ffmpeg \-sub_type bitmap \-i src.m2t \-filter_complex "[0:v][0:s]overlay" \-vcodec h264 dest.mp4 .Ve .SS dvbsub .IX Subsection "dvbsub" \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBcompute_clut\fR 4 .IX Item "compute_clut" .RS 4 .PD 0 .IP \fB\-2\fR 4 .IX Item "-2" .PD اگر جدول CLUT مطابقی در استریم نباشد، clut را یک‌بار محاسبه کن. .IP \fB\-1\fR 4 .IX Item "-1" اگر جدول CLUT مطابقی در استریم نباشد، clut را محاسبه کن. .IP \fB0\fR 4 .IX Item "0" هرگز CLUT را محاسبه نکن. .IP \fB1\fR 4 .IX Item "1" همیشه CLUT را محاسبه کن و مقدار ارائه‌شده در استریم را نادیده بگیر و جایگزین کن. .RE .RS 4 .RE .IP \fBdvb_substream\fR 4 .IX Item "dvb_substream" زیرجریان dvb را انتخاب می‌کند، یا در صورت مقدار \-1 (پیش‌فرض) تمام زیرجریان‌ها انتخاب می‌شوند. .SS dvdsub .IX Subsection "dvdsub" این کدک زیرنویس‌های بیت‌مپ استفاده‌شده در DVDها را دیکود می‌کند؛ همین زیرنویس‌ها را می‌توان در جفت‌فایل‌های VobSub و برخی فایل‌های Matroska نیز یافت. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBpalette\fR 4 .IX Item "palette" پالت رنگ سراسری استفاده‌شده توسط بیت‌مپ‌ها را مشخص می‌کند. هنگام ذخیره در VobSub، پالت معمولاً در فایل اندیس مشخص می‌شود؛ در Matroska، پالت در داده‌های اضافه کدک با همان فرمت VobSub ذخیره می‌گردد. در DVDها پالت در فایل IFO ذخیره می‌شود و بنابراین هنگام خواندن مستقیم از فایل‌های VOB استخراج‌شده در دسترس نیست. .Sp فرمت این گزینه رشته‌ای شامل ۱۶ عدد هگزادسیمال ۲۴ بیتی (بدون پیشوند 0x) است که با کاما جدا شده‌اند؛ به عنوان مثال: \f(CW\*(C`0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b\*(C'\fR. .IP \fBifo_palette\fR 4 .IX Item "ifo_palette" مشخص کردن فایل IFO که پالت سراسری از آن استخراج می‌شود (آزمایشی). .IP \fBforced_subs_only\fR 4 .IX Item "forced_subs_only" تنها دیکود کردن زیرنویس‌هایی که به عنوان اجباری (Forced) علامت‌گذاری شده‌اند. برخی عنوان‌ها شامل هر دو زیرنویس اجباری و غیراجباری در یک ترک واحد هستند. تنظیم این فلگ روی \f(CW1\fR تنها زیرنویس‌های اجباری را حفظ می‌کند. مقدار پیش‌فرض \f(CW0\fR است. .SS libzvbi\-teletext .IX Subsection "libzvbi-teletext" کتابخانه Libzvbi به libavcodec امکان می‌دهد صفحات تله‌تکست DVB و زیرنویس‌های تله‌تکست DVB را رمزگشایی کند. نیازمند هدرها و کتابخانه libzvbi در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libzvbi\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBtxt_page\fR 4 .IX Item "txt_page" فهرست شماره صفحات تله‌تکست جهت دیکود. صفحاتی که با این فهرست مطابقت نداشته باشند نادیده گرفته می‌شوند. می‌توانید از رشته ویژه \f(CW\*(C`*\*(C'\fR برای تطبیق با همه صفحات، یا \f(CW\*(C`subtitle\*(C'\fR برای تمام صفحات زیرنویس استفاده کنید. مقدار پیش‌فرض * است. .IP \fBtxt_default_region\fR 4 .IX Item "txt_default_region" تنظیم مجموعه نویسه پیش‌فرض برای دیکود؛ مقداری بین 0 تا 87 (جدول 32، بخش 15 استاندارد ETS 300 706 را ببینید). مقدار پیش‌فرض \-1 است که پیش‌فرض libzvbi را بازنویسی نمی‌کند. این گزینه برای برخی مخابره‌های قدیمی سطح 1.0 که نمی‌توانند مجموعه نویسه مناسب را اعلام کنند لازم است. .IP \fBtxt_chop_top\fR 4 .IX Item "txt_chop_top" حذف خط بالایی تله‌تکست. مقدار پیش‌فرض 1 است. .IP \fBtxt_format\fR 4 .IX Item "txt_format" مشخص کردن قالب زیرنویس‌های دیکودشده. .RS 4 .IP \fBbitmap\fR 4 .IX Item "bitmap" قالب پیش‌فرض؛ باید از این قالب برای صفحات تله‌تکست استفاده کنید، زیرا برخی گرافیک‌ها و رنگ‌ها در متن ساده یا حتی ASS قابل بیان نیستند. .IP \fBtext\fR 4 .IX Item "text" خروجی ساده مبتنی بر متن بدون قالب‌بندی. .IP \fBass\fR 4 .IX Item "ass" خروجی فرمت‌بندی‌شده ASS؛ صفحات زیرنویس و صفحات تله‌تکست در استایل‌های متفاوتی بازگردانده می‌شوند. صفحات زیرنویس به متن تقلیل می‌یابند، اما تلاش می‌شود چیدمان متن و فرمت‌بندی حفظ گردد. .RE .RS 4 .RE .IP \fBtxt_left\fR 4 .IX Item "txt_left" آفست افقی (X) بیت‌مپ‌های تولیدشده؛ مقدار پیش‌فرض 0 است. .IP \fBtxt_top\fR 4 .IX Item "txt_top" آفست عمودی (Y) بیت‌مپ‌های تولیدشده؛ مقدار پیش‌فرض 0 است. .IP \fBtxt_chop_spaces\fR 4 .IX Item "txt_chop_spaces" حذف فاصله‌های ابتدا و انتها و پاک کردن خطوط خالی از متن تولیدشده. این گزینه برای زیرنویس‌های تله‌تکست که به دلیل نویسه‌های دوبرابر پهن تله‌تکست ممکن است در آغاز یا پایان خطوط دارای فاصله خالی یا بین خطوط دارای خط خالی باشند مفید است. مقدار پیش‌فرض 1 است. .IP \fBtxt_duration\fR 4 .IX Item "txt_duration" تنظیم مدت‌زمان نمایش صفحات یا زیرنویس‌های دیکودشده تله‌تکست بر حسب میلی‌ثانیه. مقدار پیش‌فرض \-1 است که به معنای بی‌نهایت یا تا زمان رسیدن رویداد زیرنویس بعدی است. .IP \fBtxt_transparent\fR 4 .IX Item "txt_transparent" اجبار به پس‌زمینه شفاف در بیت‌مپ‌های تله‌تکست تولیدشده. مقدار پیش‌فرض 0 است که به معنای پس‌زمینه کدر است. .IP \fBtxt_opacity\fR 4 .IX Item "txt_opacity" تنظیم کدر بودن (0\-255) پس‌زمینه تله‌تکست. اگر \&\fBtxt_transparent\fR تنظیم نشده باشد، تنها نویسه‌های میان کادر شروع و کادر پایان (معمولاً زیرنویس‌ها) را تحت تاثیر قرار می‌دهد. مقدار پیش‌فرض 0 است اگر \&\fBtxt_transparent\fR تنظیم شده باشد، در غیر این صورت 255 است. .SH "فیلترهای جریان بیت (BITSTREAM FILTERS)" .IX Header "BITSTREAM FILTERS" هنگامی که بیلد FFmpeg خود را پیکربندی می‌کنید، تمامی فیلترهای جریان بیت پشتیبانی‌شده به طور پیش‌فرض فعال هستند. می‌توانید با استفاده از گزینه پیکربندی \f(CW\*(C`\-\-list\-bsfs\*(C'\fR فهرستی از تمام موارد موجود را مشاهده کنید. .PP می‌توانید تمامی فیلترهای جریان بیت را با استفاده از گزینه پیکربندی \&\f(CW\*(C`\-\-disable\-bsfs\*(C'\fR غیرفعال کنید، و هر فیلتر جریان بیت را با استفاده از گزینه \f(CW\*(C`\-\-enable\-bsf=BSF\*(C'\fR به صورت گزینشی فعال نمایید، یا یک فیلتر جریان بیت مشخص را با استفاده از گزینه \f(CW\*(C`\-\-disable\-bsf=BSF\*(C'\fR غیرفعال کنید. .PP گزینه \f(CW\*(C`\-bsfs\*(C'\fR در ابزارهای ff* فهرستی از تمامی فیلترهای جریان بیت پشتیبانی‌شده گنجانده‌شده در بیلد شما را نمایش می‌دهد. .PP ابزارهای ff* گزینه \-bsf را دارند که به ازای هر استریم اعمال می‌شود و فهرستی از فیلترها را که با کاما جدا شده‌اند دریافت می‌کند؛ پارامترهای هر فیلتر پس از علامت \*(Aq=\*(Aq به دنبال نام فیلتر می‌آیند. .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v copy \-bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT .Ve .PP در ادامه توضیحات فیلترهای جریان بیت فعلی در دسترس به همراه پارامترهای آن‌ها (در صورت وجود) آورده شده است. .SS aac_adtstoasc .IX Subsection "aac_adtstoasc" تبدیل جریان بیت MPEG\-2/4 AAC ADTS به پیکربندی صوتی ویژه MPEG\-4 (Audio Specific Configuration). .PP این فیلتر یک MPEG\-4 AudioSpecificConfig از روی هدر MPEG\-2/4 ADTS ایجاد کرده و هدر ADTS را حذف می‌کند. .PP این فیلتر برای نمونه هنگام کپی کردن یک استریم AAC از یک ظرف خام ADTS AAC یا کانتینر MPEG\-TS به MP4A\-LATM، به یک فایل FLV، یا به فایل‌های MOV/MP4 و فرمت‌های مرتبط مانند 3GP یا M4A مورد نیاز است. لطفاً توجه داشته باشید که این فیلتر به صورت خودکار برای MP4A\-LATM و MOV/MP4 و فرمت‌های مرتبط درج می‌شود. .SS av1_metadata .IX Subsection "av1_metadata" اصلاح متادیتای تعبیه‌شده در یک استریم AV1. .IP \fBtd\fR 4 .IX Item "td" درج یا حذف OBUهای جداکننده زمانی (temporal delimiter) در تمام واحدهای زمانی استریم. .RS 4 .IP \fBinsert\fR 4 .IX Item "insert" درج یک TD در ابتدای هر TU که از قبل فاقد آن است. .IP \fBremove\fR 4 .IX Item "remove" حذف TD از ابتدای هر TU که دارای آن است. .RE .RS 4 .RE .IP \fBcolor_primaries\fR 4 .IX Item "color_primaries" .PD 0 .IP \fBtransfer_characteristics\fR 4 .IX Item "transfer_characteristics" .IP \fBmatrix_coefficients\fR 4 .IX Item "matrix_coefficients" .PD تنظیم فیلدهای توصیف رنگ در استریم (بخش 6.4.2 استاندارد AV1 را ببینید). .IP \fBcolor_range\fR 4 .IX Item "color_range" تنظیم محدوده رنگ در استریم (بخش 6.4.2 استاندارد AV1 را ببینید؛ توجه داشته باشید که این فیلد را نمی‌توان برای استریم‌هایی که از مشخصات اصلی BT.709، ویژگی انتقال sRGB و ضرایب ماتریس همانی (RGB) استفاده می‌کنند تنظیم کرد). .RS 4 .IP \fBtv\fR 4 .IX Item "tv" محدوده محدود (Limited range). .IP \fBpc\fR 4 .IX Item "pc" محدوده کامل (Full range). .RE .RS 4 .RE .IP \fBchroma_sample_position\fR 4 .IX Item "chroma_sample_position" تنظیم مکان نمونه کروما در استریم (بخش 6.4.2 استاندارد AV1 را ببینید). این فیلد تنها برای استریم‌های 4:2:0 قابل تنظیم است. .RS 4 .IP \fBvertical\fR 4 .IX Item "vertical" موقعیت چپ (منطبق بر پیش‌فرض در MPEG\-2 و H.264). .IP \fBcolocated\fR 4 .IX Item "colocated" موقعیت بالا\-چپ. .RE .RS 4 .RE .IP \fBtick_rate\fR 4 .IX Item "tick_rate" تنظیم نرخ تیک (\fItime_scale / num_units_in_display_tick\fR) در اطلاعات زمان‌بندی هدر دنباله (sequence header). .IP \fBnum_ticks_per_picture\fR 4 .IX Item "num_ticks_per_picture" تنظیم تعداد تیک‌ها در هر تصویر برای مشخص کردن این که استریم دارای نرخ فریم ثابت است. در صورتی که \fBtick_rate\fR نیز تنظیم نشده باشد، نادیده گرفته می‌شود. .IP \fBdelete_padding\fR 4 .IX Item "delete_padding" حذف OBUهای پدینگ (Padding OBUs). .SS chomp .IX Subsection "chomp" حذف پدینگ صفر در انتهای یک بسته (packet). .SS dca_core .IX Subsection "dca_core" استخراج هسته اصلی از یک استریم DCA/DTS، با صرف‌نظر از پسوندهایی مانند DTS\-HD. .SS dovi_rpu .IX Subsection "dovi_rpu" دستکاری متادیتای Dolby Vision در یک جریان بیت HEVC/AV1، با امکان اختیاری فعال‌سازی فشرده‌سازی متادیتا. .IP \fBstrip\fR 4 .IX Item "strip" در صورت فعال بودن، تمامی متادیتای Dolby Vision (رکورد پیکربندی + بلوک‌های داده RPU) از استریم حذف می‌شوند. .IP \fBcompression\fR 4 .IX Item "compression" کدام سطح فشرده‌سازی فعال شود. .RS 4 .IP \fBnone\fR 4 .IX Item "none" بدون فشرده‌سازی متادیتا. .IP \fBlimited\fR 4 .IX Item "limited" طرح فشرده‌سازی محدود متادیتا. باید با اکثر دستگاه‌ها سازگار باشد. این حالت پیش‌فرض است. .IP \fBextended\fR 4 .IX Item "extended" فشرده‌سازی گسترش‌یافته متادیتا. دستگاه‌ها ملزم به پشتیبانی از آن نیستند. توجه داشته باشید که این سطح در حال حاضر در libavcodec رفتاری همانند \fBlimited\fR دارد. .RE .RS 4 .RE .SS dovi_split .IX Subsection "dovi_split" تفکیک یک جریان بیت چندلایه‌ای HEVC با پروفایل ۷ دالبی ویژن (Dolby Vision Profile 7). پروفایل ۷ جریان بیت HEVC لایه ارتقا (enhancement\-layer) را به صورت درهم‌تنیده داخل واحدهای دسترسی لایه پایه حمل می‌کند که درون واحدهای NAL مشخص‌نشده توسط کاربر از نوع ۶۳ (UNSPEC63) بسته‌بندی شده‌اند، و متادیتای RPU نیز به عنوان یک NAL مشخص‌نشده توسط کاربر از نوع ۶۲ (UNSPEC62) در کنار آن قرار دارد. .IP \fBmode\fR 4 .IX Item "mode" کدام مؤلفه‌های Dolby Vision در جریان بیت خروجی حفظ شوند. .RS 4 .IP \fBbl\fR 4 .IX Item "bl" تنها لایه پایه: حذف تمام UNSPEC63 (لایه EL) و تمام UNSPEC62 (متادیتای RPU). خروجی یک استریم ساده HEVC بدون هیچ نشانگر Dolby Vision خواهد بود. این حالت پیش‌فرض است. .IP \fBbl_rpu\fR 4 .IX Item "bl_rpu" لایه پایه به همراه حفظ NAL مربوط به RPU. .IP \fBel\fR 4 .IX Item "el" تنها لایه ارتقا: برای هر NAL از نوع UNSPEC63، هدر خارجی دو بایتی NAL حذف شده و بار داده داخلی صادر می‌شود. نتیجه یک جریان بیت مستقل HEVC است. واحد UNSPEC62 (RPU) حذف می‌شود. .IP \fBel_rpu\fR 4 .IX Item "el_rpu" لایه ارتقا با حفظ عین به عین NALهای RPU. همانند \fBel\fR، اما NALهای RPU از نوع UNSPEC62 نیز در کنار NALهای بازشده EL صادر می‌شوند. .RE .RS 4 .RE .SS dump_extra .IX Subsection "dump_extra" اضافه کردن extradata به ابتدای بسته‌های فیلترشده به جز زمانی که بسته‌های مذکور دقیقاً با همان extradata که قرار است اضافه شود آغاز شده باشند. .IP \fBfreq\fR 4 .IX Item "freq" آرگومان اضافی مشخص می‌کند که کدام بسته‌ها باید فیلتر شوند. مقادیر زیر را می‌پذیرد: .RS 4 .IP \fBk\fR 4 .IX Item "k" .PD 0 .IP \fBkeyframe\fR 4 .IX Item "keyframe" .PD افزودن extradata به تمام بسته‌های کلیدی (key packets). .IP \fBe\fR 4 .IX Item "e" .PD 0 .IP \fBall\fR 4 .IX Item "all" .PD افزودن extradata به تمام بسته‌ها. .RE .RS 4 .RE .PP اگر مشخص نشود، پیش‌فرض \fBk\fR در نظر گرفته می‌شود. .PP برای نمونه دستور \fBffmpeg\fR زیر یک هدر سراسری را در بسته‌های H.264 تولیدشده توسط اینکودر \f(CW\*(C`libx264\*(C'\fR اجبار می‌کند (و در نتیجه هدرهای بسته‌های فردی را غیرفعال می‌سازد)، اما با افزودن هدر ذخیره‌شده در extradata به بسته‌های کلیدی، آن‌ها را اصلاح می‌نماید: .PP .Vb 1 \& ffmpeg \-i INPUT \-map 0 \-flags:v +global_header \-c:v libx264 \-bsf:v dump_extra out.ts .Ve .SS dv_error_marker .IX Subsection "dv_error_marker" بلوک‌هایی در DV که به عنوان آسیب‌دیده علامت‌گذاری شده‌اند با بلوک‌هایی با رنگ مشخص‌شده جایگزین می‌شوند. .IP \fBcolor\fR 4 .IX Item "color" رنگی که بلوک‌های آسیب‌دیده با آن جایگزین می‌شوند. .IP \fBsta\fR 4 .IX Item "sta" یک ماسک ۱۶ بیتی که مشخص می‌کند کدام یک از ۱۶ مقدار ممکن وضعیت خطا باید با بلوک‌های رنگی جایگزین شوند. 0xFFFE مقدار پیش‌فرضی است که تمامی مقادیر وضعیت خطای غیر صفر را جایگزین می‌کند. .RS 4 .IP \fBok\fR 4 .IX Item "ok" بدون خطا، بدون پنهان‌سازی (concealment). .IP \fBerr\fR 4 .IX Item "err" خطا، بدون پنهان‌سازی. .IP \fBres\fR 4 .IX Item "res" رزرو شده. .IP \fBnotok\fR 4 .IX Item "notok" خطا یا پنهان‌سازی. .IP \fBnotres\fR 4 .IX Item "notres" رزرو نشده. .IP "\fBAa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru\fR" 4 .IX Item "Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru" کد وضعیت خطای خاص. .RE .RS 4 .Sp صفحات ۴۴\-۴۶ یا بخش 5.5 از پیوند زیر را ببینید: <\fBhttp://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf\fR> .RE .SS eac3_core .IX Subsection "eac3_core" استخراج هسته از یک استریم E\-AC\-3، با صرف‌نظر از کانال‌های اضافی. .SS eia608_to_smpte436m .IX Subsection "eia608_to_smpte436m" تبدیل یک استریم \f(CW\*(C`EIA_608\*(C'\fR به یک استریم داده \f(CW\*(C`SMPTE_436M_ANC\*(C'\fR، با بسته‌بندی زیرنویس‌های بسته (closed captions) در بسته‌های CTA\-708 CDP VANC. .IP \fBline_number\fR 4 .IX Item "line_number" انتخاب شماره خطی که بسته‌های VANC تولیدشده باید در آن قرار گیرند. معمولاً خط ۹ (پیش‌فرض) یا ۱۱ مد نظر است. .IP \fBwrapping_type\fR 4 .IX Item "wrapping_type" انتخاب نوع بسته‌بندی SMPTE 436M، پیش‌فرض \fBvanc_frame\fR است. مقادیر زیر را می‌پذیرد: .RS 4 .IP \fBvanc_frame\fR 4 .IX Item "vanc_frame" فریم VANC (فریم درهم‌بافته یا پیش‌رونده بخش‌بندی‌شده). .IP \fBvanc_field_1\fR 4 .IX Item "vanc_field_1" .PD 0 .IP \fBvanc_field_2\fR 4 .IX Item "vanc_field_2" .IP \fBvanc_progressive_frame\fR 4 .IX Item "vanc_progressive_frame" .PD .RE .RS 4 .RE .IP \fBsample_coding\fR 4 .IX Item "sample_coding" انتخاب کدگذاری نمونه SMPTE 436M، پیش‌فرض \fB8bit_luma\fR است. مقادیر زیر را می‌پذیرد: .RS 4 .IP \fB8bit_luma\fR 4 .IX Item "8bit_luma" نمونه‌های روشنایی (luma) مؤلفه ۸ بیتی. .IP \fB8bit_color_diff\fR 4 .IX Item "8bit_color_diff" نمونه‌های تفاضل رنگ مؤلفه ۸ بیتی. .IP \fB8bit_luma_and_color_diff\fR 4 .IX Item "8bit_luma_and_color_diff" نمونه‌های روشنایی و تفاضل رنگ مؤلفه ۸ بیتی. .IP \fB10bit_luma\fR 4 .IX Item "10bit_luma" نمونه‌های روشنایی مؤلفه ۱۰ بیتی. .IP \fB10bit_color_diff\fR 4 .IX Item "10bit_color_diff" نمونه‌های تفاضل رنگ مؤلفه ۱۰ بیتی. .IP \fB10bit_luma_and_color_diff\fR 4 .IX Item "10bit_luma_and_color_diff" نمونه‌های روشنایی و تفاضل رنگ مؤلفه ۱۰ بیتی. .IP \fB8bit_luma_parity_error\fR 4 .IX Item "8bit_luma_parity_error" نمونه‌های روشنایی مؤلفه ۸ بیتی همراه با خطای پاریتی. .IP \fB8bit_color_diff_parity_error\fR 4 .IX Item "8bit_color_diff_parity_error" نمونه‌های تفاضل رنگ مؤلفه ۸ بیتی همراه با خطای پاریتی. .IP \fB8bit_luma_and_color_diff_parity_error\fR 4 .IX Item "8bit_luma_and_color_diff_parity_error" نمونه‌های روشنایی و تفاضل رنگ مؤلفه ۸ بیتی همراه با خطای پاریتی. .RE .RS 4 .RE .IP \fBinitial_cdp_sequence_cntr\fR 4 .IX Item "initial_cdp_sequence_cntr" مقدار اولیه فیلدهای عدد صحیح بدون علامت ۱۶ بیتی \f(CW\*(C`cdp_hdr_sequence_cntr\*(C'\fR و \f(CW\*(C`cdp_ftr_sequence_cntr\*(C'\fR در CDP. پیش‌فرض 0 است. .IP \fBcdp_frame_rate\fR 4 .IX Item "cdp_frame_rate" تنظیم فیلد \f(CW\*(C`cdp_frame_rate\*(C'\fR در CDP. این گزینه در عمل زمان‌بندی استریم داده را تغییر نمی‌دهد، بلکه صرفاً مقادیر درج‌شده در آن فیلد را در بسته‌های تولیدشده CDP تغییر می‌دهد. پیش‌فرض \fB30000/1001\fR است. .SS extract_extradata .IX Subsection "extract_extradata" استخراج extradata درون‌باندی (in\-band extradata). .PP برخی کدک‌ها اجازه می‌دهند هدرهای بلندمدت (مانند هدرهای دنباله MPEG\-2 یا (VPS/)SPS/PPS در H.264/HEVC) یا به صورت «درون‌باندی» (یعنی به عنوان بخشی از جریان بیت حاوی فریم‌های کدگذاری‌شده) یا «برون‌باندی» (مانند سطح کانتینر) ارسال شوند. این حالت اخیر در اصطلاحات FFmpeg با نام «extradata» شناخته می‌شود. .PP این فیلتر جریان بیت هدرهای درون‌باندی را شناسایی کرده و آن‌ها را به عنوان extradata در دسترس قرار می‌دهد. .IP \fBremove\fR 4 .IX Item "remove" هنگامی که این گزینه فعال باشد، هدرهای بلندمدت پس از استخراج از جریان بیت حذف می‌شوند. .SS filter_units .IX Subsection "filter_units" حذف واحدهایی با انواعی در مجموعه مشخص‌شده یا خارج از آن از استریم. .IP \fBpass_types\fR 4 .IX Item "pass_types" فهرستی از انواع واحد یا محدوده‌ای از انواع واحد برای عبور دادن، در حالی که همه موارد دیگر حذف می‌شوند. این فهرست با \*(Aq|\*(Aq از مقادیر نوع واحد یا محدوده‌ای از مقادیر با \*(Aq\-\*(Aq مشخص می‌شود. .IP \fBremove_types\fR 4 .IX Item "remove_types" همانند \fBpass_types\fR، با این تفاوت که واحدهای موجود در مجموعه داده‌شده حذف شده و تمام موارد دیگر عبور داده می‌شوند. .PP انواع مورد استفاده توسط pass_types و remove_types متناظر هستند با انواع واحد NAL به نام (nal_unit_type) در H.264، HEVC و H.266 (جدول 7\-1 در مشخصات H.264 و HEVC یا جدول 5 در مشخصات H.266 را ببینید)، مقادیر نشانگر (marker) برای JPEG (بدون پیشوند 0xFF) و کدهای شروع بدون پیشوند کد شروع (یعنی بایت بعد از 0x000001) برای MPEG\-2. برای VP8 و VP9، هر واحد دارای نوع صفر است. .PP داده اضافی (Extradata) توسط این تبدیل بدون تغییر باقی می‌ماند، اما توجه داشته باشید اگر استریم شامل مجموعه‌های پارامتر درون‌خطی باشد، در صورت حذف آن‌ها ممکن است خروجی غیرقابل استفاده شود. .PP برای نمونه، جهت حذف تمامی واحدهای NAL غیر VCL از یک استریم H.264: .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v copy \-bsf:v \*(Aqfilter_units=pass_types=1\-5\*(Aq OUTPUT .Ve .PP جهت حذف تمامی AUDها، SEI و پرکننده‌ها (filler) از یک استریم H.265: .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v copy \-bsf:v \*(Aqfilter_units=remove_types=35|38\-40\*(Aq OUTPUT .Ve .PP جهت حذف تمامی داده‌های کاربر از یک استریم MPEG\-2، شامل زیرنویس‌های بسته (Closed Captions): .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v copy \-bsf:v \*(Aqfilter_units=remove_types=178\*(Aq OUTPUT .Ve .PP جهت حذف تمامی SEI از یک استریم H264، شامل زیرنویس‌های بسته: .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v copy \-bsf:v \*(Aqfilter_units=remove_types=6\*(Aq OUTPUT .Ve .PP جهت حذف تمامی پیشوندها و پسوندهای SEI از یک استریم HEVC، شامل زیرنویس‌های بسته و HDR پویا: .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v copy \-bsf:v \*(Aqfilter_units=remove_types=39|40\*(Aq OUTPUT .Ve .SS hapqa_extract .IX Subsection "hapqa_extract" استخراج بخش Rgb یا Alpha از یک فایل HAPQA، بدون فشرده‌سازی مجدد، به منظور ایجاد یک فایل HAPQ یا HAPAlphaOnly. .IP \fBtexture\fR 4 .IX Item "texture" بافتی را که باید نگه داشته شود مشخص می‌کند. .RS 4 .IP \fBcolor\fR 4 .IX Item "color" .PD 0 .IP \fBalpha\fR 4 .IX Item "alpha" .PD .RE .RS 4 .RE .PP تبدیل HAPQA به HAPQ: .PP .Vb 1 \& ffmpeg \-i hapqa_inputfile.mov \-c copy \-bsf:v hapqa_extract=texture=color \-tag:v HapY \-metadata:s:v:0 encoder="HAPQ" hapq_file.mov .Ve .PP تبدیل HAPQA به HAPAlphaOnly: .PP .Vb 1 \& ffmpeg \-i hapqa_inputfile.mov \-c copy \-bsf:v hapqa_extract=texture=alpha \-tag:v HapA \-metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov .Ve .SS h264_metadata .IX Subsection "h264_metadata" اصلاح متادیتای تعبیه‌شده در یک استریم H.264. .IP \fBaud\fR 4 .IX Item "aud" درج یا حذف واحدهای NAL از نوع AUD در تمام واحدهای دسترسی استریم. .RS 4 .IP \fBpass\fR 4 .IX Item "pass" .PD 0 .IP \fBinsert\fR 4 .IX Item "insert" .IP \fBremove\fR 4 .IX Item "remove" .PD .RE .RS 4 .Sp پیش‌فرض pass است. .RE .IP \fBsample_aspect_ratio\fR 4 .IX Item "sample_aspect_ratio" تنظیم نسبت ابعاد نمونه استریم در پارامترهای VUI. جدول E\-1 در H.264 را ببینید. .IP \fBoverscan_appropriate_flag\fR 4 .IX Item "overscan_appropriate_flag" تنظیم این که آیا استریم برای نمایش با overscan مناسب است یا خیر (بخش E.2.1 در H.264 را ببینید). .IP \fBvideo_format\fR 4 .IX Item "video_format" .PD 0 .IP \fBvideo_full_range_flag\fR 4 .IX Item "video_full_range_flag" .PD تنظیم فرمت ویدیو در استریم (بخش E.2.1 و جدول E\-2 در H.264 را ببینید). .IP \fBcolour_primaries\fR 4 .IX Item "colour_primaries" .PD 0 .IP \fBtransfer_characteristics\fR 4 .IX Item "transfer_characteristics" .IP \fBmatrix_coefficients\fR 4 .IX Item "matrix_coefficients" .PD تنظیم توصیف رنگ در استریم (بخش E.2.1 و جدول‌های E\-3، E\-4 و E\-5 در H.264 را ببینید). .IP \fBchroma_sample_loc_type\fR 4 .IX Item "chroma_sample_loc_type" تنظیم مکان نمونه کروما در استریم (بخش E.2.1 و شکل E\-1 در H.264 را ببینید). .IP \fBtick_rate\fR 4 .IX Item "tick_rate" تنظیم نرخ تیک (time_scale / num_units_in_tick) در پارامترهای VUI. این کوچک‌ترین واحد زمانی قابل نمایش در استریم است و در بسیاری از موارد نرخ فیلد استریم را نشان می‌دهد (دو برابر نرخ فریم). .IP \fBfixed_frame_rate_flag\fR 4 .IX Item "fixed_frame_rate_flag" تنظیم این که آیا استریم دارای نرخ فریم ثابت است یا خیر \- معمولاً نشان می‌دهد که نرخ فریم دقیقاً نصف نرخ تیک است، اما معنای دقیق به درهم‌بافتگی و ساختار تصویر وابسته است (بخش E.2.1 و جدول E\-6 در H.264 را ببینید). .IP \fBzero_new_constraint_set_flags\fR 4 .IX Item "zero_new_constraint_set_flags" صفر کردن پرچم‌های constraint_set4_flag و constraint_set5_flag در SPS. این بیت‌ها در نسخه قبلی مشخصات H.264 رزرو شده بودند، و از این رو برخی دیکودرهای سخت‌افزاری نیاز دارند که این‌ها صفر باشند. نتیجه صفر کردن این‌ها همچنان یک جریان بیت معتبر است. .IP \fBcrop_left\fR 4 .IX Item "crop_left" .PD 0 .IP \fBcrop_right\fR 4 .IX Item "crop_right" .IP \fBcrop_top\fR 4 .IX Item "crop_top" .IP \fBcrop_bottom\fR 4 .IX Item "crop_bottom" .PD تنظیم آفست‌های برش فریم در SPS. این مقادیر در صورتی که استریم از قبل برش داده شده باشد، جایگزین مقادیر فعلی خواهند شد. .Sp این فیلدها بر حسب پیکسل تنظیم می‌شوند. توجه داشته باشید که اگر کروما ساب‌سمپل شده باشد یا استریم درهم‌بافته باشد، ممکن است برخی اندازه‌ها قابل نمایش نباشند (بخش 7.4.2.1.1 در H.264 را ببینید). .IP \fBsei_user_data\fR 4 .IX Item "sei_user_data" درج یک رشته به عنوان داده کاربری ثبت‌نشده SEI (unregistered user data). آرگومان باید به فرم \fIUUID+string\fR باشد که در آن UUID به صورت ارقام هگزادسیمال است که احتمالاً با خط تیره جدا شده‌اند، و رشته می‌تواند هر چیزی باشد. .Sp برای نمونه، \fB086f3693\-b7b3\-4f2c\-9653\-21492feee5b8+hello\fR رشته «hello» را که به UUID داده‌شده مرتبط است درج می‌کند. .IP \fBdelete_filler\fR 4 .IX Item "delete_filler" حذف هر دو واحد NAL پرکننده و پیام‌های پرکننده SEI. .IP \fBdisplay_orientation\fR 4 .IX Item "display_orientation" درج، استخراج یا حذف پیام‌های SEI جهت نمایش (Display orientation). برای نحو و معناشناسی، بخش‌های D.1.27 و D.2.27 استاندارد H.264 را ببینید. .RS 4 .IP \fBpass\fR 4 .IX Item "pass" .PD 0 .IP \fBinsert\fR 4 .IX Item "insert" .IP \fBremove\fR 4 .IX Item "remove" .IP \fBextract\fR 4 .IX Item "extract" .PD .RE .RS 4 .Sp پیش‌فرض pass است. .Sp حالت درج (insert) همراه با گزینه‌های \f(CW\*(C`rotate\*(C'\fR و \f(CW\*(C`flip\*(C'\fR کار می‌کند. هرگونه پیام از پیش موجود جهت نمایش در حالت‌های insert یا remove حذف خواهد شد. حالت استخراج (extract) ماتریس نمایش را به عنوان داده جانبی (side data) به بسته پیوست می‌کند. .RE .IP \fBrotate\fR 4 .IX Item "rotate" تنظیم چرخش در SEI جهت نمایش (زاویه پادساعت‌گرد بر حسب درجه). محدوده از \-360 تا +360 است. پیش‌فرض NaN است. .IP \fBflip\fR 4 .IX Item "flip" تنظیم وارونگی (flip) در SEI جهت نمایش. .RS 4 .IP \fBhorizontal\fR 4 .IX Item "horizontal" .PD 0 .IP \fBvertical\fR 4 .IX Item "vertical" .PD .RE .RS 4 .Sp پیش‌فرض تنظیم‌نشده است. .RE .IP \fBlevel\fR 4 .IX Item "level" تنظیم سطح (level) در SPS. به بخش A.3 و جدول‌های A\-1 تا A\-5 در H.264 مراجعه کنید. .Sp آرگومان باید نام یک سطح (برای نمونه \fB4.2\fR)، یک مقدار level_idc (برای نمونه \fB42\fR)، یا نام ویژه \fBauto\fR باشد که نشان می‌دهد فیلتر باید تلاش کند سطح را از ویژگی‌های استریم ورودی حدس بزند. .SS h264_mp4toannexb .IX Subsection "h264_mp4toannexb" تبدیل یک جریان بیت H.264 از حالت طول با پیشوند (length prefixed) به حالت کد شروع با پیشوند (start code prefixed)، مطابق با تعریف در پیوست B از مشخصات ITU\-T H.264. .PP این تبدیل برای برخی فرمت‌های پخش زنده، معمولاً فرمت استریم انتقال MPEG\-2 (میکسر \f(CW\*(C`mpegts\*(C'\fR) مورد نیاز است. .PP برای نمونه جهت ریمکس کردن یک فایل MP4 حاوی استریم H.264 به فرمت mpegts با \fBffmpeg\fR، می‌توانید از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT.mp4 \-codec copy \-bsf:v h264_mp4toannexb OUTPUT.ts .Ve .PP لطفاً توجه داشته باشید که این فیلتر برای فرمت‌های خروجی MPEG\-TS (میکسر \&\f(CW\*(C`mpegts\*(C'\fR) و خام H.264 (میکسر \f(CW\*(C`h264\*(C'\fR) به صورت خودکار درج می‌شود. .SS h264_redundant_pps .IX Subsection "h264_redundant_pps" این فیلتر یک اصلاح ویژه را روی برخی استریم‌های H264 دیسک بلو-ری BDMV که شامل PPSهای زائد هستند اعمال می‌کند. این PPSها پارامترهای نامربوط استریم را تغییر می‌دهند و باعث سردرگمی سایر تبدیلات می‌شوند که به extradata صحیح نیاز دارند. .PP اینکودر مورد استفاده در این استریم‌های متأثر، PPSهای اضافی را در سرتاسر استریم اضافه می‌کند و مقدار اولیه QP و فعال بودن یا نبودن پیش‌بینی وزنی را تغییر می‌دهد. این امر پس از کپی کردن استریم در کانتینری با هدر سراسری مشکلاتی ایجاد می‌کند، زیرا PPS آغازین برای ادامه استریم مناسب نیست. به عنوان یک اثر جانبی، برای نمونه، پرش در ویدیو (seeking) تا زمان ظاهر شدن یک PPS جدید خروجی به‌هم‌ریخته ارائه می‌دهد. .PP این فیلتر جریان بیت (BSF) این PPSهای اضافی را حذف کرده و هدرهای برش را بازنویسی می‌کند به گونه‌ای که استریم از یک PPS راهنمای منفرد در هدر سراسری استفاده کند، که مشکل را برطرف می‌سازد. .SS hevc_metadata .IX Subsection "hevc_metadata" اصلاح متادیتای تعبیه‌شده در یک استریم HEVC. .IP \fBaud\fR 4 .IX Item "aud" درج یا حذف واحدهای NAL از نوع AUD در تمام واحدهای دسترسی استریم. .RS 4 .IP \fBinsert\fR 4 .IX Item "insert" .PD 0 .IP \fBremove\fR 4 .IX Item "remove" .PD .RE .RS 4 .RE .IP \fBsample_aspect_ratio\fR 4 .IX Item "sample_aspect_ratio" تنظیم نسبت ابعاد نمونه در پارامترهای VUI استریم. .IP \fBvideo_format\fR 4 .IX Item "video_format" .PD 0 .IP \fBvideo_full_range_flag\fR 4 .IX Item "video_full_range_flag" .PD تنظیم فرمت ویدیو در استریم (بخش E.3.1 و جدول E.2 در H.265 را ببینید). .IP \fBcolour_primaries\fR 4 .IX Item "colour_primaries" .PD 0 .IP \fBtransfer_characteristics\fR 4 .IX Item "transfer_characteristics" .IP \fBmatrix_coefficients\fR 4 .IX Item "matrix_coefficients" .PD تنظیم توصیف رنگ در استریم (بخش E.3.1 و جدول‌های E.3، E.4 و E.5 در H.265 را ببینید). .IP \fBchroma_sample_loc_type\fR 4 .IX Item "chroma_sample_loc_type" تنظیم مکان نمونه کروما در استریم (بخش E.3.1 و شکل E.1 در H.265 را ببینید). .IP \fBtick_rate\fR 4 .IX Item "tick_rate" تنظیم نرخ تیک در پارامترهای VPS و VUI به صورت (time_scale / num_units_in_tick). همراه با \fBnum_ticks_poc_diff_one\fR، این گزینه می‌تواند یک نرخ فریم ثابت در استریم تنظیم کند. توجه داشته باشید که اگر استریم در یک کانتینر باشد، احتمالاً توسط پارامترهای کانتینر نادیده گرفته می‌شود. .IP \fBnum_ticks_poc_diff_one\fR 4 .IX Item "num_ticks_poc_diff_one" تنظیم poc_proportional_to_timing_flag در VPS و VUI و استفاده از این مقدار برای تنظیم num_ticks_poc_diff_one_minus1 (بخش‌های 7.4.3.1 و E.3.1 در H.265 را ببینید). اگر \fBtick_rate\fR نیز تنظیم نشده باشد، نادیده گرفته می‌شود. .IP \fBcrop_left\fR 4 .IX Item "crop_left" .PD 0 .IP \fBcrop_right\fR 4 .IX Item "crop_right" .IP \fBcrop_top\fR 4 .IX Item "crop_top" .IP \fBcrop_bottom\fR 4 .IX Item "crop_bottom" .PD تنظیم آفست‌های برش پنجره انطباق (conformance window) در SPS. این مقادیر در صورتی که استریم از قبل برش داده شده باشد، جایگزین مقادیر فعلی خواهند شد. .Sp این فیلدها بر حسب پیکسل تنظیم می‌شوند. توجه داشته باشید که در صورت ساب‌سمپل بودن کروما ممکن است برخی اندازه‌ها قابل نمایش نباشند (بخش 7.4.3.2.1 در H.265). .IP \fBwidth\fR 4 .IX Item "width" .PD 0 .IP \fBheight\fR 4 .IX Item "height" .PD تنظیم عرض و ارتفاع پس از برش. .IP \fBlevel\fR 4 .IX Item "level" تنظیم سطح (level) در VPS و SPS. بخش A.4 و جدول‌های A.6 و A.7 در H.265 را ببینید. .Sp آرگومان باید نام یک سطح (برای نمونه \fB5.1\fR)، یک مقدار \&\fIgeneral_level_idc\fR (برای نمونه \fB153\fR برای سطح 5.1)، یا نام ویژه \fBauto\fR باشد که نشان می‌دهد فیلتر باید تلاش کند سطح را از ویژگی‌های استریم ورودی حدس بزند. .SS hevc_mp4toannexb .IX Subsection "hevc_mp4toannexb" تبدیل یک جریان بیت HEVC/H.265 از حالت با پیشوند طول به حالت با پیشوند کد شروع (همان‌طور که در پیوست B از مشخصات ITU\-T H.265 تعریف شده است). .PP این تبدیل برای برخی فرمت‌های پخش زنده، معمولاً فرمت استریم انتقال MPEG\-2 (میکسر \f(CW\*(C`mpegts\*(C'\fR) مورد نیاز است. .PP برای نمونه جهت ریمکس کردن یک فایل MP4 حاوی استریم HEVC به فرمت mpegts با \fBffmpeg\fR، می‌توانید از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT.mp4 \-codec copy \-bsf:v hevc_mp4toannexb OUTPUT.ts .Ve .PP لطفاً توجه داشته باشید که این فیلتر به صورت خودکار برای فرمت‌های خروجی MPEG\-TS (میکسر \&\f(CW\*(C`mpegts\*(C'\fR) و خام HEVC/H.265 (میکسر \f(CW\*(C`h265\*(C'\fR یا \&\f(CW\*(C`hevc\*(C'\fR) درج می‌شود. .SS imxdump .IX Subsection "imxdump" جریان بیت را اصلاح می‌کند تا در MOV قرار گیرد و توسط دیکودر Final Cut Pro قابل استفاده باشد. این فیلتر تنها برای کدک mpeg2video اعمال می‌شود، و احتمالاً برای Final Cut Pro 7 و نسخه‌های جدیدتر با داشتن \&\fB\-tag:v\fR مناسب نیازی به آن نیست. .PP برای نمونه، برای ریمکس کردن ۳۰ مگابایت بر ثانیه NTSC IMX به MOV: .PP .Vb 1 \& ffmpeg \-i input.mxf \-c copy \-bsf:v imxdump \-tag:v mx3n output.mov .Ve .SS mjpeg2jpeg .IX Subsection "mjpeg2jpeg" تبدیل بسته‌های MJPEG/AVI1 به بسته‌های کامل JPEG/JFIF. .PP فرمت MJPEG یک کدک ویدیویی است که در آن هر فریم ویدیو در اصل یک تصویر JPEG است. فریم‌های مجزا را می‌توان بدون اتلاف استخراج کرد، مثلاً با: .PP .Vb 1 \& ffmpeg \-i ../some_mjpeg.avi \-c:v copy frames_%d.jpg .Ve .PP متأسفانه این تکه‌ها تصاویر ناقص JPEG هستند، زیرا بخش DHT مورد نیاز برای دیکود را ندارند. به نقل از <\fBhttp://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml\fR>: .PP اوری لی (Avery Lee)، در سال ۲۰۰۱ در گروه خبری rec.video.desktop نوشت: «MJPEG، یا حداقل MJPEG در فایل‌های AVI دارای کد چهارنویسه‌ای (fourcc) از نوع MJPG، یک JPEG محدودشده با یک جدول هافمن ثابت \-\- و *حذف‌شده* \-\- است. تصویر JPEG باید در فضای رنگی YCbCr باشد، باید 4:2:2 باشد، و باید از انکود هافمن پایه استفاده کند، نه محاسباتی یا پیش‌رونده. . . . در واقع می‌توانید فریم‌های MJPEG را استخراج کرده و آن‌ها را با یک دیکودر معمولی JPEG رمزگشایی کنید، اما باید بخش DHT را به آن‌ها اضافه نمایید، در غیر این صورت دیکودر هیچ اطلاعی از نحوه از حالت فشرده خارج کردن داده‌ها نخواهد داشت. جدول دقیق مورد نیاز در مشخصات OpenDML ارائه شده است.» .PP این فیلتر جریان بیت، هدر فریم‌های استخراج‌شده از یک استریم MJPEG را (که شناسه هدر AVI1 را حمل می‌کنند و فاقد بخش DHT هستند) وصله می‌کند تا تصاویر JPEG کاملاً استاندارد تولید شوند. .PP .Vb 3 \& ffmpeg \-i mjpeg\-movie.avi \-c:v copy \-bsf:v mjpeg2jpeg frame_%d.jpg \& exiftran \-i \-9 frame*.jpg \& ffmpeg \-i frame_%d.jpg \-c:v copy rotated.avi .Ve .SS mjpegadump .IX Subsection "mjpegadump" افزودن یک هدر MJPEG A به جریان بیت، برای امکان‌پذیر ساختن رمزگشایی توسط Quicktime. .SS mov2textsub .IX Subsection "mov2textsub" استخراج یک فایل متنی قابل نمایش از زیرنویس‌های MOV، با حذف هدر متادیتا از هر بسته زیرنویس. .PP همچنین فیلتر \fBtext2movsub\fR را ببینید. .SS mpeg2_metadata .IX Subsection "mpeg2_metadata" اصلاح متادیتای تعبیه‌شده در یک استریم MPEG\-2. .IP \fBdisplay_aspect_ratio\fR 4 .IX Item "display_aspect_ratio" تنظیم نسبت ابعاد نمایش در استریم. .Sp مقادیر ثابت زیر پشتیبانی می‌شوند: .RS 4 .IP \fB4/3\fR 4 .IX Item "4/3" .PD 0 .IP \fB16/9\fR 4 .IX Item "16/9" .IP \fB221/100\fR 4 .IX Item "221/100" .PD .RE .RS 4 .Sp هر مقدار دیگری باعث می‌شود که به جای آن پیکسل‌های مربعی اعلام شوند (بخش 6.3.3 و جدول 6\-3 در H.262 را ببینید). .RE .IP \fBframe_rate\fR 4 .IX Item "frame_rate" تنظیم نرخ فریم در استریم. این مقدار از جدولی از مقادیر شناخته‌شده همراه با یک ضریب و مقسوم‌علیه کوچک ساخته می‌شود \- اگر مقدار ارائه‌شده دقیقاً قابل نمایش نباشد، نزدیک‌ترین مقدار قابل نمایش استفاده خواهد شد (بخش 6.3.3 و جدول 6\-4 در H.262 را ببینید). .IP \fBvideo_format\fR 4 .IX Item "video_format" تنظیم فرمت ویدیو در استریم (بخش 6.3.6 و جدول 6\-6 در H.262 را ببینید). .IP \fBcolour_primaries\fR 4 .IX Item "colour_primaries" .PD 0 .IP \fBtransfer_characteristics\fR 4 .IX Item "transfer_characteristics" .IP \fBmatrix_coefficients\fR 4 .IX Item "matrix_coefficients" .PD تنظیم توصیف رنگ در استریم (بخش 6.3.6 و جدول‌های 6\-7، 6\-8 و 6\-9 در H.262 را ببینید). .SS mpeg4_unpack_bframes .IX Subsection "mpeg4_unpack_bframes" باز کردن فریم‌های B بسته‌بندی‌شده به سبک DivX. .PP فریم‌های B بسته‌بندی‌شده به سبک DivX فرمت استاندارد و معتبر MPEG\-4 نیستند و صرفاً راهکاری برای زیرسیستم معیوب Video for Windows بودند. آن‌ها فضای بیشتری مصرف می‌کنند، می‌توانند باعث مشکلات جزئی همگام‌سازی AV شوند، برای دیکود به توان CPU بیشتری نیاز دارند (مگر اینکه پخش‌کننده صف تصاویر دیکودشده داشته باشد تا سبک فریم در بسته 2,0,2,0 را جبران کند) و اگر در کانتینرهای استانداردی مانند mp4 یا mpeg\-ps/ts کپی شوند مشکل‌ساز می‌شوند، زیرا ممکن است دیکودرهای MPEG\-4 قادر به دیکود آن‌ها نباشند چون MPEG\-4 معتبر نیستند. .PP برای نمونه جهت اصلاح یک فایل AVI حاوی استریم MPEG\-4 با فریم‌های B بسته‌بندی‌شده به سبک DivX با استفاده از \fBffmpeg\fR، می‌توانید از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT.avi \-codec copy \-bsf:v mpeg4_unpack_bframes OUTPUT.avi .Ve .SS noise .IX Subsection "noise" محتوای بسته‌ها را مخدوش می‌کند یا به سادگی آن‌ها را بدون آسیب رساندن به کانتینر دور می‌اندازد (drop). می‌تواند برای تست تصادفی (fuzzing) یا آزمودن تاب‌آوری/پنهان‌سازی خطا استفاده شود. .PP پارامترها: .IP \fBamount\fR 4 .IX Item "amount" عبارتی را می‌پذیرد که ارزیابی آن به ازای هر بسته تعیین می‌کند هر چند وقت یک‌بار بایت‌ها در آن بسته تغییر داده شوند. مقداری زیر ۰ به فرکانس متغیر منجر خواهد شد. پیش‌فرض 0 است که منجر به عدم تغییر می‌شود. با این حال، اگر نه amount و نه drop مشخص نشده باشند، amount روی \fI\-1\fR تنظیم خواهد شد. برای متغیرهای پذیرفته‌شده به زیر مراجعه کنید. .IP \fBdrop\fR 4 .IX Item "drop" عبارتی را می‌پذیرد که به ازای هر بسته ارزیابی می‌شود و مقدار آن مشخص می‌کند که آیا آن بسته دور انداخته شود یا خیر. ارزیابی به یک مقدار مثبت منجر به دور انداختن بسته می‌شود. ارزیابی به یک مقدار منفی منجر به شانس متغیر برای دور انداخته شدن آن می‌شود که تقریباً نسبت معکوس با بزرگی مقدار دارد. پیش‌فرض 0 است که به معنای دور نینداختن است. برای متغیرهای پذیرفته‌شده به زیر مراجعه کنید. .IP \fBdropamount\fR 4 .IX Item "dropamount" یک عدد صحیح غیرمنفی را می‌پذیرد که شانس متغیری را برای دور انداخته شدن آن اختصاص می‌دهد که تقریباً نسبت معکوس با مقدار دارد. پیش‌فرض 0 است که منجر به دور نینداختن می‌شود. این گزینه برای سازگاری با گذشته حفظ شده است و معادل تنظیم drop به یک مقدار منفی با همان بزرگی است، یعنی \f(CW\*(C`dropamount=4\*(C'\fR مشابه \f(CW\*(C`drop=\-4\*(C'\fR است. اگر drop نیز مشخص شده باشد نادیده گرفته می‌شود. .PP هر دو گزینه \f(CW\*(C`amount\*(C'\fR و \f(CW\*(C`drop\*(C'\fR عبارات حاوی متغیرهای زیر را می‌پذیرند: .IP \fBn\fR 4 .IX Item "n" اندیس بسته، با شروع از صفر. .IP \fBtb\fR 4 .IX Item "tb" مبنای زمان (timebase) برای برچسب‌های زمانی بسته. .IP \fBpts\fR 4 .IX Item "pts" برچسب زمان ارائه (presentation timestamp) بسته. .IP \fBdts\fR 4 .IX Item "dts" برچسب زمان دیکود (decoding timestamp) بسته. .IP \fBnopts\fR 4 .IX Item "nopts" ثابت نمایانگر AV_NOPTS_VALUE. .IP \fBstartpts\fR 4 .IX Item "startpts" نخستین مقدار PTS غیر از AV_NOPTS_VALUE که در استریم دیده شده است. .IP \fBstartdts\fR 4 .IX Item "startdts" نخستین مقدار DTS غیر از AV_NOPTS_VALUE که در استریم دیده شده است. .IP \fBduration\fR 4 .IX Item "duration" .PD 0 .IP \fBd\fR 4 .IX Item "d" .PD مدت‌زمان بسته، در واحدهای مبنای زمان. .IP \fBpos\fR 4 .IX Item "pos" موقعیت بسته در ورودی؛ در صورت نامشخص بودن یا عدم تنظیم ممکن است \-1 باشد. .IP \fBsize\fR 4 .IX Item "size" اندازه بسته، بر حسب بایت. .IP \fBkey\fR 4 .IX Item "key" این که آیا بسته به عنوان یک فریم کلیدی (keyframe) علامت‌گذاری شده است یا خیر. .IP \fBstate\fR 4 .IX Item "state" یک عدد صحیح شبه‌تصادفی، که عمدتاً از محتوای بار داده بسته مشتق شده است. .PP \fIنمونه‌ها (Examples)\fR .IX Subsection "Examples" .PP اعمال تغییر روی هر بایت اما بدون دور انداختن هیچ بسته‌ای: .PP .Vb 1 \& ffmpeg \-i INPUT \-c copy \-bsf noise=1 output.mkv .Ve .PP دور انداختن تمام بسته‌های ویدیویی که به عنوان فریم کلیدی علامت‌گذاری نشده‌اند پس از برچسب زمان ۳۰ ثانیه، اما بدون تغییر در هیچ‌یک از بسته‌های باقی‌مانده: .PP .Vb 1 \& ffmpeg \-i INPUT \-c copy \-bsf:v noise=drop=\*(Aqgt(pts*tb\e,30)*not(key)\*(Aq output.mkv .Ve .PP دور انداختن یک ثانیه صوت در هر ۱۰ ثانیه و افزودن مقداری نویز تصادفی به بقیه: .PP .Vb 1 \& ffmpeg \-i INPUT \-c copy \-bsf:a noise=amount=\-1:drop=\*(Aqbetween(mod(pts*tb\e,10)\e,9\e,10)\*(Aq output.mkv .Ve .SS null .IX Subsection "null" این فیلتر جریان بیت بسته‌ها را بدون تغییر عبور می‌دهد. .SS pcm_rechunk .IX Subsection "pcm_rechunk" بسته‌بندی مجدد صدای PCM به تعداد ثابتی از نمونه‌ها در هر بسته یا نرخ ثابت بسته در هر ثانیه. این شبیه به \fBفیلتر صوتی asetnsamples\fR است اما به جای فریم‌های صوتی، روی بسته‌های صوتی کار می‌کند. .IP "\fBnb_out_samples, n\fR" 4 .IX Item "nb_out_samples, n" تنظیم تعداد نمونه‌ها در هر بسته صوتی خروجی. این تعداد به عنوان تعداد نمونه‌ها \fIبه ازای هر کانال\fR در نظر گرفته می‌شود. مقدار پیش‌فرض 1024 است. .IP "\fBpad, p\fR" 4 .IX Item "pad, p" اگر روی ۱ تنظیم شود، فیلتر آخرین بسته صوتی را با سکوت پر می‌کند (pad)، به طوری که تعداد نمونه‌های آن مشابه (یا تقریباً مشابه، \fBframe_rate\fR را ببینید) بسته‌های قبلی باشد. مقدار پیش‌فرض 1 است. .IP "\fBframe_rate, r\fR" 4 .IX Item "frame_rate, r" این گزینه باعث می‌شود فیلتر به جای تعداد ثابتی نمونه در هر بسته، تعداد ثابتی بسته در هر ثانیه خروجی دهد. اگر نرخ نمونه صوتی بر نرخ فریم بخش‌پذیر نباشد، تعداد نمونه‌ها ثابت نخواهد بود بلکه اندکی تغییر می‌کند تا هر بسته تا حد ممکن نزدیک به مرز فریم آغاز شود. استفاده از این گزینه نسبت به \fBnb_out_samples\fR اولویت دارد. .PP می‌توانید با استفاده از گزینه \fBframe_rate\fR الگوی شناخته‌شده 1602\-1601\-1602\-1601\-1602 صدای 48kHz را برای نرخ فریم NTSC ایجاد کنید: .PP .Vb 1 \& ffmpeg \-f lavfi \-i sine=r=48000:d=1 \-c pcm_s16le \-bsf pcm_rechunk=r=30000/1001 \-f framecrc \- .Ve .SS pgs_frame_merge .IX Subsection "pgs_frame_merge" ادغام دنباله‌ای از بخش‌های زیرنویس PGS منتهی به یک بخش «پایان مجموعه نمایش» (end of display set) در یک بسته واحد. .PP این برای برخی کانتینرهایی که از زیرنویس‌های PGS پشتیبانی می‌کنند (میکسر \f(CW\*(C`matroska\*(C'\fR) مورد نیاز است. .SS prores_metadata .IX Subsection "prores_metadata" اصلاح متادیتای ویژگی‌های رنگ تعبیه‌شده در استریم prores. .IP \fBcolor_primaries\fR 4 .IX Item "color_primaries" تنظیم مشخصات اصلی رنگ (color primaries). مقادیر در دسترس عبارتند از: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" حفظ همان ویژگی مشخصات اصلی رنگ (پیش‌فرض). .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBbt709\fR 4 .IX Item "bt709" .IP \fBbt470bg\fR 4 .IX Item "bt470bg" .PD BT601 625 .IP \fBsmpte170m\fR 4 .IX Item "smpte170m" BT601 525 .IP \fBbt2020\fR 4 .IX Item "bt2020" .PD 0 .IP \fBsmpte431\fR 4 .IX Item "smpte431" .PD DCI P3 .IP \fBsmpte432\fR 4 .IX Item "smpte432" P3 D65 .RE .RS 4 .RE .IP \fBtransfer_characteristics\fR 4 .IX Item "transfer_characteristics" تنظیم مشخصه انتقال رنگ (color transfer). مقادیر در دسترس عبارتند از: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" حفظ همان ویژگی مشخصه انتقال (پیش‌فرض). .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBbt709\fR 4 .IX Item "bt709" .PD BT 601, BT 709, BT 2020 .IP \fBsmpte2084\fR 4 .IX Item "smpte2084" SMPTE ST 2084 .IP \fBarib\-std\-b67\fR 4 .IX Item "arib-std-b67" ARIB STD\-B67 .RE .RS 4 .RE .IP \fBmatrix_coefficients\fR 4 .IX Item "matrix_coefficients" تنظیم ضریب ماتریس (matrix coefficient). مقادیر در دسترس عبارتند از: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" حفظ همان ویژگی فضای رنگ (پیش‌فرض). .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBbt709\fR 4 .IX Item "bt709" .IP \fBsmpte170m\fR 4 .IX Item "smpte170m" .PD BT 601 .IP \fBbt2020nc\fR 4 .IX Item "bt2020nc" .RE .RS 4 .RE .PP تنظیم فضای رنگ Rec709 برای هر فریم فایل: .PP .Vb 1 \& ffmpeg \-i INPUT \-c copy \-bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov .Ve .PP تنظیم پارامترهای Hybrid Log\-Gamma برای هر فریم فایل: .PP .Vb 1 \& ffmpeg \-i INPUT \-c copy \-bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib\-std\-b67:colorspace=bt2020nc output.mov .Ve .SS remove_extra .IX Subsection "remove_extra" حذف extradata از بسته‌ها. .PP پارامتر زیر را می‌پذیرد: .IP \fBfreq\fR 4 .IX Item "freq" مشخص می‌کند که extradata از کدام انواع فریم حذف شود. .RS 4 .IP \fBk\fR 4 .IX Item "k" حذف extradata تنها از فریم‌های غیرکلیدی. .IP \fBkeyframe\fR 4 .IX Item "keyframe" حذف extradata تنها از فریم‌های کلیدی. .IP "\fBe, all\fR" 4 .IX Item "e, all" حذف extradata از تمامی فریم‌ها. .RE .RS 4 .RE .SS setts .IX Subsection "setts" تنظیم PTS و DTS در بسته‌ها. .PP پارامترهای زیر را می‌پذیرد: .IP \fBts\fR 4 .IX Item "ts" .PD 0 .IP \fBpts\fR 4 .IX Item "pts" .IP \fBdts\fR 4 .IX Item "dts" .PD تنظیم عبارات برای PTS، DTS یا هر دو. .IP \fBduration\fR 4 .IX Item "duration" تنظیم عبارت برای مدت‌زمان (duration). .IP \fBtime_base\fR 4 .IX Item "time_base" تنظیم مبنای زمان خروجی. .IP \fBprescale\fR 4 .IX Item "prescale" تنظیم این که آیا فیلدهای زمان پیش از ارزیابی عبارات به مبنای زمان خروجی تعیین‌شده توسط کاربر تبدیل شوند یا خیر. پیش‌فرض 0 است. .PP عبارات از طریق API ارزیابی (eval API) ارزیابی می‌شوند و می‌توانند شامل ثابت‌های زیر باشند: .IP \fBN\fR 4 .IX Item "N" شمارش بسته ورودی. با شروع از 0. .IP \fBTS\fR 4 .IX Item "TS" برچسب زمان دیمکس در ورودی در صورت وجود گزینه \f(CW\*(C`ts\*(C'\fR یا \f(CW\*(C`dts\*(C'\fR، یا برچسب زمان ارائه در صورت وجود گزینه \f(CW\*(C`pts\*(C'\fR. .IP \fBPOS\fR 4 .IX Item "POS" موقعیت اصلی بسته در فایل، یا تعریف‌نشده در صورتی که برای بسته فعلی نامشخص باشد. .IP \fBDTS\fR 4 .IX Item "DTS" برچسب زمان دیمکس در ورودی. .IP \fBPTS\fR 4 .IX Item "PTS" برچسب زمان ارائه در ورودی. .IP \fBDURATION\fR 4 .IX Item "DURATION" مدت‌زمان در ورودی. .IP \fBSTARTDTS\fR 4 .IX Item "STARTDTS" مقدار DTS نخستین بسته. .IP \fBSTARTPTS\fR 4 .IX Item "STARTPTS" مقدار PTS نخستین بسته. .IP \fBPREV_INDTS\fR 4 .IX Item "PREV_INDTS" مقدار DTS ورودی قبلی. .IP \fBPREV_INPTS\fR 4 .IX Item "PREV_INPTS" مقدار PTS ورودی قبلی. .IP \fBPREV_INDURATION\fR 4 .IX Item "PREV_INDURATION" مدت‌زمان ورودی قبلی. .IP \fBPREV_OUTDTS\fR 4 .IX Item "PREV_OUTDTS" مقدار DTS خروجی قبلی. .IP \fBPREV_OUTPTS\fR 4 .IX Item "PREV_OUTPTS" مقدار PTS خروجی قبلی. .IP \fBPREV_OUTDURATION\fR 4 .IX Item "PREV_OUTDURATION" مدت‌زمان خروجی قبلی. .IP \fBNEXT_DTS\fR 4 .IX Item "NEXT_DTS" مقدار DTS ورودی بعدی. .IP \fBNEXT_PTS\fR 4 .IX Item "NEXT_PTS" مقدار PTS ورودی بعدی. .IP \fBNEXT_DURATION\fR 4 .IX Item "NEXT_DURATION" مدت‌زمان ورودی بعدی. .IP \fBTB\fR 4 .IX Item "TB" مبنای زمانی که فیلدهای زمانی در آن بیان می‌شوند. در صورت فعال بودن prescale مبنای زمان خروجی تعیین‌شده توسط کاربر است، و در غیر این صورت مبنای زمان ورودی است. .IP \fBTB_OUT\fR 4 .IX Item "TB_OUT" مبنای زمان خروجی. .IP \fBSR\fR 4 .IX Item "SR" نرخ نمونه‌برداری استریمی که بسته به آن تعلق دارد. .IP \fBNOPTS\fR 4 .IX Item "NOPTS" ثابت AV_NOPTS_VALUE. .PP برای نمونه، جهت برابر قرار دادن PTS با DTS (در صورت وجود فریم‌های B توصیه نمی‌شود): .PP .Vb 1 \& ffmpeg \-i INPUT \-c:a copy \-bsf:a setts=pts=DTS out.mkv .Ve .SS showinfo .IX Subsection "showinfo" ثبت اطلاعات پایه‌ای بسته‌ها در لاگ. عمدتاً برای آزمون، اشکال‌زدایی و توسعه مفید است. .SS smpte436m_to_eia608 .IX Subsection "smpte436m_to_eia608" تبدیل یک استریم داده \f(CW\*(C`SMPTE_436M_ANC\*(C'\fR به یک استریم \f(CW\*(C`EIA_608\*(C'\fR، با استخراج زیرنویس‌های بسته از بسته‌های CTA\-708 CDP VANC و نادیده گرفتن تمام داده‌های دیگر. .SS text2movsub .IX Subsection "text2movsub" تبدیل زیرنویس‌های متنی به زیرنویس‌های MOV (همان‌گونه که توسط کدک \f(CW\*(C`mov_text\*(C'\fR استفاده می‌شود) همراه با هدرهای متادیتا. .PP همچنین فیلتر \fBmov2textsub\fR را ببینید. .SS trace_headers .IX Subsection "trace_headers" ثبت خروجی ردگیری حاوی تمامی عناصر ساختاری (syntax elements) در هدرهای استریم کدگذاری‌شده (همه چیز بالاتر از سطح بلوک‌های کدگذاری‌شده منفرد). این گزینه می‌تواند برای اشکال‌زدایی مشکلات سطح پایین استریم مفید باشد. .PP از AV1، H.264، H.265، (M)JPEG، MPEG\-2 و VP9 پشتیبانی می‌کند، اما بسته به بیلد برنامه ممکن است تنها زیرمجموعه‌ای از این موارد در دسترس باشند. .SS truehd_core .IX Subsection "truehd_core" استخراج هسته اصلی از یک استریم TrueHD، با صرف‌نظر از داده‌های ATMOS. .SS vp9_metadata .IX Subsection "vp9_metadata" اصلاح متادیتای تعبیه‌شده در یک استریم VP9. .IP \fBcolor_space\fR 4 .IX Item "color_space" تنظیم مقدار فضای رنگ در هدر فریم. توجه داشته باشید هر فریمی که روی RGB تنظیم شود به صورت ضمنی روی محدوده PC تنظیم خواهد شد و RGB با پروفایل‌های 0 و 2 ناسازگار است. .RS 4 .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBbt601\fR 4 .IX Item "bt601" .IP \fBbt709\fR 4 .IX Item "bt709" .IP \fBsmpte170\fR 4 .IX Item "smpte170" .IP \fBsmpte240\fR 4 .IX Item "smpte240" .IP \fBbt2020\fR 4 .IX Item "bt2020" .IP \fBrgb\fR 4 .IX Item "rgb" .PD .RE .RS 4 .RE .IP \fBcolor_range\fR 4 .IX Item "color_range" تنظیم مقدار محدوده رنگ در هدر فریم. توجه داشته باشید که هر مقداری که توسط فضای رنگ تحمیل شود، بر این مقدار تقدم خواهد داشت. .RS 4 .IP \fBtv\fR 4 .IX Item "tv" .PD 0 .IP \fBpc\fR 4 .IX Item "pc" .PD .RE .RS 4 .RE .SS vp9_superframe .IX Subsection "vp9_superframe" ادغام مجدد فریم‌های نامرئی (alt\-ref) در سوپرفریم‌های VP9. این کار ادغام استریم‌های تقسیم‌شده/بخش‌بندی‌شده VP9 را که در آن‌ها فریم alt\-ref از همتای مرئی خود جدا شده است، اصلاح می‌کند. .SS vp9_superframe_split .IX Subsection "vp9_superframe_split" تقسیم سوپرفریم‌های VP9 به فریم‌های تکی. .SS vp9_raw_reorder .IX Subsection "vp9_raw_reorder" در صورت داشتن یک استریم VP9 با برچسب‌های زمانی درست اما احتمالاً نامرتب، بسته‌های show\-existing\-frame اضافی را برای اصلاح ترتیب درج می‌کند. .SH "گزینه‌های فرمت (FORMAT OPTIONS)" .IX Header "FORMAT OPTIONS" کتابخانه libavformat برخی گزینه‌های سراسری عمومی را ارائه می‌دهد که می‌توانند روی تمامی میکسرها و دیمکسرها تنظیم شوند. علاوه بر این هر میکسر یا دیمکسر ممکن است از گزینه‌های اصطلاحاً اختصاصی (private options) پشتیبانی کند که مختص آن مؤلفه است. .PP گزینه‌ها را می‌توان با مشخص کردن \-\fIoption\fR \fIvalue\fR در ابزارهای FFmpeg، یا با تنظیم صریح مقدار در گزینه‌های \&\f(CW\*(C`AVFormatContext\*(C'\fR یا استفاده از API پرونده \fIlibavutil/opt.h\fR برای استفاده برنامه‌نویسی تنظیم کرد. .PP فهرست گزینه‌های پشتیبانی‌شده در ادامه آمده است: .IP "\fBavioflags\fR \fIflags\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "avioflags flags (input/output)" مقادیر ممکن: .RS 4 .IP \fBdirect\fR 4 .IX Item "direct" کاهش بافرینگ. .RE .RS 4 .RE .IP "\fBprobesize\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "probesize integer (input)" تنظیم اندازه پروب بر حسب بایت، یعنی اندازه داده‌ای که برای به دست آوردن اطلاعات استریم تجزیه و تحلیل می‌شود. مقدار بالاتر در صورتی که اطلاعات در استریم پراکنده باشد، شناسایی اطلاعات بیشتری را امکان‌پذیر می‌سازد، اما تاخیر را افزایش می‌دهد. باید یک عدد صحیح نه کمتر از ۳۲ باشد. به طور پیش‌فرض 5000000 است. .IP "\fBmax_probe_packets\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "max_probe_packets integer (input)" تنظیم حداکثر تعداد بسته‌های بافرشده هنگام پروب یک کدک. پیش‌فرض 2500 بسته است. .IP "\fBpacketsize\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "packetsize integer (output)" تنظیم اندازه بسته. .IP "\fBfflags\fR \fIflags\fR" 4 .IX Item "fflags flags" تنظیم پرچم‌های فرمت. برخی از آن‌ها برای تعداد محدودی از فرمت‌ها پیاده‌سازی شده‌اند. .Sp مقادیر ممکن برای فایل‌های ورودی: .RS 4 .IP \fBdiscardcorrupt\fR 4 .IX Item "discardcorrupt" دور انداختن بسته‌های آسیب‌دیده و خراب. .IP \fBfastseek\fR 4 .IX Item "fastseek" فعال‌سازی پرش سریع، اما نادقیق برای برخی فرمت‌ها. .IP \fBgenpts\fR 4 .IX Item "genpts" تولید PTSهای گمشده در صورت وجود DTS. .IP \fBigndts\fR 4 .IX Item "igndts" نادیده گرفتن DTS در صورتی که PTS نیز تنظیم شده باشد. در صورتی که PTS تنظیم شده باشد، مقدار DTS روی NOPTS تنظیم می‌شود. این مورد در صورت تنظیم پرچم \f(CW\*(C`nofillin\*(C'\fR نادیده گرفته می‌شود. .IP \fBignidx\fR 4 .IX Item "ignidx" نادیده گرفتن فهرست اندیس (index). .IP \fBnobuffer\fR 4 .IX Item "nobuffer" کاهش تاخیر ناشی از بافرینگ در طول تحلیل اولیه استریم‌های ورودی. .IP \fBnofillin\fR 4 .IX Item "nofillin" عدم پر کردن مقادیر گمشده در فیلدهای بسته که می‌توانند دقیقاً محاسبه شوند. .IP \fBnoparse\fR 4 .IX Item "noparse" غیرفعال کردن AVParsers، این گزینه به \f(CW\*(C`+nofillin\*(C'\fR نیز نیاز دارد. .IP \fBsortdts\fR 4 .IX Item "sortdts" تلاش برای درهم‌بافتن بسته‌های خروجی بر اساس DTS. در حال حاضر، تنها برای فایل‌های AVI دارای اندیس در دسترس است. .RE .RS 4 .Sp مقادیر ممکن برای فایل‌های خروجی: .IP \fBautobsf\fR 4 .IX Item "autobsf" اعمال خودکار فیلترهای جریان بیت بر اساس نیاز فرمت خروجی. به طور پیش‌فرض فعال است. .IP \fBbitexact\fR 4 .IX Item "bitexact" تنها نوشتن داده‌های مستقل از پلتفرم، بیلد و زمان. این امر تضمین می‌کند که چکسام فایل و داده‌ها بازتولیدپذیر بوده و میان پلتفرم‌ها مطابقت داشته باشد. کاربرد اصلی آن برای تست‌های رگرسیون است. .IP \fBflush_packets\fR 4 .IX Item "flush_packets" نوشتن فوری بسته‌ها در خروجی. .IP \fBshortest\fR 4 .IX Item "shortest" توقف میکس در انتهای کوتاه‌ترین استریم. ممکن است افزایش max_interleave_delta برای جلوگیری از خالی شدن استریم‌های طولانی‌تر پیش از رسیدن به EOF نیاز باشد. .RE .RS 4 .RE .IP "\fBseek2any\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "seek2any integer (input)" اجازه پرش به فریم‌های غیرکلیدی در سطح دیمکسر در صورت پشتیبانی، با تنظیم روی ۱. پیش‌فرض 0 است. .IP "\fBanalyzeduration\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "analyzeduration integer (input)" مشخص کردن اینکه چند میکروثانیه برای پروب ورودی تجزیه و تحلیل شود. مقدار بالاتر شناسایی اطلاعات دقیق‌تر را ممکن می‌سازد، اما تاخیر را افزایش می‌دهد. پیش‌فرض 5,000,000 میکروثانیه = ۵ ثانیه است. .IP "\fBcryptokey\fR \fIhexadecimal string\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "cryptokey hexadecimal string (input)" تنظیم کلید رمزگشایی. .IP "\fBindexmem\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "indexmem integer (input)" تنظیم حداکثر حافظه مورد استفاده برای اندیس برچسب زمان (به ازای هر استریم). .IP "\fBrtbufsize\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "rtbufsize integer (input)" تنظیم حداکثر حافظه مورد استفاده برای بافر کردن فریم‌های بلادرنگ (real\-time). .IP "\fBfdebug\fR \fIflags\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "fdebug flags (input/output)" چاپ اطلاعات خاص اشکال‌زدایی. .Sp مقادیر ممکن: .RS 4 .IP \fBts\fR 4 .IX Item "ts" چاپ اطلاعات برچسب زمان. .IP \fBid3v2\fR 4 .IX Item "id3v2" چاپ داده‌های فریم ID3v2 هنگام دیمکس کردن فایل‌های حاوی تگ‌های ID3v2. .RE .RS 4 .RE .IP "\fBmax_delay\fR \fIinteger\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "max_delay integer (input/output)" تنظیم حداکثر تاخیر میکس یا دیمکس بر حسب میکروثانیه. .IP "\fBfpsprobesize\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "fpsprobesize integer (input)" تنظیم تعداد فریم‌های مورد استفاده برای پروب fps. .IP "\fBaudio_preload\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "audio_preload integer (output)" تنظیم میکروثانیه‌هایی که بسته‌های صوتی باید زودتر درهم‌بافته شوند. .IP "\fBchunk_duration\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "chunk_duration integer (output)" تنظیم میکروثانیه‌ها برای هر چانک (قطعه). .IP "\fBchunk_size\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "chunk_size integer (output)" تنظیم اندازه بر حسب بایت برای هر چانک. .IP "\fBerr_detect, f_err_detect\fR \fIflags\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "err_detect, f_err_detect flags (input)" تنظیم پرچم‌های تشخیص خطا. پرچم \f(CW\*(C`f_err_detect\*(C'\fR منسوخ شده است و تنها باید از طریق ابزار \fBffmpeg\fR استفاده شود. .Sp مقادیر ممکن: .RS 4 .IP \fBcrccheck\fR 4 .IX Item "crccheck" تأیید صحت CRCهای تعبیه‌شده. .IP \fBbitstream\fR 4 .IX Item "bitstream" تشخیص انحرافات از مشخصات جریان بیت. .IP \fBbuffer\fR 4 .IX Item "buffer" تشخیص طول نامناسب جریان بیت. .IP \fBexplode\fR 4 .IX Item "explode" لغو دیکود هنگام تشخیص خطاهای جزئی. .IP \fBcareful\fR 4 .IX Item "careful" در نظر گرفتن مواردی که مشخصات استاندارد را نقض می‌کنند و در محیط عملیاتی دیده نشده‌اند به عنوان خطا. .IP \fBcompliant\fR 4 .IX Item "compliant" در نظر گرفتن تمامی موارد عدم انطباق با مشخصات استاندارد به عنوان خطا. .IP \fBaggressive\fR 4 .IX Item "aggressive" در نظر گرفتن کارهایی که یک اینکودر عاقل نباید انجام دهد به عنوان خطا. .RE .RS 4 .RE .IP "\fBmax_interleave_delta\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "max_interleave_delta integer (output)" تنظیم حداکثر مدت‌زمان بافرینگ برای درهم‌بافی (interleaving). مدت‌زمان بر حسب میکروثانیه بیان می‌شود و پیش‌فرض آن 10000000 (۱۰ ثانیه) است. .Sp برای اطمینان از اینکه تمامی استریم‌ها به درستی درهم‌بافته می‌شوند، libavformat پیش از نوشتن هر بسته‌ای در فایل خروجی، منتظر می‌ماند تا دست‌کم یک بسته برای هر استریم در اختیار داشته باشد. هنگامی که برخی استریم‌ها پراکنده (sparse) باشند (یعنی فاصله‌های بزرگی بین بسته‌های پیاپی وجود داشته باشد)، این امر می‌تواند منجر به بافرینگ بیش از حد شود. .Sp این فیلد حداکثر اختلاف میان برچسب‌های زمانی نخستین و آخرین بسته موجود در صف میکس را تعیین می‌کند که بالاتر از آن، libavformat صرف‌نظر از اینکه آیا بسته‌ای برای همه استریم‌ها در صف قرار دارد یا خیر، یک بسته را در خروجی می‌نویسد. .Sp اگر روی ۰ تنظیم شود، libavformat صرف‌نظر از حداکثر اختلاف برچسب زمان میان بسته‌های بافرشده، به بافر کردن بسته‌ها تا زمانی که بسته‌ای برای هر استریم داشته باشد ادامه می‌دهد. .IP "\fBuse_wallclock_as_timestamps\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "use_wallclock_as_timestamps integer (input)" استفاده از ساعت واقعی سیستم به عنوان برچسب زمان در صورت تنظیم روی ۱. پیش‌فرض 0 است. .IP "\fBavoid_negative_ts\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "avoid_negative_ts integer (output)" مقادیر ممکن: .RS 4 .IP \fBmake_non_negative\fR 4 .IX Item "make_non_negative" شیفت دادن برچسب‌های زمانی برای غیرمنفی کردن آن‌ها. همچنین توجه داشته باشید که این گزینه تنها بر برچسب‌های زمانی منفی ابتدایی تأثیر می‌گذارد، و نه برچسب‌های زمانی منفی غیریکنواخت. .IP \fBmake_zero\fR 4 .IX Item "make_zero" شیفت دادن برچسب‌های زمانی به گونه‌ای که نخستین برچسب زمان 0 باشد. .IP "\fBauto (پیش‌فرض)\fR" 4 .IX Item "auto (default)" فعال‌سازی شیفت در صورت لزوم توسط فرمت مقصد. .IP \fBdisabled\fR 4 .IX Item "disabled" غیرفعال کردن شیفت برچسب‌های زمانی. .RE .RS 4 .Sp هنگامی که شیفت فعال باشد، تمامی برچسب‌های زمانی خروجی به یک میزان شیفت داده می‌شوند. ناهماهنگی‌های صوتی، ویدیویی و زیرنویس و اختلاف برچسب‌های زمانی نسبی در مقایسه با وضعیت بدون شیفت حفظ می‌شوند. .RE .IP "\fBskip_initial_bytes\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "skip_initial_bytes integer (input)" تنظیم تعداد بایت‌هایی که پیش از خواندن هدر و فریم‌ها باید نادیده گرفته شوند، در صورت تنظیم روی ۱. پیش‌فرض 0 است. .IP "\fBcorrect_ts_overflow\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "correct_ts_overflow integer (input)" اصلاح سرریزهای تکی برچسب زمان در صورت تنظیم روی ۱. پیش‌فرض 1 است. .IP "\fBflush_packets\fR \fIinteger\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "flush_packets integer (output)" تخلیه استریم ورودی/خروجی زیرین پس از هر بسته. پیش‌فرض \-1 (خودکار) است، که یعنی پروتکل زیرین تصمیم می‌گیرد؛ مقدار 1 آن را فعال می‌کند و اثر آن کاهش تاخیر است، مقدار 0 آن را غیرفعال می‌کند و ممکن است توان خروجی I/O را در برخی موارد افزایش دهد. .IP "\fBoutput_ts_offset\fR \fIoffset\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "output_ts_offset offset (output)" تنظیم آفست زمانی خروجی. .Sp مقدار \&\fIoffset\fR باید مشخصات مدت‌زمان باشد، بخش \fBمدت‌زمان در راهنمای ffmpeg\-utils\|(1)\fR را ببینید. .Sp آفست توسط میکسر به برچسب‌های زمانی خروجی اضافه می‌شود. .Sp مشخص کردن یک آفست مثبت بدان معناست که استریم‌های متناظر به اندازه مدت‌زمان مشخص‌شده در \fIoffset\fR به تاخیر انداخته می‌شوند. مقدار پیش‌فرض \f(CW0\fR است (به این معنی که هیچ آفستی اعمال نمی‌شود). .IP "\fBformat_whitelist\fR \fIlist\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "format_whitelist list (input)" فهرستی از دیمکسرهای مجاز که با «,» از هم جدا شده‌اند. به طور پیش‌فرض همه مجاز هستند. .IP "\fBdump_separator\fR \fIstring\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "dump_separator string (input)" جداکننده مورد استفاده برای تفکیک فیلدهای چاپ‌شده در خط فرمان پیرامون پارامترهای استریم. برای نمونه، جهت جداسازی فیلدها با خطوط جدید و تورفتگی: .Sp .Vb 2 \& ffprobe \-dump_separator " \& " \-i ~/videos/matrixbench_mpeg2.mpg .Ve .IP "\fBmax_streams\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "max_streams integer (input)" حداکثر تعداد استریم‌ها را مشخص می‌کند. این می‌تواند برای رد کردن فایل‌هایی که به دلیل تعداد زیاد استریم‌ها به منابع بسیار زیادی نیاز دارند، استفاده شود. .IP "\fBskip_estimate_duration_from_pts\fR \fIbool\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "skip_estimate_duration_from_pts bool (input)" صرف‌نظر از تخمین مدت‌زمان ورودی در صورتی که نیازمند پروب اضافی برای PTS در انتهای فایل باشد. در حال حاضر برای MPEG\-PS و MPEG\-TS کاربرد دارد. .IP "\fBduration_probesize\fR \fIinteger\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "duration_probesize integer (input)" تنظیم اندازه پروب، بر حسب بایت، برای تخمین مدت‌زمان ورودی هنگامی که در عمل نیازمند پروب اضافی برای PTS در انتهای فایل است (در حال حاضر: MPEG\-PS و MPEG\-TS). این گزینه برای کاربرانی در نظر گرفته شده است که مایل به پروب بهتر مدت‌زمان برای خود فایل، یا به صورت غیرمستقیم مثلاً به دلیل استفاده از دیمکسر concat هستند. مورد کاربرد معمول یک MPEG\-TS CBR با بیت‌ریت بالا، بافرینگ ویدیویی بالا و پایان تمیز با PTS مشابه برای ویدیو و صوت است: در چنین سناریویی، شکاف فیزیکی بزرگ میان آخرین بسته ویدیویی و آخرین بسته صوتی، خواندن بایت‌های زیادی را برای به دست آوردن مدت‌زمان استریم ویدیو ضروری می‌سازد. مورد کاربرد دیگر جایی است که رفتار پروب پیش‌فرض تنها به یک فریم ویدیویی تکی می‌رسد که به دلیل مرتب‌سازی مجدد فریم‌ها آخرین فریم استریم نیست، بنابراین مدت‌زمان دقیق نمی‌باشد. تنظیم این گزینه حتی برای فایل‌های کوچک تأثیر عملکردی دارد زیرا اندازه پروب ثابت است. رفتار پیش‌فرض یک موازنه چندمنظوره و تا حد زیادی تطبیقی است، اما اندازه پروب برای به دست آوردن مدت‌زمان استریم به هر قیمتی افزایش نخواهد یافت. باید یک عدد صحیح نه کمتر از ۱، یا ۰ برای رفتار پیش‌فرض باشد. .IP "\fBstrict, f_strict\fR \fIinteger\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "strict, f_strict integer (input/output)" مشخص می‌کند که استانداردها با چه شدتی رعایت شوند. گزینه \f(CW\*(C`f_strict\*(C'\fR منسوخ شده است و تنها باید از طریق ابزار \fBffmpeg\fR استفاده شود. .Sp مقادیر ممکن: .RS 4 .IP \fBvery\fR 4 .IX Item "very" انطباق دقیق با نسخه‌ای قدیمی‌تر و سخت‌گیرانه‌تر از مشخصات یا نرم‌افزار مرجع. .IP \fBstrict\fR 4 .IX Item "strict" انطباق دقیق با تمامی موارد موجود در مشخصات صرف‌نظر از هر پیامدی. .IP \fBnormal\fR 4 .IX Item "normal" .PD 0 .IP \fBunofficial\fR 4 .IX Item "unofficial" .PD اجازه استفاده از پسوندهای غیررسمی. .IP \fBexperimental\fR 4 .IX Item "experimental" اجازه استفاده از موارد تجربی غیراستاندارد، دیکودرها و اینکودرهای تجربی (ناتمام/در حال توسعه/به خوبی تست‌نشده). نکته: دیکودرهای تجربی می‌توانند خطر امنیتی ایجاد کنند، از این گزینه برای دیکود ورودی‌های نامطمئن استفاده نکنید. .RE .RS 4 .RE .SS "مشخص‌کننده‌های استریم فرمت (Format stream specifiers)" .IX Subsection "Format stream specifiers" مشخص‌کننده‌های استریم فرمت امکان انتخاب یک یا چند استریم را که با ویژگی‌های خاصی مطابقت دارند، فراهم می‌کنند. .PP معناشناسی دقیق مشخص‌کننده‌های استریم توسط تابع \&\f(CWavformat_match_stream_specifier()\fR تعریف شده است که در هدر \&\fIlibavformat/avformat.h\fR اعلان گردیده و در بخش \&\fBمشخص‌کننده‌های استریم در راهنمای ffmpeg\|(1)\fR مستند شده است. .SH "دیمکسرها (DEMUXERS)" .IX Header "DEMUXERS" دیمکسرها عناصر پیکربندی‌شده‌ای در FFmpeg هستند که می‌توانند استریم‌های چندرسانه‌ای را از نوع خاصی از فایل بخوانند. .PP هنگامی که بیلد FFmpeg خود را پیکربندی می‌کنید، تمامی دیمکسرهای پشتیبانی‌شده به طور پیش‌فرض فعال هستند. می‌توانید با استفاده از گزینه پیکربندی \f(CW\*(C`\-\-list\-demuxers\*(C'\fR فهرستی از تمامی موارد در دسترس را مشاهده کنید. .PP می‌توانید تمام دیمکسرها را با استفاده از گزینه پیکربندی \&\f(CW\*(C`\-\-disable\-demuxers\*(C'\fR غیرفعال کنید، و یک دیمکسر منفرد را با گزینه \f(CW\*(C`\-\-enable\-demuxer=\fR\f(CIDEMUXER\fR\f(CW\*(C'\fR به صورت گزینشی فعال نمایید، یا با گزینه \f(CW\*(C`\-\-disable\-demuxer=\fR\f(CIDEMUXER\fR\f(CW\*(C'\fR آن را غیرفعال کنید. .PP گزینه \f(CW\*(C`\-demuxers\*(C'\fR در ابزارهای ff* فهرستی از دیمکسرهای فعال را نمایش می‌دهد. از \f(CW\*(C`\-formats\*(C'\fR برای مشاهده فهرست ترکیبی دیمکسرها و میکسرهای فعال استفاده کنید. .PP شرح برخی از دیمکسرهای فعلی در دسترس در ادامه آمده است. .SS aa .IX Subsection "aa" دیمکسر فرمت‌های ۲، ۳ و ۴ شرکت Audible. .PP این دیمکسر برای دیمکس کردن فایل‌های Audible Format 2, 3, and 4 (.aa) استفاده می‌شود. .SS aac .IX Subsection "aac" دیمکسر جریان انتقال داده‌های صوتی خام (ADTS) از نوع AAC. .PP این دیمکسر برای دیمکس کردن یک ورودی ADTS حاوی یک استریم AAC منفرد به همراه هرگونه تگ ID3v1/2 یا APE در آن استفاده می‌شود. .SS apng .IX Subsection "apng" دیمکسر گرافیک شبکه متحرک و قابل حمل (APNG). .PP این دیمکسر برای دیمکس کردن فایل‌های APNG استفاده می‌شود. تمامی هدرها، به جز امضای PNG، تا (اما نه شامل) نخستین چانک fcTL به عنوان extradata ارسال می‌شوند. سپس فریم‌ها به صورت تمامی چانک‌های میان دو چانک fcTL، یا میان آخرین چانک fcTL و چانک‌های IEND تقسیم می‌شوند. .IP "\fB\-ignore_loop\fR \fIbool\fR" 4 .IX Item "-ignore_loop bool" نادیده گرفتن متغیر حلقه در فایل در صورت تنظیم. پیش‌فرض فعال است. .IP "\fB\-max_fps\fR \fIint\fR" 4 .IX Item "-max_fps int" حداکثر نرخ فریم بر حسب فریم بر ثانیه. مقدار پیش‌فرض 0 هیچ محدودیتی اعمال نمی‌کند. .IP "\fB\-default_fps\fR \fIint\fR" 4 .IX Item "-default_fps int" نرخ فریم پیش‌فرض بر حسب فریم بر ثانیه در زمانی که هیچ مقداری در فایل مشخص نشده باشد (0 به معنای با حداکثر سرعت ممکن است). پیش‌فرض 15 است. .SS asf .IX Subsection "asf" دیمکسر فرمت پیشرفته سیستم‌ها (Advanced Systems Format). .PP این دیمکسر برای دیمکس کردن فایل‌های ASF و استریم‌های تحت شبکه MMS استفاده می‌شود. .IP "\fB\-no_resync_search\fR \fIbool\fR" 4 .IX Item "-no_resync_search bool" عدم تلاش برای همگام‌سازی مجدد از طریق جستجوی یک کد شروع اختیاری مشخص. .SS concat .IX Subsection "concat" دیمکسر اسکریپت الحاق مجازی (Virtual concatenation). .PP این دیمکسر فهرستی از فایل‌ها و سایر دستورالعمل‌ها را از یک فایل متنی خوانده و آن‌ها را یکی پس از دیگری دیمکس می‌کند، درست گویی تمام بسته‌های آن‌ها با هم میکس شده‌اند. .PP برچسب‌های زمانی در فایل‌ها به گونه‌ای تنظیم می‌شوند که نخستین فایل از ۰ شروع شود و هر فایل بعدی از جایی که فایل قبلی به پایان رسیده است آغاز گردد. توجه داشته باشید که این کار به صورت سراسری انجام می‌شود و اگر همه استریم‌ها دقیقاً طول یکسانی نداشته باشند ممکن است باعث ایجاد شکاف شود. .PP تمامی فایل‌ها باید استریم‌های یکسانی داشته باشند (کدک‌های یکسان، مبنای زمان یکسان و غیره). .PP مدت‌زمان هر فایل برای تنظیم برچسب‌های زمانی فایل بعدی استفاده می‌شود: اگر مدت‌زمان نادرست باشد (مثلاً به این دلیل که با استفاده از نرخ بیت محاسبه شده است یا فایل ناقص است)، می‌تواند باعث ایجاد آرتیفکت شود. دستورالعمل \&\f(CW\*(C`duration\*(C'\fR می‌تواند برای بازنویسی مدت‌زمان ذخیره‌شده در هر فایل استفاده شود. .PP \fIساختار دستور (Syntax)\fR .IX Subsection "Syntax" .PP اسکریپت یک فایل متنی در استاندارد extended\-ASCII است، با یک دستورالعمل در هر خط. خطوط خالی، فاصله‌های ابتدایی و خطوطی که با \*(Aq#\*(Aq شروع می‌شوند نادیده گرفته می‌شوند. دستورالعمل‌های زیر شناخته می‌شوند: .ie n .IP "\fR\fB""file path""\fR\fB\fR" 4 .el .IP "\fR\f(CBfile path\fR\fB\fR" 4 .IX Item "file path" مسیر فایلی که باید خوانده شود؛ نویسه‌های ویژه و فاصله‌ها باید با بک‌اسلش یا نقل‌قول تکی گریز (escape) داده شوند. .Sp تمامی دستورالعمل‌های بعدی مربوط به فایل برای آن فایل اعمال می‌شوند. .ie n .IP "\fR\fB""ffconcat version 1.0""\fR\fB\fR" 4 .el .IP "\fR\f(CBffconcat version 1.0\fR\fB\fR" 4 .IX Item "ffconcat version 1.0" شناسایی نوع و نسخه اسکریپت. .Sp برای اینکه FFmpeg فرمت را به طور خودکار تشخیص دهد، این دستورالعمل باید دقیقاً همان‌گونه که هست (بدون فاصله اضافی یا علامت ترتیب بایت BOM) در نخستین خط اسکریپت قرار گیرد. .ie n .IP "\fR\fB""duration dur""\fR\fB\fR" 4 .el .IP "\fR\f(CBduration dur\fR\fB\fR" 4 .IX Item "duration dur" مدت‌زمان فایل. این اطلاعات می‌تواند از فایل مشخص شود؛ مشخص کردن آن در اینجا ممکن است کارآمدتر باشد یا در صورتی که اطلاعات فایل در دسترس یا دقیق نباشد کمک کند. .Sp اگر مدت‌زمان برای همه فایل‌ها تنظیم شده باشد، پرش (seek) در کل ویدیوی الحاق‌شده امکان‌پذیر است. .ie n .IP "\fR\fB""inpoint timestamp""\fR\fB\fR" 4 .el .IP "\fR\f(CBinpoint timestamp\fR\fB\fR" 4 .IX Item "inpoint timestamp" نقطه ورود فایل. هنگامی که دیمکسر فایل را باز می‌کند، بلافاصله به برچسب زمان مشخص‌شده پرش می‌کند. پرش به گونه‌ای انجام می‌شود که تمامی استریم‌ها بتوانند در نقطه ورود با موفقیت ارائه شوند. .Sp این دستورالعمل برای کدک‌های فریم درون‌تصویری (intra frame) بهتر کار می‌کند، زیرا برای کدک‌های غیر درون‌تصویری معمولاً بسته‌های اضافی قبل از نقطه ورود واقعی دریافت خواهید کرد و محتوای دیکودشده به احتمال زیاد شامل فریم‌های قبل از نقطه ورود نیز خواهد بود. .Sp برای هر فایل، بسته‌های قبل از نقطه ورود فایل برچسب‌های زمانی کمتری نسبت به برچسب زمان شروع محاسبه‌شده فایل خواهند داشت (در مورد نخستین فایل منفی)، و مدت‌زمان فایل‌ها (در صورت مشخص نشدن توسط دستورالعمل \f(CW\*(C`duration\*(C'\fR) بر اساس نقطه ورود مشخص‌شده آن‌ها کاهش می‌یابد. .Sp به دلیل وجود بسته‌های احتمالی قبل از نقطه ورود مشخص‌شده، برچسب‌های زمانی بسته ممکن است میان دو فایل الحاق‌شده هم‌پوشانی داشته باشند. .ie n .IP "\fR\fB""outpoint timestamp""\fR\fB\fR" 4 .el .IP "\fR\f(CBoutpoint timestamp\fR\fB\fR" 4 .IX Item "outpoint timestamp" نقطه خروج فایل. هنگامی که دیمکسر به برچسب زمان دیکود مشخص‌شده در هر یک از استریم‌ها می‌رسد، آن را به عنوان شرایط پایان فایل مدیریت کرده و بسته فعلی و تمام بسته‌های باقی‌مانده از همه استریم‌ها را نادیده می‌گیرد. .Sp نقطه خروج مانعه‌الجمع است (exclusive)، به این معنی که دیمکسر بسته‌هایی با برچسب زمان دیکود بزرگ‌تر یا مساوی نقطه خروج را خروجی نمی‌دهد. .Sp این دستورالعمل برای کدک‌های intra frame و فرمت‌هایی که تمام استریم‌ها در آن‌ها به طور فشرده درهم‌بافته شده‌اند، بهتر کار می‌کند. برای کدک‌های غیر درون‌تصویری معمولاً بسته‌های اضافی با برچسب زمان ارائه پس از نقطه خروج دریافت خواهید کرد، بنابراین محتوای دیکودشده به احتمال زیاد شامل فریم‌های پس از نقطه خروج نیز خواهد بود. اگر استریم‌های شما به طور فشرده درهم‌بافته نشده باشند، ممکن است قبل از نقطه خروج همه بسته‌ها را از همه استریم‌ها دریافت نکنید و تنها قادر به دیکود کردن زودترین استریم تا نقطه خروج باشید. .Sp مدت‌زمان فایل‌ها (در صورت مشخص نشدن توسط دستورالعمل \f(CW\*(C`duration\*(C'\fR) بر اساس نقطه خروج مشخص‌شده آن‌ها کاهش خواهد یافت. .ie n .IP "\fR\fB""file_packet_metadata key=value""\fR\fB\fR" 4 .el .IP "\fR\f(CBfile_packet_metadata key=value\fR\fB\fR" 4 .IX Item "file_packet_metadata key=value" متادیتای بسته‌های فایل. متادیتای مشخص‌شده برای هر بسته فایل تنظیم خواهد شد. می‌توانید این دستورالعمل را چند بار برای افزودن چندین مدخل متادیتا مشخص کنید. این دستورالعمل منسوخ شده است، به جای آن از \f(CW\*(C`file_packet_meta\*(C'\fR استفاده کنید. .ie n .IP "\fR\fB""file_packet_meta key value""\fR\fB\fR" 4 .el .IP "\fR\f(CBfile_packet_meta key value\fR\fB\fR" 4 .IX Item "file_packet_meta key value" متادیتای بسته‌های فایل. متادیتای مشخص‌شده برای هر بسته فایل تنظیم خواهد شد. می‌توانید این دستورالعمل را چند بار برای افزودن چندین مدخل متادیتا مشخص کنید. .ie n .IP "\fR\fB""option key value""\fR\fB\fR" 4 .el .IP "\fR\f(CBoption key value\fR\fB\fR" 4 .IX Item "option key value" گزینه‌ای برای دسترسی، باز کردن و پروب فایل. می‌تواند چندین بار وجود داشته باشد. .ie n .IP "\fR\fB""stream""\fR\fB\fR" 4 .el .IP \fR\f(CBstream\fR\fB\fR 4 .IX Item "stream" معرفی یک استریم در فایل مجازی. تمامی دستورالعمل‌های بعدی مربوط به استریم، روی آخرین استریم معرفی‌شده اعمال می‌شوند. برخی ویژگی‌های استریم‌ها باید تنظیم شوند تا شناسایی استریم‌های منطبق در زیرفایل‌ها امکان‌پذیر باشد. اگر هیچ استریمی در اسکریپت تعریف نشده باشد، استریم‌ها از نخستین فایل کپی می‌شوند. .ie n .IP "\fR\fB""exact_stream_id id""\fR\fB\fR" 4 .el .IP "\fR\f(CBexact_stream_id id\fR\fB\fR" 4 .IX Item "exact_stream_id id" تنظیم شناسه (id) استریم. اگر این دستورالعمل داده شود، رشته با شناسه متناظر در زیرفایل‌ها استفاده خواهد شد. این به ویژه برای فایل‌های MPEG\-PS (VOB) مفید است، جایی که ترتیب استریم‌ها قابل اعتماد نیست. .ie n .IP "\fR\fB""stream_meta key value""\fR\fB\fR" 4 .el .IP "\fR\f(CBstream_meta key value\fR\fB\fR" 4 .IX Item "stream_meta key value" متادیتا برای استریم. می‌تواند چندین بار وجود داشته باشد. .ie n .IP "\fR\fB""stream_codec value""\fR\fB\fR" 4 .el .IP "\fR\f(CBstream_codec value\fR\fB\fR" 4 .IX Item "stream_codec value" کدک برای استریم. .ie n .IP "\fR\fB""stream_extradata hex_string""\fR\fB\fR" 4 .el .IP "\fR\f(CBstream_extradata hex_string\fR\fB\fR" 4 .IX Item "stream_extradata hex_string" اطلاعات اضافی (extradata) برای رشته، کدگذاری‌شده به صورت هگزادسیمال. .ie n .IP "\fR\fB""chapter id start end""\fR\fB\fR" 4 .el .IP "\fR\f(CBchapter id start end\fR\fB\fR" 4 .IX Item "chapter id start end" افزودن یک فصل (chapter). مقدار \fIid\fR یک شناسه منحصر‌به‌فرد، احتمالاً کوچک و متوالی است. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBsafe\fR 4 .IX Item "safe" اگر روی ۱ تنظیم شود، مسیرهای فایل و دستورالعمل‌های ناامن را رد می‌کند. یک مسیر فایل زمانی امن در نظر گرفته می‌شود که شامل مشخصات پروتکل نباشد، نسبی باشد و تمام اجزای آن تنها شامل نویسه‌هایی از مجموعه نویسه‌های قابل حمل (حروف، ارقام، نقطه، زیرخط و خط تیره) باشند و در ابتدای هیچ جزئی نقطه وجود نداشته باشد. .Sp اگر روی ۰ تنظیم شود، هر نام فایلی پذیرفته می‌شود. .Sp پیش‌فرض 1 است. .IP \fBauto_convert\fR 4 .IX Item "auto_convert" اگر روی ۱ تنظیم شود، تلاش می‌کند تبدیلات خودکار را روی داده‌های بسته انجام دهد تا استریم‌ها قابل الحاق شوند. پیش‌فرض 1 است. .Sp در حال حاضر، تنها تبدیل موجود افزودن فیلتر جریان بیت h264_mp4toannexb به استریم‌های H.264 در فرمت MP4 است. این امر به ویژه در صورت وجود تغییرات رزولوشن ضروری است. .IP \fBsegment_time_metadata\fR 4 .IX Item "segment_time_metadata" اگر روی ۱ تنظیم شود، هر بسته شامل مقادیر متادیتای بسته \fIlavf.concat.start_time\fR و \&\fIlavf.concat.duration\fR خواهد بود که زمان شروع و مدت‌زمان بخش‌های فایل مربوطه در خروجی الحاق‌شده بر حسب میکروثانیه هستند. متادیتای مدت‌زمان تنها در صورتی تنظیم می‌شود که بر اساس فایل concat شناخته شده باشد. پیش‌فرض 0 است. .PP \fIنمونه‌ها (Examples)\fR .IX Subsection "Examples" .IP \(bu 4 استفاده از نام‌های فایل مطلق و گنجاندن چند توضیح: .Sp .Vb 6 \& # my first filename \& file /mnt/share/file\-1.wav \& # my second filename including whitespace \& file \*(Aq/mnt/share/file 2.wav\*(Aq \& # my third filename including whitespace plus single quote \& file \*(Aq/mnt/share/file 3\*(Aq\e\*(Aq\*(Aq.wav\*(Aq .Ve .IP \(bu 4 امکان پروب خودکار فرمت ورودی، استفاده از نام‌های فایل امن و تنظیم مدت‌زمان نخستین فایل: .Sp .Vb 1 \& ffconcat version 1.0 \& \& file file\-1.wav \& duration 20.0 \& \& file subdir/file\-2.wav .Ve .SS dash .IX Subsection "dash" دیمکسر پخش تطبیقی پویا روی پروتکل HTTP (DASH). .PP این دیمکسر تمامی AVStreamهای موجود در مانیفست را ارائه می‌دهد. با تنظیم پرچم‌های دور انداختن روی AVStreamها، فراخواننده می‌تواند تصمیم بگیرد که در عمل کدام استریم‌ها را دریافت کند. هر استریم ویژگی‌های \f(CW\*(C`id\*(C'\fR و \f(CW\*(C`bandwidth\*(C'\fR را از \&\f(CW\*(C`\*(C'\fR به عنوان کلیدهای متادیتا به ترتیب با نام‌های "id" و "variant_bitrate" منعکس می‌کند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBcenc_decryption_key\fR 4 .IX Item "cenc_decryption_key" کلید پیش‌فرض ۱۶ بایتی، در قالب هگزادسیمال، برای رمزگشایی فایل‌های رمزگذاری‌شده با رمزنگاری مشترک ISO موسوم به (CENC/AES\-128 CTR; ISO/IEC 23001\-7). .IP \fBcenc_decryption_keys\fR 4 .IX Item "cenc_decryption_keys" دیکشنری از شناسه کلید ۱۶ بایتی => کلید ۱۶ بایتی، هر دو در قالب هگزادسیمال، برای رمزگشایی فایل‌های رمزگذاری‌شده با رمزنگاری مشترک ISO موسوم به (CENC/AES\-128 CTR; ISO/IEC 23001\-7). .SS dvdvideo .IX Subsection "dvdvideo" دیمکسر DVD\-Video، مبتنی بر libdvdnav و libdvdread. .PP می‌تواند عناوین DVD، به ویژه PGCهای متوالی را مستقیماً وارد یک خط‌لوله تبدیل کند. دارایی‌های منو مانند ویدیوی پس‌زمینه یا صوت نیز می‌توانند با داشتن مختصات منو (با بهترین تلاش ممکن) دیمکس شوند. .PP دستگاه‌های بلوکی (درایوهای DVD)، فایل‌های ISO و ساختارهای دایرکتوری پذیرفته می‌شوند. با قرار دادن \f(CW\*(C`\-f dvdvideo\*(C'\fR در برابر یکی از این ورودی‌ها فعال می‌شود. .PP این دیمکسر فاقد هرگونه کد رمزگشایی حفاظتی است. کار با DVDهای رمزگذاری‌شده بر عهده خود شماست و نباید انتظار پشتیبانی در این زمینه داشته باشید. .PP پخش زیرین توسط libdvdnav و تجزیه ساختار توسط libdvdread انجام می‌شود. FFmpeg باید با پشتیبانی کتابخانه تحت مجوز GPL و همچنین سوییچ‌های پیکربندی \f(CW\*(C`\-\-enable\-libdvdnav\*(C'\fR و \f(CW\*(C`\-\-enable\-libdvdread\*(C'\fR ساخته شود. .PP شما باید «شماره عنوان» دلخواه یا مختصات دقیق PGC/PG را ارائه دهید. بسیاری از پخش‌کننده‌ها و ابزارهای منبع‌باز DVD می‌توانند در ارائه این اطلاعات کمک کنند. در صورت عدم تعیین، دیمکسر به طور پیش‌فرض روی عنوان ۱ تنظیم می‌شود که برای بسیاری از دیسک‌ها کار می‌کند. با این حال، به دلیل انعطاف‌پذیری فرمت، توصیه می‌شود به صورت دستی بررسی شود. دیسک‌های بسیاری وجود دارند که به شکل عجیبی ساخته شده‌اند یا دارای هدرهای نامعتبر هستند. .PP اگر ورودی یک درایو واقعی DVD است، لطفاً توجه داشته باشید درایوهایی وجود دارند که ممکن است هنگام خواندن بخش‌های آسیب‌دیده دیسک بدون اعلام خطا، بیت‌های تصادفی بازگردانند که عملاً داده خراب محسوب می‌شود. این موضوع به ویژه در دیسک‌های قدیمی یا خراب‌شده برجسته است. برای تشخیص خرابی به یک گذر دوم و بررسی‌های صحت نیاز است. این مشکل مربوط به FFmpeg نیست. .PP \fIپیش‌زمینه (Background)\fR .IX Subsection "Background" .PP قالب DVD\-Video یک فرمت کانتینری مستقیماً قابل دسترسی و خطی به معنای سنتی نیست. در عوض، امکان پخش پیچیده و برنامه‌ریزی‌شده استریم‌های دقیقاً میکس‌شده MPEG\-PS را که در فایل‌های VOB بدون هدر ذخیره شده‌اند، فراهم می‌کند. برای کاربر نهایی، این استریم‌ها به سادگی به عنوان «عنوان‌ها» (titles) شناخته می‌شوند، اما توالی پخش منطقی واقعی توسط یک یا چند «PGC» یا زنجیره‌های گروه برنامه در داخل عنوان تعریف می‌شود. PGC به نوبه خود از چندین «PG» یا برنامه تشکیل شده است که بخش‌های واقعی ویدیو هستند (و برای یک فیلم معمول، به صورت متوالی مرتب شده‌اند). ساختار PGC، همراه با طرح استریم و متادیتا، در فایل‌های IFO ذخیره می‌شوند که باید تجزیه شوند. PGCها را می‌توان با عبارات ساده‌تر به عنوان لیست‌های پخش در نظر گرفت. .PP یک پخش‌کننده واقعی DVD برای هدایت مسیر دیمکس کردن، به تعامل رابط کاربری کاربر از طریق منوها و یک ماشین مجازی (VM) داخلی متکی است. به طور کلی، کاربر یا پیمایش می‌کند (از طریق منوها) یا به طور خودکار به PGC انتخابی خود هدایت می‌شود. در طول این فرآیند و پخش پس از آن، ماشین مجازی داخلی پخش‌کننده DVD نیز وضعیتی را حفظ کرده و دستورالعمل‌هایی را اجرا می‌کند که می‌توانند پرش‌هایی به سکتورهای مختلف در حین پخش ایجاد کنند. به همین دلیل است که libdvdnav درگیر است، زیرا خواندن خطی داده‌های MPEG\-PS روی دیسک (فایل‌های VOB) در بسیاری از موارد برای تولید توالی درست کافی نیست. .PP ساختارهای فراوان دیگری در DVD وجود دارد (موضوعی طولانی) که در اینجا به آن‌ها پرداخته نمی‌شود. به ویژه بسته‌های NAV توسط این دیمکسر برای ایجاد زمان‌بندی دقیق مدیریت می‌شوند اما به عنوان یک استریم صادر نمی‌گردند. برای یک درک کلی و سطح بالا به پیوند زیر مراجعه کنید: <\fBhttps://code.videolan.org/videolan/libdvdnav/\-/blob/master/doc/dvd_structures\fR> .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP "\fBtitle\fR \fIint\fR" 4 .IX Item "title int" شماره عنوان برای پخش. در صورت عدم تنظیم \fBpgc\fR و \fBpg\fR باید تنظیم شود. برای منوها کاربرد ندارد. پیش‌فرض 0 (خودکار) است که در حال حاضر تنها نخستین عنوان موجود (عنوان ۱) را انتخاب کرده و پیامدهای آن را به کاربر اطلاع می‌دهد. .IP "\fBchapter_start\fR \fIint\fR" 4 .IX Item "chapter_start int" شماره فصل، یا PTT (بخش عنوان)، برای شروع. برای منوها کاربرد ندارد. پیش‌فرض 1 است. .IP "\fBchapter_end\fR \fIint\fR" 4 .IX Item "chapter_end int" شماره فصل، یا PTT، برای پایان. برای منوها کاربرد ندارد. پیش‌فرض 0 است، که یک مقدار ویژه برای علامت‌گذاری پایان در آخرین فصل ممکن است. .IP "\fBangle\fR \fIint\fR" 4 .IX Item "angle int" شماره زاویه ویدیو، که اشاره به یک استریم ویدیوی اساساً اضافی دارد که از فریم‌های جایگزین درهم‌بافته در VOBها تشکیل شده است. برای منوها کاربرد ندارد. پیش‌فرض 1 است. .IP "\fBregion\fR \fIint\fR" 4 .IX Item "region int" کد منطقه برای استفاده در پخش. برخی دیسک‌ها ممکن است از این برای پخش پیش‌فرض در یک زاویه خاص در مناطق مختلف استفاده کنند. این گزینه در صورت استفاده به عنوان ورودی، بر کد منطقه درایو واقعی DVD تأثیر نمی‌گذارد. برای منوها کاربرد ندارد. پیش‌فرض 0، "world" (جهانی) است. .IP "\fBmenu\fR \fIbool\fR" 4 .IX Item "menu bool" دیمکس کردن دارایی‌های منو به جای پیمایش یک عنوان. نیازمند مختصات دقیق منو است (\fBmenu_lu\fR، \fBmenu_vts\fR، \fBpgc\fR، \fBpg\fR). پیش‌فرض false است. .IP "\fBmenu_lu\fR \fIint\fR" 4 .IX Item "menu_lu int" زبان منو برای دیمکس. در DVD، منوها بر اساس زبان گروه‌بندی می‌شوند. پیش‌فرض 1، نخستین واحد زبان است. .IP "\fBmenu_vts\fR \fIint\fR" 4 .IX Item "menu_vts int" بخش VTS که منو در آن قرار دارد، یا ۰ در صورتی که یک منوی VMG (سطح ریشه) باشد. پیش‌فرض 1، منوی نخستین VTS است. .IP "\fBpgc\fR \fIint\fR" 4 .IX Item "pgc int" واحد PGC ورودی برای شروع پخش، همراه با \fBpg\fR. جایگزینی برای تنظیم \fBtitle\fR. نشانگرهای فصل در حال حاضر پشتیبانی نمی‌شوند. باید برای منوها صراحتاً تنظیم شود. پیش‌فرض 0 است که به طور خودکار از مقدار \fBtitle\fR حل می‌شود. .IP "\fBpg\fR \fIint\fR" 4 .IX Item "pg int" واحد PG ورودی برای شروع پخش، همراه با \fBpgc\fR. جایگزینی برای تنظیم \fBtitle\fR. نشانگرهای فصل در حال حاضر پشتیبانی نمی‌شوند. پیش‌فرض 1، نخستین PG از PGC است. .IP "\fBpreindex\fR \fIbool\fR" 4 .IX Item "preindex bool" فعال‌سازی این گزینه برای داشتن نشانگرهای دقیق فصل (PTT) و اندازه‌گیری دقیق مدت‌زمان است، که نیازمند خواندن آهسته در گذر دوم به منظور اندیس‌گذاری برچسب‌های زمانی نشانگر فصل از بسته‌های NAV است. این یک کار اضافی غیر ایده‌آل برای درایوهای نوری واقعی است. استفاده از این گزینه به همراه نسخه پشتیبان ساختار DVD ذخیره‌شده روی هارد دیسک توصیه می‌شود و سریع‌تر است. با \fBpgc\fR و \fBpg\fR سازگار نیست. پیش‌فرض 0، false است. .IP "\fBtrim\fR \fIbool\fR" 4 .IX Item "trim bool" صرف‌نظر از سلول‌های پدینگ (یعنی سلول‌های کوتاه‌تر از ۱ ثانیه) از ابتدا. دیسک‌های زیادی با بخش‌های پرکننده در ابتدای PGC وجود دارند، که اغلب حاوی داده‌های آشغال هستند و با هدف کنترل سرعت بافرینگ پخش‌کننده واقعی DVD طراحی شده‌اند و هیچ ارزش داده‌ای دیگری ندارند. برای منوها کاربرد ندارد. پیش‌فرض 1، true است. .PP \fIنمونه‌ها (Examples)\fR .IX Subsection "Examples" .IP \(bu 4 باز کردن عنوان ۳ از یک ساختار DVD مشخص: .Sp .Vb 1 \& ffmpeg \-f dvdvideo \-title 3 \-i ... .Ve .IP \(bu 4 باز کردن فصل‌های ۳ تا ۶ از عنوان ۱ از یک ساختار DVD مشخص: .Sp .Vb 1 \& ffmpeg \-f dvdvideo \-chapter_start 3 \-chapter_end 6 \-title 1 \-i ... .Ve .IP \(bu 4 تنها باز کردن فصل ۵ از عنوان ۱ از یک ساختار DVD مشخص: .Sp .Vb 1 \& ffmpeg \-f dvdvideo \-chapter_start 5 \-chapter_end 5 \-title 1 \-i ... .Ve .IP \(bu 4 دیمکس کردن منو با زبان ۱ از VTS 1، PGC 1، شروع از PG 1: .Sp .Vb 1 \& ffmpeg \-f dvdvideo \-menu 1 \-menu_lu 1 \-menu_vts 1 \-pgc 1 \-pg 1 \-i ... .Ve .SS ea .IX Subsection "ea" دیمکسر فرمت چندرسانه‌ای Electronic Arts. .PP این فرمت توسط بازی‌های مختلف شرکت Electronic Arts استفاده می‌شود. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBmerge_alpha\fR \fIbool\fR" 4 .IX Item "merge_alpha bool" معمولاً کانال آلفای VP6 (در صورت وجود) به عنوان استریم ویدیوی ثانویه بازگردانده می‌شود؛ با تنظیم این گزینه می‌توانید دیمکسر را وادار کنید که یک استریم ویدیوی منفرد بازگرداند که علاوه بر ویدیوی معمولی، کانال آلفا را نیز شامل می‌شود. .SS imf .IX Subsection "imf" دیمکسر فرمت مستر با قابلیت تعامل (Interoperable Master Format). .PP این دیمکسر استریم‌های صوتی و ویدیویی موجود در یک IMF Composition را طبق مشخصات <\fBhttps://doi.org/10.5594/SMPTE.ST2067\-2.2020\fR> ارائه می‌دهد. .PP .Vb 1 \& ffmpeg [\-assetmaps ,,...] \-i ... .Ve .PP اگر \f(CW\*(C`\-assetmaps\*(C'\fR مشخص نشده باشد، دیمکسر به دنبال فایلی به نام \&\fIASSETMAP.xml\fR در همان دایرکتوری فایل CPL می‌گردد. .SS "flv, live_flv, kux" .IX Subsection "flv, live_flv, kux" دیمکسر فرمت ویدیوی ادوبی فلش (Adobe Flash Video). .PP این دیمکسر برای دیمکس کردن فایل‌های FLV و استریم‌های شبکه RTMP استفاده می‌شود. در مورد استریم‌های زنده شبکه، اگر فرمت را اجبار می‌کنید، می‌توانید به جای flv از گزینه live_flv استفاده کنید تا در برابر ناپیوستگی‌های برچسب زمان تاب بیاورد. فرمت KUX یک گونه از flv است که در پلتفرم Youku استفاده می‌شود. .PP .Vb 2 \& ffmpeg \-f flv \-i myfile.flv ... \& ffmpeg \-f live_flv \-i rtmp:///anything/key .... .Ve .IP "\fB\-flv_metadata\fR \fIbool\fR" 4 .IX Item "-flv_metadata bool" تخصیص استریم‌ها مطابق با محتوای آرایه onMetaData. .IP "\fB\-flv_ignore_prevtag\fR \fIbool\fR" 4 .IX Item "-flv_ignore_prevtag bool" نادیده گرفتن مقدار اندازه تگ قبلی. .IP "\fB\-flv_full_metadata\fR \fIbool\fR" 4 .IX Item "-flv_full_metadata bool" خروجی دادن تمامی محتوای onMetadata. .SS gif .IX Subsection "gif" دیمکسر GIF متحرک. .PP گزینه‌های زیر را می‌پذیرد: .IP \fBmin_delay\fR 4 .IX Item "min_delay" تنظیم حداقل تاخیر معتبر میان فریم‌ها بر حسب صدم ثانیه. محدوده از 0 تا 6000 است. مقدار پیش‌فرض 2 است. .IP \fBmax_gif_delay\fR 4 .IX Item "max_gif_delay" تنظیم حداکثر تاخیر معتبر میان فریم‌ها بر حسب صدم ثانیه. محدوده از 0 تا 65535 است. مقدار پیش‌فرض 65535 (نزدیک به یازده دقیقه)، حداکثر مقدار مجاز طبق مشخصات استاندارد است. .IP \fBdefault_delay\fR 4 .IX Item "default_delay" تنظیم تاخیر پیش‌فرض میان فریم‌ها بر حسب صدم ثانیه. محدوده از 0 تا 6000 است. مقدار پیش‌فرض 10 است. .IP \fBignore_loop\fR 4 .IX Item "ignore_loop" فایل‌های GIF می‌توانند حاوی اطلاعاتی برای تکرار حلقه به تعداد دفعات مشخص (یا نامحدود) باشند. اگر \fBignore_loop\fR روی ۱ تنظیم شود، تنظیمات حلقه از ورودی نادیده گرفته شده و حلقه رخ نخواهد داد. اگر روی ۰ تنظیم شود، چرخه رخ می‌دهد و تعداد دفعات چرخش طبق GIF خواهد بود. مقدار پیش‌فرض 1 است. .PP برای نمونه، با فیلتر overlay، قرار دادن یک GIF با تکرار نامحدود روی ویدیویی دیگر: .PP .Vb 1 \& ffmpeg \-i input.mp4 \-ignore_loop 0 \-i input.gif \-filter_complex overlay=shortest=1 out.mkv .Ve .PP توجه داشته باشید که در مثال بالا گزینه shortest برای فیلتر overlay استفاده شده است تا ویدیوی خروجی به اندازه طول کوتاه‌ترین فایل ورودی پایان یابد، که در این حالت \fIinput.mp4\fR است زیرا GIF در این مثال به طور نامحدود تکرار می‌شود. .SS hls .IX Subsection "hls" دیمکسر HLS. .PP دیمکسر پخش زنده روی پروتکل HTTP اپل (Apple HTTP Live Streaming). .PP این دیمکسر تمامی AVStreamها را از تمامی استریم‌های متغیر ارائه می‌دهد. فیلد id روی شماره اندیس متغیر نرخ بیت تنظیم شده است. با تنظیم پرچم‌های دور انداختن روی AVStreamها (با فشردن \*(Aqa\*(Aq یا \*(Aqv\*(Aq در ffplay)، فراخواننده می‌تواند تصمیم بگیرد که در عمل کدام استریم‌های متغیر را دریافت کند. نرخ بیت کل متغیری که استریم به آن تعلق دارد، در یک کلید متادیتا به نام "variant_bitrate" در دسترس است. .PP گزینه‌های زیر را می‌پذیرد: .IP \fBlive_start_index\fR 4 .IX Item "live_start_index" اندیس بخشی که استریم‌های زنده از آن آغاز شوند (مقادیر منفی از انتها محاسبه می‌شوند). .IP \fBprefer_x_start\fR 4 .IX Item "prefer_x_start" ترجیح استفاده از #EXT\-X\-START در صورتی که در لیست پخش باشد به جای live_start_index. .IP \fBallowed_extensions\fR 4 .IX Item "allowed_extensions" فهرستی از پسوندهای فایل جداشده با \*(Aq,\*(Aq که hls مجاز به دسترسی به آن‌ها است. .IP \fBextension_picky\fR 4 .IX Item "extension_picky" این گزینه پسوندهای غیرمجاز را از پروب کردن مسدود می‌کند. همچنین ایجاب می‌کند که تمام بخش‌های موجود، پسوندهای منطبق با فرمت داشته باشند به جز mpegts که همیشه مجاز است. توصیه می‌شود به جای اتکا به پسوندها، لیست‌های سفید را به درستی تنظیم کنید. به طور پیش‌فرض فعال است. .IP \fBmax_reload\fR 4 .IX Item "max_reload" حداکثر تعداد دفعاتی که تلاش می‌شود یک لیست ناکافی مجدداً بارگذاری شود. مقدار پیش‌فرض 1000 است. .IP \fBm3u8_hold_counters\fR 4 .IX Item "m3u8_hold_counters" حداکثر تعداد دفعات بارگذاری m3u8 هنگامی که بدون بخش‌های جدید بازخوانی می‌شود. مقدار پیش‌فرض 1000 است. .IP \fBhttp_persistent\fR 4 .IX Item "http_persistent" استفاده از اتصالات پایدار HTTP. تنها برای استریم‌های HTTP کاربرد دارد. به طور پیش‌فرض فعال است. .IP \fBhttp_multiple\fR 4 .IX Item "http_multiple" استفاده از چندین اتصال HTTP برای دانلود بخش‌های HTTP. به طور پیش‌فرض برای سرورهای HTTP/1.1 فعال است. .IP \fBhttp_seekable\fR 4 .IX Item "http_seekable" استفاده از درخواست‌های جزئی HTTP برای دانلود بخش‌های HTTP. 0 = غیرفعال، 1 = فعال، \-1 = خودکار، پیش‌فرض خودکار است. .IP \fBseg_format_options\fR 4 .IX Item "seg_format_options" تنظیم گزینه‌ها برای دیمکسر بخش‌های رسانه‌ای با استفاده از فهرستی از جفت‌های key=value که با \f(CW\*(C`:\*(C'\fR از هم جدا شده‌اند. .IP \fBseg_max_retry\fR 4 .IX Item "seg_max_retry" حداکثر تعداد دفعات بارگذاری مجدد یک بخش در صورت بروز خطا، زمانی مفید است که صرف‌نظر از بخش در هنگام خطای شبکه مطلوب نباشد. مقدار پیش‌فرض 0 است. .SS image2 .IX Subsection "image2" دیمکسر فایل تصویر. .PP این دیمکسر از فهرستی از فایل‌های تصویر مشخص‌شده توسط یک الگو می‌خواند. نحو و معنای الگو توسط گزینه \fIpattern_type\fR مشخص می‌شود. .PP الگو ممکن است شامل پسوندی باشد که برای تعیین خودکار فرمت تصاویر موجود در فایل‌ها استفاده می‌شود. .PP اندازه، فرمت پیکسل و فرمت هر تصویر باید برای تمامی فایل‌های موجود در توالی یکسان باشد. .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBframerate\fR 4 .IX Item "framerate" تنظیم نرخ فریم برای استریم ویدیو. پیش‌فرض آن 25 است. .IP \fBloop\fR 4 .IX Item "loop" در صورت تنظیم روی ۱، روی ورودی حلقه می‌زند. مقدار پیش‌فرض 0 است. .IP \fBpattern_type\fR 4 .IX Item "pattern_type" نوع الگوی مورد استفاده برای تفسیر نام فایل ارائه‌شده را انتخاب می‌کند. .Sp گزینه \&\fIpattern_type\fR یکی از مقادیر زیر را می‌پذیرد: .RS 4 .IP \fBnone\fR 4 .IX Item "none" غیرفعال کردن تطبیق الگو، بنابراین ویدیو تنها شامل تصویر مشخص‌شده خواهد بود. اگر نمی‌خواهید از چندین تصویر توالی بسازید و نام فایل‌های شما ممکن است شامل نویسه‌های الگوی ویژه باشد، باید از این گزینه استفاده کنید. .IP \fBsequence\fR 4 .IX Item "sequence" انتخاب نوع الگوی توالی، که برای مشخص کردن توالی فایل‌های اندیس‌گذاری‌شده با اعداد متوالی استفاده می‌شود. .Sp یک الگوی توالی ممکن است شامل رشته "%d" یا "%0\fIN\fRd" باشد که موقعیت نویسه‌های نمایانگر یک عدد متوالی را در هر نام فایل منطبق با الگو مشخص می‌کند. اگر فرم "%d0\fIN\fRd" استفاده شود، رشته نمایانگر عدد در هر نام فایل با صفر پر می‌شود (0\-padded) و \fIN\fR تعداد کل ارقام پرشده با صفر است که عدد را نشان می‌دهند. نویسه تحت‌اللفظی \*(Aq%\*(Aq می‌تواند در الگو با رشته "%%" مشخص شود. .Sp اگر الگوی توالی شامل "%d" یا "%0\fIN\fRd" باشد، نخستین نام فایل از فهرست فایل مشخص‌شده توسط الگو باید شامل عددی باشد که به طور فراگیر بین \fIstart_number\fR و \&\fIstart_number\fR+\fIstart_number_range\fR\-1 قرار داشته باشد، و تمامی اعداد بعدی باید متوالی باشند. .Sp برای نمونه الگوی "img\-%03d.bmp" با توالی نام‌های فایلی به شکل \fIimg\-001.bmp\fR، \fIimg\-002.bmp\fR، ...، \&\fIimg\-010.bmp\fR و غیره مطابقت خواهد داشت؛ الگوی "i%%m%%g\-%d.jpg" با توالی نام‌های فایلی به شکل \fIi%m%g\-1.jpg\fR، \&\fIi%m%g\-2.jpg\fR، ...، \fIi%m%g\-10.jpg\fR و غیره مطابقت خواهد داشت. .Sp توجه داشته باشید که الگو لزوماً نباید شامل "%d" یا "%0\fIN\fRd" باشد، مثلاً برای تبدیل یک فایل تصویر تکی \fIimg.jpeg\fR می‌توانید از دستور زیر استفاده کنید: .Sp .Vb 1 \& ffmpeg \-i img.jpeg img.png .Ve .IP \fBglob\fR 4 .IX Item "glob" انتخاب نوع الگوی نویسه‌های عام (glob wildcard). .Sp الگو مانند یک الگوی \f(CWglob()\fR تفسیر می‌شود. این گزینه تنها زمانی قابل انتخاب است که libavformat با پشتیبانی از globbing کامپایل شده باشد. .RE .RS 4 .Sp مقدار پیش‌فرض \fIsequence\fR است. .RE .IP \fBpixel_format\fR 4 .IX Item "pixel_format" تنظیم فرمت پیکسل تصاویری که باید خوانده شوند. در صورت عدم تعیین، فرمت پیکسل از نخستین فایل تصویر در توالی حدس زده می‌شود. .IP \fBstart_number\fR 4 .IX Item "start_number" تنظیم اندیس فایلی که با الگوی فایل تصویر مطابقت دارد تا خواندن از آن آغاز شود. مقدار پیش‌فرض 0 است. .IP \fBstart_number_range\fR 4 .IX Item "start_number_range" تنظیم محدوده بازه اندیس برای بررسی هنگام جستجوی نخستین فایل تصویر در توالی، با شروع از \fIstart_number\fR. مقدار پیش‌فرض 5 است. .IP \fBts_from_file\fR 4 .IX Item "ts_from_file" اگر روی ۱ تنظیم شود، برچسب زمان فریم را روی زمان اصلاح فایل تصویر تنظیم می‌کند. توجه داشته باشید که یکنواختی برچسب‌های زمانی تضمین نمی‌شود: تصاویر با همان ترتیبی که بدون این گزینه دارند خوانده می‌شوند. مقدار پیش‌فرض 0 است. اگر روی ۲ تنظیم شود، برچسب زمان فریم را روی زمان اصلاح فایل تصویر با دقت نانوثانیه تنظیم می‌کند. .IP \fBvideo_size\fR 4 .IX Item "video_size" تنظیم اندازه ویدیوی تصاویری که باید خوانده شوند. در صورت عدم تعیین، اندازه ویدیو از نخستین فایل تصویر در توالی حدس زده می‌شود. .IP \fBexport_path_metadata\fR 4 .IX Item "export_path_metadata" اگر روی ۱ تنظیم شود، دو فیلد اضافی به متادیتای یافت‌شده در ورودی اضافه می‌کند و آن‌ها را برای سایر فیلترها نیز در دسترس قرار می‌دهد (برای نمونه‌ها فیلتر \fIdrawtext\fR را ببینید). مقدار پیش‌فرض 0 است. فیلدهای اضافی در زیر شرح داده شده‌اند: .RS 4 .IP \fBlavf.image2dec.source_path\fR 4 .IX Item "lavf.image2dec.source_path" متناظر با مسیر کامل فایل ورودی در حال خواندن است. .IP \fBlavf.image2dec.source_basename\fR 4 .IX Item "lavf.image2dec.source_basename" متناظر با نام پایه (basename) فایل در حال خواندن است. .RE .RS 4 .RE .PP \fIنمونه‌ها (Examples)\fR .IX Subsection "Examples" .IP \(bu 4 استفاده از \fBffmpeg\fR برای ایجاد یک ویدیو از تصاویر در توالی فایل \fIimg\-001.jpeg\fR، \fIimg\-002.jpeg\fR، ...، با فرض نرخ فریم ورودی ۱۰ فریم بر ثانیه: .Sp .Vb 1 \& ffmpeg \-framerate 10 \-i \*(Aqimg\-%03d.jpeg\*(Aq out.mkv .Ve .IP \(bu 4 مانند بالا، اما شروع خواندن از فایلی با اندیس ۱۰۰ در توالی: .Sp .Vb 1 \& ffmpeg \-framerate 10 \-start_number 100 \-i \*(Aqimg\-%03d.jpeg\*(Aq out.mkv .Ve .IP \(bu 4 خواندن تصاویر منطبق با الگوی glob از نوع "*.png"، یعنی تمامی فایل‌هایی که با پسوند ".png" پایان می‌یابند: .Sp .Vb 1 \& ffmpeg \-framerate 10 \-pattern_type glob \-i "*.png" out.mkv .Ve .SS libgme .IX Subsection "libgme" کتابخانه Game Music Emu مجموعه‌ای از شبیه‌سازهای فایل‌های موسیقی بازی‌های ویدیویی است. .PP برای اطلاعات بیشتر به <\fBhttps://bitbucket.org/mpyne/game\-music\-emu/overview\fR> مراجعه کنید. .PP گزینه‌های زیر را می‌پذیرد: .IP \fBtrack_index\fR 4 .IX Item "track_index" اندیس قطعه‌ای (track) را که باید دیمکس شود تنظیم می‌کند. دیمکسر تنها می‌تواند یک قطعه را خروجی دهد. اندیس قطعه‌ها از ۰ شروع می‌شود. پیش‌فرض انتخاب نخستین قطعه است. تعداد قطعه‌ها به عنوان مدخل متادیتای \fItracks\fR صادر می‌شود. .IP \fBsample_rate\fR 4 .IX Item "sample_rate" تنظیم نرخ نمونه‌برداری قطعه صادرشده. محدوده از 1000 تا 999999 است. پیش‌فرض 44100 است. .IP "\fBmax_size\fR \fI(bytes)\fR" 4 .IX Item "max_size (bytes)" دیمکسر کل فایل را در حافظه بافر می‌کند. این مقدار را برای تنظیم حداکثر اندازه بافر تغییر دهید، که به نوبه خود به عنوان سقفی برای اندازه فایل‌های قابل خواندن عمل می‌کند. پیش‌فرض 50 MiB است. .SS libmodplug .IX Subsection "libmodplug" دیمکسر ماژول بر پایه ModPlug .PP ببینید: <\fBhttps://github.com/Konstanty/libmodplug\fR> .PP یک جریان صوتی ۲ کاناله ۱۶ بیتی با فرکانس 44.1 kHz صادر می‌کند. به صورت اختیاری، یک جریان ویدیویی ۱۶ رنگ \f(CW\*(C`pal8\*(C'\fR با یا بدون متاداده چاپ‌شده می‌تواند صادر شود. .PP گزینه‌های زیر را می‌پذیرد: .IP \fBnoise_reduction\fR 4 .IX Item "noise_reduction" اعمال یک فیلتر پایین‌گذر ساده. می‌تواند 1 (روشن) یا 0 (خاموش) باشد. پیش‌فرض 0 است. .IP \fBreverb_depth\fR 4 .IX Item "reverb_depth" تنظیم میزان طنین (Reverb). محدوده 0\-100. پیش‌فرض 0 است. .IP \fBreverb_delay\fR 4 .IX Item "reverb_delay" تنظیم تأخیر به میلی‌ثانیه، محدود به 40\-250 ms. پیش‌فرض 0 است. .IP \fBbass_amount\fR 4 .IX Item "bass_amount" اعمال تقویت بیس معروف به XBass یا megabass. محدوده از 0 (آرام) تا 100 (بلند). پیش‌فرض 0 است. .IP \fBbass_range\fR 4 .IX Item "bass_range" تنظیم فرکانس قطع (حد بالای فرکانس‌های بیس). محدوده 10\-100 Hz است. پیش‌فرض 0 است. .IP \fBsurround_depth\fR 4 .IX Item "surround_depth" اعمال جلوه صدای فراگیر Dolby Pro\-Logic. محدوده از 0 (آرام) تا 100 (شدید). پیش‌فرض 0 است. .IP \fBsurround_delay\fR 4 .IX Item "surround_delay" تنظیم تأخیر صدای فراگیر به میلی‌ثانیه، محدود به 5\-40 ms. پیش‌فرض 0 است. .IP \fBmax_size\fR 4 .IX Item "max_size" دیمکسر تمام پرونده را در حافظه بافر می‌کند. این مقدار را برای تنظیم حداکثر اندازه بافر تغییر دهید، که به نوبه خود به عنوان سقف اندازه پرونده‌های قابل خواندن عمل می‌کند. محدوده از 0 تا 100 MiB است. مقدار 0 محدودیت اندازه بافر را حذف می‌کند (توصیه نمی‌شود). پیش‌فرض 5 MiB است. .IP \fBvideo_stream_expr\fR 4 .IX Item "video_stream_expr" رشته‌ای که با استفاده از eval API برای تخصیص رنگ‌ها به جریان ویدیویی تولیدشده ارزیابی می‌شود. متغیرهایی که می‌توانند استفاده شوند عبارتند از \f(CW\*(C`x\*(C'\fR، \f(CW\*(C`y\*(C'\fR، \f(CW\*(C`w\*(C'\fR، \f(CW\*(C`h\*(C'\fR، \f(CW\*(C`t\*(C'\fR، \f(CW\*(C`speed\*(C'\fR، \&\f(CW\*(C`tempo\*(C'\fR، \f(CW\*(C`order\*(C'\fR، \f(CW\*(C`pattern\*(C'\fR و \f(CW\*(C`row\*(C'\fR. .IP \fBvideo_stream\fR 4 .IX Item "video_stream" تولید جریان ویدیویی. می‌تواند 1 (روشن) یا 0 (خاموش) باشد. پیش‌فرض 0 است. .IP \fBvideo_stream_w\fR 4 .IX Item "video_stream_w" تنظیم عرض فریم ویدیو بر حسب \*(Aqchars\*(Aq که در آن هر نویسه نشان‌دهنده ۸ پیکسل است. محدوده 20\-512 است. پیش‌فرض 30 است. .IP \fBvideo_stream_h\fR 4 .IX Item "video_stream_h" تنظیم ارتفاع فریم ویدیو بر حسب \*(Aqchars\*(Aq که در آن هر نویسه نشان‌دهنده ۸ پیکسل است. محدوده 20\-512 است. پیش‌فرض 30 است. .IP \fBvideo_stream_ptxt\fR 4 .IX Item "video_stream_ptxt" چاپ متاداده روی جریان ویدیو. شامل \f(CW\*(C`speed\*(C'\fR، \f(CW\*(C`tempo\*(C'\fR، \f(CW\*(C`order\*(C'\fR، \f(CW\*(C`pattern\*(C'\fR، \&\f(CW\*(C`row\*(C'\fR و \f(CW\*(C`ts\*(C'\fR (زمان به میلی‌ثانیه). می‌تواند 1 (روشن) یا 0 (خاموش) باشد. پیش‌فرض 1 است. .SS libopenmpt .IX Subsection "libopenmpt" دیمکسر ماژول بر پایه libopenmpt .PP برای اطلاعات بیشتر <\fBhttps://lib.openmpt.org/libopenmpt\fR> را ببینید. .PP برخی پرونده‌ها چندین زیرآهنگ (تراک) دارند که این مورد را می‌توان با گزینه \fBsubsong\fR تنظیم کرد. .PP گزینه‌های زیر را می‌پذیرد: .IP \fBsubsong\fR 4 .IX Item "subsong" تنظیم اندیس زیرآهنگ. این مقدار می‌تواند \*(Aqall\*(Aq، \*(Aqauto\*(Aq یا اندیس زیرآهنگ باشد. اندیس‌های زیرآهنگ از 0 شروع می‌شوند. پیش‌فرض \*(Aqauto\*(Aq است. .Sp مقدار پیش‌فرض این است که اجازه داده شود libopenmpt انتخاب کند. .IP \fBlayout\fR 4 .IX Item "layout" تنظیم چیدمان کانال. مقادیر معتبر چیدمان‌های ۱، ۲ و ۴ کاناله هستند. مقدار پیش‌فرض STEREO است. .IP \fBsample_rate\fR 4 .IX Item "sample_rate" تنظیم نرخ نمونه‌برداری برای خروجی libopenmpt. محدوده از 1000 تا INT_MAX است. مقدار پیش‌فرض 48000 است. .SS mcc .IX Subsection "mcc" دیمکسر پرونده‌های MacCaption MCC، که از نسخه‌های 1.0 و 2.0 MCC پشتیبانی می‌کند. پرونده‌های MCC داده‌های VANC را ذخیره می‌کنند، که می‌تواند شامل زیرنویس‌های بسته‌بندی‌شده (EIA\-608 و CEA\-708)، کدهای زمانی کمکی، داده‌های pan\-scan و غیره باشد. به طور پیش‌فرض، برای سازگاری عقب‌رو، دیمکسر MCC فقط زیرنویس‌های بسته‌بندی‌شده EIA\-608 و CEA\-708 را استخراج کرده و یک جریان \f(CW\*(C`EIA_608\*(C'\fR بازمی‌گرداند و تمام داده‌های VANC دیگر را نادیده می‌گیرد. می‌توانید با تنظیم \fB\-eia608_extract 0\fR آن را طوری تغییر دهید که تمام داده‌های VANC را در یک جریان داده \f(CW\*(C`SMPTE_436M_ANC\*(C'\fR برگرداند. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 تبدیل یک پرونده MCC به قالب Scenarist (SCC): .Sp .Vb 1 \& ffmpeg \-i CC.mcc \-c:s copy CC.scc .Ve .Sp توجه داشته باشید که قالب SCC تنها از EIA\-608 پشتیبانی می‌کند، بنابراین این کار تمام داده‌های دیگر مانند پسوندهای CEA\-708 را دور می‌ریزد. .IP \(bu 4 ادغام یک پرونده MCC در یک پرونده MXF: .Sp .Vb 1 \& ffmpeg \-i video_and_audio.mxf \-eia608_extract 0 \-i CC.mcc \-c copy \-map 0 \-map 1 out.mxf .Ve .Sp این کار تمام داده‌های VANC را حفظ کرده و آن را به عنوان یک جریان داده \f(CW\*(C`SMPTE_436M_ANC\*(C'\fR درون پرونده MXF خروجی درج می‌کند. .SS mov/mp4/3gp .IX Subsection "mov/mp4/3gp" دیمکسر برای قالب پرونده QuickTime و قالب پرونده رسانه‌ای پایه ISO/IEC (استاندارد ISO/IEC 14496\-12 یا MPEG\-4 Part 12 و ISO/IEC 15444\-12 یا JPEG 2000 Part 12). .PP پسوندهای ثبت‌شده: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism, ismv, isma, f4v .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBenable_drefs\fR 4 .IX Item "enable_drefs" فعال‌سازی بارگیری تراک‌های خارجی، به طور پیش‌فرض غیرفعال است. فعال کردن این گزینه در برخی موارد کاربردی از نظر تئوری می‌تواند اطلاعات را افشا کند. .IP \fBuse_absolute_path\fR 4 .IX Item "use_absolute_path" اجازه بارگیری تراک‌های خارجی از طریق مسیرهای مطلق، به طور پیش‌فرض غیرفعال است. فعال کردن این گزینه خطرات امنیتی به همراه دارد. تنها زمانی باید فعال شود که منبع ورودی کاملاً مطمئن و غیرمخرب باشد. .IP \fBseek_streams_individually\fR 4 .IX Item "seek_streams_individually" هنگام پرش (seeking)، نزدیک‌ترین نقطه در هر جریان را به صورت جداگانه شناسایی کرده و بسته‌های آن جریان را از نقطه شناسایی‌شده دیمکس می‌کند. این می‌تواند منجر به توالی متفاوتی از بسته‌ها در مقایسه با دیمکس کردن خطی از ابتدا شود. پیش‌فرض true است. .IP \fBignore_editlist\fR 4 .IX Item "ignore_editlist" نادیده گرفتن اتم‌های فهرست ویرایش (edit list). دیمکسر به طور پیش‌فرض اندیس جریان را به گونه‌ای اصلاح می‌کند تا خط زمانی شرح‌داده‌شده توسط فهرست ویرایش را منعکس کند. پیش‌فرض false است. .IP \fBadvanced_editlist\fR 4 .IX Item "advanced_editlist" اصلاح اندیس جریان برای انعکاس خط زمانی شرح‌داده‌شده توسط فهرست ویرایش. برای مؤثر بودن این گزینه، \f(CW\*(C`ignore_editlist\*(C'\fR باید روی false تنظیم شده باشد. اگر هر دوی \f(CW\*(C`ignore_editlist\*(C'\fR و این گزینه روی false تنظیم شوند، تنها ابتدای اندیس جریان اصلاح می‌شود تا زمان مکث اولیه یا برچسب زمانی شروع شرح‌داده‌شده در فهرست ویرایش را منعکس کند. پیش‌فرض true است. .IP \fBignore_chapters\fR 4 .IX Item "ignore_chapters" فصل‌ها (chapters) تجزیه نشوند. این شامل برچسب‌ها/لحظات \*(AqHiLight\*(Aq دوربین‌های GoPro نیز می‌شود. توجه داشته باشید که فصل‌ها تنها زمانی تجزیه می‌شوند که ورودی دارای قابلیت پرش (seekable) باشد. پیش‌فرض false است. .IP \fBuse_mfra_for\fR 4 .IX Item "use_mfra_for" برای ورودی قطعه‌بندی‌شده (fragmented) با قابلیت پرش، برچسب زمانی شروع قطعه از جعبه دسترسی تصادفی قطعه رسانه (mfra)، در صورت وجود، تنظیم شود. .Sp گزینه‌های زیر در دسترس هستند: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" تشخیص خودکار اینکه برچسب‌های زمانی mfra به عنوان PTS یا DTS تنظیم شوند \fI(پیش‌فرض)\fR .IP \fBdts\fR 4 .IX Item "dts" تنظیم برچسب‌های زمانی mfra به عنوان DTS .IP \fBpts\fR 4 .IX Item "pts" تنظیم برچسب‌های زمانی mfra به عنوان PTS .IP \fB0\fR 4 .IX Item "0" از جعبه mfra برای تنظیم برچسب‌های زمانی استفاده نشود .RE .RS 4 .RE .IP \fBuse_tfdt\fR 4 .IX Item "use_tfdt" برای ورودی قطعه‌بندی‌شده، برچسب زمانی شروع قطعه را بر روی \f(CW\*(C`baseMediaDecodeTime\*(C'\fR از جعبه \f(CW\*(C`tfdt\*(C'\fR تنظیم کند. پیش‌فرض فعال است، که ترجیح می‌دهد از جعبه \f(CW\*(C`tfdt\*(C'\fR برای تنظیم DTS استفاده کند. غیرفعال کنید تا از \f(CW\*(C`earliest_presentation_time\*(C'\fR از جعبه \f(CW\*(C`sidx\*(C'\fR استفاده شود. در هر صورت، اگر برچسب زمانی از جعبه \f(CW\*(C`mfra\*(C'\fR موجود باشد و \f(CW\*(C`use_mfra_for\*(C'\fR روی pts یا dts تنظیم شده باشد، از آن استفاده خواهد شد. .IP \fBexport_all\fR 4 .IX Item "export_all" صادر کردن جعبه‌های ناشناخته درون جعبه \fIudta\fR به عنوان ورودی‌های متاداده. چهار نویسه اول نوع جعبه به عنوان کلید تنظیم می‌شوند. پیش‌فرض false است. .IP \fBexport_xmp\fR 4 .IX Item "export_xmp" صادر کردن کل محتویات جعبه \fIXMP_\fR و جعبه \fIuuid\fR به عنوان یک رشته با کلید \f(CW\*(C`xmp\*(C'\fR. توجه داشته باشید که اگر \f(CW\*(C`export_all\*(C'\fR تنظیم شده باشد اما این گزینه تنظیم نشده باشد، محتویات جعبه \fIXMP_\fR همچنان صادر می‌شود اما با کلید \f(CW\*(C`XMP_\*(C'\fR. پیش‌فرض false است. .IP \fBactivation_bytes\fR 4 .IX Item "activation_bytes" کلید ۴ بایتی مورد نیاز برای رمزگشایی پرونده‌های Audible AAX و +AAX. به زیربخش Audible AAX در زیر مراجعه کنید. .IP \fBaudible_fixed_key\fR 4 .IX Item "audible_fixed_key" کلید ثابت استفاده‌شده برای رسیدگی به پرونده‌های Audible AAX/AAX+. این مقدار از پیش تنظیم شده است بنابراین نیازی به تعیین آن نیست. .IP \fBdecryption_key\fR 4 .IX Item "decryption_key" کلید پیش‌فرض ۱۶ بایتی، در قالب هگز، برای رمزگشایی پرونده‌های رمزگذاری‌شده با رمزگذاری مشترک ISO (استاندارد CENC/AES\-128 CTR؛ ISO/IEC 23001\-7). .IP \fBdecryption_keys\fR 4 .IX Item "decryption_keys" دیکشنری از شناسه کلید ۱۶ بایتی => کلید ۱۶ بایتی، هر دو در قالب هگز، برای رمزگشایی پرونده‌های رمزگذاری‌شده با رمزگذاری مشترک ISO (استاندارد CENC/AES\-128 CTR؛ ISO/IEC 23001\-7). .IP \fBmax_stts_delta\fR 4 .IX Item "max_stts_delta" دلتاهای نمونه بسیار بالا که در جعبه stts یک trak نوشته شده‌اند ممکن است گاهی هدفمند باشند اما معمولاً به اشتباه نوشته می‌شوند یا برای ذخیره یک مقدار منفی برای تصحیح dts در هنگام برخورد به عنوان اعداد صحیح علامت‌دار ۳۲ بیتی استفاده می‌شوند. این گزینه به کاربر اجازه می‌دهد سقفی تعیین کند که بالاتر از آن دلتا به 1 محدود شود. مقادیر بزرگ‌تر از این حد در صورتی که پس از تبدیل به int32 منفی شوند، برای تنظیم dts بعدی استفاده می‌شوند. .Sp واحد آن مقیاس زمانی تراک (time scale) است. محدوده از 0 تا UINT_MAX است. مقدار پیش‌فرض \f(CW\*(C`UINT_MAX \- 48000*10\*(C'\fR است که تا ۱۰ ثانیه تصحیح dts را برای جریان‌های صوتی 48 kHz امکان‌پذیر می‌کند و در عین حال ۹۹.۹٪ از محدوده \f(CW\*(C`uint32\*(C'\fR را پوشش می‌دهد. .IP \fBinterleaved_read\fR 4 .IX Item "interleaved_read" درهم‌آمیزی (Interleave) بسته‌ها از چندین تراک در سطح دیمکسر. برای پرونده‌هایی که درهم‌آمیزی نامناسبی دارند، این کار از مشکلات پخش ناشی از فاصله‌های بزرگ بین بسته‌ها در تراک‌های مختلف جلوگیری می‌کند، زیرا MOV/MP4 الزامات جایگذاری بسته ندارند. با این حال، این کار می‌تواند به دلیل جستجو بین تراک‌ها باعث پرش‌های مکرر و بیش از حد در پرونده‌های بسیار بد درهم‌آمیخته شود؛ بنابراین غیرفعال کردن آن ممکن است از مشکلات ورودی/خروجی (I/O) به قیمت افت کیفیت پخش جلوگیری کند. .PP \fIAudible AAX\fR .IX Subsection "Audible AAX" .PP پرونده‌های Audible AAX پرونده‌های M4B رمزگذاری‌شده هستند و می‌توان آن‌ها را با تعیین یک رمز فعال‌سازی ۴ بایتی رمزگشایی کرد. .PP .Vb 1 \& ffmpeg \-activation_bytes 1CEB00DA \-i test.aax \-vn \-c:a copy output.mp4 .Ve .SS mpegts .IX Subsection "mpegts" دیمکسر جریان انتقال (Transport Stream) MPEG\-2. .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBresync_size\fR 4 .IX Item "resync_size" تنظیم سقف اندازه برای جستجوی یک همگام‌سازی جدید. مقدار پیش‌فرض 65536 است. .IP \fBskip_unknown_pmt\fR 4 .IX Item "skip_unknown_pmt" رد کردن PMTها برای برنامه‌هایی که در PAT تعریف نشده‌اند. مقدار پیش‌فرض 0 است. .IP \fBfix_teletext_pts\fR 4 .IX Item "fix_teletext_pts" بازنویسی مقادیر PTS و DTS بسته‌های تله‌تکست با برچسب‌های زمانی محاسبه‌شده از PCR اولین برنامه‌ای که جریان تله‌تکست بخشی از آن است و دور ریخته نشده است. مقدار پیش‌فرض 1 است، این گزینه را روی 0 تنظیم کنید اگر می‌خواهید مقادیر PTS و DTS بسته‌های تله‌تکست شما دست‌نخورده باقی بمانند. .IP \fBts_packetsize\fR 4 .IX Item "ts_packetsize" گزینه خروجی که حامل اندازه بسته خام بر حسب بایت است. اندازه بسته خام شناسایی‌شده را نشان می‌دهد، و توسط کاربر قابل تنظیم نیست. .IP \fBscan_all_pmts\fR 4 .IX Item "scan_all_pmts" پویش و ترکیب تمام PMTها. مقدار یک عدد صحیح از \-1 تا 1 است (\-1 به معنای تنظیم خودکار، 1 به معنای فعال و 0 به معنای غیرفعال است). مقدار پیش‌فرض \-1 است. .IP \fBmerge_pmt_versions\fR 4 .IX Item "merge_pmt_versions" استفاده مجدد از جریان‌های موجود هنگامی که نسخه یک PMT به‌روزرسانی شده و جریان‌های اولیه به PIDهای دیگری منتقل می‌شوند. مقدار پیش‌فرض 0 است. .IP \fBmax_packet_size\fR 4 .IX Item "max_packet_size" تنظیم حداکثر اندازه (بر حسب بایت) برای بسته‌های تولیدشده توسط دیمکسر. بارهای داده بالاتر از این اندازه به چندین بسته تقسیم می‌شوند. محدوده از 184 تا INT_MAX/2 است. پیش‌فرض 204800 بایت است. .SS mpjpeg .IX Subsection "mpjpeg" دیمکسر MJPEG کپسوله‌شده در MIME چندبخشی. .PP این دیمکسر خواندن MJPEG را ممکن می‌سازد، جایی که هر فریم به عنوان بخشی از یک جریان multipart/x\-mixed\-replace نمایش داده می‌شود. .IP \fBstrict_mime_boundary\fR 4 .IX Item "strict_mime_boundary" پیاده‌سازی پیش‌فرض یک استاندارد آسان‌گیرانه را برای تشخیص مرز چندبخشی MIME اعمال می‌کند تا از ناسازگاری با نقاط انتهایی موجود متعددی که جریان MIME MJPEG مناسبی تولید نمی‌کنند جلوگیری شود. روشن کردن این گزینه با تنظیم آن روی 1 منجر به بررسی سخت‌گیرانه‌تر مقدار مرز خواهد شد. .SS rawvideo .IX Subsection "rawvideo" دیمکسر ویدیوی خام (Raw video). .PP این دیمکسر امکان خواندن داده‌های ویدیوی خام را فراهم می‌کند. از آنجا که هیچ هدر یا سرآیندی برای مشخص کردن پارامترهای ویدیویی مفروض وجود ندارد، کاربر باید آن‌ها را مشخص کند تا امکان دیکود صحیح داده‌ها وجود داشته باشد. .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBframerate\fR 4 .IX Item "framerate" تنظیم نرخ فریم ویدیوی ورودی. مقدار پیش‌فرض 25 است. .IP \fBpixel_format\fR 4 .IX Item "pixel_format" تنظیم قالب پیکسلی ویدیوی ورودی. مقدار پیش‌فرض \f(CW\*(C`yuv420p\*(C'\fR است. .IP \fBstride\fR 4 .IX Item "stride" تنظیم اندازه خط فریم بر حسب بایت، فقط در صورتی لازم است که لایه پرکننده (padding) اضافی وجود داشته باشد. برای قالب‌های چندصفحه‌ای (multiplane)، مقدار \fBstride\fR فهرستی از اندازه خط برای هر صفحه است. .IP \fBvideo_size\fR 4 .IX Item "video_size" تنظیم اندازه ویدیوی ورودی. این مقدار باید به صورت صریح مشخص شود. .PP به عنوان مثال، برای خواندن یک پرونده ویدیوی خام \fIinput.raw\fR با \&\fBffplay\fR، با فرض قالب پیکسلی \f(CW\*(C`rgb24\*(C'\fR، اندازه ویدیوی \f(CW\*(C`320x240\*(C'\fR و نرخ فریم ۱۰ تصویر در ثانیه، از دستور زیر استفاده کنید: .PP .Vb 1 \& ffplay \-f rawvideo \-pixel_format rgb24 \-video_size 320x240 \-framerate 10 input.raw .Ve .PP برای خواندن یک پرونده rawvideo با \fBffplay\fR، با فرض قالب پیکسلی \f(CW\*(C`yuv420p\*(C'\fR، اندازه ویدیوی \f(CW\*(C`1080x1920\*(C'\fR، ۸ بایت پدینگ در هر خط صفحه Y و ۴ بایت پدینگ در صفحه UV: .PP .Vb 1 \& ffplay \-f rawvideo \-pixel_format yuv420p \-video_size 1080x1920 \-stride 1088,544,544 input.raw .Ve .SS rcwt .IX Subsection "rcwt" قالب RCWT (زیرنویس‌های خام همراه با زمان \- Raw Captions With Time) یک قالب بومی ابزار ccextractor است؛ ابزاری متن‌باز و پرکاربرد برای پردازش منابع زیرنویس بسته (CC) استانداردهای 608/708. برای اطلاعات بیشتر درباره این قالب، به مستندات آن مراجعه کنید. .PP این دیمکسر مشخصات فنی مارس ۲۰۲۴ را پیاده‌سازی می‌کند که از آوریل ۲۰۱۴ پایدار و بدون تغییر باقی مانده است. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 رندر کردن CC به ASS با استفاده از دیکودر داخلی: .Sp .Vb 1 \& ffmpeg \-i CC.rcwt.bin CC.ass .Ve .Sp توجه داشته باشید که اگر خروجی شما خالی به نظر می‌رسد، ممکن است مجبور شوید گزینه \fBdata_field\fR دیکودر را به صورت دستی تنظیم کنید تا زیرجریان CC مورد نظر انتخاب شود. .IP \(bu 4 تبدیل یک نسخه پشتیبان RCWT به قالب Scenarist (SCC): .Sp .Vb 1 \& ffmpeg \-i CC.rcwt.bin \-c:s copy CC.scc .Ve .Sp توجه داشته باشید که قالب SCC از تمام پسوندهای ممکن CC که می‌توانند در RCWT ذخیره شوند (مانند EIA\-708) پشتیبانی نمی‌کند. .SS sbg .IX Subsection "sbg" دیمکسر اسکریپت SBaGen. .PP این دیمکسر زبان اسکریپت‌نویسی مورد استفاده توسط SBaGen <\fBhttp://uazu.net/sbagen\fR> را برای تولید جلسات ضربان‌های دوگوشی (binaural beats) می‌خواند. یک اسکریپت SBG به این صورت است: .PP .Vb 9 \& \-SE \& a: 300\-2.5/3 440+4.5/0 \& b: 300\-2.5/0 440+4.5/3 \& off: \- \& NOW == a \& +0:07:00 == b \& +0:14:00 == a \& +0:21:00 == b \& +0:30:00 off .Ve .PP یک اسکریپت SBG می‌تواند برچسب‌های زمانی مطلق و نسبی را با هم ترکیب کند. اگر اسکریپت فقط از برچسب‌های زمانی مطلق (از جمله زمان شروع اسکریپت) یا فقط از برچسب‌های نسبی استفاده کند، ساختار آن ثابت است و تبدیل ساده خواهد بود. از سوی دیگر، اگر اسکریپت هر دو نوع برچسب زمانی را ترکیب کند، مرجع \fINOW\fR برای برچسب‌های زمانی نسبی از ساعت جاری سیستم در زمان خوانده شدن اسکریپت گرفته می‌شود و ساختار اسکریپت طبق آن مرجع تثبیت خواهد شد. این بدان معناست که اگر اسکریپت مستقیماً پخش شود، زمان‌های واقعی تا حد دقت ساعت کنترل‌کننده صدا با برچسب‌های زمانی مطلق مطابقت خواهند داشت، اما اگر کاربر به نحوی پخش را متوقف کند یا پرش زمانی انجام دهد، تمام زمان‌ها متناسب با آن جابه‌جا خواهند شد. .SS tedcaptions .IX Subsection "tedcaptions" زیرنویس‌های JSON مورد استفاده برای <\fBhttp://www.ted.com\fR>. .PP سایت TED پیوندهایی به زیرنویس‌ها ارائه نمی‌دهد، اما می‌توان آن‌ها را از صفحه حدس زد. پرونده \fItools/bookmarklets.html\fR از درخت منبع FFmpeg حاوی بوک‌مارکلتی برای آشکارسازی آن‌ها است. .PP این دیمکسر گزینه زیر را می‌پذیرد: .IP \fBstart_time\fR 4 .IX Item "start_time" تنظیم زمان شروع سخنرانی TED، به میلی‌ثانیه. پیش‌فرض 15000 (15 ثانیه) است. این مقدار برای همگام‌سازی زیرنویس‌ها با ویدیوهای قابل بارگیری استفاده می‌شود، زیرا آن‌ها شامل یک ویدیوی معرفی ۱۵ ثانیه‌ای هستند. .PP مثال: تبدیل زیرنویس‌ها به قالبی که اکثر پخش‌کننده‌ها متوجه می‌شوند: .PP .Vb 1 \& ffmpeg \-i http://www.ted.com/talks/subtitles/id/1/lang/en talk1\-en.srt .Ve .SS vapoursynth .IX Subsection "vapoursynth" پوشش‌دهنده (Wrapper) برای Vapoursynth. .PP به دلایل امنیتی، اسکریپت‌های Vapoursynth به صورت خودکار شناسایی نخواهند شد، بنابراین قالب ورودی باید اجبار شود. برای ابزارهای خط فرمان ff*، عبارت \f(CW\*(C`\-f vapoursynth\*(C'\fR را قبل از ورودی \f(CW\*(C`\-i yourscript.vpy\*(C'\fR اضافه کنید. .PP این دیمکسر گزینه زیر را می‌پذیرد: .IP \fBmax_script_size\fR 4 .IX Item "max_script_size" دیمکسر تمام اسکریپت را در حافظه بافر می‌کند. این مقدار را برای تنظیم حداکثر اندازه بافر تغییر دهید که به نوبه خود به عنوان سقف اندازه اسکریپت‌های قابل خواندن عمل می‌کند. پیش‌فرض 1 MiB است. .SS w64 .IX Subsection "w64" دیمکسر صوتی Sony Wave64. .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP \fBmax_size\fR 4 .IX Item "max_size" گزینه مشابه برای دیمکسر \fBwav\fR را ببینید. .SS wav .IX Subsection "wav" دیمکسر صوتی RIFF Wave. .PP این دیمکسر گزینه‌های زیر را می‌پذیرد: .IP "\fBignore_length\fR \fIbool\fR" 4 .IX Item "ignore_length bool" در صورت تنظیم، اندازه چانک \f(CW\*(C`data\*(C'\fR را نادیده گرفته و خواندن را تا انتهای پرونده ادامه می‌دهد. می‌تواند برای خواندن پرونده‌های خراب یا ناقص که هدر آن‌ها به درستی به‌روزرسانی نشده است مفید باشد، اما پرونده‌هایی که دارای چانک‌های غیرصوتی پس از چانک \f(CW\*(C`data\*(C'\fR هستند را به اشتباه تفسیر می‌کند. پیش‌فرض غیرفعال است. .IP \fBmax_size\fR 4 .IX Item "max_size" تعیین حداکثر اندازه بسته به بایت برای بسته‌های دیمکس‌شده. به طور پیش‌فرض روی 0 تنظیم شده است که به این معنی است که یک مقدار معقول بر اساس قالب ورودی انتخاب می‌شود. .SS webp .IX Subsection "webp" دیمکسر WebP متحرک. .PP گزینه‌های زیر را می‌پذیرد: .IP "\fB\-min_delay\fR \fIint\fR" 4 .IX Item "-min_delay int" تنظیم حداقل تأخیر معتبر بین فریم‌ها به میلی‌ثانیه. محدوده از 0 تا 60000 است. مقدار پیش‌فرض 10 است. .IP "\fB\-max_webp_delay\fR \fIint\fR" 4 .IX Item "-max_webp_delay int" تنظیم حداکثر تأخیر معتبر بین فریم‌ها به میلی‌ثانیه. محدوده از 0 تا 16777215 است. مقدار پیش‌فرض 16777215 (بیش از چهار ساعت) است، یعنی حداکثر مقدار مجاز توسط مشخصات فنی. .IP "\fB\-default_delay\fR \fIint\fR" 4 .IX Item "-default_delay int" تنظیم تأخیر پیش‌فرض بین فریم‌ها به میلی‌ثانیه. محدوده از 0 تا 60000 است. مقدار پیش‌فرض 100 است. .IP "\fB\-ignore_loop\fR \fIbool\fR" 4 .IX Item "-ignore_loop bool" پرونده‌های WebP می‌توانند حاوی اطلاعاتی برای تکرار (حلقه) به تعداد دفعات مشخص (یا بی‌نهایت) باشند. اگر \fBignore_loop\fR روی true تنظیم شود، تنظیم حلقه از ورودی نادیده گرفته شده و حلقه تکرار رخ نخواهد داد. اگر روی false تنظیم شود، تکرار رخ خواهد داد و تعداد دفعات را مطابق با WebP چرخش می‌دهد. مقدار پیش‌فرض true است. .IP "\fBusebgcolor\fR \fIbool\fR" 4 .IX Item "usebgcolor bool" پرونده‌های WebP حاوی یک راهنمای رنگ پس‌زمینه در چانک ANIM هستند، اما مشخصات فنی WebP می‌گوید برنامه‌های نمایشگر ملزم به استفاده از آن نیستند. اگر \fBusebgcolor\fR روی true تنظیم شود، از راهنمای رنگ پس‌زمینه استفاده می‌شود، در غیر این صورت از رنگ سیاه شفاف برای پس‌زمینه استفاده خواهد شد. مقدار پیش‌فرض false است. .SH "متاداده (METADATA)" .IX Header "METADATA" ابزار FFmpeg قادر است متاداده‌ها را از پرونده‌های رسانه‌ای در یک پرونده متنی ساده مشابه INI با کدگذاری UTF\-8 استخراج کرده و سپس با استفاده از مکسر/دیمکسر metadata دوباره آن را بارگیری نماید. .PP فرمت پرونده به شرح زیر است: .IP 1. 4 یک پرونده شامل یک هدر و تعدادی تگ متاداده است که به بخش‌ها تقسیم شده‌اند و هر کدام در خط جداگانه‌ای قرار دارند. .IP 2. 4 هدر یک رشته \fB;FFMETADATA\fR است، که به دنبال آن شماره نسخه می‌آید (در حال حاضر 1). .IP 3. 4 تگ‌های متاداده به شکل \fBkey=value\fR هستند. .IP 4. 4 بلافاصله پس از هدر، متاداده‌های سراسری (global) قرار می‌گیرند. .IP 5. 4 پس از متاداده‌های سراسری ممکن است بخش‌هایی با متاداده‌های مربوط به هر جریان/هر فصل وجود داشته باشد. .IP 6. 4 یک بخش با نام بخش با حروف بزرگ (یعنی STREAM یا CHAPTER) در داخل براکت‌ها (\fB[\fR، \fB]\fR) شروع می‌شود و با بخش بعدی یا پایان پرونده خاتمه می‌یابد. .IP 7. 4 در ابتدای یک بخش فصل ممکن است یک پایه زمانی (timebase) اختیاری وجود داشته باشد که برای مقادیر شروع/پایان استفاده شود. این مقدار باید به فرم \&\fBTIMEBASE=\fR\fInum\fR\fB/\fR\fIden\fR باشد، که در آن \fInum\fR و \fIden\fR اعداد صحیح هستند. اگر پایه زمانی وجود نداشته باشد، زمان‌های شروع/پایان بر حسب نانوثانیه فرض می‌شوند. .Sp سپس یک بخش فصل باید شامل زمان‌های شروع و پایان فصل به شکل \&\fBSTART=\fR\fInum\fR، \fBEND=\fR\fInum\fR باشد، که در آن \fInum\fR یک عدد صحیح مثبت است. .IP 8. 4 خطوط خالی و خطوطی که با \fB;\fR یا \fB#\fR شروع می‌شوند نادیده گرفته می‌شوند. .IP 9. 4 کلیدها یا مقادیر متاداده حاوی نویسه‌های خاص (\fB=\fR، \fB;\fR، \&\fB#\fR، \fB\e\fR و یک خط جدید) باید با یک بک‌اسلش \fB\e\fR گریز داده شوند. .IP 10. 4 توجه داشته باشید که فاصله‌های خالی در متاداده (مثلاً \fBfoo = bar\fR) بخشی از تگ در نظر گرفته می‌شوند (در مثال بالا کلید \fBfoo \fR و مقدار \fB bar\fR است). .PP یک پرونده ffmetadata ممکن است شبیه این باشد: .PP .Vb 4 \& ;FFMETADATA1 \& title=bike\e\eshed \& ;this is a comment \& artist=FFmpeg troll team \& \& [CHAPTER] \& TIMEBASE=1/1000 \& START=0 \& #chapter ends at 0:01:00 \& END=60000 \& title=chapter \e#1 \& [STREAM] \& title=multi\e \& line .Ve .PP با استفاده از مکسر و دیمکسر ffmetadata می‌توان متاداده را از یک پرونده ورودی به یک پرونده ffmetadata استخراج کرد، و سپس پرونده را با پرونده ffmetadata ویرایش‌شده به یک پرونده خروجی تبدیل کد نمود. .PP استخراج یک پرونده ffmetadata با \fIffmpeg\fR به این صورت انجام می‌شود: .PP .Vb 1 \& ffmpeg \-i INPUT \-f ffmetadata FFMETADATAFILE .Ve .PP درج مجدد اطلاعات متاداده ویرایش‌شده از پرونده FFMETADATAFILE می‌تواند به این صورت انجام شود: .PP .Vb 1 \& ffmpeg \-i INPUT \-i FFMETADATAFILE \-map_metadata 1 \-codec copy OUTPUT .Ve .SH "گزینه‌های پروتکل (PROTOCOL OPTIONS)" .IX Header "PROTOCOL OPTIONS" کتابخانه libavformat برخی گزینه‌های سراسری عمومی را فراهم می‌کند که می‌توانند روی تمامی پروتکل‌ها تنظیم شوند. علاوه بر این، هر پروتکل ممکن است از گزینه‌های به اصطلاح اختصاصی (private options) پشتیبانی کند که مختص آن مؤلفه هستند. .PP گزینه‌ها را می‌توان با مشخص کردن \-\fIoption\fR \fIvalue\fR در ابزارهای FFmpeg، یا با تنظیم صریح مقدار در گزینه‌های \f(CW\*(C`AVFormatContext\*(C'\fR یا با استفاده از API پرونده \fIlibavutil/opt.h\fR برای کاربردهای برنامه‌نویسی تنظیم نمود. .PP فهرست گزینه‌های پشتیبانی‌شده در ادامه آمده است: .IP "\fBprotocol_whitelist\fR \fIlist\fR \fB(\fR\fIinput\fR\fB)\fR" 4 .IX Item "protocol_whitelist list (input)" تنظیم یک فهرست جداشده با کاما (",") از پروتکل‌های مجاز. "ALL" با تمام پروتکل‌ها مطابقت دارد. پروتکل‌هایی که دارای پیشوند "-" هستند غیرفعال می‌شوند. تمام پروتکل‌ها به طور پیش‌فرض مجاز هستند اما پروتکل‌های استفاده‌شده توسط یک پروتکل دیگر (پروتکل‌های تودرتو) به یک زیرمجموعه به ازای هر پروتکل محدود می‌شوند. .SH "پروتکل‌ها (PROTOCOLS)" .IX Header "PROTOCOLS" پروتکل‌ها عناصر پیکربندی‌شده‌ای در FFmpeg هستند که دسترسی به منابع نیازمند پروتکل‌های خاص را امکان‌پذیر می‌سازند. .PP هنگامی که بیلد FFmpeg خود را پیکربندی می‌کنید، تمام پروتکل‌های پشتیبانی‌شده به طور پیش‌فرض فعال هستند. می‌توانید با استفاده از گزینه configure با عنوان "\-\-list\-protocols" فهرست تمام پروتکل‌های موجود را مشاهده نمایید. .PP شما می‌توانید با استفاده از گزینه configure با عنوان "\-\-disable\-protocols" تمامی پروتکل‌ها را غیرفعال کنید، و به طور انتخابی یک پروتکل را با استفاده از گزینه "\-\-enable\-protocol=\fIPROTOCOL\fR" فعال نمایید، یا می‌توانید یک پروتکل خاص را با استفاده از گزینه "\-\-disable\-protocol=\fIPROTOCOL\fR" غیرفعال سازید. .PP گزینه "\-protocols" در ابزارهای *ff فهرست پروتکل‌های پشتیبانی‌شده را نمایش خواهد داد. .PP تمام پروتکل‌ها گزینه‌های زیر را می‌پذیرند: .IP \fBrw_timeout\fR 4 .IX Item "rw_timeout" حداکثر زمان انتظار برای تکمیل عملیات خواندن/نوشتن (شبکه)، بر حسب میکروثانیه. .PP شرح پروتکل‌های موجود در حال حاضر در ادامه آمده است. .SS amqp .IX Subsection "amqp" پروتکل صف‌بندی پیشرفته پیام (AMQP) نسخه 0\-9\-1 یک پروتکل ارتباطی مبتنی بر کارگزار (broker) با الگوی نشر/اشتراک (publish-subscribe) است. .PP برای پشتیبانی از AMQP، ابزار FFmpeg باید با سوییچ \-\-enable\-librabbitmq کامپایل شود. همچنین یک کارگزار مستقل AMQP باید در حال اجرا باشد. یک نمونه کارگزار متن‌باز AMQP، نرم‌افزار RabbitMQ است. .PP پس از راه‌اندازی کارگزار، یک کلاینت FFmpeg می‌تواند با استفاده از دستور زیر داده‌ها را به کارگزار ارسال کند: .PP .Vb 1 \& ffmpeg \-re \-i input \-f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost] .Ve .PP که در آن hostname و port (پیش‌فرض 5672) آدرس کارگزار است. کلاینت همچنین می‌تواند یک نام کاربری/رمز عبور برای احراز هویت تعیین کند. مقدار پیش‌فرض برای هر دو فیلد "guest" است. نام میزبان مجازی روی کارگزار می‌تواند با vhost تعیین شود. مقدار پیش‌فرض "/" است. .PP چندین مشترک می‌توانند با استفاده از دستور زیر از کارگزار داده‌ها را دریافت کنند: .PP .Vb 1 \& ffplay amqp://[[user]:[password]@]hostname[:port][/vhost] .Ve .PP در RabbitMQ تمام داده‌های منتشرشده به کارگزار از طریق یک اکسچنج (Exchange) خاص جریان می‌یابد، و هر کلاینت مشترک یک صف/بافر اختصاص‌یافته دارد. هنگامی که یک بسته به یک اکسچنج می‌رسد، ممکن است بسته به فیلدهای exchange و routing_key در صف کلاینت کپی شود. .PP گزینه‌های زیر پشتیبانی می‌شوند: .IP \fBexchange\fR 4 .IX Item "exchange" اکسچنج مورد استفاده در کارگزار را تعیین می‌کند. RabbitMQ چندین اکسچنج از پیش تعریف‌شده دارد: "amq.direct" اکسچنج پیش‌فرض است، که در آن ناشر و مشترک باید یک routing_key منطبق داشته باشند؛ "amq.fanout" مانند یک عملیات پخش همگانی است (یعنی داده‌ها فارغ از routing_key به تمام صف‌های موجود در اکسچنج fanout ارسال می‌شوند)؛ و "amq.topic" مشابه "amq.direct" است، اما تطبیق الگوهای پیچیده‌تر را امکان‌پذیر می‌سازد (به مستندات RabbitMQ مراجعه کنید). .IP \fBrouting_key\fR 4 .IX Item "routing_key" کلید مسیریابی (routing key) را تنظیم می‌کند. مقدار پیش‌فرض "amqp" است. کلید مسیریابی در اکسچنج‌های "amq.direct" و "amq.topic" استفاده می‌شود تا تصمیم گرفته شود آیا بسته‌ها در صف یک مشترک نوشته شوند یا خیر. .IP \fBpkt_size\fR 4 .IX Item "pkt_size" حداکثر اندازه هر بسته ارسالی/دریافتی به کارگزار. پیش‌فرض 131072 است. حداقل 4096 و حداکثر هر مقدار بزرگ (قابل نمایش با یک int) است. هنگام دریافت بسته‌ها، این گزینه اندازه بافر داخلی را در FFmpeg تنظیم می‌کند. این مقدار باید برابر یا بزرگتر از اندازه بسته‌های منتشرشده به کارگزار باشد. در غیر این صورت پیام دریافتی ممکن است ناقص (truncate) شود و خطاهای دیکود به بار آورد. .IP \fBconnection_timeout\fR 4 .IX Item "connection_timeout" مهلت زمانی اتصال بر حسب ثانیه در حین برقراری اتصال اولیه به کارگزار. مقدار پیش‌فرض rw_timeout است، یا 5 ثانیه اگر rw_timeout تنظیم نشده باشد. .IP "\fBdelivery_mode\fR \fImode\fR" 4 .IX Item "delivery_mode mode" حالت تحویل هر پیام ارسالی به کارگزار را تنظیم می‌کند. مقادیر زیر پذیرفته می‌شوند: .RS 4 .IP \fBpersistent\fR 4 .IX Item "persistent" حالت تحویل روی "persistent" (2) تنظیم می‌شود. این مقدار پیش‌فرض است. پیام‌ها ممکن است بسته به تنظیمات کارگزار در دیسک ذخیره شوند. .IP \fBnon\-persistent\fR 4 .IX Item "non-persistent" حالت تحویل روی "non\-persistent" (1) تنظیم می‌شود. پیام‌ها در حافظه کارگزار باقی می‌مانند مگر اینکه کارگزار تحت فشار کمبود حافظه قرار گیرد. .RE .RS 4 .RE .SS async .IX Subsection "async" پوشش پرکننده ناهمگام داده برای جریان ورودی. .PP پر کردن داده‌ها در یک ریسه (thread) پس‌زمینه، به منظور جداسازی عملیات ورودی/خروجی (I/O) از ریسه دیمکس. .PP .Vb 3 \& async: \& async:http://host/resource \& async:cache:http://host/resource .Ve .SS bluray .IX Subsection "bluray" خواندن لیست پخش بلوری (BluRay). .PP گزینه‌های پذیرفته‌شده عبارتند از: .IP \fBangle\fR 4 .IX Item "angle" زاویه تصویر بلوری (angle) .IP \fBchapter\fR 4 .IX Item "chapter" فصل شروع (1...N) .IP \fBplaylist\fR 4 .IX Item "playlist" لیست پخش برای خواندن (BDMV/PLAYLIST/?????.mpls) .PP مثال‌ها: .PP خواندن طولانی‌ترین لیست پخش از بلوری مانت‌شده در مسیر /mnt/bluray: .PP .Vb 1 \& bluray:/mnt/bluray .Ve .PP خواندن زاویه ۲ از لیست پخش ۴ از بلوری مانت‌شده در /mnt/bluray، با شروع از فصل ۲: .PP .Vb 1 \& \-playlist 4 \-angle 2 \-chapter 2 bluray:/mnt/bluray .Ve .SS cache .IX Subsection "cache" پوشش حافظه پنهان (کش) برای جریان ورودی. .PP ذخیره موقت جریان ورودی در یک پرونده موقت. این قابلیت امکان جستجو (seeking) را برای جریان‌های زنده فراهم می‌آورد. .PP گزینه‌های پذیرفته‌شده عبارتند از: .IP \fBread_ahead_limit\fR 4 .IX Item "read_ahead_limit" مقدار بر حسب بایت که در هنگام عدم پشتیبانی از جستجو می‌تواند پیشاپیش خوانده شود. محدوده از \-1 تا INT_MAX است. مقدار \-1 برای نامحدود است. مقدار پیش‌فرض 65536 است. .PP سینتکس URL به شرح زیر است: .PP .Vb 1 \& cache: .Ve .SS concat .IX Subsection "concat" پروتکل الحاق فیزیکی (Concatenation). .PP خواندن و جستجو در چندین منبع به صورت متوالی به گونه‌ای که گویی یک منبع واحد هستند. .PP یک URL پذیرفته‌شده توسط این پروتکل دارای سینتکس زیر است: .PP .Vb 1 \& concat:||...| .Ve .PP که در آن \fIURL1\fR، \fIURL2\fR، ...، \fIURLN\fR آدرس‌های منابعی هستند که باید به یکدیگر متصل شوند، و هر یک ممکن است پروتکل متفاوتی را مشخص کند. .PP برای نمونه برای خواندن دنباله‌ای از پرونده‌های \fIsplit1.mpeg\fR، \fIsplit2.mpeg\fR، \fIsplit3.mpeg\fR با \fBffplay\fR از دستور زیر استفاده کنید: .PP .Vb 1 \& ffplay concat:split1.mpeg\e|split2.mpeg\e|split3.mpeg .Ve .PP توجه داشته باشید که ممکن است لازم باشد نویسه "|" را که برای بسیاری از پوسته‌ها (shells) یک نویسه خاص است، گریز دهید. .SS concatf .IX Subsection "concatf" پروتکل الحاق فیزیکی با استفاده از فهرستی از منابع جداشده با شکست خط (line break). .PP خواندن و جستجو در چندین منبع به صورت متوالی به گونه‌ای که گویی یک منبع واحد هستند. .PP یک URL پذیرفته‌شده توسط این پروتکل دارای سینتکس زیر است: .PP .Vb 1 \& concatf: .Ve .PP که در آن \fIURL\fR آدرس حاوی فهرستی از منابع جداشده با خطوط جدید است که باید به هم متصل شوند، و هر یک می‌تواند مشخص‌کننده یک پروتکل متفاوت باشد. نویسه‌های خاص باید با بک‌اسلش یا کوتیشن تکی گریز داده شوند. به \fBبخش "Quoting and escaping" در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .PP به عنوان مثال برای خواندن دنباله‌ای از پرونده‌های \fIsplit1.mpeg\fR، \fIsplit2.mpeg\fR، \fIsplit3.mpeg\fR که در خطوط جداگانه‌ای در یک پرونده \fIsplit.txt\fR فهرست شده‌اند با \fBffplay\fR از دستور زیر استفاده کنید: .PP .Vb 1 \& ffplay concatf:split.txt .Ve .PP که در آن \fIsplit.txt\fR شامل خطوط زیر است: .PP .Vb 3 \& split1.mpeg \& split2.mpeg \& split3.mpeg .Ve .SS crypto .IX Subsection "crypto" پروتکل خواندن جریان رمزگذاری‌شده با AES. .PP گزینه‌های پذیرفته‌شده عبارتند از: .IP \fBkey\fR 4 .IX Item "key" تنظیم بلوک باینری کلید رمزگشایی AES از روی نمایش هگزادسیمال ارائه‌شده. .IP \fBiv\fR 4 .IX Item "iv" تنظیم بلوک باینری بردار مقداردهی اولیه (IV) رمزگشایی AES از روی نمایش هگزادسیمال ارائه‌شده. .PP قالب‌های URL پذیرفته‌شده: .PP .Vb 2 \& crypto: \& crypto+ .Ve .SS data .IX Subsection "data" داده‌های درون‌خطی در URI. به <\fBhttp://en.wikipedia.org/wiki/Data_URI_scheme\fR> مراجعه کنید. .PP برای نمونه، جهت تبدیل یک پرونده GIF که به صورت درون‌خطی داده شده است با \fBffmpeg\fR: .PP .Vb 1 \& ffmpeg \-i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png .Ve .SS fd .IX Subsection "fd" پروتکل دسترسی به توصیف‌کننده پرونده (File descriptor). .PP سینتکس پذیرفته‌شده عبارت است از: .PP .Vb 1 \& fd: \-fd .Ve .PP اگر \fBfd\fR مشخص نشده باشد، به طور پیش‌فرض توصیف‌کننده پرونده stdout برای نوشتن، و stdin برای خواندن استفاده خواهد شد. بر خلاف پروتکل pipe، پروتکل fd در صورتی که مربوط به یک پرونده معمولی باشد، از قابلیت جستجو (seek) پشتیبانی می‌کند. پروتکل fd به دلایل امنیتی از ارسال توصیف‌کننده پرونده از طریق URL پشتیبانی نمی‌کند. .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBblocksize\fR 4 .IX Item "blocksize" تنظیم حداکثر اندازه بلوک عملیات I/O، بر حسب بایت. مقدار پیش‌فرض \f(CW\*(C`INT_MAX\*(C'\fR است، که منجر به عدم محدودیت اندازه بلوک درخواستی می‌شود. تنظیم این مقدار روی یک مقدار معقول پایین، زمان واکنش به درخواست قطع عملیات توسط کاربر را بهبود می‌بخشد، که در صورت کند بودن انتقال داده‌ها ارزشمند است. .IP \fBfd\fR 4 .IX Item "fd" تنظیم توصیف‌کننده پرونده. .SS file .IX Subsection "file" پروتکل دسترسی به پرونده. .PP خواندن از یا نوشتن در یک پرونده. .PP یک URL پرونده می‌تواند به این فرم باشد: .PP .Vb 1 \& file: .Ve .PP که در آن \fIfilename\fR مسیر پرونده برای خواندن است. .PP یک URL که پیشوند پروتکل نداشته باشد، به عنوان یک URL پرونده در نظر گرفته می‌شود. بسته به نوع بیلد، یک URL که شبیه به یک مسیر ویندوزی با حرف درایو در ابتدا باشد نیز به عنوان یک URL پرونده در نظر گرفته خواهد شد (معمولاً در بیلدهای سیستم‌های شبه‌یونیکس این‌طور نیست). .PP برای نمونه جهت خواندن از یک پرونده \fIinput.mpeg\fR با \fBffmpeg\fR از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i file:input.mpeg output.mpeg .Ve .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBtruncate\fR 4 .IX Item "truncate" کوتاه کردن پرونده‌های موجود در هنگام نوشتن، در صورت تنظیم روی 1. مقدار 0 از کوتاه‌سازی جلوگیری می‌کند. مقدار پیش‌فرض 1 است. .IP \fBblocksize\fR 4 .IX Item "blocksize" تنظیم حداکثر اندازه بلوک عملیات I/O، بر حسب بایت. مقدار پیش‌فرض \f(CW\*(C`INT_MAX\*(C'\fR است، که منجر به عدم محدودیت اندازه بلوک درخواستی می‌شود. تنظیم این مقدار روی یک اندازه معقول پایین، زمان واکنش به درخواست قطع عملیات توسط کاربر را بهبود می‌بخشد، که برای پرونده‌های روی رسانه‌های کند ارزشمند است. .IP \fBfollow\fR 4 .IX Item "follow" اگر روی 1 تنظیم شود، پروتکل خواندن را در انتهای پرونده مجدداً امتحان می‌کند، و اجازه می‌دهد پرونده‌هایی که هنوز در حال نوشتن هستند خوانده شوند. برای پایان یافتن این کار، یا باید از گزینه rw_timeout استفاده کنید، یا از کال‌بک وقفه (برای کاربران API) بهره ببرید. تنظیم این گزینه همچنین اندازه پرونده گزارش‌شده توسط سامانه پرونده را نادیده می‌گیرد. .IP \fBseekable\fR 4 .IX Item "seekable" کنترل می‌کند که آیا قابلیت جستجو روی پرونده اعلام شود یا خیر. مقدار 0 به معنی غیرقابل جستجو، و \-1 به معنی خودکار است (قابل جستجو برای پرونده‌های عادی، غیرقابل جستجو برای لوله‌های نام‌گذاری‌شده). .Sp بسیاری از دیمکسرها با منابع قابل جستجو و غیرقابل جستجو رفتار متفاوتی دارند؛ بازنویسی این گزینه ممکن است سرعت باز کردن برخی پرونده‌ها را افزایش دهد، البته به بهای از دست دادن برخی ویژگی‌ها (مانند جستجوی دقیق). .IP \fBpkt_size\fR 4 .IX Item "pkt_size" تنظیم حداکثر اندازه بسته مورداستفاده برای I/O پرونده. مقدار کوچکتر ممکن است مصرف حافظه را کاهش دهد. مقدار بالاتر ممکن است بازده را به ویژه در سامانه‌های پرونده شبکه‌ای افزایش دهد. .Sp برای خواندن، در صورت تنظیم صریح، اندازه بافر داخلی پیش‌فرض (32 کیلوبایت) را بازنویسی می‌کند و حداکثر مقدار داده خوانده‌شده در هر عملیات را محدود می‌سازد. .Sp برای نوشتن، این گزینه اندازه هر عملیات نوشتن را تعیین می‌کند. مقدار پیش‌فرض ۲۵۶ کیلوبایت برای پرونده‌های معمولی، و ۳۲ کیلوبایت برای سایر موارد است. .SS ftp .IX Subsection "ftp" پروتکل انتقال پرونده (FTP). .PP خواندن از یا نوشتن در منابع راه دور با استفاده از پروتکل FTP. .PP سینتکس زیر الزامی است: .PP .Vb 1 \& ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg .Ve .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBtimeout\fR 4 .IX Item "timeout" تنظیم مهلت زمانی بر حسب میکروثانیه برای عملیات سوکت I/O مورد استفاده توسط عملیات سطح پایین زیرین. مقدار پیش‌فرض \-1 است، به این معنی که مهلت زمانی مشخص نشده است. .IP \fBftp\-user\fR 4 .IX Item "ftp-user" تنظیم کاربری که برای احراز هویت در سرور FTP استفاده می‌شود. این گزینه توسط کاربر مشخص‌شده در URL پروتکل FTP بازنویسی خواهد شد. .IP \fBftp\-password\fR 4 .IX Item "ftp-password" تنظیم رمز عبوری که برای احراز هویت در سرور FTP استفاده می‌شود. این گزینه توسط رمز عبور موجود در URL پروتکل FTP، یا توسط \fBftp\-anonymous\-password\fR در صورت عدم تعیین کاربر، بازنویسی می‌شود. .IP \fBftp\-anonymous\-password\fR 4 .IX Item "ftp-anonymous-password" رمز عبور مورد استفاده هنگام ورود به عنوان کاربر ناشناس (anonymous). معمولاً یک آدرس ایمیل باید استفاده شود. .IP \fBftp\-write\-seekable\fR 4 .IX Item "ftp-write-seekable" کنترل قابلیت جستجوی اتصال در طول کدگذاری. اگر روی 1 تنظیم شود، فرض می‌شود منبع قابلیت جستجو دارد، اگر روی 0 تنظیم شود، فرض می‌شود قابلیت جستجو ندارد. مقدار پیش‌فرض 0 است. .PP نکته: این پروتکل می‌تواند به عنوان خروجی استفاده شود، اما توصیه می‌شود این کار انجام نشود، مگر اینکه احتیاط‌های خاصی لحاظ شده باشد (آزمایش‌ها، پیکربندی سفارشی سرور و غیره). سرورهای مختلف FTP در حین عملیات جستجو رفتار متفاوتی از خود نشان می‌دهند. ابزارهای *ff ممکن است به دلیل محدودیت‌های سرور، محتوای ناقصی تولید کنند. .SS gopher .IX Subsection "gopher" پروتکل گوفر (Gopher). .SS gophers .IX Subsection "gophers" پروتکل گوفرز (Gophers). .PP پروتکل گوفر با کپسوله‌سازی TLS. .SS http .IX Subsection "http" پروتکل انتقال ابرمتن (HTTP). .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBseekable\fR 4 .IX Item "seekable" کنترل قابلیت جستجوی اتصال. اگر روی 1 تنظیم شود، منبع قابل جستجو در نظر گرفته می‌شود، اگر روی 0 تنظیم شود، غیرقابل جستجو فرض می‌شود، و اگر روی \-1 تنظیم شود، تلاش می‌کند تا قابل جستجو بودن را به طور خودکار تشخیص دهد. مقدار پیش‌فرض \-1 است. .IP \fBchunked_post\fR 4 .IX Item "chunked_post" در صورت تنظیم روی 1، از حالت قطعه‌بندی‌شده Transfer\-Encoding برای ارسال‌های post استفاده می‌کند، مقدار پیش‌فرض 1 است. .IP \fBhttp_proxy\fR 4 .IX Item "http_proxy" تنظیم پروکسی HTTP برای تونل‌زنی، به عنوان مثال http://example.com:1234 .IP \fBheaders\fR 4 .IX Item "headers" تنظیم هدرهای سفارشی HTTP، می‌تواند هدرهای پیش‌فرض داخلی را بازنویسی کند. مقدار باید رشته‌ای باشد که هدرها را کدگذاری کرده است. .IP \fBcontent_type\fR 4 .IX Item "content_type" تنظیم یک نوع محتوای مشخص برای پیام‌های POST یا برای حالت شنود (listen). .IP \fBuser_agent\fR 4 .IX Item "user_agent" بازنویسی هدر User\-Agent. در صورت عدم تعیین، پروتکل از رشته‌ای که بیلد libavformat را توصیف می‌کند استفاده خواهد کرد ("Lavf/"). .IP \fBreferer\fR 4 .IX Item "referer" تنظیم هدر Referer. گنجاندن هدر \*(AqReferer: URL\*(Aq در درخواست HTTP. .IP \fBmultiple_requests\fR 4 .IX Item "multiple_requests" استفاده از اتصالات پایدار (Persistent connections) در صورت تنظیم روی 1، مقدار پیش‌فرض 0 است. .IP \fBrequest_size\fR 4 .IX Item "request_size" محدود کردن اندازه درخواست‌های ارسال‌شده. این گزینه برای برخی سرورهای ناهنجار که درخواست‌های محدوده (range requests) بدون کران را با افت سرعت (throttle) مواجه می‌کنند، و همچنین هنگام انتظار جستجوهای مکرر، مفید است. به طور پیش‌فرض غیرفعال است (روی 0 تنظیم شده است). .Sp توجه داشته باشید که در صورت فعال کردن این گزینه، اکیداً توصیه می‌شود که گزینه \fBmultiple_requests\fR نیز فعال شود و همچنین \fBshort_seek_size\fR روی مقداری برابر یا بالاتر تنظیم گردد. انجام این کار به FFmpeg اجازه می‌دهد تا حد امکان از یک اتصال HTTP منفرد مجدداً استفاده کند. .IP \fBinitial_request_size\fR 4 .IX Item "initial_request_size" محدود کردن اندازه درخواست‌های اولیه. مشابه \f(CW\*(C`request_size\*(C'\fR، اما فقط در طول تجزیه اولیه فرمت استفاده می‌شود. برای فرمت‌هایی مانند MXF یا MOV که در حین تجزیه هدر نیازمند جستجوهای مکرر هستند، مفید است. تا زمانی ادامه دارد که دیمکسر یک درخواست خواندن بزرگتر از این اندازه (بدون جستجو در این بین) انجام دهد، و پس از آن پیاده‌سازی طبق معمول به ارسال درخواست‌ها ادامه خواهد داد. به طور پیش‌فرض غیرفعال است (روی 0 تنظیم شده است). .Sp توجه داشته باشید که در صورت فعال‌سازی این گزینه، اکیداً توصیه می‌شود گزینه \fBmultiple_requests\fR نیز فعال گردد، و \fBshort_seek_size\fR روی مقداری برابر یا بیشتر تنظیم شود. .IP \fBpost_data\fR 4 .IX Item "post_data" تنظیم داده‌های سفارشی HTTP post. .IP \fBmime_type\fR 4 .IX Item "mime_type" صادر کردن نوع MIME. .IP \fBhttp_version\fR 4 .IX Item "http_version" صادر کردن شماره نسخه پاسخ HTTP. معمولاً "1.0" یا "1.1". .IP \fBcookies\fR 4 .IX Item "cookies" تنظیم کوکی‌هایی که باید در درخواست‌های آتی ارسال شوند. فرمت هر کوکی همانند مقدار فیلد پاسخ HTTP با نام Set\-Cookie است. کوکی‌های متعدد می‌توانند با یک نویسه خط جدید جدا شوند. .IP \fBicy\fR 4 .IX Item "icy" اگر روی 1 تنظیم شود، متاداده‌های ICY (SHOUTcast) را از سرور درخواست می‌کند. اگر سرور از این ویژگی پشتیبانی کند، برنامه باید متاداده را با خواندن گزینه‌های \fBicy_metadata_headers\fR و \fBicy_metadata_packet\fR بازیابی نماید. مقدار پیش‌فرض 1 است. .IP \fBicy_metadata_headers\fR 4 .IX Item "icy_metadata_headers" اگر سرور از متاداده‌های ICY پشتیبانی کند، این گزینه حاوی هدرهای پاسخ HTTP ویژه ICY خواهد بود، که با نویسه‌های خط جدید جدا شده‌اند. .IP \fBicy_metadata_packet\fR 4 .IX Item "icy_metadata_packet" اگر سرور از متاداده‌های ICY پشتیبانی کند و \fBicy\fR روی 1 تنظیم شده باشد، این گزینه شامل آخرین بسته متاداده غیرخالی ارسال‌شده توسط سرور خواهد بود. برنامه‌هایی که مایل به دریافت به‌روزرسانی‌های متاداده در میان استریم هستند باید آن را در بازه‌های زمانی منظم بررسی کنند. .IP \fBmetadata\fR 4 .IX Item "metadata" تنظیم یک دیکشنری صادرشده حاوی متاداده Icecast از بیت‌استریم، در صورت وجود. فقط با API زبان C کاربرد دارد. .IP \fBauth_type\fR 4 .IX Item "auth_type" تنظیم نوع احراز هویت HTTP. گزینه‌ای برای روش احراز هویت Digest وجود ندارد، چرا که این روش ابتدا نیازمند دریافت پارامترهای nonce از سرور است و نمی‌تواند مانند Basic بلافاصله استفاده شود. .RS 4 .IP \fBnone\fR 4 .IX Item "none" انتخاب خودکار نوع احراز هویت HTTP. این مقدار پیش‌فرض است. .IP \fBbasic\fR 4 .IX Item "basic" انتخاب احراز هویت پایه HTTP. .Sp احراز هویت پایه یک رشته کدگذاری‌شده با Base64 ارسال می‌کند که شامل نام کاربری و رمز عبور کلاینت است. Base64 شکلی از رمزگذاری نیست و باید معادل ارسال نام کاربری و رمز عبور به صورت متن آشکار در نظر گرفته شود (Base64 یک کدگذاری برگشت‌پذیر است). اگر منبعی نیازمند محافظت است، اکیداً استفاده از یک طرح احراز هویت غیر از احراز هویت پایه را در نظر بگیرید. همراه با احراز هویت پایه باید از HTTPS/TLS استفاده شود. بدون این بهبودهای امنیتی تکمیلی، احراز هویت پایه نباید برای محافظت از اطلاعات حساس یا ارزشمند استفاده گردد. .RE .RS 4 .RE .IP \fBsend_expect_100\fR 4 .IX Item "send_expect_100" ارسال هدر Expect: 100\-continue برای درخواست‌های POST. اگر روی 1 تنظیم شود ارسال می‌کند، اگر روی 0 تنظیم شود ارسال نخواهد کرد، و اگر روی \-1 تنظیم شود در صورت کاربردی بودن تلاش برای ارسال می‌کند. مقدار پیش‌فرض \-1 است. .IP \fBlocation\fR 4 .IX Item "location" یک دیکشنری صادرشده حاوی مکان محتوا. فقط با API زبان C کاربرد دارد. .IP \fBoffset\fR 4 .IX Item "offset" تنظیم آفست بایت اولیه. .IP \fBend_offset\fR 4 .IX Item "end_offset" تلاش برای محدود کردن درخواست به بایت‌های قبل از این آفست. .IP \fBmethod\fR 4 .IX Item "method" هنگامی که به عنوان گزینه کلاینت استفاده شود، متد HTTP را برای درخواست تنظیم می‌کند. .Sp هنگامی که به عنوان گزینه سرور استفاده شود، متد HTTP مورد انتظار از کلاینت(ها) را تعیین می‌کند. اگر متد HTTP مورد انتظار و متد دریافت‌شده یکسان نباشند، پاسخ Bad Request به کلاینت داده خواهد شد. در صورت عدم تنظیم، در حال حاضر متد HTTP بررسی نمی‌شود. این مورد در آینده با تشخیص خودکار جایگزین خواهد شد. .IP \fBreconnect\fR 4 .IX Item "reconnect" اتصال مجدد خودکار در صورت قطع ارتباط پیش از رسیدن به انتهای پرونده (EOF). .IP \fBreconnect_at_eof\fR 4 .IX Item "reconnect_at_eof" در صورت تنظیم، با EOF مانند یک خطا رفتار می‌شود و موجب اتصال مجدد می‌گردد؛ این گزینه برای استریم‌های زنده / بی‌پایان کاربردی است. .IP \fBreconnect_on_network_error\fR 4 .IX Item "reconnect_on_network_error" اتصال مجدد خودکار در صورت بروز خطاهای TCP/TLS در هنگام اتصال. .IP \fBreconnect_on_http_error\fR 4 .IX Item "reconnect_on_http_error" فهرستی جداشده با کاما از کدهای وضعیت HTTP که در صورت وقوع آن‌ها اتصال مجدد برقرار می‌شود. این فهرست می‌تواند شامل کدهای وضعیت خاص (مانند \*(Aq503\*(Aq) یا رشته‌های \*(Aq4xx\*(Aq / \*(Aq5xx\*(Aq باشد. .IP \fBreconnect_streamed\fR 4 .IX Item "reconnect_streamed" در صورت تنظیم، حتی جریان‌های جریانی/غیرقابل جستجو در صورت بروز خطا مجدداً متصل خواهند شد. .IP \fBreconnect_delay_max\fR 4 .IX Item "reconnect_delay_max" تنظیم حداکثر تأخیر به ثانیه که پس از آن از اتصال مجدد صرف‌نظر می‌شود. .IP \fBreconnect_max_retries\fR 4 .IX Item "reconnect_max_retries" تنظیم حداکثر تعداد دفعات تلاش مجدد برای برقراری اتصال. پیش‌فرض تنظیم نشده است. .IP \fBreconnect_delay_total_max\fR 4 .IX Item "reconnect_delay_total_max" تنظیم حداکثر تأخیر کل به ثانیه که پس از آن از اتصال مجدد صرف‌نظر می‌شود. .IP \fBrespect_retry_after\fR 4 .IX Item "respect_retry_after" در صورت فعال بودن و مواجهه با هدر Retry\-After، تأخیر اتصال مجدد درخواست‌شده در آن رعایت خواهد شد، به جای اینکه از عقب‌نشینی نمایی استفاده شود. برای خطاهای ۴۲۹ و ۵۰۳ مفید است. پیش‌فرض فعال است. .IP \fBlisten\fR 4 .IX Item "listen" اگر روی 1 تنظیم شود سرور آزمایشی HTTP را فعال می‌کند. این گزینه می‌تواند برای ارسال داده‌ها هنگام استفاده به عنوان گزینه خروجی، یا خواندن داده‌ها از یک کلاینت با HTTP POST هنگام استفاده به عنوان گزینه ورودی به کار رود. اگر روی 2 تنظیم شود سرور آزمایشی چندکلاینتی HTTP را فعال می‌کند. این قابلیت هنوز در ffmpeg.c پیاده‌سازی نشده است و بنابراین نباید به عنوان یک گزینه خط فرمان به کار گرفته شود. .Sp .Vb 2 \& # Server side (sending): \& ffmpeg \-i somefile.ogg \-c copy \-listen 1 \-f ogg http://: \& \& # Client side (receiving): \& ffmpeg \-i http://: \-c copy somefile.ogg \& \& # Client can also be done with wget: \& wget http://: \-O somefile.ogg \& \& # Server side (receiving): \& ffmpeg \-listen 1 \-i http://: \-c copy somefile.ogg \& \& # Client side (sending): \& ffmpeg \-i somefile.ogg \-chunked_post 0 \-c copy \-f ogg http://: \& \& # Client can also be done with wget: \& wget \-\-post\-file=somefile.ogg http://: .Ve .IP \fBresource\fR 4 .IX Item "resource" منبع درخواست‌شده توسط یک کلاینت، زمانی که سرور آزمایشی HTTP در حال استفاده است. .IP \fBreply_code\fR 4 .IX Item "reply_code" کد HTTP بازگردانده‌شده به کلاینت، زمانی که سرور آزمایشی HTTP در حال استفاده است. .IP \fBshort_seek_size\fR 4 .IX Item "short_seek_size" تنظیم آستانه بر حسب بایت، برای زمانی که خواندن پیشاپیش (readahead) باید بر جستجو و درخواست جدید HTTP ترجیح داده شود. این به عنوان مثال برای اطمینان از این که از یک اتصال یکسان برای خواندن بسته‌های ویدیویی بزرگ با بسته‌های صوتی کوچک در میان آن‌ها استفاده می‌شود، سودمند است. .PP \fIکوکی‌های HTTP (HTTP Cookies)\fR .IX Subsection "HTTP Cookies" .PP برخی درخواست‌های HTTP رد خواهند شد مگر اینکه مقادیر کوکی همراه با درخواست ارسال گردند. گزینه \fBcookies\fR امکان مشخص کردن این کوکی‌ها را فراهم می‌کند. حداقل، هر کوکی باید یک مقدار را به همراه مسیر و دامنه مشخص نماید. درخواست‌های HTTP که هم با دامنه و هم با مسیر مطابقت داشته باشند، به طور خودکار مقدار کوکی را در فیلد هدر HTTP Cookie خواهند گنجاند. چندین کوکی را می‌توان با یک خط جدید از هم تفکیک کرد. .PP سینتکس مورد نیاز برای پخش یک جریان با تعیین کوکی به این صورت است: .PP .Vb 1 \& ffplay \-cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8 .Ve .SS Icecast .IX Subsection "Icecast" پروتکل Icecast (پخش جریانی به سرورهای Icecast) .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBice_genre\fR 4 .IX Item "ice_genre" تنظیم سبک (genre) جریان. .IP \fBice_name\fR 4 .IX Item "ice_name" تنظیم نام جریان. .IP \fBice_description\fR 4 .IX Item "ice_description" تنظیم توضیحات جریان. .IP \fBice_url\fR 4 .IX Item "ice_url" تنظیم URL وب‌سایت جریان. .IP \fBice_public\fR 4 .IX Item "ice_public" تنظیم اینکه آیا جریان باید عمومی باشد یا خیر. مقدار پیش‌فرض 0 است (غیرعمومی). .IP \fBuser_agent\fR 4 .IX Item "user_agent" بازنویسی هدر User\-Agent. در صورت عدم تعیین، رشته‌ای به فرم "Lavf/" استفاده خواهد شد. .IP \fBpassword\fR 4 .IX Item "password" تنظیم رمز عبور نقطه اتصال (mountpoint) در Icecast. .IP \fBcontent_type\fR 4 .IX Item "content_type" تنظیم نوع محتوای جریان. در صورتی که متفاوت از audio/mpeg باشد، این گزینه باید تنظیم شود. .IP \fBlegacy_icecast\fR 4 .IX Item "legacy_icecast" این گزینه پشتیبانی از نسخه‌های Icecast کمتر از 2.4.0 را فعال می‌کند، که از متد HTTP PUT پشتیبانی نکرده و از متد SOURCE استفاده می‌کنند. .IP \fBtls\fR 4 .IX Item "tls" برقراری یک اتصال TLS (HTTPS) به Icecast. .PP .Vb 1 \& icecast://[[:]@]:/ .Ve .SS ipfs .IX Subsection "ipfs" پشتیبانی از پروتکل سامانه پرونده بین‌سیاره‌ای (IPFS). می‌توان به پرونده‌های ذخیره‌شده در شبکه IPFS از طریق درگاه‌های به اصطلاح گیت‌وی (gateways) دسترسی پیدا کرد. این‌ها نقاط پایانی http(s) هستند. این پروتکل، پروتکل‌های بومی IPFS (یعنی ipfs:// و ipns://) را کپسوله می‌کند تا به چنین گیت‌وی‌هایی ارسال شوند. کاربران می‌توانند (و بهتر است) گره خود را میزبانی نمایند، که بدان معناست این پروتکل برای دسترسی به پرونده‌های موجود در شبکه IPFS از گیت‌وی محلی فرد استفاده خواهد کرد. .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBgateway\fR 4 .IX Item "gateway" گیت‌وی مورد استفاده را تعریف می‌کند. در صورت عدم تنظیم، پروتکل ابتدا با بررسی \f(CW$IPFS_GATEWAY\fR، \f(CW$IPFS_PATH\fR و \f(CW\*(C`$HOME/.ipfs/\*(C'\fR به ترتیب، تلاش می‌کند گیت‌وی محلی را پیدا کند. .PP می‌توان از این پروتکل به ۲ روش استفاده کرد. با استفاده از IPFS: .PP .Vb 1 \& ffplay ipfs:// .Ve .PP یا پروتکل IPNS (که IPNS همان IPFS با قابلیت تغییر است): .PP .Vb 1 \& ffplay ipns:// .Ve .SS mmst .IX Subsection "mmst" پروتکل MMS (سرور رسانه مایکروسافت) روی TCP. .SS mmsh .IX Subsection "mmsh" پروتکل MMS (سرور رسانه مایکروسافت) روی HTTP. .PP سینتکس الزامی عبارت است از: .PP .Vb 1 \& mmsh://[:][/][/] .Ve .SS md5 .IX Subsection "md5" پروتکل خروجی MD5. .PP هش MD5 داده‌های در حال نوشتن را محاسبه می‌کند، و در زمان بستن، آن را در خروجی تعیین‌شده یا در stdout (در صورت عدم تعیین) می‌نویسد. می‌تواند برای آزمایش مکسرها بدون نوشتن یک پرونده واقعی به کار رود. .PP چند مثال در ادامه آمده است: .PP .Vb 2 \& # Write the MD5 hash of the encoded AVI file to the file output.avi.md5. \& ffmpeg \-i input.flv \-f avi \-y md5:output.avi.md5 \& \& # Write the MD5 hash of the encoded AVI file to stdout. \& ffmpeg \-i input.flv \-f avi \-y md5: .Ve .PP توجه داشته باشید که برخی فرمت‌ها (معمولاً MOV) نیاز دارند که پروتکل خروجی قابلیت جستجو داشته باشد، بنابراین با پروتکل خروجی MD5 با شکست مواجه خواهند شد. .SS pipe .IX Subsection "pipe" پروتکل دسترسی به لوله یونیکس (UNIX pipe). .PP خواندن از و نوشتن در لوله‌های یونیکس. .PP سینتکس پذیرفته‌شده عبارت است از: .PP .Vb 1 \& pipe:[] .Ve .PP اگر \fBfd\fR مشخص نشده باشد، \fInumber\fR عددی است که با توصیف‌کننده پرونده لوله مطابقت دارد (مثلاً 0 برای stdin، 1 برای stdout، 2 برای stderr). اگر \fInumber\fR مشخص نشده باشد، به طور پیش‌فرض توصیف‌کننده پرونده stdout برای نوشتن، و stdin برای خواندن استفاده خواهد شد. .PP برای مثال برای خواندن از stdin با \fBffmpeg\fR: .PP .Vb 3 \& cat test.wav | ffmpeg \-i pipe:0 \& # ...this is the same as... \& cat test.wav | ffmpeg \-i pipe: .Ve .PP برای نوشتن در stdout با \fBffmpeg\fR: .PP .Vb 3 \& ffmpeg \-i test.wav \-f avi pipe:1 | cat > test.avi \& # ...this is the same as... \& ffmpeg \-i test.wav \-f avi pipe: | cat > test.avi .Ve .PP این پروتکل گزینه‌های زیر را می‌پذیرد: .IP \fBblocksize\fR 4 .IX Item "blocksize" تنظیم حداکثر اندازه بلوک عملیات I/O، بر حسب بایت. مقدار پیش‌فرض \f(CW\*(C`INT_MAX\*(C'\fR است، که به معنی عدم محدود کردن اندازه بلوک درخواستی است. تنظیم این مقدار روی یک مقدار معقول پایین، زمان واکنش به درخواست توقف توسط کاربر را بهبود می‌بخشد، که در صورت کند بودن انتقال داده‌ها سودمند است. .IP \fBfd\fR 4 .IX Item "fd" تنظیم توصیف‌کننده پرونده. .PP توجه داشته باشید که برخی فرمت‌ها (معمولاً MOV) نیاز دارند که پروتکل خروجی قابلیت جستجو داشته باشد، بنابراین با پروتکل خروجی pipe با شکست مواجه خواهند شد. .SS prompeg .IX Subsection "prompeg" پروتکل FEC مطابق Pro\-MPEG Code of Practice #3 Release 2. .PP پروتکل Pro\-MPEG CoP#3 FEC یک سازوکار تصحیح خطای رو به جلو (FEC) با بررسی توازن ۲ بعدی برای جریان‌های انتقال MPEG\-2 ارسال‌شده روی RTP است. .PP این پروتکل باید در ارتباط با مکسر \f(CW\*(C`rtp_mpegts\*(C'\fR و پروتکل \f(CW\*(C`rtp\*(C'\fR استفاده شود. .PP سینتکس مورد نیاز به این شکل است: .PP .Vb 1 \& \-f rtp_mpegts \-fec prompeg=