.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F\. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "FFMPEG-ALL 1" .TH FFMPEG-ALL 1 " " " " " " .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" ffmpeg-all \- مبدل و پردازشگر چندرسانه‌ای همه‌کاره و راهنمای جامع FFmpeg .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" ffmpeg [\fIگزینه‌های_عمومی\fR] {[\fIگزینه‌های_فایل_ورودی\fR] \-i \fIآدرس_ورودی\fR} ... {[\fIگزینه‌های_فایل_خروجی\fR] \fIآدرس_خروجی\fR} ... .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \fBffmpeg\fR یک مبدل و پردازشگر چندرسانه‌ای همه‌کاره است. این ابزار قادر است طیف وسیعی از ورودی‌ها \- از جمله دستگاه‌های ضبط زنده و پخش مستقیم \- را بخواند، فیلتر کند و آن‌ها را به خیل عظیمی از قالب‌های خروجی تبدیل (Transcode) نماید. .PP دستور \fBffmpeg\fR از تعداد دلخواهی ورودی (که می‌توانند فایل‌های معمولی، لوله‌ها یا پایپ‌ها، جریان‌های شبکه، دستگاه‌های ضبط و غیره باشند) که توسط گزینه \f(CW\*(C`\-i\*(C'\fR مشخص می‌شوند می‌خواند و در تعداد دلخواهی خروجی که با یک آدرس ساده خروجی تعیین می‌گردند می‌نویسد. هر چیزی در خط فرمان که نتواند به عنوان گزینه تفسیر شود، به عنوان یک آدرس خروجی تلقی می‌گردد. .PP هر ورودی یا خروجی در اصل می‌تواند شامل هر تعداد جریان مقدماتی (استریم) از انواع گوناگون (ویدیو/صدا/زیرنویس/پیوست/داده) باشد، اگرچه تعداد یا انواع مجاز استریم‌ها ممکن است توسط قالب ظرف (کانتینر) محدود شود. انتخاب این‌که کدام استریم‌ها از کدام ورودی‌ها به کدام خروجی منتقل شوند، یا به صورت خودکار صورت می‌گیرد یا با استفاده از گزینه \f(CW\*(C`\-map\*(C'\fR تعیین می‌شود (به بخش \fBانتخاب استریم (Stream selection)\fR مراجعه کنید). .PP برای ارجاع به ورودی‌ها یا خروجی‌ها در گزینه‌ها، باید از اندیس‌های آن‌ها (بر پایه صفر) استفاده نمایید. برای نمونه، اولین ورودی \f(CW0\fR، دومی \f(CW1\fR و به همین ترتیب است. به طور مشابه، استریم‌های درون یک ورودی یا خروجی نیز با اندیس‌هایشان مورد ارجاع قرار می‌گیرند؛ به عنوان مثال \f(CW\*(C`2:3\*(C'\fR به چهارمین استریم در سومین ورودی یا خروجی اشاره دارد. همچنین به بخش \fBمشخص‌کننده‌های استریم (Stream specifiers)\fR مراجعه کنید. .PP به عنوان یک قاعده کلی، گزینه‌ها بر روی فایل مشخص‌شده بعدی اعمال می‌شوند. بنابراین، ترتیب قرارگیری بسیار مهم است و می‌توانید یک گزینه یکسان را چندین بار در خط فرمان تکرار کنید. هر بار تکرار بر روی فایل ورودی یا خروجی بعدی اعمال می‌گردد. استثنای این قاعده گزینه‌های عمومی هستند (مانند سطح گزارش‌دهی یا لاگ)، که باید در ابتدا مشخص شوند. .PP فایل‌های ورودی و خروجی را با یکدیگر ترکیب نکنید \-\- ابتدا تمامی فایل‌های ورودی و سپس تمامی فایل‌های خروجی را تعیین نمایید. همچنین گزینه‌های متعلق به فایل‌های مختلف را با هم نیامیزید. تمامی گزینه‌ها منحصراً بر روی فایل ورودی یا خروجی بعدی اعمال می‌شوند و میان فایل‌ها ریست می‌گردند. .PP در ادامه چند مثال ساده آورده شده است. .IP \(bu 4 تبدیل یک فایل رسانه‌ای ورودی به قالبی دیگر از طریق انکود مجدد جریان‌های رسانه: .Sp .Vb 1 \& ffmpeg \-i input.avi output.mp4 .Ve .IP \(bu 4 تنظیم نرخ بیت (bitrate) ویدیوی فایل خروجی روی 64 کیلوبیت بر ثانیه: .Sp .Vb 1 \& ffmpeg \-i input.avi \-b:v 64k \-bufsize 64k output.mp4 .Ve .IP \(bu 4 اجبار نرخ فریم فایل خروجی به 24 فریم بر ثانیه: .Sp .Vb 1 \& ffmpeg \-i input.avi \-r 24 output.mp4 .Ve .IP \(bu 4 اجبار نرخ فریم فایل ورودی (تنها برای قالب‌های خام معتبر است) به 1 فریم بر ثانیه و نرخ فریم فایل خروجی به 24 فریم بر ثانیه: .Sp .Vb 1 \& ffmpeg \-r 1 \-i input.m2v \-r 24 output.mp4 .Ve .PP گزینه قالب (\fB\-f\fR) ممکن است برای فایل‌های ورودی خام مورد نیاز باشد. .SH "توضیحات تفصیلی (DETAILED DESCRIPTION)" .IX Header "DETAILED DESCRIPTION" دستور \fBffmpeg\fR یک پایپ‌لاین (خط لوله) ترنسکدینگ را از مؤلفه‌های فهرست‌شده در زیر می‌سازد. روند کار برنامه شامل قطعات داده ورودی است که از منابع از طریق لوله‌ها به سمت مقاصد جاری می‌شوند، در حالی که در طول مسیر توسط مؤلفه‌هایی که با آن‌ها مواجه می‌شوند، دگرگون می‌گردند. .PP انواع مؤلفه‌های زیر در دسترس هستند: .IP \(bu 4 \&\fIدی‌ماکسرها (Demuxers)\fR (کوتاه‌شده‌ی "demultiplexers") یک منبع ورودی را به منظور استخراج موارد زیر می‌خوانند: .RS 4 .IP \(bu 4 ویژگی‌های عمومی مانند فراداده (متادیتا) یا فصل‌ها؛ .IP \(bu 4 فهرست جریان‌های مقدماتی (استریم‌های اولیه) ورودی و مشخصات آن‌ها. .RE .RS 4 .Sp به ازای هر گزینه \fB\-i\fR یک نمونه دی‌ماکسر ایجاد می‌شود و \fIبسته‌ها (packets)\fR انکودشده را به \fIدیکودرها\fR یا \fIماکسرها\fR ارسال می‌کند. .Sp در ادبیات فنی گاهی به دی‌ماکسرها \fIsplitters\fR (جداکننده‌ها) نیز گفته می‌شود، زیرا وظیفه اصلی آن‌ها تفکیک یک فایل به استریم‌های مجزا است (اگرچه برخی فایل‌ها تنها شامل یک جریان مقدماتی هستند). .Sp نمایش شماتیک یک دی‌ماکسر به صورت زیر است: .Sp .Vb 10 \& ┌──────────┬───────────────────────┐ \& │ demuxer │ │ packets for stream 0 \& ╞══════════╡ elementary stream 0 ├──────────────────────► \& │ │ │ \& │ global ├───────────────────────┤ \& │properties│ │ packets for stream 1 \& │ and │ elementary stream 1 ├──────────────────────► \& │ metadata │ │ \& │ ├───────────────────────┤ \& │ │ │ \& │ │ ........... │ \& │ │ │ \& │ ├───────────────────────┤ \& │ │ │ packets for stream N \& │ │ elementary stream N ├──────────────────────► \& │ │ │ \& └──────────┴───────────────────────┘ \& ▲ \& │ \& │ read from file, network stream, \& │ grabbing device, etc. \& │ .Ve .RE .IP \(bu 4 \&\fIدیکودرها (Decoders)\fR \fIبسته‌های\fR انکودشده (فشرده‌شده) را برای یک جریان مقدماتی صوتی، ویدیویی یا زیرنویس دریافت کرده و آن‌ها را به \fIفریم‌های خام (raw frames)\fR (آرایه‌های پیکسلی برای ویدیو و داده PCM برای صدا) دیکود می‌کنند. یک دیکودر معمولاً به یک جریان مقدماتی در یک \fIدی‌ماکسر\fR وابسته است (و ورودی خود را از آن دریافت می‌کند)، اما گاهی نیز ممکن است به صورت مستقل عمل نماید (به بخش \fBدیکودرهای بازگشتی (Loopback decoders)\fR مراجعه کنید). .Sp نمایش شماتیک یک دیکودر به صورت زیر است: .Sp .Vb 5 \& ┌─────────┐ \& packets │ │ raw frames \& ─────────►│ decoder ├────────────► \& │ │ \& └─────────┘ .Ve .IP \(bu 4 \&\fIگراف‌های فیلتر (Filtergraphs)\fR \fIفریم‌های\fR خام صوت یا تصویر را پردازش و تبدیل می‌کنند. یک فیلترگراف شامل یک یا چند \fIفیلتر\fR منفرد متصل به هم در قالب یک گراف است. فیلترگراف‌ها در دو نوع ارائه می‌شوند \- \fIساده (simple)\fR و \fIپیچیده (complex)\fR، که به ترتیب با گزینه‌های \fB\-filter\fR و \fB\-filter_complex\fR پیکربندی می‌گردند. .Sp یک فیلترگراف ساده به یک \fIجریان مقدماتی خروجی\fR وابسته است؛ ورودی جهت فیلتر شدن را از یک \fIدیکودر\fR دریافت کرده و خروجی فیلترشده را به \fIانکودر\fR آن جریان خروجی ارسال می‌نماید. .Sp یک فیلترگراف ساده ویدیویی که عملیات حذف خطوط درهم‌بافته (deinterlacing با استفاده از فیلتر \f(CW\*(C`yadif\*(C'\fR) و سپس تغییر اندازه (با استفاده از فیلتر \f(CW\*(C`scale\*(C'\fR) را انجام می‌دهد می‌تواند به شکل زیر باشد: .Sp .Vb 7 \& ┌────────────────────────┐ \& │ simple filtergraph │ \& frames from ╞════════════════════════╡ frames for \& a decoder │ ┌───────┐ ┌───────┐ │ an encoder \& ────────────►├─►│ yadif ├─►│ scale ├─►│────────────► \& │ └───────┘ └───────┘ │ \& └────────────────────────┘ .Ve .Sp یک فیلترگراف پیچیده مستقل است و به هیچ جریان خاصی وابسته نیست. این نوع فیلترگراف می‌تواند چندین (یا صفر) ورودی داشته باشد، که احتمالاً از انواع مختلف (صدا یا تصویر) هستند و هر یک از آن‌ها داده‌ها را از یک دیکودر یا خروجی فیلترگراف پیچیده دیگری دریافت می‌کنند. همچنین دارای یک یا چند خروجی است که یک انکودر یا ورودی فیلترگراف پیچیده دیگر را تغذیه می‌نمایند. .Sp نمودار مثال زیر یک فیلترگراف پیچیده با ۳ ورودی و ۲ خروجی (همگی ویدیو) را نشان می‌دهد: .Sp .Vb 10 \& ┌─────────────────────────────────────────────────┐ \& │ complex filtergraph │ \& ╞═════════════════════════════════════════════════╡ \& frames ├───────┐ ┌─────────┐ ┌─────────┐ ┌────────┤ frames \& ─────────►│input 0├─►│ overlay ├─────►│ overlay ├─►│output 0├────────► \& ├───────┘ │ │ │ │ └────────┤ \& frames ├───────┐╭►│ │ ╭►│ │ │ \& ─────────►│input 1├╯ └─────────┘ │ └─────────┘ │ \& ├───────┘ │ │ \& frames ├───────┐ ┌─────┐ ┌─────┬─╯ ┌────────┤ frames \& ─────────►│input 2├►│scale├►│split├───────────────►│output 1├────────► \& ├───────┘ └─────┘ └─────┘ └────────┤ \& └─────────────────────────────────────────────────┘ .Ve .Sp فریم‌های ورودی دوم بر روی فریم‌های ورودی اول هم‌پوشانی (overlay) می‌شوند. فریم‌های ورودی سوم تغییر مقیاس یافته و سپس به دو جریان یکسان تکثیر (duplicate) می‌گردند. یکی از آن‌ها بر روی ترکیب دو ورودی اول هم‌پوشانی می‌شود و نتیجه به عنوان اولین خروجی فیلترگراف ارائه می‌گردد. نسخه تکثیرشده دیگر به عنوان دومین خروجی فیلترگراف قرار می‌گیرد. .IP \(bu 4 \&\fIانکودرها (Encoders)\fR \fIفریم‌های\fR خام صوت، تصویر یا زیرنویس را دریافت کرده و آن‌ها را در قالب \fIبسته‌های\fR انکودشده کدگذاری می‌کنند. فرایند انکودینگ (فشرده‌سازی) معمولاً \fIاتلافی (lossy)\fR است \- کیفیت جریان را کاهش می‌دهد تا حجم خروجی کوچک‌تر شود؛ برخی انکودرها \fIبدون اتلاف (lossless)\fR هستند، اما به بهای حجم خروجی بسیار بالاتر. یک انکودر ویدیو یا صدا ورودی خود را از خروجی یک فیلترگراف دریافت می‌کند؛ انکودرهای زیرنویس ورودی را از یک دیکودر دریافت می‌نمایند (زیرا فیلتر کردن زیرنویس هنوز پشتیبانی نمی‌شود). هر انکودر با یک \fIجریان مقدماتی خروجی\fR از یک ماکسر مرتبط است و خروجی خود را به آن ماکسر ارسال می‌کند. .Sp نمایش شماتیک یک انکودر به صورت زیر است: .Sp .Vb 5 \& ┌─────────┐ \& raw frames │ │ packets \& ────────────►│ encoder ├─────────► \& │ │ \& └─────────┘ .Ve .IP \(bu 4 \&\fIماکسرها (Muxers)\fR (کوتاه‌شده‌ی "multiplexers") \fIبسته‌های\fR انکودشده را برای جریان‌های مقدماتی خود از انکودرها (مسیر \fIترنسکدینگ\fR) یا مستقیماً از دی‌ماکسرها (مسیر \fIکپی استریم\fR) دریافت کرده، آن‌ها را با هم درمی‌آمیزند (interleave، در صورتی که بیش از یک جریان مقدماتی وجود داشته باشد)، و بایت‌های حاصل را در فایل خروجی (یا لوله، جریان شبکه و غیره) می‌نویسند. .Sp نمایش شماتیک یک ماکسر به صورت زیر است: .Sp .Vb 10 \& ┌──────────────────────┬───────────┐ \& packets for stream 0 │ │ muxer │ \& ──────────────────────►│ elementary stream 0 ╞═══════════╡ \& │ │ │ \& ├──────────────────────┤ global │ \& packets for stream 1 │ │properties │ \& ──────────────────────►│ elementary stream 1 │ and │ \& │ │ metadata │ \& ├──────────────────────┤ │ \& │ │ │ \& │ ........... │ │ \& │ │ │ \& ├──────────────────────┤ │ \& packets for stream N │ │ │ \& ──────────────────────►│ elementary stream N │ │ \& │ │ │ \& └──────────────────────┴─────┬─────┘ \& │ \& write to file, network stream, │ \& grabbing device, etc. │ \& │ \& ▼ .Ve .SS Streamcopy .IX Subsection "Streamcopy" ساده‌ترین خط لوله در \fBffmpeg\fR عملیات \fIکپی استریم (streamcopy)\fR تک‌استریمی است، یعنی کپی کردن بسته‌های یک \fIجریان مقدماتی ورودی\fR بدون دیکود کردن، فیلتر کردن یا انکود مجدد آن‌ها. به عنوان مثال، یک فایل ورودی به نام \fIINPUT.mkv\fR با ۳ جریان مقدماتی را در نظر بگیرید که دومین جریان آن را برداشته و در فایل \fIOUTPUT.mp4\fR می‌نویسیم. نمایش شماتیک چنین خط لوله‌ای به صورت زیر است: .PP .Vb 10 \& ┌──────────┬─────────────────────┐ \& │ demuxer │ │ unused \& ╞══════════╡ elementary stream 0 ├────────╳ \& │ │ │ \& │INPUT.mkv ├─────────────────────┤ ┌──────────────────────┬───────────┐ \& │ │ │ packets │ │ muxer │ \& │ │ elementary stream 1 ├─────────►│ elementary stream 0 ╞═══════════╡ \& │ │ │ │ │OUTPUT.mp4 │ \& │ ├─────────────────────┤ └──────────────────────┴───────────┘ \& │ │ │ unused \& │ │ elementary stream 2 ├────────╳ \& │ │ │ \& └──────────┴─────────────────────┘ .Ve .PP خط لوله فوق را می‌توان با خط فرمان زیر ایجاد کرد: .PP .Vb 1 \& ffmpeg \-i INPUT.mkv \-map 0:1 \-c copy OUTPUT.mp4 .Ve .PP در این خط فرمان: .IP \(bu 4 یک ورودی منفرد \fIINPUT.mkv\fR وجود دارد؛ .IP \(bu 4 هیچ گزینه ورودی برای این ورودی تعیین نشده است؛ .IP \(bu 4 یک خروجی منفرد \fIOUTPUT.mp4\fR وجود دارد؛ .IP \(bu 4 دو گزینه خروجی برای این خروجی وجود دارد: .RS 4 .IP \(bu 4 گزینه \f(CW\*(C`\-map 0:1\*(C'\fR استریم ورودی مورد استفاده را انتخاب می‌کند \- از ورودی با اندیس 0 (یعنی نخستین ورودی) استریم با اندیس 1 (یعنی دومین استریم)؛ .IP \(bu 4 گزینه \f(CW\*(C`\-c copy\*(C'\fR انکودر \f(CW\*(C`copy\*(C'\fR را انتخاب می‌کند، یعنی کپی استریم بدون هیچ دیکود یا انکود مجدد. .RE .RS 4 .RE .PP کپی استریم برای تغییر تعداد جریان‌های مقدماتی، قالب کانتینر، یا اصلاح متادیتای سطح کانتینر مفید است. از آنجا که هیچ دیکود یا انکودی صورت نمی‌گیرد، این فرایند بسیار سریع است و هیچ افت کیفیتی رخ نمی‌دهد. با این حال، ممکن است به دلایل گوناگون در برخی موارد کار نکند (مثلاً برخی اطلاعات مورد نیاز کانتینر مقصد در منبع موجود نباشد). بدیهی است اعمال فیلترها نیز غیرممکن است، زیرا فیلترها بر روی فریم‌های دیکودشده عمل می‌کنند. .PP سناریوهای پیچیده‌تر کپی استریم را نیز می‌توان ایجاد کرد \- برای مثال ترکیب استریم‌ها از دو فایل ورودی درون یک خروجی واحد: .PP .Vb 10 \& ┌──────────┬────────────────────┐ ┌────────────────────┬───────────┐ \& │ demuxer 0│ │ packets │ │ muxer │ \& ╞══════════╡elementary stream 0 ├────────►│elementary stream 0 ╞═══════════╡ \& │INPUT0.mkv│ │ │ │OUTPUT.mp4 │ \& └──────────┴────────────────────┘ ├────────────────────┤ │ \& ┌──────────┬────────────────────┐ │ │ │ \& │ demuxer 1│ │ packets │elementary stream 1 │ │ \& ╞══════════╡elementary stream 0 ├────────►│ │ │ \& │INPUT1.aac│ │ └────────────────────┴───────────┘ \& └──────────┴────────────────────┘ .Ve .PP که با خط فرمان زیر قابل ساخت است: .PP .Vb 1 \& ffmpeg \-i INPUT0.mkv \-i INPUT1.aac \-map 0:0 \-map 1:0 \-c copy OUTPUT.mp4 .Ve .PP گزینه خروجی \fB\-map\fR در اینجا دو بار استفاده شده است و دو استریم در فایل خروجی ایجاد می‌کند \- یکی از اولین ورودی و دیگری از دومی تغذیه می‌شود. یک نمونه منفرد از گزینه \fB\-c\fR عملیات کپی استریم را برای هر دوی این استریم‌ها انتخاب می‌نماید. شما همچنین می‌توانید از چندین نمونه از این گزینه به همراه \fBمشخص‌کننده‌های استریم (Stream specifiers)\fR استفاده کنید تا مقادیر متفاوتی را روی هر استریم اعمال نمایید، همان‌طور که در بخش‌های بعدی نشان داده خواهد شد. .PP یک سناریوی معکوس، تفکیک چندین استریم از یک ورودی منفرد به چندین فایل خروجی مجزا است: .PP .Vb 10 \& ┌──────────┬─────────────────────┐ ┌───────────────────┬───────────┐ \& │ demuxer │ │ packets │ │ muxer 0 │ \& ╞══════════╡ elementary stream 0 ├─────────►│elementary stream 0╞═══════════╡ \& │ │ │ │ │OUTPUT0.mp4│ \& │INPUT.mkv ├─────────────────────┤ └───────────────────┴───────────┘ \& │ │ │ packets ┌───────────────────┬───────────┐ \& │ │ elementary stream 1 ├─────────►│ │ muxer 1 │ \& │ │ │ │elementary stream 0╞═══════════╡ \& └──────────┴─────────────────────┘ │ │OUTPUT1.mp4│ \& └───────────────────┴───────────┘ .Ve .PP که با دستور زیر ساخته می‌شود: .PP .Vb 1 \& ffmpeg \-i INPUT.mkv \-map 0:0 \-c copy OUTPUT0.mp4 \-map 0:1 \-c copy OUTPUT1.mp4 .Ve .PP توجه کنید که چگونه برای هر فایل خروجی به یک نمونه مجزا از گزینه \fB\-c\fR نیاز است، حتی اگر مقادیر آن‌ها یکسان باشد. این امر به این دلیل است که گزینه‌های غیرعمومی (که اکثر گزینه‌ها را تشکیل می‌دهند) تنها در حیطه فایلی اعمال می‌شوند که پیش از آن قرار گرفته‌اند. .PP این مثال‌ها البته می‌توانند به نگاشت‌های دلخواه از هر تعداد ورودی به هر تعداد خروجی تعمیم یابند. .SS Transcoding .IX Subsection "Transcoding" \&\fIترنسکدینگ\fR فرایند دیکود کردن یک استریم و سپس انکود مجدد آن است. از آن‌جا که انکودینگ معمولاً از نظر محاسباتی سنگین است و در اکثر موارد کیفیت استریم را کاهش می‌دهد (یعنی \fIاتلافی\fR است)، باید تنها در صورت نیاز ترنسکد کنید و در غیر این صورت از کپی استریم بهره ببرید. دلایل معمول برای ترنسکد کردن عبارتند از: .IP \(bu 4 اعمال فیلترها \- مانند تغییر اندازه، حذف خطوط درهم‌بافته (deinterlacing)، یا هم‌پوشانی ویدیو؛ تغییر نرخ نمونه‌برداری (resampling) یا میکس و ترکیب صدا؛ .IP \(bu 4 تمایل به ارسال استریم به سامانه‌ای که قادر به دیکود کردن کدک اصلی نیست. .PP توجه داشته باشید که \fBffmpeg\fR تمام استریم‌های صدا، تصویر و زیرنویس را ترنسکد خواهد کرد مگر این‌که برای آن‌ها گزینه \fB\-c copy\fR را مشخص نمایید. .PP یک خط لوله نمونه را در نظر بگیرید که یک فایل ورودی با یک استریم صوتی و یک استریم ویدیویی را می‌خواند، ویدیو را ترنسکد کرده و صدا را در یک فایل خروجی واحد کپی می‌کند. این فرایند را می‌توان به صورت شماتیک به شکل زیر نشان داد: .PP .Vb 10 \& ┌──────────┬─────────────────────┐ \& │ demuxer │ │ audio packets \& ╞══════════╡ stream 0 (audio) ├─────────────────────────────────────╮ \& │ │ │ │ \& │INPUT.mkv ├─────────────────────┤ video ┌─────────┐ raw │ \& │ │ │ packets │ video │ video frames │ \& │ │ stream 1 (video) ├─────────►│ decoder ├──────────────╮ │ \& │ │ │ │ │ │ │ \& └──────────┴─────────────────────┘ └─────────┘ │ │ \& ▼ ▼ \& │ │ \& ┌──────────┬─────────────────────┐ video ┌─────────┐ │ │ \& │ muxer │ │ packets │ video │ │ │ \& ╞══════════╡ stream 0 (video) │◄─────────┤ encoder ├──────────────╯ │ \& │ │ │ │(libx264)│ │ \& │OUTPUT.mp4├─────────────────────┤ └─────────┘ │ \& │ │ │ │ \& │ │ stream 1 (audio) │◄────────────────────────────────────╯ \& │ │ │ \& └──────────┴─────────────────────┘ .Ve .PP و با خط فرمان زیر پیاده‌سازی می‌گردد: .PP .Vb 1 \& ffmpeg \-i INPUT.mkv \-map 0:v \-map 0:a \-c:v libx264 \-c:a copy OUTPUT.mp4 .Ve .PP توجه کنید که چگونه از مشخص‌کننده‌های استریم \f(CW\*(C`:v\*(C'\fR و \f(CW\*(C`:a\*(C'\fR برای انتخاب استریم‌های ورودی و اعمال مقادیر متفاوت گزینه \fB\-c\fR به آن‌ها استفاده شده است؛ برای جزئیات بیشتر به بخش \fBمشخص‌کننده‌های استریم (Stream specifiers)\fR مراجعه کنید. .SS Filtering .IX Subsection "Filtering" هنگام ترنسکدینگ، جریان‌های صوتی و تصویری می‌توانند پیش از انکود با استفاده از یک فیلترگراف \fIساده\fR یا \fIپیچیده\fR فیلتر شوند. .PP \fIفیلترگراف‌های ساده (Simple filtergraphs)\fR .IX Subsection "Simple filtergraphs" .PP فیلترگراف‌های ساده آن‌هایی هستند که دقیقاً یک ورودی و یک خروجی دارند و هر دو از یک نوع (صدا یا ویدیو) هستند. آن‌ها با گزینه به‌ازای‌هر‌استریم \fB\-filter\fR پیکربندی می‌شوند (با نام‌های مستعار \fB\-vf\fR و \fB\-af\fR به ترتیب برای \fB\-filter:v\fR (ویدیو) و \fB\-filter:a\fR (صدا)). توجه داشته باشید که فیلترگراف‌های ساده به جریان خروجی خود وابسته هستند، بنابراین برای مثال اگر چندین جریان صوتی داشته باشید، \fB\-af\fR برای هر یک فیلترگراف جداگانه‌ای ایجاد می‌کند. .PP با در نظر گرفتن مثال ترنسکدینگ فوق، افزودن فیلترینگ (و حذف صدا جهت وضوح بیشتر) آن را به شکل زیر درمی‌آورد: .PP .Vb 10 \& ┌──────────┬───────────────┐ \& │ demuxer │ │ ┌─────────┐ \& ╞══════════╡ video stream │ packets │ video │ frames \& │INPUT.mkv │ ├─────────►│ decoder ├─────►───╮ \& │ │ │ └─────────┘ │ \& └──────────┴───────────────┘ │ \& ╭───────────◄───────────╯ \& │ ┌────────────────────────┐ \& │ │ simple filtergraph │ \& │ ╞════════════════════════╡ \& │ │ ┌───────┐ ┌───────┐ │ \& ╰──►├─►│ yadif ├─►│ scale ├─►├╮ \& │ └───────┘ └───────┘ ││ \& └────────────────────────┘│ \& │ \& │ \& ┌──────────┬───────────────┐ video ┌─────────┐ │ \& │ muxer │ │ packets │ video │ │ \& ╞══════════╡ video stream │◄─────────┤ encoder ├───────◄───────╯ \& │OUTPUT.mp4│ │ │ │ \& │ │ │ └─────────┘ \& └──────────┴───────────────┘ .Ve .PP \fIفیلترگراف‌های پیچیده (Complex filtergraphs)\fR .IX Subsection "Complex filtergraphs" .PP فیلترگراف‌های پیچیده آن‌هایی هستند که نمی‌توان آن‌ها را به سادگی به عنوان یک زنجیره پردازش خطی اعمال‌شده بر روی یک استریم توصیف کرد. این حالت برای مثال زمانی رخ می‌دهد که گراف بیش از یک ورودی و/یا خروجی داشته باشد، یا زمانی که نوع استریم خروجی با ورودی متفاوت باشد. فیلترگراف‌های پیچیده با گزینه \fB\-filter_complex\fR پیکربندی می‌شوند. توجه کنید که این گزینه عمومی است، زیرا یک فیلترگراف پیچیده ماهیتاً نمی‌تواند به طور بدون ابهام به یک استریم یا فایل منفرد مرتبط شود. هر نمونه از \fB\-filter_complex\fR یک فیلترگراف پیچیده جدید ایجاد می‌کند، و هر تعداد از آن‌ها می‌تواند وجود داشته باشد. .PP یک مثال ساده از فیلترگراف پیچیده، فیلتر \f(CW\*(C`overlay\*(C'\fR است که دو ورودی ویدیو و یک خروجی ویدیو دارد و شامل یک ویدیو هم‌پوشانی‌شده بر روی ویدیوی دیگر است. معادل صوتی آن فیلتر \f(CW\*(C`amix\*(C'\fR می‌باشد. .SS "Loopback decoders" .IX Subsection "Loopback decoders" در حالی که دیکودرها معمولاً با استریم‌های دی‌ماکسر مرتبط هستند، همچنین امکان ایجاد دیکودرهای "بازگشتی" (loopback) وجود دارد که خروجی یک انکودر را رمزگشایی کرده و اجازه می‌دهند تا دوباره به فیلترگراف‌های پیچیده تغذیه شود. این کار با دستورالعمل \f(CW\*(C`\-dec\*(C'\fR انجام می‌گیرد، که اندیس استریم خروجی که باید دیکود شود را به عنوان پارامتر می‌پذیرد. هر یک از این دستورالعمل‌ها یک دیکودر بازگشتی جدید ایجاد می‌کند که با اعداد صحیح متوالی با شروع از صفر شماره‌گذاری می‌شوند. این اندیس‌ها سپس باید برای ارجاع به دیکودرهای بازگشتی در برچسب‌های پیوند فیلترگراف‌های پیچیده استفاده شوند، همان‌گونه که در مستندات \fB\-filter_complex\fR توضیح داده شده است. .PP گزینه‌های AVOptions دیکودینگ را می‌توان با قرار دادن آن‌ها پیش از \f(CW\*(C`\-dec\*(C'\fR به دیکودرهای بازگشتی ارسال نمود، مشابه با گزینه‌های ورودی/خروجی. .PP برای مثال، دستور زیر: .PP .Vb 5 \& ffmpeg \-i INPUT \e \& \-map 0:v:0 \-c:v libx264 \-crf 45 \-f null \- \e \& \-threads 3 \-dec 0:0 \e \& \-filter_complex \*(Aq[0:v][dec:0]hstack[stack]\*(Aq \e \& \-map \*(Aq[stack]\*(Aq \-c:v ffv1 OUTPUT .Ve .PP یک ویدیوی ورودی را می‌خواند و: .IP \(bu 4 (خط ۲) آن را با \f(CW\*(C`libx264\*(C'\fR با کیفیت پایین انکود می‌کند؛ .IP \(bu 4 (خط ۳) این استریم انکودشده را با استفاده از ۳ ریسه (threads) دیکود می‌نماید؛ .IP \(bu 4 (خط ۴) ویدیوی دیکودشده را در کنار ویدیوی ورودی اصلی قرار می‌دهد؛ .IP \(bu 4 (خط ۵) ویدیوی ترکیبی سپس به صورت بدون اتلاف (lossless) انکود شده و در \fIOUTPUT\fR نوشته می‌شود. .PP چنین پایپ‌لاین ترنسکدینگی را می‌توان با نمودار زیر نمایش داد: .PP .Vb 10 \& ┌──────────┬───────────────┐ \& │ demuxer │ │ ┌─────────┐ ┌─────────┐ ┌────────────────────┐ \& ╞══════════╡ video stream │ │ video │ │ video │ │ null muxer │ \& │ INPUT │ ├──►│ decoder ├──┬────────►│ encoder ├─┬─►│(discards its input)│ \& │ │ │ └─────────┘ │ │(libx264)│ │ └────────────────────┘ \& └──────────┴───────────────┘ │ └─────────┘ │ \& ╭───────◄──╯ ┌─────────┐ │ \& │ │loopback │ │ \& │ ╭─────◄──────┤ decoder ├────◄──╯ \& │ │ └─────────┘ \& │ │ \& │ │ \& │ │ ┌───────────────────┐ \& │ │ │complex filtergraph│ \& │ │ ╞═══════════════════╡ \& │ │ │ ┌─────────────┐ │ \& ╰─╫─►├─►│ hstack ├─►├╮ \& ╰─►├─►│ │ ││ \& │ └─────────────┘ ││ \& └───────────────────┘│ \& │ \& ┌──────────┬───────────────┐ ┌─────────┐ │ \& │ muxer │ │ │ video │ │ \& ╞══════════╡ video stream │◄─┤ encoder ├───────◄──────────╯ \& │ OUTPUT │ │ │ (ffv1) │ \& │ │ │ └─────────┘ \& └──────────┴───────────────┘ .Ve .SH "انتخاب استریم (STREAM SELECTION)" .IX Header "STREAM SELECTION" دستور \fBffmpeg\fR گزینه \f(CW\*(C`\-map\*(C'\fR را برای کنترل دستی انتخاب استریم‌ها در هر فایل خروجی فراهم ساخته است. کاربران می‌توانند از \f(CW\*(C`\-map\*(C'\fR صرف‌نظر کنند تا ffmpeg انتخاب خودکار استریم‌ها را به شرح زیر انجام دهد. گزینه‌های \f(CW\*(C`\-vn / \-an / \-sn / \-dn\*(C'\fR می‌توانند برای صرف‌نظر کردن از گنجاندن استریم‌های ویدیو، صدا، زیرنویس و داده استفاده شوند، خواه به صورت دستی نگاشت شده باشند یا به صورت خودکار انتخاب شده باشند؛ به جز استریم‌هایی که خروجی فیلترگراف‌های پیچیده هستند. .SS "توضیحات (Description)" .IX Subsection "Description" زیربخش‌های زیر قواعد مختلف دخیل در انتخاب استریم را تشریح می‌کنند. مثال‌های پس از آن نشان می‌دهند که چگونه این قواعد در عمل به کار گرفته می‌شوند. .PP اگرچه نهایت تلاش برای بازتاب دقیق رفتار برنامه صورت گرفته است، اما FFmpeg به طور مداوم در حال توسعه است و ممکن است کد از زمان نگارش این متن تغییر کرده باشد. .PP \fIانتخاب خودکار استریم (Automatic stream selection)\fR .IX Subsection "Automatic stream selection" .PP در صورت عدم وجود هرگونه گزینه map برای یک فایل خروجی خاص، ffmpeg قالب خروجی را بررسی می‌کند تا ببیند چه انواعی از استریم‌ها می‌توانند در آن گنجانده شوند، یعنی ویدیو، صدا و/یا زیرنویس. برای هر نوع استریم قابل قبول، ffmpeg در صورت وجود، یک استریم را از میان تمام ورودی‌ها برمی‌گزیند. .PP برنامه آن استریم را بر اساس معیارهای زیر انتخاب خواهد کرد: .IP \(bu 4 برای ویدیو، استریمی است که بالاترین وضوح (resolution) را دارد، .IP \(bu 4 برای صدا، استریمی است که بیشترین تعداد کانال را دارد، .IP \(bu 4 برای زیرنویس، اولین استریم زیرنویس یافت‌شده است، اما یک نکته وجود دارد: انکودر پیش‌فرض زیرنویسِ قالب خروجی می‌تواند مبتنی بر متن یا تصویر باشد، و تنها یک استریم زیرنویس از همان نوع برگزیده خواهد شد. .PP در حالتی که چندین استریم از یک نوع دارای رتبه برابر باشند، استریمی که کمترین اندیس را دارد انتخاب می‌شود. .PP استریم‌های داده یا پیوست‌ها به صورت خودکار انتخاب نمی‌شوند و تنها می‌توانند با استفاده از \f(CW\*(C`\-map\*(C'\fR گنجانده شوند. .PP \fIانتخاب دستی استریم (Manual stream selection)\fR .IX Subsection "Manual stream selection" .PP هنگامی که از \f(CW\*(C`\-map\*(C'\fR استفاده می‌شود، منحصراً استریم‌های نگاشت‌شده توسط کاربر در آن فایل خروجی گنجانده می‌شوند، با یک استثنای احتمالی برای خروجی‌های فیلترگراف که در ادامه شرح داده شده است. .PP \fIفیلترگراف‌های پیچیده (Complex filtergraphs)\fR .IX Subsection "Complex filtergraphs" .PP چنانچه خروجی‌های فیلترگراف پیچیده‌ای دارای پایه‌های (pads) بدون برچسب باشند، به اولین فایل خروجی اضافه خواهند شد. اگر نوع استریم توسط قالب خروجی پشتیبانی نشود، این امر منجر به خطای مرگبار (fatal error) می‌گردد. در صورت عدم وجود گزینه map، گنجاندن این استریم‌ها سبب صرف‌نظر کردن از انتخاب خودکار استریم‌های هم‌نوع آن‌ها می‌شود. اگر گزینه‌های map حضور داشته باشند، این استریم‌های فیلترگراف علاوه بر استریم‌های نگاشت‌شده افزوده می‌گردند. .PP استریم‌های خروجی فیلترگراف پیچیده با پایه‌های برچسب‌دار باید دقیقاً یک بار نگاشت شوند. .PP \fIمدیریت استریم (Stream handling)\fR .IX Subsection "Stream handling" .PP مدیریت استریم مستقل از انتخاب استریم است، به استثنای زیرنویس‌ها که در زیر توضیح داده شده است. مدیریت استریم از طریق گزینه \f(CW\*(C`\-codec\*(C'\fR که به استریم‌های درون یک فایل \fIخروجی\fR خاص اشاره دارد تنظیم می‌شود. به ویژه، گزینه‌های کدک توسط ffmpeg پس از فرایند انتخاب استریم اعمال می‌گردند و بنابراین تأثیری بر انتخاب ندارند. اگر هیچ گزینه \f(CW\*(C`\-codec\*(C'\fR برای یک نوع استریم مشخص نشده باشد، ffmpeg انکودر پیش‌فرض ثبت‌شده توسط ماکسر فایل خروجی را برمی‌گزیند. .PP یک استثنا برای زیرنویس‌ها وجود دارد. اگر یک انکودر زیرنویس برای یک فایل خروجی تعیین شود، نخستین استریم زیرنویس یافت‌شده از هر نوع (متنی یا تصویری) گنجانده خواهد شد. ابزار ffmpeg بررسی نمی‌کند که آیا انکودر مشخص‌شده قادر به تبدیل استریم انتخاب‌شده است یا این‌که آیا استریم تبدیل‌شده درون قالب خروجی قابل قبول است یا خیر. این نکته به طور کلی نیز صدق می‌کند: هنگامی که کاربر انکودری را به صورت دستی تنظیم می‌کند، فرایند انتخاب استریم نمی‌تواند بررسی کند که آیا استریم انکودشده می‌تواند درون فایل خروجی ماکس (mux) شود یا نه. اگر نتواند، ffmpeg متوقف خواهد شد و پردازش \fIتمامی\fR فایل‌های خروجی با شکست مواجه می‌شود. .SS "مثال‌ها (Examples)" .IX Subsection "Examples" مثال‌های زیر رفتار، ظرافت‌ها و محدودیت‌های روش‌های انتخاب استریم در ffmpeg را به تصویر می‌کشند. .PP این مثال‌ها سه فایل ورودی زیر را مفروض می‌دارند. .PP .Vb 3 \& input file \*(AqA.avi\*(Aq \& stream 0: video 640x360 \& stream 1: audio 2 channels \& \& input file \*(AqB.mp4\*(Aq \& stream 0: video 1920x1080 \& stream 1: audio 2 channels \& stream 2: subtitles (text) \& stream 3: audio 5.1 channels \& stream 4: subtitles (text) \& \& input file \*(AqC.mkv\*(Aq \& stream 0: video 1280x720 \& stream 1: audio 2 channels \& stream 2: subtitles (image) .Ve .PP مثال: انتخاب خودکار استریم (automatic stream selection) .IX Subsection "Example: automatic stream selection" .PP .Vb 1 \& ffmpeg \-i A.avi \-i B.mp4 out1.mkv out2.wav \-map 1:a \-c:a copy out3.mov .Ve .PP سه فایل خروجی مشخص شده است، و برای دو فایل نخست، هیچ گزینه \f(CW\*(C`\-map\*(C'\fR تنظیم نشده است، بنابراین ffmpeg استریم‌ها را برای این دو فایل به صورت خودکار انتخاب می‌کند. .PP فایل \fIout1.mkv\fR یک فایل کانتینر ماتروشکا است و استریم‌های ویدیو، صدا و زیرنویس را می‌پذیرد، بنابراین ffmpeg تلاش می‌کند از هر نوع یک استریم برگزیند. برای ویدیو، \f(CW\*(C`stream 0\*(C'\fR از \fIB.mp4\fR را انتخاب خواهد کرد که بالاترین رزولوشن را در میان تمام استریم‌های ویدیوی ورودی داراست. برای صدا، \f(CW\*(C`stream 3\*(C'\fR از \fIB.mp4\fR را برمی‌گزیند، زیرا بیشترین تعداد کانال را دارد. برای زیرنویس، \f(CW\*(C`stream 2\*(C'\fR از \fIB.mp4\fR را انتخاب خواهد کرد که نخستین استریم زیرنویس از میان \fIA.avi\fR و \fIB.mp4\fR است. .PP فایل \fIout2.wav\fR تنها استریم‌های صوتی را می‌پذیرد، بنابراین فقط \f(CW\*(C`stream 3\*(C'\fR از \fIB.mp4\fR انتخاب می‌گردد. .PP برای \fIout3.mov\fR، از آن‌جا که گزینه \f(CW\*(C`\-map\*(C'\fR تنظیم شده است، هیچ انتخاب خودکار استریمی رخ نخواهد داد. گزینه \f(CW\*(C`\-map 1:a\*(C'\fR تمام استریم‌های صوتی را از دومین ورودی یعنی \fIB.mp4\fR انتخاب می‌کند. هیچ استریم دیگری در این فایل خروجی گنجانده نخواهد شد. .PP برای دو خروجی اول، تمامی استریم‌های گنجانده‌شده ترنسکد خواهند شد. انکودرهای برگزیده‌شده همان موارد پیش‌فرضی خواهند بود که توسط هر قالب خروجی ثبت شده‌اند، که ممکن است با کدک استریم‌های ورودی انتخاب‌شده مطابقت نداشته باشند. .PP برای خروجی سوم، گزینه کدک برای استریم‌های صوتی روی \f(CW\*(C`copy\*(C'\fR تنظیم شده است، بنابراین هیچ عملیات دیکود-فیلتر-انکودی انجام نخواهد شد، یا \fIنمی‌تواند\fR انجام شود. بسته‌های استریم‌های انتخاب‌شده از فایل ورودی منتقل شده و درون فایل خروجی ماکس می‌شوند. .PP مثال: انتخاب خودکار زیرنویس‌ها (automatic subtitles selection) .IX Subsection "Example: automatic subtitles selection" .PP .Vb 1 \& ffmpeg \-i C.mkv out1.mkv \-c:s dvdsub \-an out2.mkv .Ve .PP اگرچه \fIout1.mkv\fR یک فایل کانتینر ماتروشکا است که استریم‌های زیرنویس را می‌پذیرد، تنها یک استریم ویدیو و یک استریم صدا انتخاب خواهند شد. استریم زیرنویسِ \fIC.mkv\fR تصویری است و انکودر پیش‌فرض زیرنویس در ماکسر ماتروشکا متنی است، بنابراین انتظار می‌رود عملیات ترنسکد برای زیرنویس با شکست مواجه شود و در نتیجه این استریم انتخاب نمی‌شود. با این حال، در \fIout2.mkv\fR، یک انکودر زیرنویس در خط فرمان مشخص شده است و بنابراین، استریم زیرنویس علاوه بر استریم ویدیو انتخاب می‌گردد. حضور گزینه \f(CW\*(C`\-an\*(C'\fR انتخاب استریم صوتی را برای \fIout2.mkv\fR غیرفعال می‌سازد. .PP مثال: خروجی‌های بدون برچسب فیلترگراف (unlabeled filtergraph outputs) .IX Subsection "Example: unlabeled filtergraph outputs" .PP .Vb 1 \& ffmpeg \-i A.avi \-i C.mkv \-i B.mp4 \-filter_complex "overlay" out1.mp4 out2.srt .Ve .PP در اینجا یک فیلترگراف با استفاده از گزینه \f(CW\*(C`\-filter_complex\*(C'\fR برپا شده است و از یک فیلتر ویدیویی منفرد تشکیل می‌شود. فیلتر \f(CW\*(C`overlay\*(C'\fR دقیقاً به دو ورودی ویدیویی نیاز دارد، اما هیچ ورودی مشخص نشده است، بنابراین از دو استریم ویدیویی در دسترس نخست استفاده می‌شود، یعنی استریم‌های مربوط به \fIA.avi\fR و \fIC.mkv\fR. پایه خروجی فیلتر برچسبی ندارد و بنابراین به نخستین فایل خروجی یعنی \fIout1.mp4\fR ارسال می‌گردد. به همین دلیل، از انتخاب خودکار استریم ویدیو که استریم موجود در \fIB.mp4\fR را برمی‌گزید صرف‌نظر می‌شود. استریم صوتی با بیشترین کانال یعنی \f(CW\*(C`stream 3\*(C'\fR در \fIB.mp4\fR به صورت خودکار انتخاب می‌شود. با این حال هیچ استریم زیرنویسی انتخاب نمی‌شود، زیرا قالب MP4 انکودر پیش‌فرضی برای زیرنویس ثبت نکرده است و کاربر نیز انکودر زیرنویس تعیین ننموده است. .PP فایل خروجی دوم، \fIout2.srt\fR، تنها استریم‌های زیرنویس متنی را می‌پذیرد. بنابراین، اگرچه اولین استریم زیرنویسِ در دسترس متعلق به \fIC.mkv\fR است، اما تصویری بوده و از آن صرف‌نظر می‌شود. استریم انتخاب‌شده، یعنی \f(CW\*(C`stream 2\*(C'\fR در \fIB.mp4\fR، نخستین استریم زیرنویس متنی است. .PP مثال: خروجی‌های برچسب‌دار فیلترگراف (labeled filtergraph outputs) .IX Subsection "Example: labeled filtergraph outputs" .PP .Vb 4 \& ffmpeg \-i A.avi \-i B.mp4 \-i C.mkv \-filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \e \& \-map \*(Aq[outv]\*(Aq \-an out1.mp4 \e \& out2.mkv \e \& \-map \*(Aq[outv]\*(Aq \-map 1:a:0 out3.mkv .Ve .PP دستور بالا شکست خواهد خورد، زیرا پایه خروجی برچسب‌گذاری‌شده با \f(CW\*(C`[outv]\*(C'\fR دو بار نگاشت شده است. هیچ‌یک از فایل‌های خروجی پردازش نخواهند شد. .PP .Vb 4 \& ffmpeg \-i A.avi \-i B.mp4 \-i C.mkv \-filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \e \& \-an out1.mp4 \e \& out2.mkv \e \& \-map 1:a:0 out3.mkv .Ve .PP این دستور بالا نیز شکست خواهد خورد چرا که خروجی فیلتر hue دارای برچسب \f(CW\*(C`[outv]\*(C'\fR است و به هیچ مقصدی نگاشت نشده است. .PP دستور باید به شکل زیر اصلاح شود: .PP .Vb 4 \& ffmpeg \-i A.avi \-i B.mp4 \-i C.mkv \-filter_complex "[1:v]hue=s=0,split=2[outv1][outv2];overlay;aresample" \e \& \-map \*(Aq[outv1]\*(Aq \-an out1.mp4 \e \& out2.mkv \e \& \-map \*(Aq[outv2]\*(Aq \-map 1:a:0 out3.mkv .Ve .PP استریم ویدیو از \fIB.mp4\fR به فیلتر hue فرستاده می‌شود که خروجی آن با استفاده از فیلتر split یک بار کلون (تکثیر) شده و هر دو خروجی برچسب‌گذاری می‌شوند. سپس یک نسخه به فایل خروجی اول و نسخه دیگر به فایل خروجی سوم نگاشت می‌گردد. .PP فیلتر overlay که نیازمند دو ورودی ویدیو است، از دو استریم ویدیویی استفاده‌نشده اول بهره می‌گیرد. این‌ها استریم‌های مربوط به \fIA.avi\fR و \fIC.mkv\fR هستند. خروجی overlay برچسبی ندارد، بنابراین صرف‌نظر از حضور گزینه \f(CW\*(C`\-map\*(C'\fR به نخستین فایل خروجی یعنی \fIout1.mp4\fR ارسال می‌شود. .PP به فیلتر aresample نخستین استریم صوتی استفاده‌نشده، یعنی استریم متعلق به \fIA.avi\fR ارسال می‌گردد. از آنجا که این خروجی فیلتر نیز بدون برچسب است، آن نیز به نخستین فایل خروجی نگاشت می‌شود. حضور گزینه \f(CW\*(C`\-an\*(C'\fR تنها مانع از انتخاب خودکار یا دستی استریم‌های صوتی می‌شود، نه خروجی‌های ارسالی از فیلترگراف‌ها. هر دوی این استریم‌های نگاشت‌شده پیش از استریم نگاشت‌شده در \fIout1.mp4\fR مرتب خواهند شد. .PP استریم‌های ویدیو، صدا و زیرنویس نگاشت‌شده به \f(CW\*(C`out2.mkv\*(C'\fR کاملاً بر اساس انتخاب خودکار استریم تعیین می‌شوند. .PP \&\fIout3.mkv\fR شامل خروجی ویدیویی کلون‌شده از فیلتر hue و نخستین استریم صوتی از \fIB.mp4\fR است. .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 گزینه‌هایی که آرگومان دریافت نمی‌کنند، گزینه‌های بولی (boolean) هستند و مقدار متناظر را روی true تنظیم می‌نمایند. می‌توان آن‌ها را با افزودن پیشوند "no" به ابتدای نام گزینه روی false تنظیم کرد. برای نمونه، استفاده از "\-nofoo" گزینه بولی با نام "foo" را روی false قرار می‌دهد. .PP گزینه‌هایی که آرگومان می‌پذیرند، از ساختار ویژه‌ای پشتیبانی می‌کنند که در آن آرگومان ارائه‌شده در خط فرمان به عنوان مسیر فایلی تفسیر می‌شود که مقدار واقعی آرگومان از آن بارگذاری می‌گردد. برای استفاده از این قابلیت، یک اسلش \*(Aq/\*(Aq بلافاصله پیش از نام گزینه (پس از خط‌تیره ابتدایی) اضافه کنید. برای مثال: .PP .Vb 1 \& ffmpeg \-i INPUT \-/filter:v filter.script OUTPUT .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 توجه داشته باشید که در \fBffmpeg\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\-f\fR \fIfmt\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-f fmt (input/output)" اجبار قالب فایل ورودی یا خروجی. قالب معمولاً برای فایل‌های ورودی به طور خودکار تشخیص داده می‌شود و برای فایل‌های خروجی از پسوند فایل حدس زده می‌شود، بنابراین این گزینه در بیشتر موارد مورد نیاز نیست. .IP "\fB\-i\fR \fIurl\fR \fB(\fR\fIinput\fR\fB)\fR" 4 .IX Item "-i url (input)" آدرس یا مسیر فایل ورودی .IP "\fB\-y (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-y (global)" بازنویسی فایل‌های خروجی بدون پرسش از کاربر. .IP "\fB\-n (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-n (global)" عدم بازنویسی فایل‌های خروجی، و خروج فوری در صورتی که فایل خروجی مشخص‌شده از قبل وجود داشته باشد. .IP "\fB\-stream_loop\fR \fInumber\fR \fB(\fR\fIinput\fR\fB)\fR" 4 .IX Item "-stream_loop number (input)" تنظیم تعداد دفعاتی که استریم ورودی باید تکرار (loop) شود. مقدار 0 به معنای عدم تکرار و \-1 به معنای حلقه نامحدود است. .IP "\fB\-recast_media (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-recast_media (global)" امکان اجبار یک دیکودر از نوع رسانه‌ای متفاوت با آنچه توسط دی‌ماکسر شناسایی یا تعیین شده است. برای دیکود کردن داده‌های رسانه‌ای که به عنوان استریم‌های داده ماکس شده‌اند مفید است. .IP "\fB\-c[:\fR\fIstream_specifier\fR\fB]\fR \fIcodec\fR \fB(\fR\fIinput/output,per\-stream\fR\fB)\fR" 4 .IX Item "-c[:stream_specifier] codec (input/output,per-stream)" .PD 0 .IP "\fB\-codec[:\fR\fIstream_specifier\fR\fB]\fR \fIcodec\fR \fB(\fR\fIinput/output,per\-stream\fR\fB)\fR" 4 .IX Item "-codec[:stream_specifier] codec (input/output,per-stream)" .PD انتخاب یک انکودر (هنگامی که پیش از یک فایل خروجی استفاده شود) یا یک دیکودر (هنگامی که پیش از یک فایل ورودی استفاده شود) برای یک یا چند استریم. پارامتر \fIcodec\fR نام یک دیکودر/انکودر است یا مقدار ویژه \f(CW\*(C`copy\*(C'\fR (تنها در خروجی) برای این‌که مشخص کند استریم نباید مجدداً انکود شود. .Sp برای مثال .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0 \-c:v libx264 \-c:a copy OUTPUT .Ve .Sp تمام استریم‌های ویدیو را با libx264 انکود کرده و تمام استریم‌های صوتی را کپی می‌کند. .Sp برای هر استریم، آخرین گزینه \f(CW\*(C`c\*(C'\fR منطبق اعمال می‌شود، بنابراین .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0 \-c copy \-c:v:1 libx264 \-c:a:137 libvorbis OUTPUT .Ve .Sp تمامی استریم‌ها را به جز دومین استریم ویدیو (که با libx264 انکود می‌شود) و صد و سی و هشتمین استریم صوتی (که با libvorbis انکود می‌گردد) کپی خواهد کرد. .IP "\fB\-t\fR \fIduration\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-t duration (input/output)" هنگامی که به عنوان گزینه ورودی استفاده شود (پیش از \f(CW\*(C`\-i\*(C'\fR)، مدت‌زمان داده خوانده‌شده از فایل ورودی را محدود می‌کند. .Sp هنگامی که به عنوان گزینه خروجی استفاده شود (پیش از آدرس خروجی)، پس از رسیدن مدت‌زمان آن به \fIduration\fR نوشتن خروجی را متوقف می‌سازد. .Sp پارامتر \fIduration\fR باید مشخص‌کننده مدت‌زمان باشد، به \fBبخش Time duration در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .Sp گزینه‌های \-to و \-t مانعه‌الجمع هستند و \-t اولویت دارد. .IP "\fB\-to\fR \fIposition\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-to position (input/output)" توقف نوشتن خروجی یا خواندن ورودی در موقعیت زمانی \fIposition\fR. پارامتر \fIposition\fR باید مشخص‌کننده مدت‌زمان باشد، به \fBبخش Time duration در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .Sp گزینه‌های \-to و \-t مانعه‌الجمع هستند و \-t اولویت دارد. .IP "\fB\-fs\fR \fIlimit_size\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-fs limit_size (output)" تنظیم سقف حجم فایل خروجی بر حسب بایت. پس از فراتر رفتن از این سقف، هیچ بخش داده دیگری نوشته نمی‌شود. حجم فایل خروجی اندکی بیشتر از حجم درخواستی فایل خواهد بود. .IP "\fB\-ss\fR \fIposition\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-ss position (input/output)" هنگام استفاده به عنوان گزینه ورودی (پیش از \f(CW\*(C`\-i\*(C'\fR)، در فایل ورودی به موقعیت \fIposition\fR پرش زمانی (seek) انجام می‌دهد. توجه داشته باشید که در بیشتر قالب‌ها پرش زمانی دقیق ممکن نیست، بنابراین \fBffmpeg\fR به نزدیک‌ترین نقطه پرش پیش از \fIposition\fR می‌رود. هنگام ترنسکدینگ و زمانی که \fB\-accurate_seek\fR فعال باشد (پیش‌فرض)، این بخش اضافی میان نقطه پرش و \fIposition\fR دیکود شده و دور ریخته می‌شود. هنگام کپی استریم یا زمانی که \fB\-noaccurate_seek\fR استفاده شود، حفظ خواهد شد. .Sp هنگام استفاده به عنوان گزینه خروجی (پیش از آدرس خروجی)، ورودی را دیکود کرده اما داده‌ها را دور می‌ریزد تا برچسب‌های زمانی به \fIposition\fR برسند. .Sp پارامتر \fIposition\fR باید مشخص‌کننده مدت‌زمان باشد، به \fBبخش Time duration در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .IP "\fB\-sseof\fR \fIposition\fR \fB(\fR\fIinput\fR\fB)\fR" 4 .IX Item "-sseof position (input)" مشابه با گزینه \f(CW\*(C`\-ss\*(C'\fR اما نسبت به "انتهای فایل". به این معنا که مقادیر منفی نقاط پیش از پایان فایل هستند و 0 دقیقاً در انتهای فایل است. .IP "\fB\-isync\fR \fIinput_index\fR \fB(\fR\fIinput\fR\fB)\fR" 4 .IX Item "-isync input_index (input)" تعیین یک ورودی به عنوان منبع همگام‌سازی (sync source). .Sp این گزینه تفاوت میان زمان‌های آغازین ورودی‌های هدف و مرجع را محاسبه کرده و برچسب‌های زمانی فایل هدف را با آن تفاوت آفست می‌دهد. برچسب‌های زمانی منبع دو ورودی برای نتایج مورد انتظار باید از یک منبع ساعت مشتق شوند. اگر \f(CW\*(C`copyts\*(C'\fR تنظیم شده باشد، \f(CW\*(C`start_at_zero\*(C'\fR نیز باید تنظیم گردد. اگر هر یک از ورودی‌ها فاقد برچسب زمانی آغازین باشند، هیچ تنظیم همگام‌سازی انجام نمی‌گیرد. .Sp مقادیر قابل قبول مواردی هستند که به یک اندیس معتبر ورودی در ffmpeg اشاره دارند. اگر مرجع همگام‌سازی خود اندیس هدف یا \fI\-1\fR باشد، هیچ تنظیمی روی برچسب‌های زمانی هدف صورت نمی‌گیرد. یک مرجع همگام‌سازی نباید خود با هیچ ورودی دیگری همگام شده باشد. .Sp مقدار پیش‌فرض \fI\-1\fR است. .IP "\fB\-itsoffset\fR \fIoffset\fR \fB(\fR\fIinput\fR\fB)\fR" 4 .IX Item "-itsoffset offset (input)" تنظیم آفست زمانی ورودی. .Sp پارامتر \fIoffset\fR باید مشخص‌کننده مدت‌زمان باشد، به \fBبخش Time duration در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .Sp این آفست به برچسب‌های زمانی فایل‌های ورودی اضافه می‌شود. تعیین یک آفست مثبت به این معناست که استریم‌های متناظر به میزان مدت‌زمان تعیین‌شده در \fIoffset\fR به تأخیر می‌افتند. .IP "\fB\-itsscale\fR \fIscale\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-itsscale scale (input,per-stream)" تغییر مقیاس برچسب‌های زمانی ورودی. پارامتر \fIscale\fR باید یک عدد ممیز شناور باشد. .IP "\fB\-timestamp\fR \fIdate\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-timestamp date (output)" تنظیم برچسب زمانی ضبط در کانتینر. .Sp پارامتر \fIdate\fR باید مشخص‌کننده تاریخ باشد، به \fBبخش Date در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .IP "\fB\-metadata[:metadata_specifier]\fR \fIkey\fR\fB=\fR\fIvalue\fR \fB(\fR\fIoutput,per\-metadata\fR\fB)\fR" 4 .IX Item "-metadata[:metadata_specifier] key=value (output,per-metadata)" تنظیم یک جفت کلید/مقدار در متادیتا. .Sp پارامتر اختیاری \fImetadata_specifier\fR می‌تواند برای تنظیم متادیتا روی استریم‌ها، فصل‌ها یا برنامه‌ها داده شود. برای جزئیات به مستندات \f(CW\*(C`\-map_metadata\*(C'\fR مراجعه کنید. .Sp این گزینه بر متادیتای تنظیم‌شده با \f(CW\*(C`\-map_metadata\*(C'\fR اولویت دارد و آن را لغو می‌کند. همچنین حذف متادیتا با استفاده از یک مقدار خالی امکان‌پذیر است. .Sp برای مثال، جهت تنظیم عنوان در فایل خروجی: .Sp .Vb 1 \& ffmpeg \-i in.avi \-metadata title="my title" out.flv .Ve .Sp جهت تنظیم زبان نخستین استریم صوتی: .Sp .Vb 1 \& ffmpeg \-i INPUT \-metadata:s:a:0 language=eng OUTPUT .Ve .IP "\fB\-disposition[:stream_specifier]\fR \fIvalue\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-disposition[:stream_specifier] value (output,per-stream)" تنظیم فلگ‌های وضعیت (disposition) برای یک استریم. .Sp مقدار پیش‌فرض: به طور پیش‌فرض، تمامی فلگ‌های disposition از استریم ورودی کپی می‌شوند، مگر این‌که استریم خروجی که این گزینه بر آن اعمال می‌شود از یک فیلترگراف پیچیده تغذیه شود \- در این صورت هیچ فلگی به طور پیش‌فرض تنظیم نمی‌گردد. .Sp پارامتر \fIvalue\fR دنباله‌ای از فلگ‌های disposition جداشده با \*(Aq+\*(Aq یا \*(Aq\-\*(Aq است. یک پیشوند \*(Aq+\*(Aq فلگ داده‌شده را اضافه می‌کند و \*(Aq\-\*(Aq آن را حذف می‌نماید. اگر فلگ اول نیز دارای پیشوند \*(Aq+\*(Aq یا \*(Aq\-\*(Aq باشد، وضعیت حاصل همان مقدار پیش‌فرض به‌روزشده با \fIvalue\fR است. اگر فلگ اول پیشوند نداشته باشد، وضعیت حاصل همان \fIvalue\fR خواهد بود. همچنین می‌توان با تنظیم آن روی 0 وضعیت را پاک کرد. .Sp اگر هیچ گزینه \f(CW\*(C`\-disposition\*(C'\fR برای یک فایل خروجی مشخص نشده باشد، ffmpeg به طور خودکار فلگ \*(Aqdefault\*(Aq را روی نخستین استریم از هر نوع تنظیم می‌کند، زمانی که چندین استریم از این نوع در فایل خروجی وجود داشته باشند و هیچ استریمی از آن نوع از قبل به عنوان پیش‌فرض علامت‌گذاری نشده باشد. .Sp گزینه \f(CW\*(C`\-dispositions\*(C'\fR فلگ‌های disposition شناخته‌شده را فهرست می‌کند. .Sp برای مثال، جهت قرار دادن دومین استریم صوتی به عنوان استریم پیش‌فرض: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-c copy \-disposition:a:1 default out.mkv .Ve .Sp جهت پیش‌فرض قرار دادن دومین استریم زیرنویس و حذف وضعیت پیش‌فرض از نخستین استریم زیرنویس: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-c copy \-disposition:s:0 0 \-disposition:s:1 default out.mkv .Ve .Sp جهت افزودن یک طرح جلد/تصویر بندانگشتی تعبیه‌شده: .Sp .Vb 1 \& ffmpeg \-i in.mp4 \-i IMAGE \-map 0 \-map 1 \-c copy \-c:v:1 png \-disposition:v:1 attached_pic out.mp4 .Ve .Sp جهت افزودن فلگ \*(Aqoriginal\*(Aq و حذف فلگ \*(Aqcomment\*(Aq از نخستین استریم صوتی بدون حذف سایر فلگ‌های آن: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-c copy \-disposition:a:0 +original\-comment out.mkv .Ve .Sp جهت حذف فلگ \*(Aqoriginal\*(Aq و افزودن فلگ \*(Aqcomment\*(Aq به نخستین استریم صوتی بدون حذف سایر فلگ‌های آن: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-c copy \-disposition:a:0 \-original+comment out.mkv .Ve .Sp جهت تنظیم انحصاری فلگ‌های \*(Aqoriginal\*(Aq و \*(Aqcomment\*(Aq بر روی نخستین استریم صوتی (و حذف سایر فلگ‌های آن): .Sp .Vb 1 \& ffmpeg \-i in.mkv \-c copy \-disposition:a:0 original+comment out.mkv .Ve .Sp جهت حذف تمام فلگ‌های disposition از نخستین استریم صوتی: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-c copy \-disposition:a:0 0 out.mkv .Ve .Sp همه ماکسرها از تصاویر بندانگشتی تعبیه‌شده پشتیبانی نمی‌کنند، و آن‌هایی هم که پشتیبانی می‌کنند تنها تعداد معدودی فرمت مانند JPEG یا PNG را می‌پذیرند. .IP "\fB\-program [title=\fR\fItitle\fR\fB:][program_num=\fR\fIprogram_num\fR\fB:]st=\fR\fIstream\fR\fB[:st=\fR\fIstream\fR\fB...] (\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-program [title=title:][program_num=program_num:]st=stream[:st=stream...] (output)" یک برنامه با \fItitle\fR و \fIprogram_num\fR مشخص‌شده ایجاد کرده و \fIstream\fR(های) تعیین‌شده را به آن اضافه می‌کند. .IP "\fB\-stream_group [map=\fR\fIinput_file_id\fR\fB=\fR\fIstream_group\fR\fB][type=\fR\fItype\fR\fB:]st=\fR\fIstream\fR\fB[:st=\fR\fIstream\fR\fB][:stg=\fR\fIstream_group\fR\fB][:id=\fR\fIstream_group_id\fR\fB...] (\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-stream_group [map=input_file_id=stream_group][type=type:]st=stream[:st=stream][:stg=stream_group][:id=stream_group_id...] (output)" یک گروه استریم از \fItype\fR و \fIstream_group_id\fR مشخص‌شده، یا از طریق \fImap\fRping یک گروه ورودی، و افزودن \fIstream\fR(ها) و/یا \fIstream_group\fR(های) قبلاً تعریف‌شده به آن ایجاد می‌کند. .Sp پارامتر \fItype\fR می‌تواند یکی از موارد زیر باشد: .RS 4 .IP \fBiamf_audio_element\fR 4 .IX Item "iamf_audio_element" گروه‌بندی \fIstream\fRهایی که متعلق به یک Audio Element یکسان در IAMF هستند .Sp برای این \fItype\fR گروه، گزینه‌های زیر در دسترس است: .RS 4 .IP \fBaudio_element_type\fR 4 .IX Item "audio_element_type" نوع Audio Element. مقادیر زیر پشتیبانی می‌شوند: .RS 4 .IP \fBchannel\fR 4 .IX Item "channel" نمایش صوتی کانال مقیاس‌پذیر (Scalable channel audio) .IP \fBscene\fR 4 .IX Item "scene" نمایش Ambisonics .RE .RS 4 .RE .IP \fBdemixing\fR 4 .IX Item "demixing" اطلاعات دیمیکس مورد استفاده برای بازسازی نمایش صوتی کانال مقیاس‌پذیر. این گزینه باید با یک \*(Aq,\*(Aq از سایرین جدا شود و گزینه‌های key=value زیر را می‌پذیرد: .RS 4 .IP \fBparameter_id\fR 4 .IX Item "parameter_id" شناسه‌ای که بلوک‌های پارامتر در فریم‌ها ممکن است به آن ارجاع دهند .IP \fBdmixp_mode\fR 4 .IX Item "dmixp_mode" ترکیب از پیش تعریف‌شده‌ای از پارامترهای دیمیکس .RE .RS 4 .RE .IP \fBrecon_gain\fR 4 .IX Item "recon_gain" اطلاعات بهره بازسازی (recon gain) مورد استفاده برای بازسازی نمایش صوتی کانال مقیاس‌پذیر. این گزینه باید با یک \*(Aq,\*(Aq از سایرین جدا شود و گزینه‌های key=value زیر را می‌پذیرد: .RS 4 .IP \fBparameter_id\fR 4 .IX Item "parameter_id" شناسه‌ای که بلوک‌های پارامتر در فریم‌ها ممکن است به آن ارجاع دهند .RE .RS 4 .RE .IP \fBlayer\fR 4 .IX Item "layer" لایه‌ای که یک چیدمان کانال را در Audio Element تعریف می‌کند. این گزینه باید با یک \*(Aq,\*(Aq از سایرین جدا شود. چندین ورودی جداشده با \*(Aq,\*(Aq می‌تواند تعریف شود، و حداقل یک ورودی باید تنظیم گردد. .Sp گزینه‌های key=value جداشده با ":" زیر را می‌پذیرد: .RS 4 .IP \fBch_layout\fR 4 .IX Item "ch_layout" چیدمان کانال لایه .IP \fBflags\fR 4 .IX Item "flags" فلگ‌های زیر در دسترس هستند: .RS 4 .IP \fBrecon_gain\fR 4 .IX Item "recon_gain" تعیین این‌که آیا وجود recon_gain به عنوان متادیتا در بلوک‌های پارامتر درون فریم‌ها سیگنال داده شود یا خیر .RE .RS 4 .RE .IP \fBoutput_gain\fR 4 .IX Item "output_gain" .PD 0 .IP \fBoutput_gain_flags\fR 4 .IX Item "output_gain_flags" .PD کانال‌هایی که output_gain بر آن‌ها اعمال می‌شود. فلگ‌های زیر در دسترس هستند: .RS 4 .IP \fBFL\fR 4 .IX Item "FL" .PD 0 .IP \fBFR\fR 4 .IX Item "FR" .IP \fBBL\fR 4 .IX Item "BL" .IP \fBBR\fR 4 .IX Item "BR" .IP \fBTFL\fR 4 .IX Item "TFL" .IP \fBTFR\fR 4 .IX Item "TFR" .PD .RE .RS 4 .RE .IP \fBambisonics_mode\fR 4 .IX Item "ambisonics_mode" حالت ambisonics. اگر audio_element_type روی channel تنظیم شده باشد، اثری ندارد. .Sp مقادیر زیر پشتیبانی می‌شوند: .RS 4 .IP \fBmono\fR 4 .IX Item "mono" هر کانال ambisonics به عنوان یک استریم مونو منفرد در گروه کدگذاری می‌شود .RE .RS 4 .RE .RE .RS 4 .RE .IP \fBdefault_w\fR 4 .IX Item "default_w" مقدار وزن پیش‌فرض .RE .RS 4 .RE .IP \fBiamf_mix_presentation\fR 4 .IX Item "iamf_mix_presentation" گروه‌بندی \fIstream\fRهایی که به تمامی عناصر صوتی IAMF مرتبط با ارجاع Mix Presentation یکسان در IAMF تعلق دارند .Sp برای این \fItype\fR گروه، گزینه‌های زیر در دسترس هستند: .RS 4 .IP \fBsubmix\fR 4 .IX Item "submix" یک زیرمیکس درون Mix Presentation. این گزینه باید با یک \*(Aq,\*(Aq از سایرین جدا شود. چندین ورودی جداشده با \*(Aq,\*(Aq می‌تواند تعریف شود، و حداقل یک ورودی باید تنظیم گردد. .Sp گزینه‌های key=value جداشده با ":" زیر را می‌پذیرد: .RS 4 .IP \fBparameter_id\fR 4 .IX Item "parameter_id" شناسه‌ای که بلوک‌های پارامتر در فریم‌ها ممکن است برای پس‌پردازش سیگنال صوتی میکس‌شده جهت تولید سیگنال صوتی برای پخش به آن ارجاع دهند .IP \fBparameter_rate\fR 4 .IX Item "parameter_rate" فیلدهای مدت نرخ نمونه در بلوک‌های پارامتر درون فریم‌ها که به این \fIparameter_id\fR ارجاع می‌دهند بر اساس آن بیان می‌شوند .IP \fBdefault_mix_gain\fR 4 .IX Item "default_mix_gain" مقدار بهره میکس پیش‌فرض برای اعمال زمانی که هیچ بلوک پارامتری دارای همان \fIparameter_id\fR برای یک فریم داده‌شده نباشد .IP \fBelement\fR 4 .IX Item "element" ارجاع به یک Audio Element مورد استفاده در این Mix Presentation برای تولید سیگنال صوتی خروجی نهایی جهت پخش. این گزینه باید با یک \*(Aq|\*(Aq از سایرین جدا شود. چندین ورودی جداشده با \*(Aq|\*(Aq می‌تواند تعریف شود، و حداقل یک ورودی باید تنظیم گردد. .Sp گزینه‌های key=value جداشده با ":" زیر را می‌پذیرد: .RS 4 .IP \fBstg\fR 4 .IX Item "stg" شناسه \fIstream_group_id\fR برای یک Audio Element که این زیرمیکس به آن ارجاع می‌دهد .IP \fBparameter_id\fR 4 .IX Item "parameter_id" شناسه‌ای که بلوک‌های پارامتر در فریم‌ها برای اعمال هرگونه پردازش بر روی Audio Element ارجاع داده‌شده و رندرشده پیش از جمع شدن با سایر عناصر صوتی پردازش‌شده ممکن است به آن ارجاع دهند .IP \fBparameter_rate\fR 4 .IX Item "parameter_rate" فیلدهای مدت نرخ نمونه در بلوک‌های پارامتر درون فریم‌ها که به این \fIparameter_id\fR ارجاع می‌دهند بر اساس آن بیان می‌شوند .IP \fBdefault_mix_gain\fR 4 .IX Item "default_mix_gain" مقدار بهره میکس پیش‌فرض برای اعمال در زمانی که هیچ بلوک پارامتری با همان \fIparameter_id\fR برای یک فریم داده‌شده وجود ندارد .IP \fBannotations\fR 4 .IX Item "annotations" یک رشته key=value که عنصر زیرمیکس را توصیف می‌کند که در آن "key" رشته‌ای منطبق بر BCP-47 است که زبان رشته "value" را مشخص می‌سازد. "key" باید همانند مقدار موجود در \fIannotations\fR میکس باشد .IP \fBheadphones_rendering_mode\fR 4 .IX Item "headphones_rendering_mode" نشان می‌دهد که آیا عنصر صوتی مبتنی بر کانال ورودی به بلندگوهای استریو رندر می‌شود یا هنگام پخش روی هدفون با یک رندرساز دوگوشی (binaural) فضاسازی (spatialize) می‌گردد. اگر \fIaudio_element_type\fR مربوط به عنصر صوتی ارجاع داده شده روی channel تنظیم شده باشد، اثری ندارد. .Sp مقادیر زیر پشتیبانی می‌شوند: .RS 4 .IP \fBstereo\fR 4 .IX Item "stereo" .PD 0 .IP \fBbinaural\fR 4 .IX Item "binaural" .PD .RE .RS 4 .RE .RE .RS 4 .RE .IP \fBlayout\fR 4 .IX Item "layout" چیدمان‌هایی را برای این زیرمیکس مشخص می‌کند که اطلاعات بلندی صدا بر روی آن‌ها اندازه‌گیری شده است. این گزینه باید با یک \*(Aq|\*(Aq از سایرین جدا شود. چندین ورودی جداشده با \*(Aq|\*(Aq می‌تواند تعریف شود، و حداقل یک ورودی باید تنظیم گردد. .Sp گزینه‌های key=value جداشده با ":" زیر را می‌پذیرد: .RS 4 .IP \fBlayout_type\fR 4 .IX Item "layout_type" .RS 4 .PD 0 .IP \fBloudspeakers\fR 4 .IX Item "loudspeakers" .PD چیدمان از استاندارد سیستم صوتی بلندگوی ITU\-2051\-3 پیروی می‌کند. .IP \fBbinaural\fR 4 .IX Item "binaural" چیدمان دوگوشی (binaural) است. .RE .RS 4 .RE .IP \fBsound_system\fR 4 .IX Item "sound_system" چیدمان کانال مطابق با یکی از سیستم‌های صوتی A تا J در ITU\-2051\-3، به علاوه 7.1.2 و 3.1.2. اگر \fIlayout_type\fR روی binaural تنظیم شده باشد، اثری ندارد. .IP \fBintegrated_loudness\fR 4 .IX Item "integrated_loudness" اطلاعات بلندی یکپارچه برنامه، طبق تعریف ITU\-1770\-4. .IP \fBdigital_peak\fR 4 .IX Item "digital_peak" مقدار پیک دیجیتال (نمونه‌برداری‌شده) سیگنال صوتی، طبق تعریف ITU\-1770\-4. .IP \fBtrue_peak\fR 4 .IX Item "true_peak" پیک واقعی سیگنال صوتی، طبق تعریف ITU\-1770\-4. .IP \fBdialog_anchored_loudness\fR 4 .IX Item "dialog_anchored_loudness" اطلاعات بلندی گفت‌وگو، طبق تعریف ITU\-1770\-4. .IP \fBalbum_anchored_loudness\fR 4 .IX Item "album_anchored_loudness" اطلاعات بلندی آلبوم، طبق تعریف ITU\-1770\-4. .RE .RS 4 .RE .RE .RS 4 .RE .IP \fBannotations\fR 4 .IX Item "annotations" یک رشته key=value که میکس را توصیف می‌کند که در آن "key" رشته‌ای منطبق بر BCP-47 است که زبان رشته "value" را مشخص می‌سازد. "key" باید با مقادیر موجود در تمامی \fIannotations\fRهای عناصر زیرمیکس یکسان باشد. .RE .RS 4 .RE .RE .RS 4 .Sp برای مثال جهت ایجاد یک فایل مقیاس‌پذیر 5.1 IAMF از چند فایل ورودی WAV: .Sp .Vb 10 \& ffmpeg \-i front.wav \-i back.wav \-i center.wav \-i lfe.wav \& \-map 0:0 \-map 1:0 \-map 2:0 \-map 3:0 \-c:a opus \& \-stream_group type=iamf_audio_element:id=1:st=0:st=1:st=2:st=3, \& demixing=parameter_id=998, \& recon_gain=parameter_id=101, \& layer=ch_layout=stereo, \& layer=ch_layout=5.1(side), \& \-stream_group type=iamf_mix_presentation:id=2:stg=0:annotations=en\-us=Mix_Presentation, \& submix=parameter_id=100:parameter_rate=48000|element=stg=0:parameter_id=100:annotations=en\-us=Scalable_Submix|layout=sound_system=stereo|layout=sound_system=5.1(side) \& \-streamid 0:0 \-streamid 1:1 \-streamid 2:2 \-streamid 3:3 output.iamf .Ve .Sp جهت کپی دو گروه استریم (Audio Element و Mix Presentation) از یک فایل ورودی IAMF با چهار استریم درون یک خروجی mp4: .Sp .Vb 2 \& ffmpeg \-i input.iamf \-c:a copy \-stream_group map=0=0:st=0:st=1:st=2:st=3 \-stream_group map=0=1:stg=0 \& \-streamid 0:0 \-streamid 1:1 \-streamid 2:2 \-streamid 3:3 output.mp4 .Ve .RE .IP "\fB\-target\fR \fItype\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-target type (output)" تعیین نوع فایل هدف (\f(CW\*(C`vcd\*(C'\fR, \f(CW\*(C`svcd\*(C'\fR, \f(CW\*(C`dvd\*(C'\fR, \f(CW\*(C`dv\*(C'\fR, \&\f(CW\*(C`dv50\*(C'\fR). مقدار \fItype\fR می‌تواند با \f(CW\*(C`pal\-\*(C'\fR, \f(CW\*(C`ntsc\-\*(C'\fR یا \&\f(CW\*(C`film\-\*(C'\fR پیشوندگذاری شود تا استاندارد متناظر را به کار گیرد. تمام گزینه‌های قالب (نرخ بیت، کدک‌ها، اندازه بافرها) به طور خودکار تنظیم می‌شوند. کافی است دستور زیر را وارد کنید: .Sp .Vb 1 \& ffmpeg \-i myfile.avi \-target vcd /tmp/vcd.mpg .Ve .Sp با این وجود می‌توانید گزینه‌های اضافی را مشخص کنید تا زمانی که می‌دانید با استاندارد تداخلی ندارند، مانند: .Sp .Vb 1 \& ffmpeg \-i myfile.avi \-target vcd \-bf 2 /tmp/vcd.mpg .Ve .Sp پارامترهای تنظیم‌شده برای هر هدف به شرح زیر هستند. .Sp \&\fBVCD\fR .Sp .Vb 6 \& : \& \-f vcd \-muxrate 1411200 \-muxpreload 0.44 \-packetsize 2324 \& \-s 352x288 \-r 25 \& \-codec:v mpeg1video \-g 15 \-b:v 1150k \-maxrate:v 1150k \-minrate:v 1150k \-bufsize:v 327680 \& \-ar 44100 \-ac 2 \& \-codec:a mp2 \-b:a 224k \& \& : \& \-f vcd \-muxrate 1411200 \-muxpreload 0.44 \-packetsize 2324 \& \-s 352x240 \-r 30000/1001 \& \-codec:v mpeg1video \-g 18 \-b:v 1150k \-maxrate:v 1150k \-minrate:v 1150k \-bufsize:v 327680 \& \-ar 44100 \-ac 2 \& \-codec:a mp2 \-b:a 224k \& \& : \& \-f vcd \-muxrate 1411200 \-muxpreload 0.44 \-packetsize 2324 \& \-s 352x240 \-r 24000/1001 \& \-codec:v mpeg1video \-g 18 \-b:v 1150k \-maxrate:v 1150k \-minrate:v 1150k \-bufsize:v 327680 \& \-ar 44100 \-ac 2 \& \-codec:a mp2 \-b:a 224k .Ve .Sp \&\fBSVCD\fR .Sp .Vb 6 \& : \& \-f svcd \-packetsize 2324 \& \-s 480x576 \-pix_fmt yuv420p \-r 25 \& \-codec:v mpeg2video \-g 15 \-b:v 2040k \-maxrate:v 2516k \-minrate:v 0 \-bufsize:v 1835008 \-scan_offset 1 \& \-ar 44100 \& \-codec:a mp2 \-b:a 224k \& \& : \& \-f svcd \-packetsize 2324 \& \-s 480x480 \-pix_fmt yuv420p \-r 30000/1001 \& \-codec:v mpeg2video \-g 18 \-b:v 2040k \-maxrate:v 2516k \-minrate:v 0 \-bufsize:v 1835008 \-scan_offset 1 \& \-ar 44100 \& \-codec:a mp2 \-b:a 224k \& \& : \& \-f svcd \-packetsize 2324 \& \-s 480x480 \-pix_fmt yuv420p \-r 24000/1001 \& \-codec:v mpeg2video \-g 18 \-b:v 2040k \-maxrate:v 2516k \-minrate:v 0 \-bufsize:v 1835008 \-scan_offset 1 \& \-ar 44100 \& \-codec:a mp2 \-b:a 224k .Ve .Sp \&\fBDVD\fR .Sp .Vb 6 \& : \& \-f dvd \-muxrate 10080k \-packetsize 2048 \& \-s 720x576 \-pix_fmt yuv420p \-r 25 \& \-codec:v mpeg2video \-g 15 \-b:v 6000k \-maxrate:v 9000k \-minrate:v 0 \-bufsize:v 1835008 \& \-ar 48000 \& \-codec:a ac3 \-b:a 448k \& \& : \& \-f dvd \-muxrate 10080k \-packetsize 2048 \& \-s 720x480 \-pix_fmt yuv420p \-r 30000/1001 \& \-codec:v mpeg2video \-g 18 \-b:v 6000k \-maxrate:v 9000k \-minrate:v 0 \-bufsize:v 1835008 \& \-ar 48000 \& \-codec:a ac3 \-b:a 448k \& \& : \& \-f dvd \-muxrate 10080k \-packetsize 2048 \& \-s 720x480 \-pix_fmt yuv420p \-r 24000/1001 \& \-codec:v mpeg2video \-g 18 \-b:v 6000k \-maxrate:v 9000k \-minrate:v 0 \-bufsize:v 1835008 \& \-ar 48000 \& \-codec:a ac3 \-b:a 448k .Ve .Sp \&\fBDV\fR .Sp .Vb 4 \& : \& \-f dv \& \-s 720x576 \-pix_fmt yuv420p \-r 25 \& \-ar 48000 \-ac 2 \& \& : \& \-f dv \& \-s 720x480 \-pix_fmt yuv411p \-r 30000/1001 \& \-ar 48000 \-ac 2 \& \& : \& \-f dv \& \-s 720x480 \-pix_fmt yuv411p \-r 24000/1001 \& \-ar 48000 \-ac 2 .Ve .Sp هدف \f(CW\*(C`dv50\*(C'\fR کاملاً مشابه هدف \f(CW\*(C`dv\*(C'\fR است، به جز این‌که فرمت پیکسل برای هر سه استاندارد روی \f(CW\*(C`yuv422p\*(C'\fR تنظیم می‌شود. .Sp هر مقدار تعیین‌شده توسط کاربر برای پارامترهای بالا، مقدار پیش‌تنظیم هدف را بازنویسی می‌کند. در این حالت، خروجی ممکن است با استاندارد هدف مطابقت نداشته باشد. .IP "\fB\-dn (\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-dn (input/output)" به عنوان یک گزینه ورودی، مانع از فیلتر شدن یا انتخاب خودکار یا نگاشت تمام استریم‌های داده یک فایل برای هر خروجی می‌شود. به گزینه \f(CW\*(C`\-discard\*(C'\fR برای غیرفعال‌سازی جداگانه استریم‌ها مراجعه کنید. .Sp به عنوان یک گزینه خروجی، ضبط داده را غیرفعال می‌سازد، یعنی از انتخاب خودکار یا نگاشت هر استریم داده جلوگیری می‌کند. برای کنترل کامل دستی به گزینه \f(CW\*(C`\-map\*(C'\fR مراجعه نمایید. .IP "\fB\-dframes\fR \fInumber\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-dframes number (output)" تنظیم تعداد فریم‌های داده برای خروجی. این یک نام مستعار منسوخ برای \f(CW\*(C`\-frames:d\*(C'\fR است، که باید به جای آن استفاده شود. .IP "\fB\-frames[:\fR\fIstream_specifier\fR\fB]\fR \fIframecount\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-frames[:stream_specifier] framecount (output,per-stream)" توقف نوشتن در استریم پس از \fIframecount\fR فریم. .IP "\fB\-q[:\fR\fIstream_specifier\fR\fB]\fR \fIq\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-q[:stream_specifier] q (output,per-stream)" .PD 0 .IP "\fB\-qscale[:\fR\fIstream_specifier\fR\fB]\fR \fIq\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-qscale[:stream_specifier] q (output,per-stream)" .PD استفاده از مقیاس کیفیت ثابت (VBR). معنای \fIq\fR/\fIqscale\fR وابسته به کدک است. اگر \fIqscale\fR بدون \fIstream_specifier\fR استفاده شود، تنها بر استریم ویدیو اعمال می‌گردد؛ این امر جهت حفظ سازگاری با رفتار پیشین است و از آنجا که تعیین مقدار مشخص کدک یکسان برای دو کدک مختلف صدا و تصویر عموماً زمانی که هیچ stream_specifier مشخص نشده مد نظر نیست. .IP "\fB\-filter[:\fR\fIstream_specifier\fR\fB]\fR \fIfiltergraph\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-filter[:stream_specifier] filtergraph (output,per-stream)" ایجاد فیلترگراف مشخص‌شده با \fIfiltergraph\fR و استفاده از آن برای فیلتر کردن استریم. .Sp پارامتر \fIfiltergraph\fR توصیف فیلترگراف برای اعمال بر روی استریم است، و باید دارای یک ورودی منفرد و یک خروجی منفرد از همان نوع استریم باشد. در فیلترگراف، ورودی به برچسب \f(CW\*(C`in\*(C'\fR و خروجی به برچسب \f(CW\*(C`out\*(C'\fR متصل است. برای اطلاعات بیشتر درباره قواعد فیلترگراف به راهنمای ffmpeg\-filters مراجعه کنید. .Sp اگر می‌خواهید فیلترگراف‌هایی با چندین ورودی و/یا خروجی بسازید، به \fBگزینه \-filter_complex\fR مراجعه نمایید. .IP "\fB\-reinit_filter[:\fR\fIstream_specifier\fR\fB]\fR \fIinteger\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-reinit_filter[:stream_specifier] integer (input,per-stream)" این گزینه بولی مشخص می‌کند که آیا فیلترگراف(هایی) که این استریم به آن‌ها تغذیه می‌شود در صورت تغییر پارامترهای فریم ورودی در میانه استریم مجدداً راه‌اندازی شوند یا خیر. این گزینه به طور پیش‌فرض فعال است زیرا اکثر فیلترهای ویدیو و تمام فیلترهای صوتی نمی‌توانند انحراف در مشخصات فریم ورودی را مدیریت نمایند. پس از راه‌اندازی مجدد، وضعیت فیلتر موجود از دست می‌رود، مانند مرجع تعداد فریم \f(CW\*(C`n\*(C'\fR که در برخی فیلترها موجود است. هر فریمی که در زمان راه‌اندازی مجدد بافر شده باشد از بین می‌رود. مشخصاتی که تغییر آن‌ها سبب راه‌اندازی مجدد می‌شود عبارتند از: برای ویدیو: رزولوشن فریم یا فرمت پیکسل؛ برای صدا: فرمت نمونه، نرخ نمونه‌برداری، تعداد کانال یا چیدمان کانال. .IP "\fB\-drop_changed[:\fR\fIstream_specifier\fR\fB]\fR \fIinteger\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-drop_changed[:stream_specifier] integer (input,per-stream)" این گزینه بولی تعیین می‌کند که آیا یک فریم با پارامترهای متفاوت در میانه استریم به جای راه‌اندازی مجدد فیلترگراف دور ریخته شود یا خیر، چرا که راه‌اندازی مجدد به از دست رفتن وضعیت فیلتر می‌انجامد. عموماً برای جلوگیری از بسته‌های خراب اما قابل دیکود در ورودی‌های پخش زنده سودمند است. مقدار پیش‌فرض false است. .IP "\fB\-filter_threads\fR \fInb_threads\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-filter_threads nb_threads (global)" تعداد ریسه‌های مورد استفاده برای پردازش خط لوله فیلتر را تعیین می‌کند. هر خط لوله یک استخر ریسه با این تعداد ریسه برای پردازش موازی ایجاد می‌نماید. پیش‌فرض تعداد پردازنده‌های در دسترس است. .IP "\fB\-filter_buffered_frames\fR \fInb_frames\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-filter_buffered_frames nb_frames (global)" حداکثر تعداد فریم‌های بافرشده مجاز در یک فیلترگراف را تعیین می‌کند. در شرایط عادی، یک فیلترگراف نباید بیش از چند فریم بافر کند، به ویژه اگر فریم‌ها به صورت متوازن به آن داده شده و از آن خوانده شوند (که رفتار مطلوب در ffmpeg است). با این حال، این گزینه به شما اجازه می‌دهد مجموع فریم‌های بافرشده در تمام پیوندهای یک فیلترگراف را محدود کنید. اگر فریم‌های بیشتری تولید شود، فیلترینگ لغو شده و خطایی بازگردانده می‌شود. مقدار پیش‌فرض 0 است، یعنی بدون محدودیت. .IP "\fB\-pre[:\fR\fIstream_specifier\fR\fB]\fR \fIpreset_name\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-pre[:stream_specifier] preset_name (output,per-stream)" تعیین پیش‌تنظیم (preset) برای استریم(های) منطبق. .IP "\fB\-stats (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-stats (global)" ثبت آمار و پیشرفت انکود به صورت لاگ سطح "info" (به \f(CW\*(C`\-loglevel\*(C'\fR مراجعه کنید). به طور پیش‌فرض روشن است، برای غیرفعال‌سازی صریح آن باید \f(CW\*(C`\-nostats\*(C'\fR را مشخص کنید. .IP "\fB\-stats_period\fR \fItime\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-stats_period time (global)" تنظیم بازه زمانی به‌روزرسانی پیشرفت/آمار انکود. پیش‌فرض 0.5 ثانیه است. .IP "\fB\-print_graphs (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-print_graphs (global)" چاپ جزئیات گراف اجرا در stderr بر اساس قالبی که از طریق \-print_graphs_format تنظیم شده است. .IP "\fB\-print_graphs_file\fR \fIfilename\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-print_graphs_file filename (global)" نوشتن جزئیات گراف اجرا در فایل مشخص‌شده بر اساس قالبی که از طریق \-print_graphs_format تنظیم شده است. .IP "\fB\-print_graphs_format\fR \fIformat\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-print_graphs_format format (global)" تنظیم قالب خروجی (قالب‌های موجود عبارتند از: default, compact, csv, flat, ini, json, xml, mermaid, mermaidhtml). قالب پیش‌فرض json است. .IP "\fB\-progress\fR \fIurl\fR \fB(\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-progress url (global)" ارسال اطلاعات پیشرفت مناسب برای برنامه‌ها به \fIurl\fR. .Sp اطلاعات پیشرفت به صورت دوره‌ای و در پایان فرایند انکود نوشته می‌شوند. این اطلاعات از خطوط "\fIkey\fR=\fIvalue\fR" تشکیل شده است. \fIkey\fR تنها از نویسه‌های حرفی-عددی تشکیل می‌شود. آخرین کلید در توالی اطلاعات پیشرفت همواره "progress" با مقدار "continue" یا "end" است. .Sp بازه به‌روزرسانی با استفاده از \f(CW\*(C`\-stats_period\*(C'\fR تنظیم می‌گردد. .Sp برای مثال، لاگ اطلاعات پیشرفت در stdout: .Sp .Vb 1 \& ffmpeg \-progress pipe:1 \-i in.mkv out.mkv .Ve .IP \fB\-stdin\fR 4 .IX Item "-stdin" فعال‌سازی تعامل روی ورودی استاندارد. به طور پیش‌فرض روشن است مگر ورودی استاندارد به عنوان یک ورودی استفاده شده باشد. برای غیرفعال‌سازی صریح تعامل باید \f(CW\*(C`\-nostdin\*(C'\fR را مشخص کنید. .Sp غیرفعال‌سازی تعامل روی ورودی استاندارد زمانی مفید است که برای مثال ffmpeg در گروه فرایندهای پس‌زمینه اجرا شود. تقریباً همان نتیجه را می‌توان با \f(CW\*(C`ffmpeg ... < /dev/null\*(C'\fR به دست آورد اما این کار نیازمند پوسته (shell) است. .IP "\fB\-debug_ts (\fR\fIglobal\fR\fB)\fR" 4 .IX Item "-debug_ts (global)" چاپ اطلاعات برچسب زمانی / تاخیر (latency). به طور پیش‌فرض خاموش است. این گزینه عمدتاً برای اهداف آزمایش و اشکال‌زدایی مفید است و قالب خروجی ممکن است از یک نسخه به نسخه دیگر تغییر کند، بنابراین نباید توسط اسکریپت‌های پرتابل استفاده شود. .Sp همچنین به گزینه \f(CW\*(C`\-fdebug ts\*(C'\fR مراجعه کنید. .IP "\fB\-attach\fR \fIfilename\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-attach filename (output)" افزودن یک پیوست به فایل خروجی. این قابلیت توسط چند قالب مانند ماتروشکا برای مواردی مانند فونت‌های مورد استفاده در رندر زیرنویس‌ها پشتیبانی می‌شود. پیوست‌ها به عنوان نوع خاصی از استریم پیاده‌سازی شده‌اند، بنابراین این گزینه یک استریم جدید به فایل اضافه خواهد کرد. سپس می‌توان گزینه‌های به‌ازای‌هر‌استریم را روی این استریم به شیوه معمول اعمال کرد. استریم‌های پیوست ایجادشده با این گزینه پس از تمام استریم‌های دیگر ساخته خواهند شد (یعنی پس از استریم‌های ایجادشده با \f(CW\*(C`\-map\*(C'\fR یا نگاشت‌های خودکار). .Sp توجه داشته باشید که برای ماتروشکا همچنین باید تگ متادیتای mimetype را تنظیم کنید: .Sp .Vb 1 \& ffmpeg \-i INPUT \-attach DejaVuSans.ttf \-metadata:s:2 mimetype=application/x\-truetype\-font out.mkv .Ve .Sp (با فرض این‌که استریم پیوست سومین استریم در فایل خروجی خواهد بود). .IP "\fB\-dump_attachment[:\fR\fIstream_specifier\fR\fB]\fR \fIfilename\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-dump_attachment[:stream_specifier] filename (input,per-stream)" استخراج استریم پیوست منطبق در فایلی با نام \fIfilename\fR. اگر \fIfilename\fR خالی باشد، مقدار تگ متادیتای \f(CW\*(C`filename\*(C'\fR استفاده خواهد شد. .Sp برای مثال جهت استخراج نخستین پیوست در فایلی با نام \*(Aqout.ttf\*(Aq: .Sp .Vb 1 \& ffmpeg \-dump_attachment:t:0 out.ttf \-i INPUT .Ve .Sp جهت استخراج تمام پیوست‌ها در فایل‌هایی که توسط تگ \f(CW\*(C`filename\*(C'\fR تعیین شده‌اند: .Sp .Vb 1 \& ffmpeg \-dump_attachment:t "" \-i INPUT .Ve .Sp نکته فنی \-\- پیوست‌ها به عنوان extradata کدک پیاده‌سازی شده‌اند، بنابراین از این گزینه در واقع می‌توان برای استخراج extradata از هر استریمی استفاده کرد، نه فقط پیوست‌ها. .SS "گزینه‌های ویدیو (Video Options)" .IX Subsection "Video Options" .IP "\fB\-vframes\fR \fInumber\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-vframes number (output)" تنظیم تعداد فریم‌های ویدیو برای خروجی. این یک نام مستعار منسوخ برای \f(CW\*(C`\-frames:v\*(C'\fR است، که باید به جای آن استفاده شود. .IP "\fB\-r[:\fR\fIstream_specifier\fR\fB]\fR \fIfps\fR \fB(\fR\fIinput/output,per\-stream\fR\fB)\fR" 4 .IX Item "-r[:stream_specifier] fps (input/output,per-stream)" تنظیم نرخ فریم (مقدار بر حسب هرتز، کسر یا مخفف). .Sp به عنوان یک گزینه ورودی، هرگونه برچسب زمانی ذخیره‌شده در فایل را نادیده می‌گیرد و در عوض برچسب‌های زمانی را با فرض نرخ فریم ثابت \fIfps\fR تولید می‌نماید. این مشابه گزینه \fB\-framerate\fR مورد استفاده برای برخی قالب‌های ورودی مانند image2 یا v4l2 نیست (در نسخه‌های قدیمی‌تر FFmpeg یکسان بود). در صورت شک، به جای گزینه ورودی \fB\-r\fR از \fB\-framerate\fR استفاده کنید. .Sp به عنوان یک گزینه خروجی: .RS 4 .IP "\fBvideo encoding\fR" 4 .IX Item "video encoding" فریم‌ها را دقیقاً پیش از انکود کردن تکثیر یا حذف می‌کند تا به نرخ فریم خروجی ثابت \fIfps\fR دست یابد. .IP "\fBvideo streamcopy\fR" 4 .IX Item "video streamcopy" به ماکسر اعلام می‌کند که \fIfps\fR نرخ فریم استریم است. در این حالت هیچ داده‌ای حذف یا تکثیر نمی‌شود. اگر \fIfps\fR با نرخ فریم واقعی استریم که توسط برچسب‌های زمانی بسته‌ها تعیین شده مطابقت نداشته باشد، این امر ممکن است فایل‌های نامعتبری تولید کند. همچنین به فیلتر بیت‌استریم \f(CW\*(C`setts\*(C'\fR مراجعه کنید. .RE .RS 4 .RE .IP "\fB\-fpsmax[:\fR\fIstream_specifier\fR\fB]\fR \fIfps\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-fpsmax[:stream_specifier] fps (output,per-stream)" تنظیم حداکثر نرخ فریم (مقدار هرتز، کسر یا مخفف). .Sp هنگامی که نرخ فریم خروجی به صورت خودکار تنظیم شود و بالاتر از این مقدار باشد، نرخ فریم خروجی را محدود (clamp) می‌کند. در پردازش دسته‌ای یا هنگامی که نرخ فریم ورودی به اشتباه بسیار بالا تشخیص داده شود مفید است. نمی‌تواند همراه با \f(CW\*(C`\-r\*(C'\fR تنظیم گردد. در طول کپی استریم نادیده گرفته می‌شود. .IP "\fB\-s[:\fR\fIstream_specifier\fR\fB]\fR \fIsize\fR \fB(\fR\fIinput/output,per\-stream\fR\fB)\fR" 4 .IX Item "-s[:stream_specifier] size (input/output,per-stream)" تنظیم اندازه فریم. .Sp به عنوان یک گزینه ورودی، این یک میان‌بر برای گزینه اختصاصی \fBvideo_size\fR است، که توسط برخی دی‌ماکسرها شناسایی می‌شود که اندازه فریم برای آن‌ها یا در فایل ذخیره نشده یا قابل پیکربندی است \-\- مانند ویدیوی خام یا کارت‌های کپچر ویدیو. .Sp به عنوان یک گزینه خروجی، فیلتر ویدیویی \f(CW\*(C`scale\*(C'\fR را به \fIانتهای\fR فیلترگراف متناظر درج می‌کند. لطفاً از فیلتر \f(CW\*(C`scale\*(C'\fR مستقیماً برای درج آن در ابتدا یا مکان دیگری استفاده کنید. .Sp فرمت به صورت \fBwxh\fR است (پیش‌فرض \- همانند منبع). .IP "\fB\-aspect[:\fR\fIstream_specifier\fR\fB]\fR \fIaspect\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-aspect[:stream_specifier] aspect (output,per-stream)" تنظیم نسبت ابعاد نمایش ویدیو که توسط \fIaspect\fR مشخص شده است. .Sp پارامتر \fIaspect\fR می‌تواند یک رشته عدد ممیز شناور، یا رشته‌ای به شکل \fInum\fR:\fIden\fR باشد که در آن \fInum\fR و \fIden\fR صورت و مخرج نسبت ابعاد هستند. برای مثال "4:3"، "16:9"، "1.3333" و "1.7777" مقادیر معتبر آرگومان هستند. .Sp اگر همراه با \fB\-vcodec copy\fR استفاده شود، بر نسبت ابعاد ذخیره‌شده در سطح کانتینر تأثیر می‌گذارد، اما بر نسبت ابعاد ذخیره‌شده در فریم‌های انکودشده (در صورت وجود) تأثیری ندارد. .IP "\fB\-display_rotation[:\fR\fIstream_specifier\fR\fB]\fR \fIrotation\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-display_rotation[:stream_specifier] rotation (input,per-stream)" تنظیم متادیتای چرخش ویدیو. .Sp پارامتر \fIrotation\fR یک عدد اعشاری است که میزان چرخش در جهت پادساعت‌گرد (بر حسب درجه) را پیش از نمایش ویدیو مشخص می‌کند. .Sp این گزینه متادیتای تبدیل چرخش/نمایش ذخیره‌شده در فایل (در صورت وجود) را بازنویسی می‌کند. هنگامی که ویدیو در حال ترنسکد شدن است (به جای کپی) و \f(CW\*(C`\-autorotate\*(C'\fR فعال است، ویدیو در مرحله فیلترینگ چرخانده می‌شود. در غیر این صورت، اگر ماکسر از آن پشتیبانی کند، متادیتا در فایل خروجی نوشته خواهد شد. .Sp اگر گزینه‌های \f(CW\*(C`\-display_hflip\*(C'\fR و/یا \f(CW\*(C`\-display_vflip\*(C'\fR داده شوند، پس از چرخش مشخص‌شده توسط این گزینه اعمال می‌گردند. .IP "\fB\-display_hflip[:\fR\fIstream_specifier\fR\fB] (\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-display_hflip[:stream_specifier] (input,per-stream)" تنظیم این‌که آیا تصویر در هنگام نمایش باید به صورت افقی معکوس (flip) شود یا خیر. .Sp به گزینه \f(CW\*(C`\-display_rotation\*(C'\fR برای جزئیات بیشتر مراجعه کنید. .IP "\fB\-display_vflip[:\fR\fIstream_specifier\fR\fB] (\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-display_vflip[:stream_specifier] (input,per-stream)" تنظیم این‌که آیا تصویر در هنگام نمایش باید به صورت عمودی معکوس (flip) شود یا خیر. .Sp به گزینه \f(CW\*(C`\-display_rotation\*(C'\fR برای جزئیات بیشتر مراجعه کنید. .IP "\fB\-mastering_display[:\fR\fIstream_specifier\fR\fB]\fR \fIG(%u,%u)B(%u,%u)R(%u,%u)WP(%u,%u)L(%u,%u)\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-mastering_display[:stream_specifier] G(%u,%u)B(%u,%u)R(%u,%u)WP(%u,%u)L(%u,%u) (input,per-stream)" تنظیم متادیتای نمایش مسترینگ ویدیو (Mastering display metadata). .Sp پارامتر \fIG(%u,%u)B(%u,%u)R(%u,%u)WP(%u,%u)L(%u,%u)\fR رشته‌ای است که مختصات اصلی نمایش X,Y را برای کانال‌های GBR و نقطه سفید (WP) در واحدهای 0.00002، و مقادیر حداکثر-حداقل درخشندگی (L) را در واحدهای 0.0001 کاندلا بر متر مربع مشخص می‌سازد. این مقادیر اعداد صحیح بدون علامت هستند که صورت یک عدد کسری با مخرج ضمنی 50000 برای GBR و (WP)، و مخرج ضمنی 10000 برای (L) را نشان می‌دهند. .Sp این گزینه متادیتای نمایش مسترینگ ذخیره‌شده در فایل (در صورت وجود) را بازنویسی می‌کند. .ie n .IP "\fB\-content_light[:\fR\fIstream_specifier\fR\fB]\fR \fR\fI%u\fR\fI,%u\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .el .IP "\fB\-content_light[:\fR\fIstream_specifier\fR\fB]\fR \fR\f(CI%u\fR\fI,%u\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-content_light[:stream_specifier] %u,%u (input,per-stream)" تنظیم متادیتای روشنایی محتوای ویدیو (Content light metadata). .Sp مقدار \fR\f(CI%u\fR\fI,%u\fR رشته‌ای است که حداکثر سطح روشنایی محتوا و حداکثر سطح روشنایی میانگین تصویر را مشخص می‌سازد. .Sp این گزینه متادیتای روشنایی محتوای ذخیره‌شده در فایل (در صورت وجود) را بازنویسی می‌کند. .IP "\fB\-vn (\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-vn (input/output)" به عنوان یک گزینه ورودی، مانع از فیلتر شدن یا انتخاب خودکار یا نگاشت تمام استریم‌های ویدیوی یک فایل برای هر خروجی می‌شود. به گزینه \f(CW\*(C`\-discard\*(C'\fR برای غیرفعال‌سازی جداگانه استریم‌ها مراجعه نمایید. .Sp به عنوان یک گزینه خروجی، ضبط ویدیو را غیرفعال می‌سازد، یعنی از انتخاب خودکار یا نگاشت هر استریم ویدیو جلوگیری می‌کند. برای کنترل کامل دستی به گزینه \f(CW\*(C`\-map\*(C'\fR مراجعه نمایید. .IP "\fB\-vcodec\fR \fIcodec\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-vcodec codec (output)" تنظیم کدک ویدیو. این یک نام مستعار برای \f(CW\*(C`\-codec:v\*(C'\fR است. .IP "\fB\-pass[:\fR\fIstream_specifier\fR\fB]\fR \fIn\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-pass[:stream_specifier] n (output,per-stream)" انتخاب شماره مرحله (1 یا 2). برای انجام انکود دو مرحله‌ای ویدیو (two-pass) استفاده می‌شود. آمار ویدیو در مرحله نخست درون یک فایل لاگ ثبت می‌گردد (همچنین به گزینه \-passlogfile مراجعه کنید)، و در مرحله دوم آن فایل لاگ برای تولید ویدیو با نرخ بیت دقیقاً درخواستی استفاده می‌شود. در مرحله 1، می‌توانید صدا را غیرفعال کرده و خروجی را روی null قرار دهید، مثال‌ها برای ویندوز و یونیکس: .Sp .Vb 2 \& ffmpeg \-i foo.mov \-c:v libxvid \-pass 1 \-an \-f rawvideo \-y NUL \& ffmpeg \-i foo.mov \-c:v libxvid \-pass 1 \-an \-f rawvideo \-y /dev/null .Ve .IP "\fB\-passlogfile[:\fR\fIstream_specifier\fR\fB]\fR \fIprefix\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-passlogfile[:stream_specifier] prefix (output,per-stream)" تنظیم پیشوند نام فایل لاگ دو مرحله‌ای به \fIprefix\fR، پیشوند نام فایل پیش‌فرض \`\`ffmpeg2pass\*(Aq\*(Aq است. نام کامل فایل به صورت \fIPREFIX\-N.log\fR خواهد بود، که در آن N عددی مختص استریم خروجی است. .IP "\fB\-vf\fR \fIfiltergraph\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-vf filtergraph (output)" ایجاد فیلترگراف مشخص‌شده توسط \fIfiltergraph\fR و استفاده از آن برای فیلتر کردن استریم. .Sp این یک نام مستعار برای \f(CW\*(C`\-filter:v\*(C'\fR است، به \fBگزینه \-filter\fR مراجعه کنید. .IP \fB\-autorotate\fR 4 .IX Item "-autorotate" چرخاندن خودکار ویدیو بر اساس متادیتای فایل. به طور پیش‌فرض فعال است، از \fB\-noautorotate\fR برای غیرفعال‌سازی آن استفاده کنید. .IP \fB\-autoscale\fR 4 .IX Item "-autoscale" مقیاس‌بندی خودکار ویدیو بر اساس رزولوشن نخستین فریم. به طور پیش‌فرض فعال است، از \fB\-noautoscale\fR برای غیرفعال کردن آن استفاده کنید. هنگامی که autoscale غیرفعال باشد، ممکن است تمام فریم‌های خروجی فیلترگراف دارای رزولوشن یکسانی نباشند و برای برخی انکودرها/ماکسرها نامناسب باشند. بنابراین، غیرفعال کردن آن توصیه نمی‌شود مگر این‌که واقعاً بدانید چه کاری انجام می‌دهید. با مسئولیت خودتان autoscale را غیرفعال کنید. .SS "گزینه‌های پیشرفته ویدیو (Advanced Video options)" .IX Subsection "Advanced Video options" .IP "\fB\-pix_fmt[:\fR\fIstream_specifier\fR\fB]\fR \fIformat\fR \fB(\fR\fIinput/output,per\-stream\fR\fB)\fR" 4 .IX Item "-pix_fmt[:stream_specifier] format (input/output,per-stream)" تنظیم فرمت پیکسل. از \f(CW\*(C`\-pix_fmts\*(C'\fR برای نمایش تمام فرمت‌های پیکسل پشتیبانی‌شده استفاده کنید. اگر فرمت پیکسل انتخاب‌شده قابل انتخاب نباشد، ffmpeg یک هشدار چاپ کرده و بهترین فرمت پیکسل پشتیبانی‌شده توسط انکودر را برمی‌گزیند. اگر \fIpix_fmt\fR با یک \f(CW\*(C`+\*(C'\fR پیشوندگذاری شود، چنانچه فرمت پیکسل درخواستی قابل انتخاب نباشد ffmpeg با یک خطا خارج خواهد شد، و تبدیل‌های خودکار درون فیلترگراف‌ها غیرفعال می‌گردند. اگر \fIpix_fmt\fR یک \f(CW\*(C`+\*(C'\fR تنها باشد، ffmpeg همان فرمت پیکسل ورودی (یا خروجی گراف) را انتخاب می‌کند و تبدیل‌های خودکار غیرفعال می‌شوند. .IP "\fB\-sws_flags\fR \fIflags\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4 .IX Item "-sws_flags flags (input/output)" تنظیم فلگ‌های پیش‌فرض برای کتابخانه libswscale. این فلگ‌ها توسط فیلترهای \f(CW\*(C`scale\*(C'\fR درج‌شده خودکار و فیلترهای درون فیلترگراف‌های ساده استفاده می‌شوند، چنانچه در تعریف فیلترگراف لغو نشده باشند. .Sp برای فهرستی از گزینه‌های مقیاس‌بندی به \fBراهنمای ffmpeg\-scaler\fR مراجعه کنید. .IP "\fB\-rc_override[:\fR\fIstream_specifier\fR\fB]\fR \fIoverride\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-rc_override[:stream_specifier] override (output,per-stream)" لغو کنترل نرخ بیت (Rate control override) برای بازه‌های مشخص، با ساختار فهرستی از "int,int,int" جداشده با اسلش. دو مقدار اول شماره‌های فریم آغازین و پایانی هستند، و آخرین مقدار در صورت مثبت بودن ضریب کوانتیزه‌سازی (quantizer) مورد استفاده و در صورت منفی بودن ضریب کیفیت است. .IP \fB\-vstats\fR 4 .IX Item "-vstats" ثبت آمار کدگذاری ویدیو در \fIvstats_HHMMSS.log\fR. برای شرح فرمت به بخش \fBقالب فایل vstats\fR مراجعه نمایید. .IP "\fB\-vstats_file\fR \fIfile\fR" 4 .IX Item "-vstats_file file" ثبت آمار کدگذاری ویدیو در \fIfile\fR. برای شرح فرمت به بخش \fBقالب فایل vstats\fR مراجعه نمایید. .IP "\fB\-vstats_version\fR \fIfile\fR" 4 .IX Item "-vstats_version file" تعیین این‌که از کدام نسخه قالب vstats استفاده شود. پیش‌فرض \f(CW2\fR است. برای شرح فرمت به بخش \fBقالب فایل vstats\fR مراجعه نمایید. .IP "\fB\-vtag\fR \fIfourcc/tag\fR \fB(\fR\fIoutput\fR\fB)\fR" 4 .IX Item "-vtag fourcc/tag (output)" اجبار تگ ویدیو/fourcc. این یک نام مستعار برای \f(CW\*(C`\-tag:v\*(C'\fR است. .IP "\fB\-force_key_frames[:\fR\fIstream_specifier\fR\fB]\fR \fItime\fR\fB[,\fR\fItime\fR\fB...] (\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-force_key_frames[:stream_specifier] time[,time...] (output,per-stream)" .PD 0 .IP "\fB\-force_key_frames[:\fR\fIstream_specifier\fR\fB] expr:\fR\fIexpr\fR \fB(\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-force_key_frames[:stream_specifier] expr:expr (output,per-stream)" .IP "\fB\-force_key_frames[:\fR\fIstream_specifier\fR\fB] source (\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-force_key_frames[:stream_specifier] source (output,per-stream)" .IP "\fB\-force_key_frames[:\fR\fIstream_specifier\fR\fB] scd_metadata (\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-force_key_frames[:stream_specifier] scd_metadata (output,per-stream)" .PD پارامتر \fIforce_key_frames\fR می‌تواند آرگومان‌هایی به شکل‌های زیر دریافت کند: .RS 4 .IP \fItime\fR\fB[,\fR\fItime\fR\fB...]\fR 4 .IX Item "time[,time...]" اگر آرگومان از برچسب‌های زمانی تشکیل شده باشد، ffmpeg زمان‌های مشخص‌شده را بر اساس پایه زمانی انکودر به نزدیک‌ترین برچسب زمانی خروجی گرد می‌کند و در نخستین فریمی که برچسب زمانی آن برابر یا بزرگ‌تر از برچسب زمانی محاسبه‌شده باشد، یک فریم کلیدی (keyframe) را اجبار می‌نماید. توجه داشته باشید که اگر پایه زمانی انکودر بیش از حد درشت باشد، ممکن است فریم‌های کلیدی روی فریم‌هایی با برچسب‌های زمانی کمتر از زمان مشخص‌شده اجبار شوند. پایه زمانی پیش‌فرض انکودر معکوس نرخ فریم خروجی است اما می‌توان آن را از طریق \f(CW\*(C`\-enc_time_base\*(C'\fR تغییر داد. .Sp اگر یکی از زمان‌ها "\f(CW\*(C`chapters\*(C'[\fIdelta\fR]" باشد، به زمان آغاز تمامی فصل‌های موجود در فایل گسترش می‌یابد که به میزان \fIdelta\fR (بر حسب ثانیه) شیفت یافته است. این گزینه می‌تواند برای اطمینان از این‌که یک نقطه پرش زمانی در نشانگر فصل یا هر مکان مشخص دیگری در فایل خروجی وجود دارد مفید باشد. .Sp برای مثال، جهت درج یک فریم کلیدی در دقیقه 5، به علاوه فریم‌های کلیدی 0.1 ثانیه پیش از آغاز هر فصل: .Sp .Vb 1 \& \-force_key_frames 0:05:00,chapters\-0.1 .Ve .IP \fBexpr:\fR\fIexpr\fR 4 .IX Item "expr:expr" اگر آرگومان دارای پیشوند \f(CW\*(C`expr:\*(C'\fR باشد، رشته \fIexpr\fR همانند یک عبارت ریاضی تفسیر شده و برای هر فریم ارزیابی می‌گردد. در صورتی که نتیجه ارزیابی غیرصفر باشد، یک فریم کلیدی اجبار می‌شود. .Sp عبارت موجود در \fIexpr\fR می‌تواند شامل ثابت‌های زیر باشد: .RS 4 .IP \fBn\fR 4 .IX Item "n" شماره فریم جاری در حال پردازش، با شروع از 0 .IP \fBn_forced\fR 4 .IX Item "n_forced" تعداد فریم‌های کلیدی اجبارشده .IP \fBprev_forced_n\fR 4 .IX Item "prev_forced_n" شماره فریم کلیدی اجبارشده قبلی؛ زمانی که هنوز هیچ فریم کلیدی اجبار نشده \f(CW\*(C`NAN\*(C'\fR است .IP \fBprev_forced_t\fR 4 .IX Item "prev_forced_t" زمان فریم کلیدی اجبارشده قبلی؛ زمانی که هنوز فریم کلیدی اجبار نشده \f(CW\*(C`NAN\*(C'\fR است .IP \fBt\fR 4 .IX Item "t" زمان فریم جاری در حال پردازش .RE .RS 4 .Sp برای مثال جهت اجبار یک فریم کلیدی در هر 5 ثانیه، می‌توانید مشخص کنید: .Sp .Vb 1 \& \-force_key_frames expr:gte(t,n_forced*5) .Ve .Sp جهت اجبار یک فریم کلیدی 5 ثانیه پس از زمان آخرین فریم اجبارشده، با شروع از ثانیه 13: .Sp .Vb 1 \& \-force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5)) .Ve .RE .IP \fBsource\fR 4 .IX Item "source" اگر آرگومان \f(CW\*(C`source\*(C'\fR باشد، ffmpeg در صورتی که فریم جاری در حال انکود در منبع خود به عنوان فریم کلیدی علامت‌گذاری شده باشد، یک فریم کلیدی را اجبار خواهد کرد. در مواردی که این فریم منبع خاص باید دور ریخته شود، فریم موجود بعدی را به جای آن مجبور می‌کند تا به فریم کلیدی تبدیل شود. .IP \fBscd_metadata\fR 4 .IX Item "scd_metadata" اگر آرگومان \f(CW\*(C`scd_metadata\*(C'\fR باشد، ffmpeg در صورتی که فریم جاری حاوی یک ورودی متادیتا با کلید \f(CW\*(C`lavfi.scd.time\*(C'\fR باشد فریم کلیدی را اجبار می‌کند. این متادیتا می‌تواند توسط فیلترهایی مانند \f(CW\*(C`scdet\*(C'\fR و \f(CW\*(C`scdet_vulkan\*(C'\fR اضافه شود. از درج فیلترهایی که فریم‌ها را تکثیر می‌کنند پس از \f(CW\*(C`scdet\*(C'\fR خودداری نمایید، زیرا این امر می‌تواند سبب ایجاد متادیتای تکراری برای چندین فریم و درج مکرر فریم‌های کلیدی شود. .RE .RS 4 .Sp توجه داشته باشید که اجبار تعداد بسیار زیادی فریم کلیدی برای الگوریتم‌های lookahead برخی انکودرها بسیار مضر است: استفاده از گزینه‌های fixed\-GOP یا مشابه آن کارآمدتر خواهد بود. .RE .IP "\fB\-apply_cropping[:\fR\fIstream_specifier\fR\fB]\fR \fIsource\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-apply_cropping[:stream_specifier] source (input,per-stream)" برش خودکار (crop) ویدیو پس از دیکود بر اساس متادیتای فایل. مقدار پیش‌فرض \fIall\fR است. .RS 4 .IP "\fBnone (0)\fR" 4 .IX Item "none (0)" عدم اعمال هرگونه متادیتای برش. .IP "\fBall (1)\fR" 4 .IX Item "all (1)" اعمال برش در هر دو سطح کدک و کانتینر. این حالت پیش‌فرض است. .IP "\fBcodec (2)\fR" 4 .IX Item "codec (2)" اعمال برش در سطح کدک. .IP "\fBcontainer (3)\fR" 4 .IX Item "container (3)" اعمال برش در سطح کانتینر. .RE .RS 4 .RE .IP "\fB\-copyinkf[:\fR\fIstream_specifier\fR\fB] (\fR\fIoutput,per\-stream\fR\fB)\fR" 4 .IX Item "-copyinkf[:stream_specifier] (output,per-stream)" هنگام انجام کپی استریم، فریم‌های غیرکلیدی موجود در ابتدا را نیز کپی می‌کند. .IP "\fB\-init_hw_device\fR \fItype\fR\fB[=\fR\fIname\fR\fB][:\fR\fIdevice\fR\fB[,\fR\fIkey=value\fR\fB...]]\fR" 4 .IX Item "-init_hw_device type[=name][:device[,key=value...]]" راه‌اندازی یک دستگاه سخت‌افزاری جدید از نوع \fItype\fR با نام \fIname\fR، با استفاده از پارامترهای دستگاه داده‌شده. اگر نامی مشخص نشود نام پیش‌فرضی به صورت "\fItype\fR\f(CW%d\fR" دریافت خواهد کرد. .Sp معنای \fIdevice\fR و آرگومان‌های پس از آن وابسته به نوع دستگاه است: .RS 4 .IP \fBcuda\fR 4 .IX Item "cuda" پارامتر \fIdevice\fR شماره دستگاه CUDA است. .Sp گزینه‌های زیر شناخته شده هستند: .RS 4 .IP \fBprimary_ctx\fR 4 .IX Item "primary_ctx" اگر روی 1 تنظیم شود، به جای ایجاد کانتکست جدید از primary device context استفاده می‌کند. .RE .RS 4 .Sp مثال‌ها: .IP "\fI\-init_hw_device cuda:1\fR" 4 .IX Item "-init_hw_device cuda:1" انتخاب دومین دستگاه روی سیستم. .IP "\fI\-init_hw_device cuda:0,primary_ctx=1\fR" 4 .IX Item "-init_hw_device cuda:0,primary_ctx=1" انتخاب نخستین دستگاه و استفاده از primary device context. .RE .RS 4 .RE .IP \fBdxva2\fR 4 .IX Item "dxva2" پارامتر \fIdevice\fR شماره آداپتور نمایشگر Direct3D 9 است. .IP \fBd3d11va\fR 4 .IX Item "d3d11va" پارامتر \fIdevice\fR شماره آداپتور نمایشگر Direct3D 11 است. در صورت عدم تعیین، تلاش می‌کند از آداپتور نمایشگر Direct3D 11 پیش‌فرض یا نخستین آداپتور نمایشگر Direct3D 11 که VendorId سخت‌افزاری آن با \fBvendor_id\fR مشخص شده استفاده کند. .Sp مثال‌ها: .RS 4 .IP "\fI\-init_hw_device d3d11va\fR" 4 .IX Item "-init_hw_device d3d11va" ایجاد یک دستگاه d3d11va روی آداپتور نمایشگر پیش‌فرض Direct3D 11. .IP "\fI\-init_hw_device d3d11va:1\fR" 4 .IX Item "-init_hw_device d3d11va:1" ایجاد یک دستگاه d3d11va روی آداپتور نمایشگر Direct3D 11 مشخص‌شده با اندیس 1. .IP "\fI\-init_hw_device d3d11va:,vendor_id=0x8086\fR" 4 .IX Item "-init_hw_device d3d11va:,vendor_id=0x8086" ایجاد یک دستگاه d3d11va روی نخستین آداپتور نمایشگر Direct3D 11 که VendorId سخت‌افزاری آن 0x8086 است. .RE .RS 4 .RE .IP \fBvaapi\fR 4 .IX Item "vaapi" پارامتر \fIdevice\fR یا یک نام نمایشگر X11، یک DRM render node یا اندیس آداپتور DirectX است. در صورت عدم تعیین، تلاش می‌کند نمایشگر پیش‌فرض X11 (\fR\f(CI$DISPLAY\fR\fI\fR) و سپس نخستین DRM render node (\fI/dev/dri/renderD128\fR)، یا آداپتور پیش‌فرض DirectX در ویندوز را باز کند. .Sp گزینه‌های زیر شناخته شده هستند: .RS 4 .IP \fBkernel_driver\fR 4 .IX Item "kernel_driver" هنگامی که \fIdevice\fR مشخص نشده باشد، از این گزینه برای تعیین نام درایور کربل مرتبط با دستگاه مورد نظر استفاده کنید. این گزینه تنها زمانی در دسترس است که روش شتاب‌دهی سخت‌افزاری \fIdrm\fR و \fIvaapi\fR فعال باشند. .IP \fBvendor_id\fR 4 .IX Item "vendor_id" هنگامی که \fIdevice\fR و \fIkernel_driver\fR مشخص نشده باشند، از این گزینه برای تعیین vendor id مرتبط با دستگاه مورد نظر استفاده کنید. این گزینه تنها زمانی در دسترس است که روش شتاب‌دهی سخت‌افزاری \fIdrm\fR و \fIvaapi\fR فعال باشند و \fIkernel_driver\fR مشخص نشده باشد. .RE .RS 4 .Sp مثال‌ها: .IP "\fI\-init_hw_device vaapi\fR" 4 .IX Item "-init_hw_device vaapi" ایجاد یک دستگاه vaapi روی دستگاه پیش‌فرض. .IP "\fI\-init_hw_device vaapi:/dev/dri/renderD129\fR" 4 .IX Item "-init_hw_device vaapi:/dev/dri/renderD129" ایجاد یک دستگاه vaapi روی DRM render node \fI/dev/dri/renderD129\fR. .IP "\fI\-init_hw_device vaapi:1\fR" 4 .IX Item "-init_hw_device vaapi:1" ایجاد یک دستگاه vaapi روی آداپتور شماره 1 در DirectX. .IP "\fI\-init_hw_device vaapi:,kernel_driver=i915\fR" 4 .IX Item "-init_hw_device vaapi:,kernel_driver=i915" ایجاد یک دستگاه vaapi روی دستگاه مرتبط با درایور کرنل \fBi915\fR. .IP "\fI\-init_hw_device vaapi:,vendor_id=0x8086\fR" 4 .IX Item "-init_hw_device vaapi:,vendor_id=0x8086" ایجاد یک دستگاه vaapi روی دستگاه مرتبط با vendor id \fB0x8086\fR. .RE .RS 4 .RE .IP \fBvdpau\fR 4 .IX Item "vdpau" پارامتر \fIdevice\fR یک نام نمایشگر X11 است. در صورت عدم تعیین، تلاش می‌کند نمایشگر پیش‌فرض X11 (\fR\f(CI$DISPLAY\fR\fI\fR) را باز کند. .IP \fBqsv\fR 4 .IX Item "qsv" پارامتر \fIdevice\fR مقداری را در \fBMFX_IMPL_*\fR انتخاب می‌کند. مقادیر مجاز عبارتند از: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" .PD 0 .IP \fBsw\fR 4 .IX Item "sw" .IP \fBhw\fR 4 .IX Item "hw" .IP \fBauto_any\fR 4 .IX Item "auto_any" .IP \fBhw_any\fR 4 .IX Item "hw_any" .IP \fBhw2\fR 4 .IX Item "hw2" .IP \fBhw3\fR 4 .IX Item "hw3" .IP \fBhw4\fR 4 .IX Item "hw4" .PD .RE .RS 4 .Sp در صورت عدم تعیین، \fBauto_any\fR استفاده می‌شود. (توجه داشته باشید که دستیابی به نتیجه مطلوب برای QSV ممکن است با ایجاد زیردستگاه مناسب پلتفرم (\fBdxva2\fR یا \fBd3d11va\fR یا \fBvaapi\fR) و سپس مشتق کردن یک دستگاه QSV از آن آسان‌تر باشد.) .Sp گزینه‌های زیر شناخته شده هستند: .IP \fBchild_device\fR 4 .IX Item "child_device" تعیین یک DRM render node در لینوکس یا آداپتور DirectX در ویندوز. .IP \fBchild_device_type\fR 4 .IX Item "child_device_type" انتخاب نوع زیردستگاه مناسب پلتفرم. در ویندوز هنگامی که \f(CW\*(C`\-\-enable\-libvpl\*(C'\fR در زمان پیکربندی مشخص شده باشد \fBd3d11va\fR به عنوان نوع پیش‌فرض زیردستگاه استفاده می‌شود، و هنگامی که \f(CW\*(C`\-\-enable\-libmfx\*(C'\fR مشخص شده باشد \fBdxva2\fR به کار می‌رود. در لینوکس کاربر تنها می‌تواند از \fBvaapi\fR به عنوان نوع زیردستگاه استفاده کند. .RE .RS 4 .Sp مثال‌ها: .IP "\fI\-init_hw_device qsv:hw,child_device=/dev/dri/renderD129\fR" 4 .IX Item "-init_hw_device qsv:hw,child_device=/dev/dri/renderD129" ایجاد یک دستگاه QSV با \fBMFX_IMPL_HARDWARE\fR روی DRM render node \fI/dev/dri/renderD129\fR. .IP "\fI\-init_hw_device qsv:hw,child_device=1\fR" 4 .IX Item "-init_hw_device qsv:hw,child_device=1" ایجاد یک دستگاه QSV با \fBMFX_IMPL_HARDWARE\fR روی آداپتور شماره 1 در DirectX. .IP "\fI\-init_hw_device qsv:hw,child_device_type=d3d11va\fR" 4 .IX Item "-init_hw_device qsv:hw,child_device_type=d3d11va" انتخاب زیردستگاه GPU با نوع \fBd3d11va\fR و ایجاد دستگاه QSV با \fBMFX_IMPL_HARDWARE\fR. .IP "\fI\-init_hw_device qsv:hw,child_device_type=dxva2\fR" 4 .IX Item "-init_hw_device qsv:hw,child_device_type=dxva2" انتخاب زیردستگاه GPU با نوع \fBdxva2\fR و ایجاد دستگاه QSV با \fBMFX_IMPL_HARDWARE\fR. .IP "\fI\-init_hw_device qsv:hw,child_device=1,child_device_type=d3d11va\fR" 4 .IX Item "-init_hw_device qsv:hw,child_device=1,child_device_type=d3d11va" ایجاد یک دستگاه QSV با \fBMFX_IMPL_HARDWARE\fR روی آداپتور 1 در DirectX با نوع زیردستگاه \fBd3d11va\fR. .IP "\fI\-init_hw_device vaapi=va:/dev/dri/renderD129 \-init_hw_device qsv=hw1@va\fR" 4 .IX Item "-init_hw_device vaapi=va:/dev/dri/renderD129 -init_hw_device qsv=hw1@va" ایجاد یک دستگاه VAAPI با نام \fBva\fR روی \fI/dev/dri/renderD129\fR، سپس مشتق کردن یک دستگاه QSV به نام \fBhw1\fR از دستگاه \fBva\fR. .RE .RS 4 .RE .IP \fBopencl\fR 4 .IX Item "opencl" پارامتر \fIdevice\fR پلتفرم و دستگاه را به صورت \fIplatform_index.device_index\fR انتخاب می‌کند. .Sp مجموعه دستگاه‌ها همچنین می‌توانند با استفاده از جفت‌های کلید-مقدار فیلتر شوند تا تنها دستگاه‌های منطبق با رشته‌های پلتفرم یا دستگاه خاص یافت گردند. .Sp رشته‌های قابل استفاده به عنوان فیلتر عبارتند از: .RS 4 .IP \fBplatform_profile\fR 4 .IX Item "platform_profile" .PD 0 .IP \fBplatform_version\fR 4 .IX Item "platform_version" .IP \fBplatform_name\fR 4 .IX Item "platform_name" .IP \fBplatform_vendor\fR 4 .IX Item "platform_vendor" .IP \fBplatform_extensions\fR 4 .IX Item "platform_extensions" .IP \fBdevice_name\fR 4 .IX Item "device_name" .IP \fBdevice_vendor\fR 4 .IX Item "device_vendor" .IP \fBdriver_version\fR 4 .IX Item "driver_version" .IP \fBdevice_version\fR 4 .IX Item "device_version" .IP \fBdevice_profile\fR 4 .IX Item "device_profile" .IP \fBdevice_extensions\fR 4 .IX Item "device_extensions" .IP \fBdevice_type\fR 4 .IX Item "device_type" .PD .RE .RS 4 .Sp اندیس‌ها و فیلترها باید با یکدیگر به طور یکتا یک دستگاه را انتخاب نمایند. .Sp مثال‌ها: .IP "\fI\-init_hw_device opencl:0.1\fR" 4 .IX Item "-init_hw_device opencl:0.1" انتخاب دومین دستگاه در اولین پلتفرم. .IP "\fI\-init_hw_device opencl:,device_name=Foo9000\fR" 4 .IX Item "-init_hw_device opencl:,device_name=Foo9000" انتخاب دستگاهی با نام حاوی رشته \fIFoo9000\fR. .IP "\fI\-init_hw_device opencl:1,device_type=gpu,device_extensions=cl_khr_fp16\fR" 4 .IX Item "-init_hw_device opencl:1,device_type=gpu,device_extensions=cl_khr_fp16" انتخاب دستگاه GPU در دومین پلتفرم که از اکستنشن \fIcl_khr_fp16\fR پشتیبانی می‌کند. .RE .RS 4 .RE .IP \fBvulkan\fR 4 .IX Item "vulkan" اگر \fIdevice\fR یک عدد صحیح باشد، دستگاه را بر اساس اندیس آن در فهرستی وابسته به سیستم از دستگاه‌ها انتخاب می‌کند. اگر \fIdevice\fR هر رشته دیگری باشد، نخستین دستگاهی را برمی‌گزیند که نام آن حاوی آن رشته به عنوان زیررشته باشد. .Sp گزینه‌های زیر شناخته شده هستند: .RS 4 .IP \fBdebug\fR 4 .IX Item "debug" اگر روی 1 تنظیم شود، validation layer را در صورت نصب فعال می‌سازد. .IP \fBlinear_images\fR 4 .IX Item "linear_images" اگر روی 1 تنظیم شود، تصاویر تخصیص‌یافته توسط hwcontext به صورت خطی و قابل نگاشت محلی خواهند بود. .IP \fBinstance_extensions\fR 4 .IX Item "instance_extensions" فهرستی جداشده با مثبت از اکستنشن‌های instance اضافی جهت فعال‌سازی. .IP \fBdevice_extensions\fR 4 .IX Item "device_extensions" فهرستی جداشده با مثبت از اکستنشن‌های دستگاه اضافی جهت فعال‌سازی. .RE .RS 4 .Sp مثال‌ها: .IP "\fI\-init_hw_device vulkan:1\fR" 4 .IX Item "-init_hw_device vulkan:1" انتخاب دومین دستگاه روی سیستم. .IP "\fI\-init_hw_device vulkan:RADV\fR" 4 .IX Item "-init_hw_device vulkan:RADV" انتخاب نخستین دستگاه با نام حاوی رشته \fIRADV\fR. .IP "\fI\-init_hw_device vulkan:0,instance_extensions=VK_KHR_wayland_surface+VK_KHR_xcb_surface\fR" 4 .IX Item "-init_hw_device vulkan:0,instance_extensions=VK_KHR_wayland_surface+VK_KHR_xcb_surface" انتخاب نخستین دستگاه و فعال‌سازی اکستنشن‌های نمونه Wayland و XCB. .RE .RS 4 .RE .RE .RS 4 .RE .IP "\fB\-init_hw_device\fR \fItype\fR\fB[=\fR\fIname\fR\fB]@\fR\fIsource\fR" 4 .IX Item "-init_hw_device type[=name]@source" راه‌اندازی یک دستگاه سخت‌افزاری جدید از نوع \fItype\fR با نام \fIname\fR، با اشتقاق آن از دستگاه موجود با نام \fIsource\fR. .IP "\fB\-init_hw_device list\fR" 4 .IX Item "-init_hw_device list" فهرست کردن تمامی انواع دستگاه‌های سخت‌افزاری پشتیبانی‌شده در این ساخت ffmpeg. .IP "\fB\-filter_hw_device\fR \fIname\fR" 4 .IX Item "-filter_hw_device name" ارسال دستگاه سخت‌افزاری با نام \fIname\fR به تمام فیلترها در هر فیلترگراف. این می‌تواند برای تنظیم دستگاه جهت آپلود با فیلتر \f(CW\*(C`hwupload\*(C'\fR، یا دستگاه جهت نگاشت با فیلتر \f(CW\*(C`hwmap\*(C'\fR استفاده شود. سایر فیلترها نیز ممکن است در صورت نیاز به یک دستگاه سخت‌افزاری از این پارامتر بهره گیرند. توجه داشته باشید که این گزینه معمولاً تنها زمانی مورد نیاز است که ورودی از قبل در فریم‌های سخت‌افزاری نباشد \- در حالتی که باشد، فیلترها دستگاه مورد نیاز خود را از کانتکست فریم‌هایی که به عنوان ورودی دریافت می‌کنند استخراج خواهند کرد. .Sp این یک تنظیم عمومی است، بنابراین تمامی فیلترها همان دستگاه یکسان را دریافت خواهند کرد. .IP "\fB\-hwaccel[:\fR\fIstream_specifier\fR\fB]\fR \fIhwaccel\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-hwaccel[:stream_specifier] hwaccel (input,per-stream)" استفاده از شتاب سخت‌افزاری برای دیکود کردن استریم(های) منطبق. مقادیر مجاز \&\fIhwaccel\fR عبارتند از: .RS 4 .IP \fBnone\fR 4 .IX Item "none" عدم استفاده از هیچ شتاب سخت‌افزاری (پیش‌فرض). .IP \fBauto\fR 4 .IX Item "auto" انتخاب خودکار روش شتاب‌دهی سخت‌افزاری. .IP \fBvdpau\fR 4 .IX Item "vdpau" استفاده از شتاب سخت‌افزاری VDPAU (رابط برنامه‌نویسی دیکود و نمایش ویدیو برای یونیکس). .IP \fBdxva2\fR 4 .IX Item "dxva2" استفاده از شتاب سخت‌افزاری DXVA2 (DirectX Video Acceleration). .IP \fBd3d11va\fR 4 .IX Item "d3d11va" استفاده از شتاب سخت‌افزاری D3D11VA (DirectX Video Acceleration). .IP \fBvaapi\fR 4 .IX Item "vaapi" استفاده از شتاب سخت‌افزاری VAAPI (Video Acceleration API). .IP \fBqsv\fR 4 .IX Item "qsv" استفاده از شتاب ویدیویی Intel QuickSync برای ترنسکدینگ ویدیو. .Sp بر خلاف اکثر مقادیر دیگر، این گزینه دیکودینگ شتاب‌یافته را فعال نمی‌کند (که هر زمان دیکودر qsv انتخاب شود به طور خودکار به کار می‌رود)، بلکه ترنسکدینگ شتاب‌یافته را بدون کپی کردن فریم‌ها در حافظه سیستم فعال می‌سازد. .Sp برای کارکرد آن، هم دیکودر و هم انکودر باید از شتاب QSV پشتیبانی نمایند و نباید از هیچ فیلتری استفاده شود. .IP \fBvideotoolbox\fR 4 .IX Item "videotoolbox" استفاده از شتاب سخت‌افزاری Video Toolbox. .RE .RS 4 .Sp اگر hwaccel انتخاب‌شده در دسترس نباشد یا توسط دیکودر انتخاب‌شده پشتیبانی نگردد، این گزینه اثری ندارد. .Sp توجه داشته باشید که بیشتر روش‌های شتاب‌دهی برای پخش (playback) در نظر گرفته شده‌اند و بر روی پردازنده‌های امروزی سریع‌تر از دیکودینگ نرم‌افزاری نخواهند بود. علاوه بر این، \fBffmpeg\fR معمولاً نیازمند کپی کردن فریم‌های دیکودشده از حافظه GPU به حافظه سیستم خواهد بود، که به افت بیشتر کارایی می‌انجامد. بنابراین این گزینه عمدتاً برای اهداف آزمایشی مفید است. .RE .IP "\fB\-hwaccel_device[:\fR\fIstream_specifier\fR\fB]\fR \fIhwaccel_device\fR \fB(\fR\fIinput,per\-stream\fR\fB)\fR" 4 .IX Item "-hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)" انتخاب یک دستگاه برای استفاده در شتاب سخت‌افزاری. .Sp این گزینه تنها زمانی معنا دارد که گزینه \fB\-hwaccel\fR نیز مشخص شده باشد. این گزینه می‌تواند یا به یک دستگاه موجود ایجادشده با \fB\-init_hw_device\fR از طریق نام ارجاع دهد، یا می‌تواند یک دستگاه جدید ایجاد کند به گونه‌ای که گویی \&\fB\-init_hw_device\fR \fItype\fR:\fIhwaccel_device\fR بلافاصله پیش از آن فراخوانی شده است. .IP \fB\-hwaccels\fR 4 .IX Item "-hwaccels" فهرست کردن تمامی مؤلفه‌های شتاب سخت‌افزاری فعال‌شده در این ساخت ffmpeg. در دسترس بودن واقعی در زمان اجرا بستگی به سخت‌افزار و نصب درایور مناسب آن دارد. .IP \fB\-fix_sub_duration_heartbeat[:\fR\fIstream_specifier\fR\fB]\fR 4 .IX Item "-fix_sub_duration_heartbeat[:stream_specifier]" تنظیم یک استریم ویدیویی خروجی خاص به عنوان استریم ضربان قلب (heartbeat) که بر اساس آن، زیرنویس در حال پردازش جاری پس از دریافت یک بسته دسترسی تصادفی، تقسیم شده و ارسال گردد. .Sp این گزینه تأخیر (latency) زیرنویس‌هایی را که هنوز بسته پایانی یا زیرنویس بعدی آن‌ها دریافت نشده است کاهش می‌دهد. به عنوان یک نقص، این کار به احتمال زیاد منجر به تکثیر رویدادهای زیرنویس جهت پوشش کل مدت‌زمان خواهد شد، بنابراین در مواردی که تأخیر ارسال رویداد زیرنویس به خروجی اهمیتی ندارد، این گزینه نباید مورد استفاده قرار گیرد. .Sp برای این‌که این گزینه اثری داشته باشد، لازم است \fB\-fix_sub_duration\fR برای استریم زیرنویس ورودی مربوطه تنظیم شده باشد، و همچنین استریم زیرنویس ورودی باید مستقیماً به همان خروجی که استریم heartbeat در آن قرار دارد نگاشت شده باشد. .SS "گزینه‌های صدا (Audio Options)" .IX Subsection "Audio Options" .IP "\fB\-aframes\fR \fInumber\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-aframes number (output)" تنظیم تعداد فریم‌های صوتی خروجی. این یک نام مستعار منسوخ‌شده برای \&\f(CW\*(C`\-frames:a\*(C'\fR است که باید به جای آن استفاده کنید. .IP "\fB\-ar[:\fR\fIstream_specifier\fR\fB]\fR \fIfreq\fR \fB(\fR\fIورودی/خروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-ar[:stream_specifier] freq (input/output,per-stream)" تنظیم فرکانس نمونه‌برداری صوتی. برای استریم‌های خروجی، به‌طور پیش‌فرض روی فرکانس استریم ورودی مربوطه تنظیم می‌شود. برای استریم‌های ورودی، این گزینه فقط برای دستگاه‌های ضبط صدا و دی‌ماکسرهای خام معنی دارد و به گزینه‌های دی‌ماکسر مربوطه نگاشت می‌شود. .IP "\fB\-aq\fR \fIq\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-aq q (output)" تنظیم کیفیت صدا (وابسته به کدک، VBR). این یک نام مستعار برای \-q:a است. .IP "\fB\-ac[:\fR\fIstream_specifier\fR\fB]\fR \fIchannels\fR \fB(\fR\fIورودی/خروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-ac[:stream_specifier] channels (input/output,per-stream)" تنظیم تعداد کانال‌های صوتی. برای استریم‌های خروجی، به‌طور پیش‌فرض روی تعداد کانال‌های صوتی ورودی تنظیم می‌شود. برای استریم‌های ورودی، این گزینه فقط برای دستگاه‌های ضبط صدا و دی‌ماکسرهای خام معنی دارد و به گزینه‌های دی‌ماکسر مربوطه نگاشت می‌شود. .IP "\fB\-an (\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "-an (input/output)" به عنوان یک گزینه ورودی، از فیلتر شدن یا انتخاب خودکار یا نگاشت همه استریم‌های صوتی یک پرونده برای هر خروجی جلوگیری می‌کند. برای غیرفعال کردن استریم‌ها به صورت جداگانه، گزینهٔ \f(CW\*(C`\-discard\*(C'\fR را ببینید. .Sp به عنوان یک گزینه خروجی، ضبط صدا یعنی انتخاب یا نگاشت خودکار هر استریم صوتی را غیرفعال می‌کند. برای کنترل کامل دستی، گزینهٔ \f(CW\*(C`\-map\*(C'\fR را ببینید. .IP "\fB\-acodec\fR \fIcodec\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "-acodec codec (input/output)" تنظیم کدک صوتی. این یک نام مستعار برای \f(CW\*(C`\-codec:a\*(C'\fR است. .IP "\fB\-sample_fmt[:\fR\fIstream_specifier\fR\fB]\fR \fIsample_fmt\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-sample_fmt[:stream_specifier] sample_fmt (output,per-stream)" تنظیم قالب نمونه صوتی. برای دریافت فهرستی از قالب‌های نمونه پشتیبانی‌شده، از \f(CW\*(C`\-sample_fmts\*(C'\fR استفاده کنید. .IP "\fB\-af\fR \fIfiltergraph\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-af filtergraph (output)" ایجاد فیلترگراف مشخص‌شده با \fIfiltergraph\fR و استفاده از آن برای فیلتر کردن استریم. .Sp این یک نام مستعار برای \f(CW\*(C`\-filter:a\*(C'\fR است، \fBگزینهٔ \-filter\fR را ببینید. .SS "گزینه‌های پیشرفتهٔ صدا (Advanced Audio options)" .IX Subsection "Advanced Audio options" .IP "\fB\-atag\fR \fIfourcc/tag\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-atag fourcc/tag (output)" اجبار تگ صوتی/fourcc. این یک نام مستعار برای \f(CW\*(C`\-tag:a\*(C'\fR است. .IP "\fB\-ch_layout[:\fR\fIstream_specifier\fR\fB]\fR \fIlayout\fR \fB(\fR\fIورودی/خروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-ch_layout[:stream_specifier] layout (input/output,per-stream)" نام مستعار برای \f(CW\*(C`\-channel_layout\*(C'\fR. .IP "\fB\-channel_layout[:\fR\fIstream_specifier\fR\fB]\fR \fIlayout\fR \fB(\fR\fIورودی/خروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-channel_layout[:stream_specifier] layout (input/output,per-stream)" تنظیم چینش کانال‌های صوتی. برای استریم‌های خروجی، به‌طور پیش‌فرض روی چینش کانال ورودی تنظیم می‌شود. برای استریم‌های ورودی، چینش کانال ورودی را بازنویسی می‌کند. همه رمزگشاها از چینش کانال بازنویسی‌شده پیروی نمی‌کنند. این گزینه همچنین چینش کانال را برای دستگاه‌های ضبط صدا و دی‌ماکسرهای خام تنظیم می‌کند و به گزینهٔ دی‌ماکسر مربوطه نگاشت می‌شود. .IP "\fB\-guess_layout_max\fR \fIchannels\fR \fB(\fR\fIورودی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-guess_layout_max channels (input,per-stream)" اگر چینش کانال ورودی نامشخص باشد، فقط در صورتی برای حدس زدن تلاش می‌شود که حداکثر با تعداد کانال‌های مشخص‌شده مطابقت داشته باشد. برای مثال، ۲ به \fBffmpeg\fR می‌گوید که ۱ کانال را مونو و ۲ کانال را استریو تشخیص دهد، اما ۶ کانال را به عنوان ۵.۱ در نظر نگیرد. مقدار پیش‌فرض تلاش همیشگی برای حدس زدن است. برای غیرفعال کردن کامل حدس زدن از 0 استفاده کنید. استفاده از گزینهٔ \f(CW\*(C`\-channel_layout\*(C'\fR برای تعیین صریح چینش ورودی نیز حدس زدن را غیرفعال می‌کند. .SS "گزینه‌های زیرنویس (Subtitle options)" .IX Subsection "Subtitle options" .IP "\fB\-scodec\fR \fIcodec\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "-scodec codec (input/output)" تنظیم کدک زیرنویس. این یک نام مستعار برای \f(CW\*(C`\-codec:s\*(C'\fR است. .IP "\fB\-sn (\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "-sn (input/output)" به عنوان یک گزینه ورودی، از فیلتر شدن یا انتخاب خودکار یا نگاشت همه استریم‌های زیرنویس یک پرونده برای هر خروجی جلوگیری می‌کند. برای غیرفعال کردن استریم‌ها به صورت جداگانه، گزینهٔ \f(CW\*(C`\-discard\*(C'\fR را ببینید. .Sp به عنوان یک گزینه خروجی، ضبط زیرنویس یعنی انتخاب یا نگاشت خودکار هر استریم زیرنویس را غیرفعال می‌کند. برای کنترل کامل دستی، گزینهٔ \f(CW\*(C`\-map\*(C'\fR را ببینید. .SS "گزینه‌های پیشرفتهٔ زیرنویس (Advanced Subtitle options)" .IX Subsection "Advanced Subtitle options" .IP \fB\-fix_sub_duration\fR 4 .IX Item "-fix_sub_duration" اصلاح مدت‌زمان نمایش زیرنویس‌ها. برای هر زیرنویس، منتظر بسته بعدی در همان استریم می‌ماند و مدت‌زمان اولی را برای جلوگیری از هم‌پوشانی تنظیم می‌کند. این کار برای برخی کدک‌های زیرنویس، به ویژه زیرنویس‌های DVB ضروری است، زیرا مدت‌زمان در بسته اصلی صرفاً یک تخمین تقریبی است و پایان آن در واقع با یک فریم زیرنویس خالی مشخص می‌شود. عدم استفاده از این گزینه در صورت لزوم می‌تواند منجر به مدت‌زمان‌های بیش از حد طولانی یا خرابی در ماکس کردن به دلیل برچسب‌های زمانی غیریکنواخت شود. .Sp توجه داشته باشید که این گزینه خروجی تمام داده‌ها را تا زمان رمزگشایی بسته زیرنویس بعدی به تأخیر می‌اندازد: این امر ممکن است مصرف حافظه و تاخیر را بسیار افزایش دهد. .IP "\fB\-canvas_size\fR \fIsize\fR" 4 .IX Item "-canvas_size size" تنظیم اندازه بوم (canvas) مورد استفاده برای رندر کردن زیرنویس‌ها. .SS "گزینه‌های پیشرفته (Advanced options)" .IX Subsection "Advanced options" .IP "\fB\-map [\-]\fR\fIinput_file_id\fR\fB[:\fR\fIstream_specifier\fR\fB][:\fR\fIview_specifier\fR\fB][:?] |\fR \fI[linklabel]\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-map [-]input_file_id[:stream_specifier][:view_specifier][:?] | [linklabel] (output)" ایجاد یک یا چند استریم در پرونده خروجی. این گزینه دو شیوه برای تعیین منبع (یا منابع) داده دارد: شیوه اول یک یا چند استریم را از یک پرونده ورودی (مشخص‌شده با \f(CW\*(C`\-i\*(C'\fR) انتخاب می‌کند، و شیوه دوم خروجی را از یک فیلترگراف پیچیده (مشخص‌شده با \f(CW\*(C`\-filter_complex\*(C'\fR) دریافت می‌کند. .Sp در شیوه اول، برای هر استریم از پرونده ورودی با شناسه \fIinput_file_id\fR یک استریم خروجی ایجاد می‌شود. اگر \fIstream_specifier\fR داده شود، فقط آن دسته از استریم‌هایی که با مشخص‌کننده مطابقت دارند استفاده می‌شوند (برای نحو \fIstream_specifier\fR بخش \fBمشخص‌کننده‌های استریم (Stream specifiers)\fR را ببینید). .Sp یک نویسهٔ \f(CW\*(C`\-\*(C'\fR قبل از شناسه استریم یک نگاشت "منفی" ایجاد می‌کند. این کار استریم‌های منطبق را از نگاشت‌های ایجادشده قبلی غیرفعال و حذف می‌نماید. .Sp یک \fIview_specifier\fR اختیاری می‌تواند پس از مشخص‌کننده استریم قرار گیرد که برای ویدیوی چندنمایی (multiview)، نمای مورد استفاده را مشخص می‌کند. مشخص‌کننده نما می‌تواند یکی از قالب‌های زیر را داشته باشد: .RS 4 .IP \fBview:\fR\fIview_id\fR 4 .IX Item "view:view_id" انتخاب یک نما بر اساس شناسه آن؛ \fIview_id\fR می‌تواند برابر با \*(Aqall\*(Aq باشد تا از همه نماها به صورت درهم‌تنیده در یک استریم استفاده شود؛ .IP \fBvidx:\fR\fIview_idx\fR 4 .IX Item "vidx:view_idx" انتخاب یک نما بر اساس نمایه (index) آن؛ یعنی 0 نمای پایه است، 1 اولین نمای غیرپایه است، و غیره. .IP \fBvpos:\fR\fIposition\fR 4 .IX Item "vpos:position" انتخاب یک نما بر اساس موقعیت نمایش آن؛ \fIposition\fR می‌تواند \f(CW\*(C`left\*(C'\fR یا \f(CW\*(C`right\*(C'\fR باشد .RE .RS 4 .Sp پیش‌فرض برای تبدیل و ترنسکود فقط استفاده از نمای پایه است، یعنی معادل \f(CW\*(C`vidx:0\*(C'\fR. برای رونوشت استریم (streamcopy)، مشخص‌کننده‌های نما پشتیبانی نمی‌شوند و تمام نماها همواره رونوشت می‌شوند. .Sp قراردادن یک \f(CW\*(C`?\*(C'\fR پایانی بعد از نمایه استریم، این نگاشت را اختیاری می‌کند: اگر نگاشت با هیچ استریمی مطابقت نداشته باشد، به جای ایجاد خطا نادیده گرفته می‌شود. توجه داشته باشید که اگر از نمایه پرونده ورودی نامعتبر استفاده شود (مانند ارجاع نگاشت به یک ورودی ناموجود)، همچنان خطا رخ خواهد داد. .Sp شکل جایگزین \fI[linklabel]\fR خروجی‌های حاصل از فیلترگراف‌های پیچیده (گزینهٔ \fB\-filter_complex\fR را ببینید) را به پرونده خروجی نگاشت می‌کند. \fIlinklabel\fR باید با یک برچسب پیوند خروجی تعریف‌شده در گراف مطابقت داشته باشد. .Sp این گزینه می‌تواند چندین بار مشخص شود که هر بار استریم‌های بیشتری به پرونده خروجی اضافه می‌کند. هر استریم ورودی معین می‌تواند به هر تعداد بار به عنوان منبع برای استریم‌های خروجی مختلف نگاشت شود، مثلاً برای استفاده از گزینه‌های انکود و/یا فیلترهای متفاوت. استریم‌ها در خروجی به همان ترتیبی ایجاد می‌شوند که گزینه‌های \f(CW\*(C`\-map\*(C'\fR در خط فرمان وارد شده‌اند. .Sp استفاده از این گزینه نگاشت‌های پیش‌فرض را برای این پرونده خروجی غیرفعال می‌کند. .Sp مثال‌ها: .IP "\fImap everything\fR" 4 .IX Item "map everything" برای نگاشت تمام استریم‌ها از اولین پرونده ورودی به خروجی: .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0 output .Ve .IP "\fIselect specific stream\fR" 4 .IX Item "select specific stream" اگر دو استریم صوتی در پرونده ورودی اول داشته باشید، این استریم‌ها با \fI0:0\fR و \fI0:1\fR مشخص می‌شوند. می‌توانید از \f(CW\*(C`\-map\*(C'\fR برای انتخاب استریم‌های مورد نظر برای قرار گرفتن در پرونده خروجی استفاده کنید. برای مثال: .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0:1 out.wav .Ve .Sp استریم ورودی دوم در \fIINPUT\fR را به (تک) استریم خروجی در \fIout.wav\fR نگاشت می‌کند. .IP "\fIcreate multiple streams\fR" 4 .IX Item "create multiple streams" برای انتخاب استریم با نمایه 2 از پرونده ورودی \fIa.mov\fR (مشخص‌شده با شناسه \fI0:2\fR)، و استریم با نمایه 6 از ورودی \fIb.mov\fR (مشخص‌شده با شناسه \fI1:6\fR)، و رونوشت آن‌ها به پرونده خروجی \fIout.mov\fR: .Sp .Vb 1 \& ffmpeg \-i a.mov \-i b.mov \-c copy \-map 0:2 \-map 1:6 out.mov .Ve .IP "\fIcreate multiple streams 2\fR" 4 .IX Item "create multiple streams 2" برای انتخاب تمام ویدیو و سومین استریم صوتی از یک پرونده ورودی: .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0:v \-map 0:a:2 OUTPUT .Ve .IP "\fInegative map\fR" 4 .IX Item "negative map" برای نگاشت تمام استریم‌ها به جز استریم صوتی دوم، از نگاشت‌های منفی استفاده کنید: .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0 \-map \-0:a:1 OUTPUT .Ve .IP "\fIoptional map\fR" 4 .IX Item "optional map" برای نگاشت استریم‌های ویدیویی و صوتی از ورودی اول، و استفاده از \f(CW\*(C`?\*(C'\fR پایانی جهت نادیده گرفتن نگاشت صدا در صورتی که هیچ استریم صوتی در ورودی اول وجود نداشته باشد: .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0:v \-map 0:a? OUTPUT .Ve .IP "\fImap by language\fR" 4 .IX Item "map by language" برای انتخاب استریم صوتی انگلیسی: .Sp .Vb 1 \& ffmpeg \-i INPUT \-map 0:m:language:eng OUTPUT .Ve .RE .RS 4 .RE .IP \fB\-ignore_unknown\fR 4 .IX Item "-ignore_unknown" نادیده گرفتن استریم‌های ورودی با نوع ناشناخته به جای خطا دادن در هنگام تلاش برای رونوشت چنین استریم‌هایی. .IP \fB\-copy_unknown\fR 4 .IX Item "-copy_unknown" اجازه به رونوشت استریم‌های ورودی با نوع ناشناخته به جای خطا دادن در هنگام تلاش برای رونوشت چنین استریم‌هایی. .IP "\fB\-map_metadata[:\fR\fImetadata_spec_out\fR\fB]\fR \fIinfile\fR\fB[:\fR\fImetadata_spec_in\fR\fB] (\fR\fIخروجی،به‌ازای هر متاداده\fR\fB)\fR" 4 .IX Item "-map_metadata[:metadata_spec_out] infile[:metadata_spec_in] (output,per-metadata)" تنظیم اطلاعات متادادهٔ پرونده خروجی بعدی از \fIinfile\fR. توجه داشته باشید که این‌ها نمایه‌های پرونده (بر پایه صفر) هستند، نه نام پرونده‌ها. پارامترهای اختیاری \fImetadata_spec_in/out\fR مشخص می‌کنند کدام متاداده رونوشت شود. یک مشخص‌کننده متاداده می‌تواند قالب‌های زیر را داشته باشد: .RS 4 .IP \fIg\fR 4 .IX Item "g" متادادهٔ سراسری (global)، یعنی متاداده‌ای که برای کل پرونده اعمال می‌شود .IP \fIs\fR\fB[:\fR\fIstream_spec\fR\fB]\fR 4 .IX Item "s[:stream_spec]" متاداده به‌ازای هر استریم. \fIstream_spec\fR یک مشخص‌کننده استریم همان‌طور که در فصل \fBمشخص‌کننده‌های استریم\fR توضیح داده شده است می‌باشد. در مشخص‌کننده متاداده ورودی، اولین استریم منطبق منبع رونوشت است. در مشخص‌کننده متاداده خروجی، به تمام استریم‌های منطبق رونوشت می‌شود. .IP \fIc\fR\fB:\fR\fIchapter_index\fR 4 .IX Item "c:chapter_index" متاداده به‌ازای هر فصل (chapter). مقدار \fIchapter_index\fR نمایه فصل بر پایه صفر است. .IP \fIp\fR\fB:\fR\fIprogram_index\fR 4 .IX Item "p:program_index" متاداده به‌ازای هر برنامه (program). مقدار \fIprogram_index\fR نمایه برنامه بر پایه صفر است. .RE .RS 4 .Sp اگر مشخص‌کننده متاداده حذف شود، به‌طور پیش‌فرض سراسری (global) در نظر گرفته می‌شود. .Sp به‌طور پیش‌فرض، متادادهٔ سراسری از اولین پرونده ورودی رونوشت می‌شود، متادادهٔ هر استریم و هر فصل همراه با استریم‌ها/فصل‌ها رونوشت می‌گردد. این نگاشت‌های پیش‌فرض با ایجاد هر نگاشتی از نوع مربوطه غیرفعال می‌شوند. از یک نمایه پرونده منفی می‌توان برای ایجاد یک نگاشت ساختگی استفاده کرد که فقط رونوشت خودکار را غیرفعال می‌کند. .Sp برای مثال برای رونوشت متاداده از اولین استریم پرونده ورودی به متاداده سراسری پرونده خروجی: .Sp .Vb 1 \& ffmpeg \-i in.ogg \-map_metadata 0:s:0 out.mp3 .Ve .Sp برای انجام برعکس، یعنی رونوشت متاداده سراسری به تمام استریم‌های صوتی: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-map_metadata:s:a 0:g out.mkv .Ve .Sp توجه داشته باشید که نوشتن ساده \f(CW0\fR نیز در این مثال کار می‌کند، زیرا متاداده سراسری به‌طور پیش‌فرض در نظر گرفته می‌شود. .RE .IP "\fB\-map_chapters\fR \fIinput_file_index\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-map_chapters input_file_index (output)" رونوشت فصل‌ها از پرونده ورودی با نمایه \fIinput_file_index\fR به پرونده خروجی بعدی. اگر هیچ نگاشت فصلی مشخص نشود، فصل‌ها از اولین پرونده ورودی دارای حداقل یک فصل رونوشت می‌شوند. از یک نمایه پرونده منفی برای غیرفعال کردن هرگونه رونوشت فصل استفاده کنید. .IP "\fB\-benchmark (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-benchmark (global)" نمایش اطلاعات محک‌زنی (benchmarking) در پایان عملیات انکود. زمان واقعی، سیستم و کاربر مصرف‌شده و حداکثر مصرف حافظه را نمایش می‌دهد. حداکثر مصرف حافظه در تمام سیستم‌ها پشتیبانی نمی‌شود و در صورت عدم پشتیبانی معمولاً 0 نمایش داده می‌شود. .IP "\fB\-benchmark_all (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-benchmark_all (global)" نمایش اطلاعات محک‌زنی در حین عملیات انکود. زمان واقعی، سیستم و کاربر مصرف‌شده در مراحل مختلف (انکود/دیکود صوتی و تصویری) را نمایش می‌دهد. .IP "\fB\-timelimit\fR \fIduration\fR \fB(\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-timelimit duration (global)" خروج پس از اینکه ffmpeg به میزان \fIduration\fR ثانیه در زمان پردازنده (CPU user time) اجرا شد. .IP "\fB\-dump (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-dump (global)" تخلیه (dump) هر بسته ورودی در خروجی استاندارد خطا (stderr). .IP "\fB\-hex (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-hex (global)" هنگام تخلیه بسته‌ها، بار داده (payload) آن‌ها را نیز به صورت هگزادسیمال تخلیه می‌کند. .IP "\fB\-readrate\fR \fIspeed\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "-readrate speed (input)" محدود کردن سرعت خواندن ورودی. .Sp مقدار آن یک عدد اعشاری مثبت است که حداکثر مدت‌زمان رسانه (به ثانیه) را نشان می‌دهد که باید در یک ثانیه از زمان واقعی ساعت دیواری خوانده شود. مقدار پیش‌فرض صفر است و نشان‌دهنده عدم اعمال محدودیت بر سرعت خواندن است. مقدار \f(CW1\fR نشان‌دهنده سرعت زمان‌واقعی (real-time) است و معادل \f(CW\*(C`\-re\*(C'\fR می‌باشد. .Sp عمدتاً برای شبیه‌سازی یک دستگاه ضبط یا استریم زنده ورودی (مثلاً هنگام خواندن از یک پرونده) استفاده می‌شود. هنگامی که ورودی یک دستگاه ضبط واقعی یا استریم زنده است نباید با مقدار کم استفاده شود زیرا ممکن است باعث از دست رفتن بسته‌ها گردد. .Sp این گزینه زمانی که سرعت جریان بسته‌های خروجی اهمیت دارد (مانند پخش زنده)، مفید است. .IP "\fB\-re (\fR\fIورودی\fR\fB)\fR" 4 .IX Item "-re (input)" خواندن ورودی با نرخ فریم بومی آن. این معادل تنظیم \f(CW\*(C`\-readrate 1\*(C'\fR است. .IP "\fB\-readrate_initial_burst\fR \fIseconds\fR" 4 .IX Item "-readrate_initial_burst seconds" تنظیم زمان اولیه برای انفجار خواندن (burst)، به ثانیه، که پس از آن \fB\-re/\-readrate\fR اعمال خواهد شد. .IP "\fB\-readrate_catchup\fR \fIspeed\fR \fB(\fR\fIورودی\fR\fB)\fR" 4 .IX Item "-readrate_catchup speed (input)" اگر ورودی یا خروجی مسدود شده و منجر به عقب افتادن سرعت خواندن واقعی از نرخ تعیین‌شده شود، این نرخ اعمال می‌شود تا ورودی به نرخ تعیین‌شده برسد. نباید از نرخ اصلی خواندن کمتر باشد. .IP "\fB\-fps_mode[:\fR\fIstream_specifier\fR\fB]\fR \fIparameter\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-fps_mode[:stream_specifier] parameter (output,per-stream)" تنظیم روش همگام‌سازی ویدیو / حالت نرخ فریم. .RS 4 .IP \fBpassthrough\fR 4 .IX Item "passthrough" هر فریم همراه با برچسب زمانی خود از دی‌ماکسر به ماکسر منتقل می‌شود. .IP \fBcfr\fR 4 .IX Item "cfr" فریم‌ها برای دستیابی دقیق به نرخ فریم ثابتِ درخواست‌شده، تکرار یا دور ریخته می‌شوند. .IP \fBvfr\fR 4 .IX Item "vfr" فریم‌ها همراه با برچسب زمانی خود عبور داده می‌شوند یا دور ریخته می‌شوند تا از یکسان شدن برچسب زمانی ۲ فریم جلوگیری شود. .IP \fBauto\fR 4 .IX Item "auto" بسته به توانایی‌های ماکسر، میان cfr و vfr انتخاب می‌کند. این روش پیش‌فرض است. .RE .RS 4 .Sp توجه داشته باشید که برچسب‌های زمانی ممکن است پس از این مرحله، توسط ماکسر بیشتر تغییر داده شوند. برای مثال در حالتی که گزینه قالب \fBavoid_negative_ts\fR فعال باشد. .Sp با استفاده از \-map می‌توانید انتخاب کنید که برچسب‌های زمانی از کدام استریم گرفته شوند. می‌توانید ویدیو یا صدا را بدون تغییر باقی بگذارید و استریم(های) باقی‌مانده را با استریم دست‌نخورده همگام نمایید. .RE .IP "\fB\-frame_drop_threshold\fR \fIparameter\fR" 4 .IX Item "-frame_drop_threshold parameter" آستانه دور انداختن فریم، که مشخص می‌کند فریم‌های ویدیویی چه مقدار می‌توانند عقب بیفتند پیش از اینکه دور ریخته شوند. بر حسب واحدهای نرخ فریم بیان می‌شود، بنابراین 1.0 معادل یک فریم است. مقدار پیش‌فرض \-1.1 است. یک کاربرد احتمالی برای جلوگیری از دور انداختن فریم در هنگام وجود نویز در برچسب‌های زمانی، یا افزایش دقت حذف فریم در صورت وجود برچسب‌های زمانی دقیق است. .IP "\fB\-apad\fR \fIparameters\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-apad parameters (output,per-stream)" پر کردن (Padding) استریم(های) صوتی خروجی. این همانند اعمال \f(CW\*(C`\-af apad\*(C'\fR است. آرگومان یک رشته از پارامترهای فیلتر است که همانند فیلتر \f(CW\*(C`apad\*(C'\fR ترکیب شده است. برای اعمال این گزینه، باید \f(CW\*(C`\-shortest\*(C'\fR برای این خروجی تنظیم شده باشد. .IP \fB\-copyts\fR 4 .IX Item "-copyts" عدم پردازش برچسب‌های زمانی ورودی و نگه‌داشتن مقادیر آن‌ها بدون تلاش برای پاکسازی یا اصلاح آن‌ها. به‌ویژه، مقدار آفست زمان شروع اولیه حذف نمی‌شود. .Sp توجه داشته باشید که بسته به گزینهٔ \fBfps_mode\fR یا پردازش‌های خاص ماکسر (مثلاً در صورتی که گزینهٔ قالب \fBavoid_negative_ts\fR فعال باشد)، برچسب‌های زمانی خروجی ممکن است حتی با انتخاب این گزینه نیز با برچسب‌های زمانی ورودی مغایرت داشته باشند. .IP \fB\-start_at_zero\fR 4 .IX Item "-start_at_zero" هنگام استفاده با \fBcopyts\fR، برچسب‌های زمانی ورودی را طوری شیفت می‌دهد که از صفر شروع شوند. .Sp این بدان معناست که استفاده از مثلاً \f(CW\*(C`\-ss 50\*(C'\fR باعث می‌شود برچسب‌های زمانی خروجی از ۵۰ ثانیه شروع شوند، صرف‌نظر از اینکه پرونده ورودی از چه برچسب زمانی آغاز شده است. .IP "\fB\-copytb\fR \fImode\fR" 4 .IX Item "-copytb mode" مشخص کردن چگونگی تنظیم مبنای زمانی (timebase) انکودر هنگام رونوشت استریم. \fImode\fR یک مقدار عددی صحیح است و می‌تواند یکی از مقادیر زیر باشد: .RS 4 .IP \fB1\fR 4 .IX Item "1" استفاده از مبنای زمانی دی‌ماکسر. .Sp مبنای زمانی از دی‌ماکسر ورودی مربوطه به انکودر خروجی رونوشت می‌شود. این کار گاهی برای جلوگیری از برچسب‌های زمانی غیریکنواخت هنگام رونوشت استریم‌های ویدیویی با نرخ فریم متغیر ضروری است. .IP \fB0\fR 4 .IX Item "0" استفاده از مبنای زمانی رمزگشا (دیکودر). .Sp مبنای زمانی از دیکودر ورودی مربوطه به انکودر خروجی رونوشت می‌شود. .IP \fB\-1\fR 4 .IX Item "-1" تلاش برای انتخاب خودکار به منظور تولید یک خروجی معقول و سالم. .RE .RS 4 .Sp مقدار پیش‌فرض \-1 است. .RE .IP "\fB\-enc_time_base[:\fR\fIstream_specifier\fR\fB]\fR \fItimebase\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-enc_time_base[:stream_specifier] timebase (output,per-stream)" تنظیم مبنای زمانی انکودر. \fItimebase\fR می‌تواند یکی از مقادیر زیر باشد: .RS 4 .IP \fB0\fR 4 .IX Item "0" تخصیص یک مقدار پیش‌فرض با توجه به نوع رسانه. .Sp برای ویدیو \- از 1/framerate و برای صدا \- از 1/samplerate استفاده می‌کند. .IP \fBdemux\fR 4 .IX Item "demux" استفاده از مبنای زمانی حاصل از دی‌ماکسر. .IP \fBfilter\fR 4 .IX Item "filter" استفاده از مبنای زمانی حاصل از فیلترگراف. .IP "\fBa positive number\fR" 4 .IX Item "a positive number" استفاده از عدد ارائه‌شده به عنوان مبنای زمانی. .Sp این فیلد می‌تواند به صورت نسبت دو عدد صحیح (مانند 1:24 یا 1:48000) یا به صورت یک عدد اعشاری (مانند 0.04166 یا 2.0833e-5) ارائه شود. .RE .RS 4 .Sp مقدار پیش‌فرض 0 است. .RE .IP "\fB\-bitexact (\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "-bitexact (input/output)" فعال کردن حالت دقیق بیتی (bitexact) برای (دی)ماکسر و (دیکودر/انکودر). .IP "\fB\-shortest (\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-shortest (output)" پایان دادن به انکود زمانی که کوتاه‌ترین استریم خروجی به پایان می‌رسد. .Sp توجه داشته باشید که این گزینه ممکن است نیازمند بافر کردن فریم‌ها باشد که باعث ایجاد تأخیر اضافی می‌شود. حداکثر میزان این تأخیر می‌تواند با گزینهٔ \f(CW\*(C`\-shortest_buf_duration\*(C'\fR کنترل شود. .IP "\fB\-shortest_buf_duration\fR \fIduration\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-shortest_buf_duration duration (output)" گزینهٔ \f(CW\*(C`\-shortest\*(C'\fR ممکن است هنگام وجود حداقل یک استریم با داده‌های پراکنده (sparse) (یعنی دارای فاصله‌های زمانی بزرگ میان فریم‌ها \-\- که معمولاً برای زیرنویس‌ها این‌گونه است)، نیاز به بافر کردن حجم زیادی از داده‌ها داشته باشد. .Sp این گزینه حداکثر مدت‌زمان فریم‌های بافرشده را بر حسب ثانیه کنترل می‌کند. مقادیر بزرگتر ممکن است به گزینهٔ \f(CW\*(C`\-shortest\*(C'\fR اجازه دهد نتایج دقیق‌تری تولید کند، اما مصرف حافظه و تاخیر را افزایش می‌دهد. .Sp مقدار پیش‌فرض ۱۰ ثانیه است. .IP "\fB\-dts_delta_threshold\fR \fIthreshold\fR" 4 .IX Item "-dts_delta_threshold threshold" آستانه دلتای ناپیوستگی برچسب زمانی، بیان‌شده به عنوان یک عدد اعشاری از ثانیه‌ها. .Sp اصلاح ناپیوستگی برچسب زمانی که توسط این گزینه فعال می‌شود، تنها برای قالب‌های ورودی اعمال می‌گردد که ناپیوستگی برچسب زمانی را می‌پذیرند (که برای آن‌ها پرچم \f(CW\*(C`AVFMT_TS_DISCONT\*(C'\fR فعال است)، مانند MPEG-TS و HLS، و هنگام استفاده از گزینهٔ \f(CW\*(C`\-copyts\*(C'\fR به‌طور خودکار غیرفعال می‌شود (مگر اینکه سرریز یا دور زدن برچسب زمانی شناسایی شود). .Sp اگر ناپیوستگی برچسب زمانی شناسایی شود که مقدار مطلق آن بزرگتر از \fIthreshold\fR باشد، ffmpeg ناپیوستگی را با کاهش/افزایش DTS و PTS فعلی به میزان مقدار دلتای مربوطه برطرف می‌کند. .Sp مقدار پیش‌فرض 10 است. .IP "\fB\-dts_error_threshold\fR \fIthreshold\fR" 4 .IX Item "-dts_error_threshold threshold" آستانه دلتای خطای برچسب زمانی، بیان‌شده به عنوان یک عدد اعشاری از ثانیه‌ها. .Sp اصلاح برچسب زمانی که توسط این گزینه فعال می‌شود، تنها برای قالب‌های ورودی اعمال می‌گردد که ناپیوستگی برچسب زمانی را نمی‌پذیرند (که برای آن‌ها پرچم \f(CW\*(C`AVFMT_TS_DISCONT\*(C'\fR فعال نیست). .Sp اگر ناپیوستگی برچسب زمانی شناسایی شود که مقدار مطلق آن بزرگتر از \fIthreshold\fR باشد، ffmpeg مقدار برچسب زمانی PTS/DTS را دور می‌اندازد. .Sp مقدار پیش‌فرض \f(CW\*(C`3600*30\*(C'\fR (۳۰ ساعت) است که به صورت دلخواه و نسبتاً محافظه‌کارانه انتخاب شده است. .IP "\fB\-muxdelay\fR \fIseconds\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-muxdelay seconds (output)" تنظیم حداکثر تأخیر دی‌ماکس-دیکود. .IP "\fB\-muxpreload\fR \fIseconds\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-muxpreload seconds (output)" تنظیم تأخیر اولیه دی‌ماکس-دیکود. .IP "\fB\-streamid\fR \fIoutput\-stream\-index\fR\fB:\fR\fInew\-value\fR \fB(\fR\fIخروجی\fR\fB)\fR" 4 .IX Item "-streamid output-stream-index:new-value (output)" تخصیص یک مقدار شناسهٔ استریم (stream-id) جدید به یک استریم خروجی. این گزینه باید قبل از نام پرونده خروجی که برای آن اعمال می‌شود مشخص گردد. برای شرایطی که چندین پرونده خروجی وجود دارد، یک streamid می‌تواند به یک مقدار متفاوت تخصیص داده شود. .Sp برای مثال، برای تنظیم PID استریم 0 روی 33 و PID استریم 1 روی 36 برای یک پرونده خروجی mpegts: .Sp .Vb 1 \& ffmpeg \-i inurl \-streamid 0:33 \-streamid 1:36 out.ts .Ve .IP "\fB\-bsf[:\fR\fIstream_specifier\fR\fB]\fR \fIbitstream_filters\fR \fB(\fR\fIورودی/خروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-bsf[:stream_specifier] bitstream_filters (input/output,per-stream)" اعمال فیلترهای جریان بیتی (Bitstream Filters) به استریم‌های منطبق. فیلترها به محض دریافت هر بسته از دی‌ماکسر (هنگامی که به عنوان گزینه ورودی استفاده شود) یا قبل از ارسال آن به ماکسر (هنگامی که به عنوان گزینه خروجی استفاده شود) اعمال می‌شوند. .Sp \fIbitstream_filters\fR یک فهرست با کاما جداشده از مشخصات فیلتر جریان بیتی است که هر کدام به صورت زیر است: .Sp .Vb 1 \& [==:=:...] .Ve .Sp هر یک از نویسه‌های \*(Aq,=:\*(Aq که قرار است بخشی از مقدار یک گزینه باشند باید با یک بک‌اسلش اسکیپ شوند. .Sp برای دریافت فهرست فیلترهای جریان بیتی از گزینهٔ \f(CW\*(C`\-bsfs\*(C'\fR استفاده کنید. .Sp برای مثال: .Sp .Vb 1 \& ffmpeg \-bsf:v h264_mp4toannexb \-i h264.mp4 \-c:v copy \-an out.h264 .Ve .Sp فیلتر جریان بیتی \f(CW\*(C`h264_mp4toannexb\*(C'\fR (که استریم H.264 محصور در MP4 را به Annex B تبدیل می‌کند) را روی استریم ویدیویی \fIورودی\fR اعمال می‌کند. .Sp از سوی دیگر، .Sp .Vb 1 \& ffmpeg \-i file.mov \-an \-vn \-bsf:s mov2textsub \-c:s copy \-f rawvideo sub.txt .Ve .Sp فیلتر جریان بیتی \f(CW\*(C`mov2textsub\*(C'\fR (که متن را از زیرنویس‌های MOV استخراج می‌کند) را روی استریم زیرنویس \fIخروجی\fR اعمال می‌کند. توجه داشته باشید که از آنجا که هر دو مثال از \f(CW\*(C`\-c copy\*(C'\fR استفاده می‌کنند، اهمیت چندانی ندارد که فیلترها روی ورودی یا خروجی اعمال شوند \- این موضوع در صورت ترنسکود کردن تغییر می‌کرد. .IP "\fB\-tag[:\fR\fIstream_specifier\fR\fB]\fR \fIcodec_tag\fR \fB(\fR\fIورودی/خروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-tag[:stream_specifier] codec_tag (input/output,per-stream)" اجبار تگ/fourcc برای استریم‌های منطبق. .IP "\fB\-timecode\fR \fIhh\fR\fB:\fR\fImm\fR\fB:\fR\fIss\fR\fBSEP\fR\fIff\fR" 4 .IX Item "-timecode hh:mm:ssSEPff" مشخص کردن کد زمانی (Timecode) برای نوشتن. \fISEP\fR برای کد زمانی بدون افت فریم \*(Aq:\*(Aq و برای حالت دارای افت فریم (drop) \*(Aq;\*(Aq (یا \*(Aq.\*(Aq) است. .Sp .Vb 1 \& ffmpeg \-i input.mpg \-timecode 01:02:03.04 \-r 30000/1001 \-s ntsc output.mpg .Ve .IP "\fB\-filter_complex\fR \fIfiltergraph\fR \fB(\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-filter_complex filtergraph (global)" تعریف یک فیلترگراف پیچیده، یعنی گراف با تعداد دلخواهی از ورودی‌ها و/یا خروجی‌ها. برای گراف‌های ساده \-\- آن‌هایی که یک ورودی و یک خروجی از همان نوع دارند \-\- گزینه‌های \fB\-filter\fR را ببینید. \fIfiltergraph\fR توضیحی از فیلترگراف است، همان‌طور که در بخش "سینتکس فیلترگراف" در راهنمای ffmpeg-filters توضیح داده شده است. این گزینه می‌تواند چندین بار مشخص شود \- هر بار استفاده یک فیلترگراف پیچیده جدید ایجاد می‌کند. .Sp ورودی‌های یک فیلترگراف پیچیده می‌توانند از انواع منابع مختلف بیایند که با قالب برچسب پیوند مربوطه متمایز می‌شوند: .RS 4 .IP \(bu 4 برای اتصال یک استریم ورودی، از \f(CW\*(C`[file_index:stream_specifier]\*(C'\fR استفاده کنید (یعنی همان سینتکس \fB\-map\fR). اگر \fIstream_specifier\fR با چندین استریم مطابقت داشته باشد، از اولین استریم استفاده خواهد شد. برای ویدیوی چندنمایی، مشخص‌کننده استریم می‌تواند با مشخص‌کننده نما دنبال شود؛ برای سینتکس آن به مستندات گزینهٔ \fB\-map\fR مراجعه کنید. .IP \(bu 4 برای اتصال یک دیکودر لوپ‌بک (loopback decoder) از [dec:\fIdec_idx\fR] استفاده کنید، که در آن \fIdec_idx\fR نمایه دیکودر لوپ‌بک برای اتصال به ورودی داده‌شده است. برای ویدیوی چندنمایی، نمایه دیکودر می‌تواند با مشخص‌کننده نما دنبال شود؛ برای سینتکس آن مستندات گزینهٔ \fB\-map\fR را ببینید. .IP \(bu 4 برای اتصال یک خروجی از یک فیلترگراف پیچیده دیگر، از برچسب پیوند آن استفاده کنید. برای نمونه مثال زیر: .Sp .Vb 6 \& ffmpeg \-i input.mkv \e \& \-filter_complex \*(Aq[0:v]scale=size=hd1080,split=outputs=2[for_enc][orig_scaled]\*(Aq \e \& \-c:v libx264 \-map \*(Aq[for_enc]\*(Aq output.mkv \e \& \-dec 0:0 \e \& \-filter_complex \*(Aq[dec:0][orig_scaled]hstack[stacked]\*(Aq \e \& \-map \*(Aq[stacked]\*(Aq \-c:v ffv1 comparison.mkv .Ve .Sp یک ویدیوی ورودی را می‌خواند و .RS 4 .IP \(bu 4 (خط ۲) از یک فیلترگراف پیچیده با یک ورودی و دو خروجی برای مقیاس‌بندی ویدیو به 1920x1080 و تکثیر نتیجه در هر دو خروجی استفاده می‌کند؛ .IP \(bu 4 (خط ۳) یک خروجی مقیاس‌شده را با \f(CW\*(C`libx264\*(C'\fR انکود کرده و نتیجه را در \fIoutput.mkv\fR می‌نویسد؛ .IP \(bu 4 (خط ۴) این استریم انکودشده را با یک دیکودر لوپ‌بک رمزگشایی می‌کند؛ .IP \(bu 4 (خط ۵) خروجی دیکودر لوپ‌بک (یعنی ویدیوی انکودشده با \f(CW\*(C`libx264\*(C'\fR) را در کنار ورودی اصلیِ مقیاس‌شده قرار می‌دهد؛ .IP \(bu 4 (خط ۶) ویدیوی ترکیبی سپس به صورت بدون‌اتلاف (lossless) انکود شده و در \fIcomparison.mkv\fR نوشته می‌شود. .RE .RS 4 .Sp توجه داشته باشید که دو فیلترگراف نمی‌توانند در یکی ترکیب شوند، زیرا در آن صورت یک چرخه در خط لوله ترنسکود وجود خواهد داشت (خروجی فیلترگراف به انکود می‌رود، از آنجا به دیکود، سپس بازگشت به همان گراف)، و چنین چرخه‌هایی مجاز نیستند. .RE .RE .RS 4 .Sp یک ورودی بدون برچسب به اولین استریم ورودیِ استفاده‌نشده از نوع منطبق متصل خواهد شد. .Sp به برچسب‌های پیوند خروجی با \fB\-map\fR ارجاع داده می‌شود. خروجی‌های بدون برچسب به اولین پرونده خروجی اضافه می‌شوند. .Sp توجه داشته باشید که با این گزینه می‌توان فقط از منابع lavfi بدون پرونده‌های ورودی عادی استفاده کرد. .Sp برای مثال، برای قرار دادن یک تصویر روی ویدیو (overlay): .Sp .Vb 2 \& ffmpeg \-i video.mkv \-i image.png \-filter_complex \*(Aq[0:v][1:v]overlay[out]\*(Aq \-map \& \*(Aq[out]\*(Aq out.mkv .Ve .Sp در اینجا \f(CW\*(C`[0:v]\*(C'\fR به اولین استریم ویدیویی در پرونده ورودی اول اشاره دارد که به اولین ورودی (اصلی) فیلتر overlay متصل شده است. به همین ترتیب، اولین استریم ویدیویی در ورودی دوم به ورودی دوم فیلتر overlay متصل می‌شود. .Sp با فرض اینکه فقط یک استریم ویدیویی در هر پرونده ورودی وجود دارد، می‌توانیم برچسب‌های ورودی را حذف کنیم، بنابراین دستور بالا معادل است با: .Sp .Vb 2 \& ffmpeg \-i video.mkv \-i image.png \-filter_complex \*(Aqoverlay[out]\*(Aq \-map \& \*(Aq[out]\*(Aq out.mkv .Ve .Sp علاوه بر این می‌توانیم برچسب خروجی را نیز حذف کنیم و تک‌خروجی فیلترگراف به‌طور خودکار به پرونده خروجی اضافه خواهد شد، بنابراین می‌توان به سادگی نوشت: .Sp .Vb 1 \& ffmpeg \-i video.mkv \-i image.png \-filter_complex \*(Aqoverlay\*(Aq out.mkv .Ve .Sp به عنوان یک استثنای ویژه، می‌توانید از یک استریم زیرنویس تصویربیت (bitmap) به عنوان ورودی استفاده کنید: این استریم به یک ویدیو با اندازه بزرگترین ویدیو در پرونده، یا 720x576 در صورت عدم وجود ویدیو، تبدیل می‌شود. توجه داشته باشید که این یک راه‌حل آزمایشی و موقت است و به محض پشتیبانی مناسب libavfilter از زیرنویس‌ها حذف خواهد شد. .Sp برای مثال، برای چسباندن دائمی زیرنویس‌ها (hardcode) روی یک ضبط DVB-T ذخیره‌شده در قالب MPEG-TS، با ۱ ثانیه تأخیر در زیرنویس: .Sp .Vb 3 \& ffmpeg \-i input.ts \-filter_complex \e \& \*(Aq[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay\*(Aq \e \& \-sn \-map \*(Aq#0x2dc\*(Aq output.mkv .Ve .Sp (0x2d0 و 0x2dc و 0x2ef به ترتیب PIDهای MPEG-TS استریم‌های ویدیو، صدا و زیرنویس هستند؛ استفاده از 0:0، 0:3 و 0:7 نیز کار می‌کرد) .Sp برای تولید ۵ ثانیه ویدیوی قرمز خالص با استفاده از منبع \f(CW\*(C`color\*(C'\fR در lavfi: .Sp .Vb 1 \& ffmpeg \-filter_complex \*(Aqcolor=c=red\*(Aq \-t 5 out.mkv .Ve .RE .IP "\fB\-filter_complex_threads\fR \fInb_threads\fR \fB(\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-filter_complex_threads nb_threads (global)" تعداد رشته‌های اجرایی (threads) مورد استفاده برای پردازش گراف filter_complex را مشخص می‌کند. مشابه filter_threads است اما فقط برای گراف‌های \f(CW\*(C`\-filter_complex\*(C'\fR استفاده می‌شود. مقدار پیش‌فرض تعداد CPUهای موجود است. .IP "\fB\-lavfi\fR \fIfiltergraph\fR \fB(\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-lavfi filtergraph (global)" تعریف یک فیلترگراف پیچیده، یعنی گراف با تعداد دلخواهی از ورودی‌ها و/یا خروجی‌ها. معادل با \fB\-filter_complex\fR. .IP "\fB\-accurate_seek (\fR\fIورودی\fR\fB)\fR" 4 .IX Item "-accurate_seek (input)" این گزینه پرش دقیق (accurate seeking) در پرونده‌های ورودی را با گزینهٔ \fB\-ss\fR فعال یا غیرفعال می‌کند. به‌طور پیش‌فرض فعال است، بنابراین پرش هنگام ترنسکود کردن دقیق است. برای غیرفعال کردن آن از \fB\-noaccurate_seek\fR استفاده کنید که مثلاً هنگام رونوشت برخی استریم‌ها و انکود مجدد سایرین می‌تواند مفید باشد. .IP "\fB\-seek_timestamp (\fR\fIورودی\fR\fB)\fR" 4 .IX Item "-seek_timestamp (input)" این گزینه پرش بر اساس برچسب زمانی را در پرونده‌های ورودی با گزینهٔ \fB\-ss\fR فعال یا غیرفعال می‌کند. به‌طور پیش‌فرض غیرفعال است. در صورت فعال بودن، آرگومان گزینهٔ \fB\-ss\fR به عنوان یک برچسب زمانی واقعی در نظر گرفته می‌شود و با زمان شروع پرونده آفست نمی‌شود. این فقط برای پرونده‌هایی که از برچسب زمانی 0 شروع نمی‌شوند، مانند transport streams، تفاوت ایجاد می‌کند. .IP "\fB\-thread_queue_size\fR \fIsize\fR \fB(\fR\fIورودی/خروجی\fR\fB)\fR" 4 .IX Item "-thread_queue_size size (input/output)" برای ورودی، این گزینه حداکثر تعداد بسته‌های صف‌بندی‌شده هنگام خواندن از پرونده یا دستگاه را تنظیم می‌کند. در استریم‌های زنده با تاخیر کم / نرخ بالا، بسته‌ها در صورتی که به موقع خوانده نشوند ممکن است دور ریخته شوند؛ تنظیم این مقدار می‌تواند ffmpeg را مجبور کند از یک رشته ورودی جداگانه استفاده کند و بسته‌ها را به محض رسیدن بخواند. به‌طور پیش‌فرض ffmpeg تنها در صورتی این کار را انجام می‌دهد که چندین ورودی مشخص شده باشد. .Sp برای خروجی، این گزینه حداکثر تعداد بسته‌هایی را مشخص می‌کند که ممکن است برای هر رشتهٔ ماکس کردن در صف قرار گیرند. .IP "\fB\-sdp_file\fR \fIfile\fR \fB(\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-sdp_file file (global)" چاپ اطلاعات sdp برای یک استریم خروجی در \fIfile\fR. این امکان تخلیه اطلاعات sdp را در حالتی که حداقل یکی از خروجی‌ها استریم rtp نیست فراهم می‌کند (نیازمند آن است که حداقل یکی از قالب‌های خروجی rtp باشد). .IP "\fB\-discard (\fR\fIورودی\fR\fB)\fR" 4 .IX Item "-discard (input)" اجازه دور انداختن استریم‌ها یا فریم‌های خاصی از استریم‌ها را می‌دهد. هر استریم ورودی می‌تواند با استفاده از مقدار \f(CW\*(C`all\*(C'\fR کاملاً دور انداخته شود، در حالی که دور انداختن انتخابی فریم‌ها از یک استریم در دی‌ماکسر رخ می‌دهد و توسط همه دی‌ماکسرها پشتیبانی نمی‌شود. .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" تمام فریم‌های دوطرفه (bidirectional) دور انداخته شوند. .IP \fBnokey\fR 4 .IX Item "nokey" تمام فریم‌ها به جز فریم‌های کلیدی (keyframes) دور انداخته شوند. .IP \fBall\fR 4 .IX Item "all" تمام فریم‌ها دور انداخته شوند. .RE .RS 4 .RE .IP "\fB\-abort_on\fR \fIflags\fR \fB(\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-abort_on flags (global)" توقف و لغو عملیات در شرایط مختلف. پرچم‌های زیر در دسترس هستند: .RS 4 .IP \fBempty_output\fR 4 .IX Item "empty_output" هیچ بسته‌ای به ماکسر تحویل داده نشد، خروجی خالی است. .IP \fBempty_output_stream\fR 4 .IX Item "empty_output_stream" هیچ بسته‌ای به ماکسر در برخی از استریم‌های خروجی تحویل داده نشد. .RE .RS 4 .RE .IP "\fB\-max_error_rate (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-max_error_rate (global)" کسری از خطاهای رمزگشایی فریم در تمام ورودی‌ها را تنظیم می‌کند که با عبور از آن، ffmpeg کد خروج 69 را بازمی‌گرداند. عبور از این آستانه پردازش را متوقف نمی‌کند. محدوده یک عدد اعشاری بین 0 تا 1 است. پیش‌فرض 2/3 است. .IP "\fB\-xerror (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-xerror (global)" توقف و خروج به محض بروز خطا. .IP "\fB\-max_muxing_queue_size\fR \fIpackets\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-max_muxing_queue_size packets (output,per-stream)" هنگام ترنسکود استریم‌های صوتی و/یا تصویری، ffmpeg نوشتن در خروجی را تا زمانی که حداقل یک بسته برای هر یک از این استریم‌ها داشته باشد شروع نمی‌کند. در حین انتظار برای این رخداد، بسته‌های استریم‌های دیگر بافر می‌شوند. این گزینه اندازه این بافر را بر حسب بسته برای استریم خروجی منطبق تنظیم می‌کند. .Sp مقدار پیش‌فرض این گزینه برای بیشتر کاربردها باید به اندازه کافی بالا باشد، بنابراین فقط در صورتی که مطمئن هستید به آن نیاز دارید این گزینه را تغییر دهید. .IP "\fB\-muxing_queue_data_threshold\fR \fIbytes\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-muxing_queue_data_threshold bytes (output,per-stream)" این یک حداقل آستانه است که تا پیش از آن اندازه صف ماکس کردن در نظر گرفته نمی‌شود. پیش‌فرض ۵۰ مگابایت به‌ازای هر استریم است و بر اساس اندازه کلی بسته‌های ارائه‌شده به ماکسر محاسبه می‌شود. .IP "\fB\-auto_conversion_filters (\fR\fIعمومی\fR\fB)\fR" 4 .IX Item "-auto_conversion_filters (global)" فعال‌سازی درج خودکار فیلترهای تبدیل قالب در تمام فیلترگراف‌ها، از جمله موارد تعریف‌شده توسط \fB\-vf\fR، \fB\-af\fR، \fB\-filter_complex\fR و \fB\-lavfi\fR. اگر مذاکره قالب فیلتر به تبدیل نیاز داشته باشد، مقداردهی اولیه فیلترها با شکست مواجه می‌شود. تبدیل‌ها همچنان می‌توانند با درج دستی فیلتر تبدیل مربوطه (scale, aresample) در گراف انجام شوند. به‌طور پیش‌فرض فعال است؛ برای غیرفعال کردن صریح آن باید \f(CW\*(C`\-noauto_conversion_filters\*(C'\fR را مشخص کنید. .IP "\fB\-bits_per_raw_sample[:\fR\fIstream_specifier\fR\fB]\fR \fIvalue\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-bits_per_raw_sample[:stream_specifier] value (output,per-stream)" اعلام تعداد بیت‌ها به‌ازای هر نمونه خام در استریم خروجی معین برابر با \fIvalue\fR. توجه داشته باشید که این گزینه اطلاعات ارائه‌شده به انکودر/ماکسر را تنظیم می‌کند و استریم را برای انطباق با این مقدار تغییر نمی‌دهد. تنظیم مقادیری که با ویژگی‌های استریم مطابقت ندارند ممکن است منجر به شکست انکود یا پرونده‌های خروجی نامعتبر شود. .IP "\fB\-stats_enc_pre[:\fR\fIstream_specifier\fR\fB]\fR \fIpath\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-stats_enc_pre[:stream_specifier] path (output,per-stream)" .PD 0 .IP "\fB\-stats_enc_post[:\fR\fIstream_specifier\fR\fB]\fR \fIpath\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-stats_enc_post[:stream_specifier] path (output,per-stream)" .IP "\fB\-stats_mux_pre[:\fR\fIstream_specifier\fR\fB]\fR \fIpath\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-stats_mux_pre[:stream_specifier] path (output,per-stream)" .PD نوشتن اطلاعات انکود به‌ازای هر فریم درباره استریم‌های منطبق در پرونده مشخص‌شده توسط \fIpath\fR. .Sp گزینهٔ \fB\-stats_enc_pre\fR اطلاعات مربوط به فریم‌های خام ویدیویی یا صوتی را درست قبل از ارسال آن‌ها برای انکود می‌نویسد، در حالی که \fB\-stats_enc_post\fR اطلاعات مربوط به بسته‌های انکودشده را به محض دریافت از انکودر می‌نویسد. گزینهٔ \fB\-stats_mux_pre\fR اطلاعات مربوط به بسته‌ها را درست هنگامی که قرار است به ماکسر ارسال شوند می‌نویسد. هر فریم یا بسته یک خط در پرونده مشخص‌شده ایجاد می‌کند. قالب این خط توسط \fB\-stats_enc_pre_fmt\fR / \fB\-stats_enc_post_fmt\fR / \fB\-stats_mux_pre_fmt\fR کنترل می‌شود. .Sp هنگامی که آمار چندین استریم در یک پرونده واحد نوشته می‌شود، خطوط مربوط به استریم‌های مختلف به صورت درهم‌تنیده خواهند بود. ترتیب دقیق این درهم‌تنیدگی مشخص نیست و پایداری آن میان فراخوانی‌های مختلف برنامه حتی با گزینه‌های یکسان تضمین نمی‌شود. .IP "\fB\-stats_enc_pre_fmt[:\fR\fIstream_specifier\fR\fB]\fR \fIformat_spec\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-stats_enc_pre_fmt[:stream_specifier] format_spec (output,per-stream)" .PD 0 .IP "\fB\-stats_enc_post_fmt[:\fR\fIstream_specifier\fR\fB]\fR \fIformat_spec\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-stats_enc_post_fmt[:stream_specifier] format_spec (output,per-stream)" .IP "\fB\-stats_mux_pre_fmt[:\fR\fIstream_specifier\fR\fB]\fR \fIformat_spec\fR \fB(\fR\fIخروجی،به‌ازای هر استریم\fR\fB)\fR" 4 .IX Item "-stats_mux_pre_fmt[:stream_specifier] format_spec (output,per-stream)" .PD تعیین قالب خطوط نوشته‌شده با \fB\-stats_enc_pre\fR / \fB\-stats_enc_post\fR / \fB\-stats_mux_pre\fR. .Sp \fIformat_spec\fR رشته‌ای است که می‌تواند شامل دستورالعمل‌هایی به شکل \fI{fmt}\fR باشد. مقدار \fIformat_spec\fR با بک‌اسلش اسکیپ می‌شود \-\-\-\- از \e{، \e} و \e\e برای نوشتن نویسه‌های واقعی {, } یا \e در خروجی استفاده کنید. .Sp دستورالعمل‌های داده‌شده با \fIfmt\fR می‌توانند یکی از موارد زیر باشند: .RS 4 .IP \fBfidx\fR 4 .IX Item "fidx" نمایه پرونده خروجی. .IP \fBsidx\fR 4 .IX Item "sidx" نمایه استریم خروجی در پرونده. .IP \fBn\fR 4 .IX Item "n" شماره فریم. پیش از انکود: تعداد فریم‌های ارسال‌شده به انکودر تاکنون. پس از انکود: تعداد بسته‌های دریافت‌شده از انکودر تاکنون. ماکس کردن: تعداد بسته‌های ارائه‌شده به ماکسر برای این استریم تاکنون. .IP \fBni\fR 4 .IX Item "ni" شماره فریم ورودی. نمایه فریم ورودی (یعنی خروجی داده‌شده توسط یک دیکودر) که با این فریم یا بسته خروجی مطابقت دارد. در صورت عدم دسترسی -1 است. .IP \fBtb\fR 4 .IX Item "tb" مبنای زمانی که برچسب‌های زمانی این فریم/بسته بر پایه آن بیان شده‌اند، به صورت یک عدد کسری گویا \fInum/den\fR. توجه داشته باشید که انکودر و ماکسر ممکن است از مبناهای زمانی متفاوتی استفاده کنند. .IP \fBtbi\fR 4 .IX Item "tbi" مبنای زمانی برای \fIptsi\fR، به صورت یک عدد کسری گویا \fInum/den\fR. زمانی که \fIptsi\fR در دسترس باشد موجود است، در غیر این صورت \fI0/1\fR. .IP \fBpts\fR 4 .IX Item "pts" برچسب زمانی نمایش (PTS) فریم یا بسته، به صورت یک عدد صحیح. برای محاسبه زمان نمایش باید در مبنای زمانی ضرب شود. .IP \fBptsi\fR 4 .IX Item "ptsi" برچسب زمانی نمایش فریم ورودی (\fIni\fR را ببینید)، به صورت یک عدد صحیح. برای محاسبه زمان نمایش باید در \fItbi\fR ضرب شود. در صورت عدم دسترسی به صورت (2^63 - 1 = 9223372036854775807) چاپ می‌شود. .IP \fBt\fR 4 .IX Item "t" زمان نمایش فریم یا بسته، به صورت یک عدد اعشاری. برابر با ضرب \fIpts\fR در \fItb\fR. .IP \fBti\fR 4 .IX Item "ti" زمان نمایش فریم ورودی (\fIni\fR را ببینید)، به صورت یک عدد اعشاری. برابر با ضرب \fIptsi\fR در \fItbi\fR. در صورت عدم دسترسی به صورت inf چاپ می‌شود. .IP "\fBdts (\fR\fIpacket\fR\fB)\fR" 4 .IX Item "dts (packet)" برچسب زمانی رمزگشایی (DTS) بسته، به صورت یک عدد صحیح. برای محاسبه زمان رمزگشایی باید در مبنای زمانی ضرب شود. .IP "\fBdt (\fR\fIpacket\fR\fB)\fR" 4 .IX Item "dt (packet)" زمان رمزگشایی فریم یا بسته، به صورت یک عدد اعشاری. برابر با ضرب \fIdts\fR در \fItb\fR. .IP "\fBsn (\fR\fIframe,audio\fR\fB)\fR" 4 .IX Item "sn (frame,audio)" تعداد نمونه‌های صوتی ارسال‌شده به انکودر تاکنون. .IP "\fBsamp (\fR\fIframe,audio\fR\fB)\fR" 4 .IX Item "samp (frame,audio)" تعداد نمونه‌های صوتی در فریم. .IP "\fBsize (\fR\fIpacket\fR\fB)\fR" 4 .IX Item "size (packet)" اندازه بسته انکودشده بر حسب بایت. .IP "\fBbr (\fR\fIpacket\fR\fB)\fR" 4 .IX Item "br (packet)" نرخ بیت فعلی بر حسب بیت در ثانیه. .IP "\fBabr (\fR\fIpacket\fR\fB)\fR" 4 .IX Item "abr (packet)" نرخ بیت میانگین برای کل استریم تاکنون، بر حسب بیت در ثانیه، در صورتی که در این نقطه قابل تعیین نباشد -1. .IP "\fBkey (\fR\fIpacket\fR\fB)\fR" 4 .IX Item "key (packet)" نویسهٔ \*(AqK\*(Aq اگر بسته شامل یک فریم کلیدی باشد، در غیر این صورت نویسهٔ \*(AqN\*(Aq. .RE .RS 4 .Sp دستورالعمل‌های برچسب‌گذاری‌شده با \fIpacket\fR فقط با \fB\-stats_enc_post_fmt\fR و \fB\-stats_mux_pre_fmt\fR قابل استفاده هستند. .Sp دستورالعمل‌های برچسب‌گذاری‌شده با \fIframe\fR فقط با \fB\-stats_enc_pre_fmt\fR قابل استفاده هستند. .Sp دستورالعمل‌های برچسب‌گذاری‌شده با \fIaudio\fR فقط با استریم‌های صوتی قابل استفاده هستند. .Sp رشته‌های قالب پیش‌فرض عبارتند از: .IP \fBpre\-encoding\fR 4 .IX Item "pre-encoding" {fidx} {sidx} {n} {t} .IP \fBpost\-encoding\fR 4 .IX Item "post-encoding" {fidx} {sidx} {n} {t} .RE .RS 4 .Sp در آینده ممکن است موارد جدیدی به انتهای رشته‌های قالب‌بندی پیش‌فرض اضافه شوند. کاربرانی که به ثابت ماندن دقیق قالب وابسته‌اند، باید آن را به صورت دستی تعیین نمایند. .Sp توجه داشته باشید که آمار مربوط به استریم‌های مختلف که در یک پرونده یکسان نوشته می‌شوند ممکن است قالب‌های متفاوتی داشته باشند. .RE .SS "پرونده‌های پیش‌تنظیم (Preset files)" .IX Subsection "Preset files" یک پرونده پیش‌تنظیم حاوی توالی‌ای از جفت‌های \fIoption\fR=\fIvalue\fR در هر خط است که مجموعه‌ای از گزینه‌ها را مشخص می‌کند که نوشتن آن‌ها در خط فرمان دشوار یا طولانی خواهد بود. خطوطی که با نویسهٔ هش (\*(Aq#\*(Aq) آغاز می‌شوند نادیده گرفته شده و برای ارائه توضیحات (کامنت) استفاده می‌شوند. برای نمونه‌ها دایرکتوری \fIpresets\fR را در درخت منبع FFmpeg بررسی کنید. .PP دو نوع پرونده پیش‌تنظیم وجود دارد: پرونده‌های ffpreset و پرونده‌های avpreset. .PP \fIپرونده‌های ffpreset\fR .IX Subsection "ffpreset files" .PP پرونده‌های ffpreset با گزینه‌های \f(CW\*(C`vpre\*(C'\fR، \f(CW\*(C`apre\*(C'\fR، \&\f(CW\*(C`spre\*(C'\fR و \f(CW\*(C`fpre\*(C'\fR مشخص می‌شوند. گزینهٔ \f(CW\*(C`fpre\*(C'\fR نام پرونده پیش‌تنظیم را به جای نام پیش‌تنظیم به عنوان ورودی می‌گیرد و می‌تواند برای هر نوع کدکی استفاده شود. برای گزینه‌های \f(CW\*(C`vpre\*(C'\fR، \f(CW\*(C`apre\*(C'\fR و \&\f(CW\*(C`spre\*(C'\fR، گزینه‌های مشخص‌شده در پرونده پیش‌تنظیم برای کدک انتخاب‌شده فعلی از همان نوع اعمال می‌شوند. .PP آرگومان ارائه‌شده به گزینه‌های پیش‌تنظیم \f(CW\*(C`vpre\*(C'\fR، \f(CW\*(C`apre\*(C'\fR و \f(CW\*(C`spre\*(C'\fR، پرونده پیش‌تنظیم مورد استفاده را بر اساس قواعد زیر شناسایی می‌کند: .PP ابتدا ffmpeg به دنبال پرونده‌ای به نام \fIarg\fR.ffpreset در دایرکتوری‌های \fR\f(CI$FFMPEG_DATADIR\fR\fI\fR (در صورت تنظیم)، و \fI\fR\f(CI$HOME\fR\fI/.ffmpeg\fR، و در datadir تعریف‌شده در زمان پیکربندی (معمولاً \fIPREFIX/share/ffmpeg\fR) یا در یک پوشهٔ \fIffpresets\fR در کنار فایل اجرایی در win32، به همان ترتیب می‌گردد. برای مثال، اگر آرگومان \f(CW\*(C`libvpx\-1080p\*(C'\fR باشد، به دنبال پروندهٔ \fIlibvpx\-1080p.ffpreset\fR خواهد گشت. .PP اگر چنین پرونده‌ای پیدا نشود، ffmpeg به دنبال پرونده‌ای به نام \&\fIcodec_name\fR\-\fIarg\fR.ffpreset در دایرکتوری‌های فوق‌الذکر می‌گردد، که در آن \fIcodec_name\fR نام کدکی است که گزینه‌های پرونده پیش‌تنظیم روی آن اعمال خواهد شد. برای مثال، اگر کدک ویدیو را با \f(CW\*(C`\-vcodec libvpx\*(C'\fR انتخاب کرده و از \f(CW\*(C`\-vpre 1080p\*(C'\fR استفاده کنید، به دنبال پروندهٔ \fIlibvpx\-1080p.ffpreset\fR می‌گردد. .PP \fIپرونده‌های avpreset\fR .IX Subsection "avpreset files" .PP پرونده‌های avpreset با گزینهٔ \f(CW\*(C`pre\*(C'\fR مشخص می‌شوند. عملکرد آن‌ها شبیه به پرونده‌های ffpreset است، اما تنها گزینه‌های خاص انکودر را مجاز می‌دانند. بنابراین، یک جفت \&\fIoption\fR=\fIvalue\fR که انکودر را مشخص کند نمی‌تواند استفاده شود. .PP هنگامی که گزینهٔ \f(CW\*(C`pre\*(C'\fR مشخص شود، ffmpeg به دنبال پرونده‌هایی با پسوند avpreset. در دایرکتوری‌های \fR\f(CI$AVCONV_DATADIR\fR\fI\fR (در صورت تنظیم)، و \&\fI\fR\f(CI$HOME\fR\fI/.avconv\fR، و در datadir تعریف‌شده در زمان پیکربندی (معمولاً \&\fIPREFIX/share/ffmpeg\fR)، به همان ترتیب می‌گردد. .PP ابتدا ffmpeg به دنبال پرونده‌ای به نام \fIcodec_name\fR\-\fIarg\fR.avpreset در دایرکتوری‌های فوق‌الذکر می‌گردد، که در آن \fIcodec_name\fR نام کدکی است که گزینه‌های پرونده پیش‌تنظیم روی آن اعمال خواهد شد. برای مثال، اگر کدک ویدیو را با \f(CW\*(C`\-vcodec libvpx\*(C'\fR انتخاب کنید و از \f(CW\*(C`\-pre 1080p\*(C'\fR استفاده نمایید، به دنبال پروندهٔ \fIlibvpx\-1080p.avpreset\fR خواهد گشت. .PP اگر چنین پرونده‌ای پیدا نشود، ffmpeg به دنبال پرونده‌ای به نام \&\fIarg\fR.avpreset در همان دایرکتوری‌ها می‌گردد. .SS "قالب پرونده vstats (vstats file format)" .IX Subsection "vstats file format" گزینه‌های \f(CW\*(C`\-vstats\*(C'\fR و \f(CW\*(C`\-vstats_file\*(C'\fR ایجاد پرونده‌ای حاوی آمار درباره خروجی‌های ویدیویی تولیدشده را فعال می‌کنند. .PP گزینهٔ \f(CW\*(C`\-vstats_version\*(C'\fR نسخه قالب پرونده تولیدشده را کنترل می‌کند. .PP در نسخهٔ \f(CW1\fR قالب به صورت زیر است: .PP .Vb 1 \& frame= q= PSNR= f_size= s_size= kB time= br= kbits/s avg_br= kbits/s .Ve .PP در نسخهٔ \f(CW2\fR قالب به صورت زیر است: .PP .Vb 1 \& out= st= frame= q= f PSNR= f_size= s_size= kB time= br= kbits/s avg_br= kbits/s .Ve .PP مقدار مربوط به هر کلید در زیر شرح داده شده است: .IP \fBavg_br\fR 4 .IX Item "avg_br" نرخ بیت میانگین بیان‌شده بر حسب Kbits/s .IP \fBbr\fR 4 .IX Item "br" نرخ بیت بیان‌شده بر حسب Kbits/s .IP \fBframe\fR 4 .IX Item "frame" شماره فریم انکودشده .IP \fBout\fR 4 .IX Item "out" نمایه پرونده خروجی .IP \fBPSNR\fR 4 .IX Item "PSNR" نسبت بیشینه سیگنال به نویز (Peak Signal to Noise Ratio) .IP \fBq\fR 4 .IX Item "q" کیفیت فریم .IP \fBf_size\fR 4 .IX Item "f_size" اندازه بسته انکودشده بیان‌شده بر حسب تعداد بایت‌ها .IP \fBs_size\fR 4 .IX Item "s_size" اندازه استریم بیان‌شده بر حسب KiB .IP \fBst\fR 4 .IX Item "st" نمایه استریم پرونده خروجی .IP \fBtime\fR 4 .IX Item "time" زمان بسته .IP \fBtype\fR 4 .IX Item "type" نوع تصویر (picture type) .PP همچنین \fBگزینه‌های \-stats_enc\fR را برای روشی جایگزین جهت نمایش آمار انکود ببینید. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" .SS "ضبط ویدیو و صدا (Video and Audio grabbing)" .IX Subsection "Video and Audio grabbing" اگر قالب ورودی و دستگاه را مشخص کنید، ffmpeg می‌تواند صدا و تصویر را مستقیماً ضبط کند: .PP .Vb 1 \& ffmpeg \-f oss \-i /dev/dsp \-f video4linux2 \-i /dev/video0 /tmp/out.mpg .Ve .PP یا با یک منبع صوتی ALSA (ورودی مونو، شناسه کارت 1) به جای OSS: .PP .Vb 1 \& ffmpeg \-f alsa \-ac 1 \-i hw:1 \-f video4linux2 \-i /dev/video0 /tmp/out.mpg .Ve .PP توجه داشته باشید که باید منبع ویدیویی و کانال مناسب را قبل از اجرای ffmpeg با یک برنامه‌ی نمایشگر تلویزیون مانند <\fBhttp://linux.bytesex.org/xawtv\fR> اثر Gerd Knorr فعال کرده باشید. همچنین باید سطوح ضبط صدا را به درستی با یک میکسر استاندارد تنظیم کنید. .SS "ضبط از X11 (X11 grabbing)" .IX Subsection "X11 grabbing" ضبط صفحه نمایش X11 با ffmpeg از طریق: .PP .Vb 1 \& ffmpeg \-f x11grab \-video_size cif \-framerate 25 \-i :0.0 /tmp/out.mpg .Ve .PP مقدار 0.0 شماره display.screen کارساز X11 شماست، همانند متغیر محیطی DISPLAY. .PP .Vb 1 \& ffmpeg \-f x11grab \-video_size cif \-framerate 25 \-i :0.0+10,20 /tmp/out.mpg .Ve .PP مقدار 0.0 شماره display.screen کارساز X11 شماست، همانند متغیر محیطی DISPLAY. مقدار 10 آفست x و 20 آفست y برای ضبط است. .SS "تبدیل قالب پرونده‌های ویدیویی و صوتی (Video and Audio file format conversion)" .IX Subsection "Video and Audio file format conversion" هر قالب پرونده و پروتکل پشتیبانی‌شده می‌تواند به عنوان ورودی برای ffmpeg استفاده شود: .PP مثال‌ها: .IP \(bu 4 می‌توانید از پرونده‌های YUV به عنوان ورودی استفاده کنید: .Sp .Vb 1 \& ffmpeg \-i /tmp/test%d.Y \-i /tmp/out.mpg .Ve .Sp از پرونده‌های زیر استفاده خواهد شد: .Sp .Vb 2 \& /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, \& /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc... .Ve .Sp پرونده‌های Y از دو برابر وضوح پرونده‌های U و V استفاده می‌کنند. آن‌ها پرونده‌های خام بدون هدر هستند. این پرونده‌ها می‌توانند توسط تمام رمزگشاهای ویدیویی مناسب تولید شوند. اگر ffmpeg نتواند اندازه تصویر را حدس بزند، باید اندازه را با گزینهٔ \fB\-s\fR مشخص کنید. .IP \(bu 4 می‌توانید از یک پرونده خام YUV420P ورودی بگیرید: .Sp .Vb 1 \& ffmpeg \-i /tmp/test.yuv /tmp/out.avi .Ve .Sp پروندهٔ test.yuv پرونده‌ای شامل داده‌های صفحه‌ای (planar) خام YUV است. هر فریم از صفحهٔ Y و به دنبال آن صفحه‌های U و V در نصف وضوح عمودی و افقی تشکیل شده است. .IP \(bu 4 می‌توانید به یک پرونده خام YUV420P خروجی بگیرید: .Sp .Vb 1 \& ffmpeg \-i mydivx.avi hugefile.yuv .Ve .IP \(bu 4 می‌توانید چندین پرونده ورودی و خروجی تعیین کنید: .Sp .Vb 1 \& ffmpeg \-i /tmp/a.wav \-s 640x480 \-i /tmp/a.yuv /tmp/a.mpg .Ve .Sp پرونده صوتی a.wav و پرونده ویدیویی خام YUV به نام a.yuv را به پرونده MPEG به نام a.mpg تبدیل می‌کند. .IP \(bu 4 می‌توانید تبدیلات صوتی و تصویری را همزمان انجام دهید: .Sp .Vb 1 \& ffmpeg \-i /tmp/a.wav \-ar 22050 /tmp/a.mp2 .Ve .Sp پرونده a.wav را با نرخ نمونه‌برداری 22050 هرتز به صدای MPEG تبدیل می‌کند. .IP \(bu 4 می‌توانید همزمان به چندین قالب انکود کنید و یک نگاشت از استریم‌های ورودی به استریم‌های خروجی تعریف نمایید: .Sp .Vb 1 \& ffmpeg \-i /tmp/a.wav \-map 0:a \-b:a 64k /tmp/a.mp2 \-map 0:a \-b:a 128k /tmp/b.mp2 .Ve .Sp پرونده a.wav را با نرخ ۶۴ کیلوبیت به a.mp2 و با نرخ ۱۲۸ کیلوبیت به b.mp2 تبدیل می‌کند. عبارت \*(Aq\-map file:index\*(Aq مشخص می‌کند کدام استریم ورودی برای هر استریم خروجی استفاده شود، به ترتیب تعریف استریم‌های خروجی. .IP \(bu 4 می‌توانید VOBهای رمزگشایی‌شده را ترنسکود کنید: .Sp .Vb 1 \& ffmpeg \-i snatch_1.vob \-f avi \-c:v mpeg4 \-b:v 800k \-g 300 \-bf 2 \-c:a libmp3lame \-b:a 128k snatch.avi .Ve .Sp این یک مثال متداول ریپ کردن DVD است؛ ورودی یک پرونده VOB است و خروجی یک پرونده AVI با ویدیوی MPEG-4 و صدای MP3. توجه داشته باشید که در این دستور از فریم‌های B استفاده می‌کنیم تا استریم MPEG-4 با DivX5 سازگار باشد، و اندازه GOP برابر با ۳۰۰ است که به معنی یک فریم اینترا در هر ۱۰ ثانیه برای ویدیوی ورودی 29.97 فریم بر ثانیه است. علاوه بر این، استریم صوتی با MP3 انکود شده است بنابراین باید پشتیبانی از LAME را با ارسال \f(CW\*(C`\-\-enable\-libmp3lame\*(C'\fR به اسکریپت پیکربندی فعال کرده باشید. نگاشت به ویژه برای ترنسکود کردن DVD جهت دریافت زبان صوتی دلخواه بسیار مفید است. .Sp نکته: برای مشاهده قالب‌های ورودی پشتیبانی‌شده، از \f(CW\*(C`ffmpeg \-demuxers\*(C'\fR استفاده کنید. .IP \(bu 4 می‌توانید تصاویر را از یک ویدیو استخراج کنید، یا از چندین تصویر یک ویدیو ایجاد نمایید: .Sp برای استخراج تصاویر از یک ویدیو: .Sp .Vb 1 \& ffmpeg \-i foo.avi \-r 1 \-s WxH \-f image2 foo\-%03d.jpeg .Ve .Sp این دستور یک فریم ویدیویی در هر ثانیه از ویدیو استخراج کرده و آن‌ها را در پرونده‌هایی به نام‌های \fIfoo\-001.jpeg\fR، \fIfoo\-002.jpeg\fR و غیره خروجی می‌دهد. تصاویر برای انطباق با مقادیر WxH جدید تغییر اندازه داده می‌شوند. .Sp اگر می‌خواهید تنها تعداد محدودی فریم استخراج کنید، می‌توانید دستور بالا را در ترکیب با گزینهٔ \f(CW\*(C`\-frames:v\*(C'\fR یا \f(CW\*(C`\-t\*(C'\fR، یا در ترکیب با \-ss برای شروع استخراج از یک نقطه زمانی خاص استفاده کنید. .Sp برای ایجاد یک ویدیو از تصاویر متعدد: .Sp .Vb 1 \& ffmpeg \-f image2 \-framerate 12 \-i foo\-%03d.jpeg \-s WxH foo.avi .Ve .Sp سینتکس \f(CW\*(C`foo\-%03d.jpeg\*(C'\fR استفاده از یک عدد ده‌دهی متشکل از سه رقم با پیش‌پرکردن صفر برای بیان شماره توالی را مشخص می‌کند. این همان سینتکس پشتیبانی‌شده توسط تابع printf در زبان C است، اما تنها قالب‌هایی که یک عدد صحیح معمولی را می‌پذیرند مناسب هستند. .Sp هنگام وارد کردن یک توالی تصویر، \-i همچنین از گسترش الگوهای عام شبیه به پوسته (globbing) در داخل خود، با انتخاب گزینهٔ مخصوص image2 یعنی \f(CW\*(C`\-pattern_type glob\*(C'\fR پشتیبانی می‌کند. .Sp برای مثال، جهت ساخت یک ویدیو از نام پرونده‌هایی که با الگوی glob تطبیق دارند: \&\f(CW\*(C`foo\-*.jpeg\*(C'\fR: .Sp .Vb 1 \& ffmpeg \-f image2 \-pattern_type glob \-framerate 12 \-i \*(Aqfoo\-*.jpeg\*(Aq \-s WxH foo.avi .Ve .IP \(bu 4 می‌توانید چندین استریم از همان نوع را در خروجی قرار دهید: .Sp .Vb 1 \& ffmpeg \-i test1.avi \-i test2.avi \-map 1:1 \-map 1:0 \-map 0:1 \-map 0:0 \-c copy \-y test12.nut .Ve .Sp پرونده خروجی حاصل \fItest12.nut\fR شامل چهار استریم اول از پرونده‌های ورودی به ترتیب معکوس خواهد بود. .IP \(bu 4 برای تحمیل خروجی ویدیوی با نرخ بیت ثابت (CBR): .Sp .Vb 1 \& ffmpeg \-i myfile.avi \-b 4000k \-minrate 4000k \-maxrate 4000k \-bufsize 1835k out.m2v .Ve .IP \(bu 4 چهار گزینهٔ lmin، lmax، mblmin و mblmax از واحدهای \*(Aqlambda\*(Aq استفاده می‌کنند، اما می‌توانید از ثابت QP2LAMBDA برای تبدیل آسان از واحدهای \*(Aqq\*(Aq استفاده کنید: .Sp .Vb 1 \& ffmpeg \-i src.ext \-lmax 21*QP2LAMBDA dst.ext .Ve .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 ENCODERS .IX Header "ENCODERS" انکودرها عناصر پیکربندی‌شده‌ای در FFmpeg هستند که امکان انکود (کدگذاری فشرده) جریان‌های چندرسانه‌ای را فراهم می‌آورند. .PP هنگام پیکربندی بیلد FFmpeg، تمامی انکودرهای بومی (native) پشتیبانی‌شده به صورت پیش‌فرض فعال هستند. انکودرهایی که به یک کتابخانه خارجی نیاز دارند باید به صورت دستی از طریق گزینه مربوطه \f(CW\*(C`\-\-enable\-lib\*(C'\fR فعال گردند. می‌توانید فهرستی از تمامی انکودرهای موجود را با استفاده از گزینه پیکربندی \f(CW\*(C`\-\-list\-encoders\*(C'\fR مشاهده کنید. .PP می‌توانید تمامی انکودرها را با استفاده از گزینه پیکربندی \&\f(CW\*(C`\-\-disable\-encoders\*(C'\fR غیرفعال کنید و انکودرهای تکی را به صورت گزینشی با گزینه‌های \f(CW\*(C`\-\-enable\-encoder=\fR\f(CIENCODER\fR\f(CW\*(C'\fR / \&\f(CW\*(C`\-\-disable\-encoder=\fR\f(CIENCODER\fR\f(CW\*(C'\fR فعال یا غیرفعال نمایید. .PP گزینه \f(CW\*(C`\-encoders\*(C'\fR در ابزارهای *ff فهرست انکودرهای فعال‌شده را نمایش خواهد داد. .SH "AUDIO ENCODERS" .IX Header "AUDIO ENCODERS" توضیحات مربوط به برخی از انکودرهای صوتی در دسترس در ادامه آمده است. .SS aac .IX Subsection "aac" انکودر کدگذاری پیشرفته صدا (AAC). .PP این انکودر، انکودر پیش‌فرض AAC است که به صورت بومی درون FFmpeg پیاده‌سازی شده است. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت بر حسب بیت بر ثانیه (bits/s). تنظیم این گزینه به طور خودکار حالت نرخ بیت ثابت (CBR) را فعال می‌کند. اگر این گزینه تعیین نشود، بر روی 128kbps تنظیم می‌گردد. .IP \fBq\fR 4 .IX Item "q" تنظیم کیفیت برای حالت نرخ بیت متغیر (VBR). این گزینه تنها هنگام استفاده از ابزار خط فرمان \fBffmpeg\fR معتبر است. برای کاربران رابط برنامه‌نویسی کتابخانه‌ای، از \&\fBglobal_quality\fR استفاده کنید. .IP \fBcutoff\fR 4 .IX Item "cutoff" تنظیم فرکانس قطع (Cutoff Frequency). در صورت عدم تعیین، به انکودر اجازه داده می‌شود تا فرکانس قطع را به صورت پویا تنظیم کند تا شفافیت صدا در نرخ‌های بیت پایین بهبود یابد. .IP \fBaac_coder\fR 4 .IX Item "aac_coder" تنظیم روش کدگذاری انکودر AAC. مقادیر ممکن: .RS 4 .IP \fBtwoloop\fR 4 .IX Item "twoloop" روش جستجوی دو حلقه‌ای (TLS). این روش پیش‌فرض است. .Sp این روش ابتدا کوانتیایزرها را بر اساس آستانه‌های باند تنظیم می‌کند و سپس تلاش می‌نماید با افزودن یا کاستن یک مقدار مشخص از تمام کوانتیایزرها و اندکی تغییر در برخی کوانتیایزرهای منفرد، ترکیب بهینه را بیابد. بر اساس اینکه گزینه‌های \fBaac_is\fR، \fBaac_ms\fR و \fBaac_pns\fR فعال باشند، خود را تنظیم می‌کند. .IP \fBanmr\fR 4 .IX Item "anmr" راهکار مبتنی بر داربست (Trellis) نسبت میانگین نویز به ماسک (ANMR). .Sp این یک کدگذار آزمایشی است که در حال حاضر کیفیت پایین‌تری تولید می‌کند، ناپایدارتر و کندتر از کدگذار پیش‌فرض twoloop است، اما دارای پتانسیل است. در حال حاضر از گزینه‌های \fBaac_is\fR یا \fBaac_pns\fR پشتیبانی نمی‌کند. در حال حاضر توصیه نمی‌شود. .IP \fBfast\fR 4 .IX Item "fast" روش کوانتیایزر ثابت. .Sp از نسخه سبک‌تری از الگوریتم twoloop استفاده می‌کند که سعی در انجام تنظیمات هوشمندانه زیادی ندارد. در نرخ‌های بیت پایین (کمتر از 64kbps) ضعیف‌تر است، اما در نرخ‌های بیت بالاتر بهتر و به مراتب سریع‌تر عمل می‌کند. .RE .RS 4 .RE .IP \fBaac_ms\fR 4 .IX Item "aac_ms" تنظیم حالت کدگذاری میانی/جانبی (M/S). مقدار پیش‌فرض "auto" به طور خودکار در باندهایی که از این کدگذاری بهره می‌برند از M/S استفاده می‌کند. با مقدار "enable" می‌توان آن را برای تمامی باندها اجبار کرد (که عمدتاً برای اشکال‌زدایی مفید است) یا با "disable" می‌توان آن را غیرفعال نمود. .IP \fBaac_is\fR 4 .IX Item "aac_is" تنظیم استفاده از ابزار استریوی شدتی (Intensity Stereo). به طور پیش‌فرض فعال است و در صورت سودمند بودن، IS را برای جفت‌باندهای استریوی مشابه به طور خودکار فعال می‌کند. برای مقاصد اشکال‌زدایی با تنظیم مقدار روی "disable" می‌توان آن را غیرفعال کرد. .IP \fBaac_pns\fR 4 .IX Item "aac_pns" از جایگزینی نویز ادراکی (PNS) برای جایگزینی باندهای فرکانس بالای آنتروپی پایین با نویز سفید نامحسوس در طول فرایند دیکود استفاده می‌کند. به طور پیش‌فرض فعال است، اما برای اهداف اشکال‌زدایی می‌توان با "disable" آن را غیرفعال ساخت. .IP \fBaac_tns\fR 4 .IX Item "aac_tns" استفاده از یک فیلتر چندشاخه FIR را فعال می‌کند که باندهای فرکانس بالا را در بر می‌گیرد تا نویز کوانتیزاسیون را در طول فرایند انکود پنهان کند و توسط دیکودر بازگردانده می‌شود. علاوه بر کاهش آرتیفکت‌های ناخوشایند در محدوده فرکانس بالا، آنتروپی را در باندهای بالا کاهش داده و اجازه می‌دهد بیت‌های بیشتری توسط باندهای میانی-پایینی استفاده شوند. به طور پیش‌فرض فعال است اما برای اشکال‌زدایی با تنظیم روی "disable" می‌توان آن را غیرفعال کرد. .IP \fBaac_ltp\fR 4 .IX Item "aac_ltp" استفاده از افزونه پیش‌بینی بلندمدت (LTP) را فعال می‌کند که کارایی کدگذاری را در شرایط پهنای باند بسیار پایین (مانند کدگذاری صدا یا پیانوی تک‌نوازی) با امتداد پیک‌های هارمونیک ثابت در باندها در طول فریم‌ها افزایش می‌دهد. این گزینه توسط profile:a aac_low اعمال می‌شود. در ترکیب با \fB\-ar\fR برای کاهش نرخ نمونه‌برداری استفاده کنید. .IP \fBprofile\fR 4 .IX Item "profile" تنظیم پروفایل انکودینگ؛ مقادیر ممکن: .RS 4 .IP \fBaac_low\fR 4 .IX Item "aac_low" پیش‌فرض؛ پروفایل "پیچیدگی پایین" (Low-complexity) کدک AAC. بیشترین سازگاری را دارد و کیفیت مناسبی تولید می‌کند. .IP \fBmpeg2_aac_low\fR 4 .IX Item "mpeg2_aac_low" معادل \f(CW\*(C`\-profile:a aac_low \-aac_pns 0\*(C'\fR. قابلیت PNS با مشخصات MPEG4 معرفی شد. .IP \fBaac_ltp\fR 4 .IX Item "aac_ltp" پروفایل پیش‌بینی بلندمدت؛ توسط گزینه \fBaac_ltp\fR فعال می‌شود و آن را نیز فعال خواهد کرد. معرفی‌شده در MPEG4. .RE .RS 4 .Sp اگر این گزینه مشخص نشود، بر روی \fBaac_low\fR تنظیم می‌شود. .RE .SS "ac3 and ac3_fixed" .IX Subsection "ac3 and ac3_fixed" انکودرهای صوتی AC\-3. .PP این انکودرها بخشی از ATSC A/52:2010 و ETSI TS 102 366 را پیاده‌سازی می‌کنند. .PP انکودر \fIac3\fR از محاسبات ممیز شناور بهره می‌برد، در حالی که انکودر \fIac3_fixed\fR تنها از محاسبات اعداد صحیح ممیز ثابت استفاده می‌کند. این بدان معنا نیست که یکی همیشه سریع‌تر است، بلکه هر یک ممکن است برای سیستمی خاص مناسب‌تر باشد. انکودر \fIac3_fixed\fR کدک پیش‌فرض برای هیچ‌یک از قالب‌های خروجی نیست، بنابراین برای استفاده از آن باید صراحتاً با گزینه \&\f(CW\*(C`\-acodec ac3_fixed\*(C'\fR مشخص شود. .PP \fIمتادیتای AC\-3 (AC\-3 Metadata)\fR .IX Subsection "AC-3 Metadata" .PP گزینه‌های متادیتای AC\-3 برای تنظیم پارامترهایی استفاده می‌شوند که صدا را توصیف می‌کنند، اما در اغلب موارد خود فرایند انکود صدا را تحت تاثیر قرار نمی‌دهند. برخی از این گزینه‌ها مستقیماً بر دیکود و بازپخش استریم بیت حاصل تاثیر می‌گذارند یا بر آن موثر هستند، در حالی که برخی دیگر صرفاً برای اهداف اطلاع‌رسانی هستند. تعداد کمی از گزینه‌ها بیت‌هایی به جریان خروجی اضافه می‌کنند که در غیر این صورت می‌توانستند برای داده‌های صوتی استفاده شوند، و بنابراین بر کیفیت خروجی اثر خواهند گذاشت. این موارد به تناسب با یادداشتی در فهرست گزینه‌های زیر مشخص شده‌اند. .PP این پارامترها در چندین سند عمومی به تفصیل شرح داده شده‌اند: .IP *<<\fBhttp://www.atsc.org/cms/standards/a_52\-2010.pdf\fR>> 4 .IX Item "*<>" .PD 0 .IP *<<\fBhttp://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf\fR>> 4 .IX Item "*<>" .IP *<<\fBhttp://www.dolby.com/uploadedFiles/zz\-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf\fR>> 4 .IX Item "*<>" .IP *<<\fBhttp://www.dolby.com/uploadedFiles/zz\-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf\fR>> 4 .IX Item "*<>" .PD .PP گزینه‌های کنترل متادیتا (Metadata Control Options) .IX Subsection "Metadata Control Options" .IP "\fB\-per_frame_metadata\fR \fIboolean\fR" 4 .IX Item "-per_frame_metadata boolean" مجاز دانستن متادیتا به‌ازای هر فریم. مشخص می‌کند آیا انکودر باید تغییرات متادیتا را برای هر فریم بررسی کند یا خیر. .RS 4 .IP \fB0\fR 4 .IX Item "0" مقادیر متادیتا که در زمان مقداردهی اولیه تنظیم شده‌اند برای تمامی فریم‌های استریم استفاده خواهند شد (پیش‌فرض). .IP \fB1\fR 4 .IX Item "1" مقادیر متادیتا می‌توانند پیش از انکود هر فریم تغییر داده شوند. .RE .RS 4 .RE .PP سطوح تفکیک صدا (Downmix Levels) .IX Subsection "Downmix Levels" .IP "\fB\-center_mixlev\fR \fIlevel\fR" 4 .IX Item "-center_mixlev level" سطح میکس کانال مرکزی. میزان بهره‌ای (Gain) که دیکودر هنگام دان‌میکس به استریو باید بر کانال مرکزی اعمال کند. این فیلد تنها زمانی در استریم بیت نوشته می‌شود که کانال مرکزی وجود داشته باشد. مقدار به عنوان یک ضریب مقیاس مشخص می‌شود. ۳ مقدار معتبر وجود دارد: .RS 4 .IP \fB0.707\fR 4 .IX Item "0.707" اعمال بهره \-3dB .IP \fB0.595\fR 4 .IX Item "0.595" اعمال بهره \-4.5dB (پیش‌فرض) .IP \fB0.500\fR 4 .IX Item "0.500" اعمال بهره \-6dB .RE .RS 4 .RE .IP "\fB\-surround_mixlev\fR \fIlevel\fR" 4 .IX Item "-surround_mixlev level" سطح میکس کانال‌های فراگیر. میزان بهره‌ای که دیکودر هنگام دان‌میکس به استریو باید بر کانال(های) فراگیر اعمال کند. این فیلد تنها در صورت وجود یک یا چند کانال فراگیر در استریم بیت نوشته می‌شود. مقدار به عنوان ضریب مقیاس مشخص می‌گردد. ۳ مقدار معتبر وجود دارد: .RS 4 .IP \fB0.707\fR 4 .IX Item "0.707" اعمال بهره \-3dB .IP \fB0.500\fR 4 .IX Item "0.500" اعمال بهره \-6dB (پیش‌فرض) .IP \fB0.000\fR 4 .IX Item "0.000" بی‌صدا کردن کانال(های) فراگیر .RE .RS 4 .RE .PP اطلاعات تولید صدا (Audio Production Information) .IX Subsection "Audio Production Information" .PP اطلاعات تولید صدا، اطلاعاتی اختیاری است که محیط میکس را توصیف می‌کند. در استریم بیت یا هیچ‌یک از فیلدها نوشته نمی‌شوند یا هر دوی آن‌ها نوشته می‌شوند. .IP "\fB\-mixing_level\fR \fInumber\fR" 4 .IX Item "-mixing_level number" سطح میکس. سطح اوج فشار صوت (SPL) را در محیط تولید هنگام مسترینگ میکس مشخص می‌کند. مقادیر معتبر از 80 تا 111، یا \-1 برای حالت ناشناخته یا عدم تعیین است. مقدار پیش‌فرض \-1 است، اما اگر اطلاعات تولید صدا در استریم بیت نوشته شود نمی‌توان از این مقدار استفاده کرد. بنابراین اگر گزینه \f(CW\*(C`room_type\*(C'\fR روی مقدار پیش‌فرض نباشد، گزینه \f(CW\*(C`mixing_level\*(C'\fR نباید \-1 باشد. .IP "\fB\-room_type\fR \fItype\fR" 4 .IX Item "-room_type type" نوع اتاق. اکولایزاسیون استفاده‌شده در طول نشست نهایی میکس در استودیو یا صحنه دوبلاژ را توصیف می‌کند. یک اتاق بزرگ صحنه دوبلاژی با اکولایزاسیون استاندارد صنعتی منحنی X (X-curve) است؛ یک اتاق کوچک دارای اکولایزاسیون مسطح (Flat) است. اگر هر دو گزینه \f(CW\*(C`mixing_level\*(C'\fR و \f(CW\*(C`room_type\*(C'\fR دارای مقادیر پیش‌فرض باشند، این فیلد در استریم بیت نوشته نخواهد شد. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBnotindicated\fR 4 .IX Item "notindicated" .PD تعیین‌نشده (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBlarge\fR 4 .IX Item "large" .PD اتاق بزرگ .IP \fB2\fR 4 .IX Item "2" .PD 0 .IP \fBsmall\fR 4 .IX Item "small" .PD اتاق کوچک .RE .RS 4 .RE .PP سایر گزینه‌های متادیتا (Other Metadata Options) .IX Subsection "Other Metadata Options" .IP "\fB\-copyright\fR \fIboolean\fR" 4 .IX Item "-copyright boolean" نشانگر حق نشر (کپی‌رایت). مشخص می‌کند آیا حق نشر برای این اثر صوتی وجود دارد یا خیر. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBoff\fR 4 .IX Item "off" .PD حق نشری وجود ندارد (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBon\fR 4 .IX Item "on" .PD حق نشر دارد .RE .RS 4 .RE .IP "\fB\-dialnorm\fR \fIvalue\fR" 4 .IX Item "-dialnorm value" نرمال‌سازی گفتگو (Dialogue Normalization). نشان می‌دهد میانگین سطح گفتگوی برنامه تا چه اندازه زیر مقیاس کامل دیجیتال ۱۰۰٪ (0 dBFS) قرار دارد. این پارامتر جابجایی سطحی را در حین بازتولید صدا تعیین می‌کند که بلندی میانگین صدای گفتگو را در یک سطح از پیش تعیین‌شده قرار می‌دهد. هدف تطبیق سطح بلندی صدا میان منابع برنامه‌ای مختلف است. مقدار \-31dB منجر به هیچ تغییری در سطح بلندی نسبت به صدای منبع در حین بازتولید نخواهد شد. مقادیر معتبر اعداد صحیح در محدوده \-31 تا \-1 هستند که \-31 مقدار پیش‌فرض است. .IP "\fB\-dsur_mode\fR \fImode\fR" 4 .IX Item "-dsur_mode mode" حالت دالبی سراند (Dolby Surround Mode). مشخص می‌کند آیا سیگنال استریو از Dolby Surround (Pro Logic) استفاده می‌کند یا خیر. این فیلد تنها زمانی در جریان بیت نوشته می‌شود که استریم صوتی استریو باشد. استفاده از این گزینه به این معنا \fBنیست\fR که انکودر پردازش Dolby Surround را به صورت واقعی اعمال خواهد کرد. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBnotindicated\fR 4 .IX Item "notindicated" .PD تعیین‌نشده (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBoff\fR 4 .IX Item "off" .PD با دالبی سراند انکود نشده است .IP \fB2\fR 4 .IX Item "2" .PD 0 .IP \fBon\fR 4 .IX Item "on" .PD با دالبی سراند انکود شده است .RE .RS 4 .RE .IP "\fB\-original\fR \fIboolean\fR" 4 .IX Item "-original boolean" نشانگر استریم بیت اصلی. مشخص می‌کند آیا این صدا از منبع اصلی است و یک کپی نیست. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBoff\fR 4 .IX Item "off" .PD منبع اصلی نیست .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBon\fR 4 .IX Item "on" .PD منبع اصلی است (پیش‌فرض) .RE .RS 4 .RE .PP \fIاطلاعات تفصیلی استریم بیت (Extended Bitstream Information)\fR .IX Subsection "Extended Bitstream Information" .PP گزینه‌های استریم بیت تفصیلی بخشی از نحو استریم بیت متناوب (Alternate Bit Stream Syntax) هستند که در ضمیمه D استاندارد A/52:2010 مشخص شده است. این اطلاعات در ۲ بخش دسته‌بندی شده‌اند. اگر هر پارامتری از یک گروه تعیین شود، تمامی مقادیر آن گروه در استریم بیت نوشته خواهند شد. برای مواردی که نوشته می‌شوند اما مقدارشان تعیین نشده، مقادیر پیش‌فرض استفاده می‌گردد. در صورت نوشته شدن سطوح میکس، دیکودر در صورت پشتیبانی از نحو Alternate Bit Stream، به جای مقادیر مشخص‌شده در گزینه‌های \f(CW\*(C`center_mixlev\*(C'\fR و \f(CW\*(C`surround_mixlev\*(C'\fR از این مقادیر استفاده خواهد کرد. .PP اطلاعات تفصیلی استریم بیت \- بخش ۱ (Extended Bitstream Information - Part 1) .IX Subsection "Extended Bitstream Information - Part 1" .IP "\fB\-dmix_mode\fR \fImode\fR" 4 .IX Item "-dmix_mode mode" حالت ارجح دان‌میکس استریو. به کاربر اجازه می‌دهد Lt/Rt (دالبی سراند) یا Lo/Ro (استریوی معمولی) را به عنوان حالت ارجح دان‌میکس استریو انتخاب کند. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBnotindicated\fR 4 .IX Item "notindicated" .PD تعیین‌نشده (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBltrt\fR 4 .IX Item "ltrt" .PD دان‌میکس Lt/Rt ترجیح داده می‌شود .IP \fB2\fR 4 .IX Item "2" .PD 0 .IP \fBloro\fR 4 .IX Item "loro" .PD دان‌میکس Lo/Ro ترجیح داده می‌شود .RE .RS 4 .RE .IP "\fB\-ltrt_cmixlev\fR \fIlevel\fR" 4 .IX Item "-ltrt_cmixlev level" سطح میکس مرکزی Lt/Rt. میزان بهره‌ای که دیکودر در هنگام دان‌میکس به استریو در حالت Lt/Rt باید بر کانال مرکزی اعمال کند. .RS 4 .IP \fB1.414\fR 4 .IX Item "1.414" اعمال بهره +3dB .IP \fB1.189\fR 4 .IX Item "1.189" اعمال بهره +1.5dB .IP \fB1.000\fR 4 .IX Item "1.000" اعمال بهره 0dB .IP \fB0.841\fR 4 .IX Item "0.841" اعمال بهره \-1.5dB .IP \fB0.707\fR 4 .IX Item "0.707" اعمال بهره \-3.0dB .IP \fB0.595\fR 4 .IX Item "0.595" اعمال بهره \-4.5dB (پیش‌فرض) .IP \fB0.500\fR 4 .IX Item "0.500" اعمال بهره \-6.0dB .IP \fB0.000\fR 4 .IX Item "0.000" بی‌صدا کردن کانال مرکزی .RE .RS 4 .RE .IP "\fB\-ltrt_surmixlev\fR \fIlevel\fR" 4 .IX Item "-ltrt_surmixlev level" سطح میکس فراگیر Lt/Rt. میزان بهره‌ای که دیکودر در هنگام دان‌میکس به استریو در حالت Lt/Rt باید بر کانال(های) فراگیر اعمال کند. .RS 4 .IP \fB0.841\fR 4 .IX Item "0.841" اعمال بهره \-1.5dB .IP \fB0.707\fR 4 .IX Item "0.707" اعمال بهره \-3.0dB .IP \fB0.595\fR 4 .IX Item "0.595" اعمال بهره \-4.5dB .IP \fB0.500\fR 4 .IX Item "0.500" اعمال بهره \-6.0dB (پیش‌فرض) .IP \fB0.000\fR 4 .IX Item "0.000" بی‌صدا کردن کانال(های) فراگیر .RE .RS 4 .RE .IP "\fB\-loro_cmixlev\fR \fIlevel\fR" 4 .IX Item "-loro_cmixlev level" سطح میکس مرکزی Lo/Ro. میزان بهره‌ای که دیکودر در هنگام دان‌میکس به استریو در حالت Lo/Ro باید بر کانال مرکزی اعمال کند. .RS 4 .IP \fB1.414\fR 4 .IX Item "1.414" اعمال بهره +3dB .IP \fB1.189\fR 4 .IX Item "1.189" اعمال بهره +1.5dB .IP \fB1.000\fR 4 .IX Item "1.000" اعمال بهره 0dB .IP \fB0.841\fR 4 .IX Item "0.841" اعمال بهره \-1.5dB .IP \fB0.707\fR 4 .IX Item "0.707" اعمال بهره \-3.0dB .IP \fB0.595\fR 4 .IX Item "0.595" اعمال بهره \-4.5dB (پیش‌فرض) .IP \fB0.500\fR 4 .IX Item "0.500" اعمال بهره \-6.0dB .IP \fB0.000\fR 4 .IX Item "0.000" بی‌صدا کردن کانال مرکزی .RE .RS 4 .RE .IP "\fB\-loro_surmixlev\fR \fIlevel\fR" 4 .IX Item "-loro_surmixlev level" سطح میکس فراگیر Lo/Ro. میزان بهره‌ای که دیکودر هنگام دان‌میکس به استریو در حالت Lo/Ro باید بر کانال(های) فراگیر اعمال کند. .RS 4 .IP \fB0.841\fR 4 .IX Item "0.841" اعمال بهره \-1.5dB .IP \fB0.707\fR 4 .IX Item "0.707" اعمال بهره \-3.0dB .IP \fB0.595\fR 4 .IX Item "0.595" اعمال بهره \-4.5dB .IP \fB0.500\fR 4 .IX Item "0.500" اعمال بهره \-6.0dB (پیش‌فرض) .IP \fB0.000\fR 4 .IX Item "0.000" بی‌صدا کردن کانال(های) فراگیر .RE .RS 4 .RE .PP اطلاعات تفصیلی استریم بیت \- بخش ۲ (Extended Bitstream Information - Part 2) .IX Subsection "Extended Bitstream Information - Part 2" .IP "\fB\-dsurex_mode\fR \fImode\fR" 4 .IX Item "-dsurex_mode mode" حالت دالبی سراند EX. مشخص می‌کند آیا استریم از دالبی سراند EX (ماتریس 7.1 به 5.1) استفاده می‌کند یا خیر. استفاده از این گزینه به معنای این \fBنیست\fR که انکودر واقعاً پردازش Dolby Surround EX را اعمال می‌کند. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBnotindicated\fR 4 .IX Item "notindicated" .PD تعیین‌نشده (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBon\fR 4 .IX Item "on" .PD دالبی سراند EX خاموش .IP \fB2\fR 4 .IX Item "2" .PD 0 .IP \fBoff\fR 4 .IX Item "off" .PD دالبی سراند EX روشن .RE .RS 4 .RE .IP "\fB\-dheadphone_mode\fR \fImode\fR" 4 .IX Item "-dheadphone_mode mode" حالت هدفون دالبی. مشخص می‌کند آیا استریم از کدگذاری هدفون دالبی (چندکاناله ماتریس‌شده به 2.0 برای استفاده با هدفون) استفاده می‌کند یا خیر. استفاده از این گزینه به معنای اعمال واقعی پردازش Dolby Headphone توسط انکودر \fBنیست\fR. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBnotindicated\fR 4 .IX Item "notindicated" .PD تعیین‌نشده (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBon\fR 4 .IX Item "on" .PD هدفون دالبی خاموش .IP \fB2\fR 4 .IX Item "2" .PD 0 .IP \fBoff\fR 4 .IX Item "off" .PD هدفون دالبی روشن .RE .RS 4 .RE .IP "\fB\-ad_conv_type\fR \fItype\fR" 4 .IX Item "-ad_conv_type type" نوع مبدل A/D. مشخص می‌کند آیا صدا از تبدیل A/D مربوط به HDCD عبور کرده است یا خیر. .RS 4 .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBstandard\fR 4 .IX Item "standard" .PD مبدل استاندارد A/D (پیش‌فرض) .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBhdcd\fR 4 .IX Item "hdcd" .PD مبدل A/D نوع HDCD .RE .RS 4 .RE .PP \fIسایر گزینه‌های انکود AC\-3 (Other AC-3 Encoding Options)\fR .IX Subsection "Other AC-3 Encoding Options" .IP "\fB\-stereo_rematrixing\fR \fIboolean\fR" 4 .IX Item "-stereo_rematrixing boolean" ماتریس‌بندی مجدد استریو (Stereo Rematrixing). فعال/غیرفعال‌سازی استفاده از ماتریس‌بندی مجدد برای ورودی استریو. این یک قابلیت اختیاری AC\-3 است که با انکود انتخابی کانال‌های چپ/راست به عنوان میانی/جانبی، کیفیت را افزایش می‌دهد. این گزینه به صورت پیش‌فرض فعال است و اکیداً توصیه می‌شود مگر برای اهداف تست به صورت فعال باقی بماند. .IP "\fBcutoff\fR \fIfrequency\fR" 4 .IX Item "cutoff frequency" تنظیم فرکانس قطع پایین‌گذر. در صورت عدم تعیین، انکودر یک مقدار پیش‌فرض بر اساس پارامترهای مختلف انکود انتخاب می‌کند. .PP \fIگزینه‌های اختصاصی انکود ممیز شناور AC\-3 (Floating-Point-Only AC-3 Encoding Options)\fR .IX Subsection "Floating-Point-Only AC-3 Encoding Options" .PP این گزینه‌ها تنها برای انکودر ممیز شناور معتبر هستند و به دلیل پیاده‌سازی نشدن ویژگی‌های متناظر در ممیز ثابت، برای انکودر ممیز ثابت وجود ندارند. .IP "\fB\-channel_coupling\fR \fIboolean\fR" 4 .IX Item "-channel_coupling boolean" فعال/غیرفعال‌سازی استفاده از جفت‌سازی کانال‌ها؛ یک ویژگی اختیاری AC\-3 که با ترکیب اطلاعات فرکانس بالای چندین کانال در یک کانال واحد، کیفیت را بهبود می‌بخشد. اطلاعات فرکانس بالای هر کانال با دقت کمتری در هر دو حوزه فرکانس و زمان ارسال می‌شود. این امر اجازه می‌دهد بیت‌های بیشتری برای فرکانس‌های پایین‌تر استفاده شوند در حالی که اطلاعات کافی برای بازسازی فرکانس‌های بالا باقی می‌ماند. این گزینه به طور پیش‌فرض برای انکودر ممیز شناور فعال است و معمولاً باید فعال باقی بماند مگر برای تست یا افزایش سرعت انکود. .RS 4 .IP \fB\-1\fR 4 .IX Item "-1" .PD 0 .IP \fBauto\fR 4 .IX Item "auto" .PD انتخاب توسط انکودر (پیش‌فرض) .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBoff\fR 4 .IX Item "off" .PD غیرفعال کردن جفت‌سازی کانال‌ها .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBon\fR 4 .IX Item "on" .PD فعال کردن جفت‌سازی کانال‌ها .RE .RS 4 .RE .IP "\fB\-cpl_start_band\fR \fInumber\fR" 4 .IX Item "-cpl_start_band number" باند شروع جفت‌سازی. باند شروع جفت‌سازی کانال‌ها را از 1 تا 15 تنظیم می‌کند. اگر مقداری بیشتر از پهنای باند استفاده شود، به 1 واحد کمتر از باند پایانی جفت‌سازی کاهش می‌یابد. در صورت استفاده از \fIauto\fR، باند شروع توسط انکودر بر اساس نرخ بیت، نرخ نمونه‌برداری و چیدمان کانال تعیین می‌شود. این گزینه در صورت غیرفعال بودن جفت‌سازی کانال‌ها هیچ اثری ندارد. .RS 4 .IP \fB\-1\fR 4 .IX Item "-1" .PD 0 .IP \fBauto\fR 4 .IX Item "auto" .PD انتخاب توسط انکودر (پیش‌فرض) .RE .RS 4 .RE .SS flac .IX Subsection "flac" انکودر FLAC (کدک صوتی بدون‌اتلاف آزاد). .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط انکودر flac در FFmpeg پشتیبانی می‌شوند. .IP \fBcompression_level\fR 4 .IX Item "compression_level" تنظیم سطح فشرده‌سازی؛ مقادیر پیش‌فرض بسیاری از گزینه‌های دیگر را در صورتی که صراحتاً تنظیم نشده باشند تعیین می‌کند. مقادیر معتبر از 0 تا 12 هستند و 5 مقدار پیش‌فرض است. .IP \fBframe_size\fR 4 .IX Item "frame_size" تنظیم اندازه فریم‌ها بر حسب تعداد نمونه به‌ازای هر کانال. .IP \fBlpc_coeff_precision\fR 4 .IX Item "lpc_coeff_precision" تنظیم دقت ضرایب LPC؛ مقادیر معتبر از 1 تا 15 هستند و 15 مقدار پیش‌فرض است. .IP \fBlpc_type\fR 4 .IX Item "lpc_type" تنظیم الگوریتم مرحله اول LPC. .RS 4 .IP \fBnone\fR 4 .IX Item "none" از LPC استفاده نمی‌شود .IP \fBfixed\fR 4 .IX Item "fixed" ضرایب ثابت LPC .IP \fBlevinson\fR 4 .IX Item "levinson" .PD 0 .IP \fBcholesky\fR 4 .IX Item "cholesky" .PD .RE .RS 4 .RE .IP \fBlpc_passes\fR 4 .IX Item "lpc_passes" تعداد گذرها (Passes) برای استفاده در فاکتورگیری چولسکی (Cholesky) حین تحلیل LPC. .IP \fBmin_partition_order\fR 4 .IX Item "min_partition_order" حداقل مرتبه بخش‌بندی. .IP \fBmax_partition_order\fR 4 .IX Item "max_partition_order" حداکثر مرتبه بخش‌بندی. .IP \fBprediction_order_method\fR 4 .IX Item "prediction_order_method" روش تعیین مرتبه پیش‌بینی. .RS 4 .PD 0 .IP \fBestimation\fR 4 .IX Item "estimation" .IP \fB2level\fR 4 .IX Item "2level" .IP \fB4level\fR 4 .IX Item "4level" .IP \fB8level\fR 4 .IX Item "8level" .IP \fBsearch\fR 4 .IX Item "search" .PD جستجوی جامع (Bruteforce search) .IP \fBlog\fR 4 .IX Item "log" .RE .RS 4 .RE .IP \fBch_mode\fR 4 .IX Item "ch_mode" حالت کانال. .RS 4 .IP \fBauto\fR 4 .IX Item "auto" حالت به طور خودکار برای هر فریم انتخاب می‌شود .IP \fBindep\fR 4 .IX Item "indep" کانال‌ها به صورت مستقل کدگذاری می‌شوند .IP \fBleft_side\fR 4 .IX Item "left_side" .PD 0 .IP \fBright_side\fR 4 .IX Item "right_side" .IP \fBmid_side\fR 4 .IX Item "mid_side" .PD .RE .RS 4 .RE .IP \fBexact_rice_parameters\fR 4 .IX Item "exact_rice_parameters" مشخص می‌کند آیا پارامترهای رایس به صورت دقیق یا تقریبی محاسبه شوند. در صورت تنظیم روی 1، به طور دقیق محاسبه می‌شوند که کد را اندکی کندتر کرده اما فشرده‌سازی را کمی ارتقا می‌دهد. .IP \fBmulti_dim_quant\fR 4 .IX Item "multi_dim_quant" کوانتیزاسیون چندبعدی. اگر روی 1 تنظیم شود، الگوریتم مرحله دوم LPC پس از مرحله اول اعمال می‌شود تا ضرایب دقیق‌تر تنظیم شوند. این فرایند نسبتاً کند است و فشرده‌سازی را اندکی بهبود می‌بخشد. .SS opus .IX Subsection "opus" انکودر Opus. .PP این یک انکودر بومی در FFmpeg برای قالب Opus است. در حال حاضر در مرحله توسعه قرار دارد و تنها بخش CELT از این کدک را پیاده‌سازی می‌کند. کیفیت آن معمولاً ضعیف‌تر بوده و در بهترین حالت با انکودر libopus برابری می‌کند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت بر حسب بیت بر ثانیه. در صورت عدم تعیین، از تعداد کانال‌ها و چیدمان آن‌ها برای انجام یک تخمین مناسب استفاده می‌کند. .IP \fBopus_delay\fR 4 .IX Item "opus_delay" تنظیم حداکثر تاخیر بر حسب میلی‌ثانیه. تاخیرهای کمتر از 20 میلی‌ثانیه کیفیت را با سرعت بالایی کاهش می‌دهند. .SS libfdk_aac .IX Subsection "libfdk_aac" پوشش انکودر کدک صوتی پیشرفته libfdk\-aac AAC. .PP کتابخانه libfdk\-aac بر پایه کد Fraunhofer FDK AAC از پروژه اندروید ساخته شده است. .PP نیازمند وجود هدرها و کتابخانه libfdk\-aac در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libfdk\-aac\*(C'\fR پیکربندی کنید. این کتابخانه همچنین با مجوز GPL ناسازگار است، بنابراین اگر استفاده از GPL را مجاز می‌دانید، باید با \&\f(CW\*(C`\-\-enable\-gpl \-\-enable\-nonfree \-\-enable\-libfdk\-aac\*(C'\fR پیکربندی را انجام دهید. .PP این انکودر از پروفایل‌های AAC\-HE پشتیبانی می‌کند. .PP انکود VBR که از طریق گزینه‌های \fBvbr\fR یا \fBflags +qscale\fR فعال می‌شود، آزمایشی است و تنها با برخی از ترکیب‌های پارامتری کار می‌کند. .PP پشتیبانی از انکود صدای 7.1 تنها در libfdk\-aac نسخه 0.1.3 یا بالاتر در دسترس است. .PP برای کسب اطلاعات بیشتر پروژه fdk\-aac را در <\fBhttp://sourceforge.net/p/opencore\-amr/fdk\-aac\fR> ببینید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر بر روی گزینه‌های مشترک کدک‌های FFmpeg نگاشت شده‌اند. .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت بر حسب بیت بر ثانیه. اگر نرخ بیت صراحتاً تعیین نشود، بسته به پروفایل انتخابی به طور خودکار روی مقداری مناسب تنظیم می‌شود. .Sp در صورتی که حالت VBR فعال باشد، این گزینه نادیده گرفته می‌شود. .IP \fBar\fR 4 .IX Item "ar" تنظیم نرخ نمونه‌برداری صدا (بر حسب هرتز). .IP \fBchannels\fR 4 .IX Item "channels" تنظیم تعداد کانال‌های صوتی. .IP "\fBflags +qscale\fR" 4 .IX Item "flags +qscale" فعال‌سازی حالت کیفیت ثابت، نرخ بیت متغیر (VBR). توجه داشته باشید که با مثبت بودن مقدار \fBvbr\fR، حالت VBR به صورت ضمنی فعال می‌شود. .IP \fBcutoff\fR 4 .IX Item "cutoff" تنظیم فرکانس قطع. اگر مشخص نشود (یا صراحتاً روی 0 تنظیم شود)، از مقداری که به صورت خودکار توسط کتابخانه محاسبه شده استفاده خواهد کرد. مقدار پیش‌فرض 0 است. .IP \fBprofile\fR 4 .IX Item "profile" تنظیم پروفایل صوتی. .Sp پروفایل‌های زیر شناسایی می‌شوند: .RS 4 .IP \fBaac_low\fR 4 .IX Item "aac_low" کدک AAC با پیچیدگی پایین (LC) .IP \fBaac_he\fR 4 .IX Item "aac_he" کدک AAC با راندمان بالا (HE\-AAC) .IP \fBaac_he_v2\fR 4 .IX Item "aac_he_v2" کدک AAC با راندمان بالا نسخه ۲ (HE\-AACv2) .IP \fBaac_ld\fR 4 .IX Item "aac_ld" کدک AAC با تاخیر پایین (LD) .IP \fBaac_eld\fR 4 .IX Item "aac_eld" کدک AAC با تاخیر پایین بهبودیافته (ELD) .RE .RS 4 .Sp در صورت عدم تعیین، روی \fBaac_low\fR تنظیم می‌گردد. .RE .PP موارد زیر گزینه‌های اختصاصی انکودر libfdk_aac هستند. .IP \fBafterburner\fR 4 .IX Item "afterburner" اگر روی 1 تنظیم شود قابلیت afterburner را فعال و در صورت تنظیم روی 0 غیرفعال می‌کند. این ویژگی کیفیت را بهبود می‌بخشد اما توان پردازشی مورد نیاز را نیز بالا می‌برد. .Sp مقدار پیش‌فرض 1 است. .IP \fBeld_sbr\fR 4 .IX Item "eld_sbr" در صورت تنظیم بر روی 1، قابلیت SBR (شبیه‌سازی باند طیفی) را برای ELD فعال می‌کند و در صورت 0 غیرفعال می‌سازد. .Sp مقدار پیش‌فرض 0 است. .IP \fBeld_v2\fR 4 .IX Item "eld_v2" در صورت تنظیم بر روی 1، قابلیت ELDv2 (افزونه LD\-MPS برای سیگنال‌های استریوی ELD) را برای ELDv2 فعال کرده و در صورت تنظیم روی 0 غیرفعال می‌نماید. .Sp توجه داشته باشید که این گزینه زمانی در دسترس است که نسخه fdk\-aac بالاتر از (4.0.0) باشد: (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) > (4.0.0). .Sp مقدار پیش‌فرض 0 است. .IP \fBsignaling\fR 4 .IX Item "signaling" تنظیم شیوه سیگنال‌دهی SBR/PS. .Sp می‌تواند یکی از مقادیر زیر را بپذیرد: .RS 4 .IP \fBdefault\fR 4 .IX Item "default" انتخاب سیگنال‌دهی به صورت ضمنی (به طور پیش‌فرض سلسله‌مراتبی صریح، و در صورت غیرفعال بودن هدر عمومی به صورت ضمنی) .IP \fBimplicit\fR 4 .IX Item "implicit" سیگنال‌دهی ضمنی با سازگاری رو به عقب .IP \fBexplicit_sbr\fR 4 .IX Item "explicit_sbr" سیگنال‌دهی SBR صریح، سیگنال‌دهی PS ضمنی .IP \fBexplicit_hierarchical\fR 4 .IX Item "explicit_hierarchical" سیگنال‌دهی صریح سلسله‌مراتبی .RE .RS 4 .Sp مقدار پیش‌فرض \fBdefault\fR است. .RE .IP \fBlatm\fR 4 .IX Item "latm" در صورت تنظیم روی 1، خروجی داده‌ها را به صورت کپسوله‌شده در LATM/LOAS قرار می‌دهد و در صورت 0 غیرفعال است. .Sp مقدار پیش‌فرض 0 است. .IP \fBheader_period\fR 4 .IX Item "header_period" تنظیم دوره تکرار StreamMuxConfig و PCE (بر حسب فریم) جهت ارسال بافرهای پیکربندی درون‌باندی در لایه انتقال LATM/LOAS. .Sp باید یک عدد صحیح غیرمنفی ۱۶ بیتی باشد. .Sp مقدار پیش‌فرض 0 است. .IP \fBvbr\fR 4 .IX Item "vbr" تنظیم حالت VBR از 1 تا 5. مقدار 1 کمترین کیفیت (گرچه همچنان بسیار خوب) و 5 بالاترین کیفیت است. مقدار 0 حالت VBR را غیرفعال کرده و CBR (نرخ بیت ثابت) فعال می‌شود. .Sp در حال حاضر تنها پروفایل \fBaac_low\fR از انکود VBR پشتیبانی می‌کند. .Sp حالت‌های VBR از 1 تا 5 تقریباً متناظر با نرخ‌های بیت میانگین زیر هستند: .RS 4 .IP \fB1\fR 4 .IX Item "1" 32 kbps به‌ازای هر کانال .IP \fB2\fR 4 .IX Item "2" 40 kbps به‌ازای هر کانال .IP \fB3\fR 4 .IX Item "3" 48\-56 kbps به‌ازای هر کانال .IP \fB4\fR 4 .IX Item "4" 64 kbps به‌ازای هر کانال .IP \fB5\fR 4 .IX Item "5" حدود 80\-96 kbps به‌ازای هر کانال .RE .RS 4 .Sp مقدار پیش‌فرض 0 است. .RE .IP \fBframe_length\fR 4 .IX Item "frame_length" تنظیم طول فریم صوتی بر حسب تعداد نمونه. مقدار پیش‌فرض، مقدار پیش‌فرض داخلی کتابخانه است. برای اطلاعات پیرامون مقادیر پشتیبانی‌شده به مستندات کتابخانه مراجعه نمایید. .PP \fIمثال‌ها (Examples)\fR .IX Subsection "Examples" .IP \(bu 4 استفاده از \fBffmpeg\fR برای تبدیل یک فایل صوتی به VBR AAC در یک کانتینر M4A (MP4): .Sp .Vb 1 \& ffmpeg \-i input.wav \-codec:a libfdk_aac \-vbr 3 output.m4a .Ve .IP \(bu 4 استفاده از \fBffmpeg\fR برای تبدیل یک فایل صوتی به CBR 64k kbps AAC با استفاده از پروفایل High\-Efficiency AAC: .Sp .Vb 1 \& ffmpeg \-i input.wav \-c:a libfdk_aac \-profile:a aac_he \-b:a 64k output.m4a .Ve .SS liblc3 .IX Subsection "liblc3" پوشش انکودر liblc3 LC3 (کدک ارتباطی کم‌پیدگی). .PP نیازمند حضور هدرها و کتابخانه liblc3 در هنگام پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-liblc3\*(C'\fR پیکربندی کنید. .PP این انکودر از کدک Bluetooth SIG LC3 برای پروتکل LE Audio و ویژگی‌های زیر از LC3plus پشتیبانی می‌کند: .IP \(bu 4 مدت فریم 2.5 و 5 میلی‌ثانیه. .IP \(bu 4 حالت وضوح بالا (High\-Resolution)، نرخ‌های نمونه‌برداری 48 کیلوهرتز و 96 کیلوهرتز. .PP برای اطلاعات بیشتر به پروژه liblc3 در <\fBhttps://github.com/google/liblc3\fR> مراجعه نمایید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر بر روی گزینه‌های مشترک کدک FFmpeg نگاشت شده‌اند. .IP "\fBb\fR \fIbitrate\fR" 4 .IX Item "b bitrate" تنظیم نرخ بیت بر حسب بیت بر ثانیه. این گزینه اندازه ثابت فریم‌های انکودشده را برای یک مدت فریم انتخابی تعیین خواهد کرد. .IP "\fBar\fR \fIfrequency\fR" 4 .IX Item "ar frequency" تنظیم نرخ نمونه‌برداری صدا (بر حسب هرتز). .IP \fBchannels\fR 4 .IX Item "channels" تنظیم تعداد کانال‌های صوتی. .IP \fBframe_duration\fR 4 .IX Item "frame_duration" تنظیم مدت‌زمان فریم صوتی بر حسب میلی‌ثانیه. مقدار پیش‌فرض 10ms است. مدت فریم‌های مجاز عبارتند از 2.5ms، 5ms، 7.5ms و 10ms. کدک LC3 (بلوتوث LE Audio) مقادیر 7.5ms و 10ms را مجاز می‌داند؛ و LC3plus مقادیر 2.5ms، 5ms و 10ms را پشتیبانی می‌کند. .Sp مدت فریم 10ms در هر دو استاندارد LC3 و LC3plus در دسترس است. در این حالت، استریم بیت تولیدشده می‌تواند به عنوان LC3 یا LC3plus مرجع قرار گیرد. .IP "\fBhigh_resolution\fR \fIboolean\fR" 4 .IX Item "high_resolution boolean" در صورت تنظیم بر روی 1 حالت وضوح بالا را فعال می‌کند. حالت وضوح بالا با تمامی مدت فریم‌های LC3plus و برای نرخ‌های نمونه‌برداری 48 کیلوهرتز و 96 کیلوهرتز در دسترس است. .Sp انکودر در نرخ‌های نمونه‌برداری پایین‌تر این حالت را به صورت خودکار خاموش کرده و در 96 کیلوهرتز فعال می‌سازد. .Sp این حالت باید در نرخ‌های بیت بالا ترجیح داده شود. در این حالت، پهنای باند صدا همواره تا فرکانس نایکوئیست گسترش می‌یابد، در مقایسه با LC3 در 48 کیلوهرتز که پهنای باند را به 20 کیلوهرتز محدود می‌کند. .SS libmp3lame .IX Subsection "libmp3lame" پوشش انکودر MP3 تحت LAME (Lame Ain\*(Aqt an MP3 Encoder). .PP نیازمند وجود هدرها و کتابخانه libmp3lame در زمان پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libmp3lame\*(C'\fR پیکربندی کنید. .PP برای انکودر MP3 ممیز ثابت (هرچند با کیفیت پایین‌تر)، به \fBlibshine\fR مراجعه کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش libmp3lame پشتیبانی می‌شوند. معادل‌های این گزینه‌ها در ابزار \fBlame\fR درون پرانتز درج شده‌اند. .IP "\fBb (\fR\fI\-b\fR\fB)\fR" 4 .IX Item "b (-b)" تنظیم نرخ بیت بر حسب بیت بر ثانیه برای CBR یا ABR. مقدار \f(CW\*(C`bitrate\*(C'\fR در LAME بر حسب کیلوبیت بر ثانیه بیان می‌شود. .IP "\fBq (\fR\fI\-V\fR\fB)\fR" 4 .IX Item "q (-V)" تنظیم کیفیت ثابت برای VBR. این گزینه تنها هنگام استفاده از ابزار خط فرمان \fBffmpeg\fR معتبر است. برای کاربران رابط کتابخانه‌ای، از \fBglobal_quality\fR استفاده کنید. .IP "\fBcompression_level (\fR\fI\-q\fR\fB)\fR" 4 .IX Item "compression_level (-q)" تنظیم کیفیت الگوریتم. آرگومان‌های معتبر اعداد صحیح در محدوده 0 تا 9 هستند؛ 0 به معنای بالاترین کیفیت اما کندترین حالت، و 9 به معنای سریع‌ترین حالت با پایین‌ترین کیفیت است. .IP "\fBcutoff (\fR\fI\-\-lowpass\fR\fB)\fR" 4 .IX Item "cutoff (--lowpass)" تنظیم فرکانس قطع پایین‌گذر. در صورت عدم تعیین، انکودر به صورت پویا فرکانس قطع را تنظیم می‌کند. .IP \fBreservoir\fR 4 .IX Item "reservoir" در صورت تنظیم بر روی 1، استفاده از مخزن بیت (Bit Reservoir) را فعال می‌کند. مقدار پیش‌فرض 1 است. در LAME این ویژگی به طور پیش‌فرض فعال است، اما با استفاده از گزینه \&\fB\-\-nores\fR می‌توان آن را بازنویسی کرد. .IP "\fBjoint_stereo (\fR\fI\-m j\fR\fB)\fR" 4 .IX Item "joint_stereo (-m j)" به انکودر اجازه می‌دهد (به ازای هر فریم) از استریوی چپ/راست یا استریوی میانی/جانبی استفاده کند. مقدار پیش‌فرض 1 است. .IP "\fBabr (\fR\fI\-\-abr\fR\fB)\fR" 4 .IX Item "abr (--abr)" در صورت تنظیم بر روی 1 به انکودر امکان می‌دهد از ABR استفاده کند. سوییچ \&\fB\-\-abr\fR در \fBlame\fR نرخ بیت هدف را تنظیم می‌کند، در حالی که این گزینه در FFmpeg صرفاً دستور به استفاده از ABR می‌دهد و تعیین نرخ بیت همچنان به \fBb\fR وابسته است. .IP "\fBcopyright (\fR\fI\-c\fR\fB)\fR" 4 .IX Item "copyright (-c)" در صورت تنظیم بر روی 1 پرچم حق نشر صوتی MPEG را فعال می‌کند. مقدار پیش‌فرض 0 است (غیرفعال). .IP "\fBoriginal (\fR\fI\-o\fR\fB)\fR" 4 .IX Item "original (-o)" در صورت تنظیم بر روی 1 پرچم اصالت صدای MPEG را فعال می‌سازد. مقدار پیش‌فرض 1 است (فعال). .SS libopencore\-amrnb .IX Subsection "libopencore-amrnb" انکودر باند باریک چندنرخی تطبیقی OpenCORE (Adaptive Multi\-Rate Narrowband). .PP نیازمند هدرها و کتابخانه libopencore\-amrnb در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libopencore\-amrnb \-\-enable\-version3\*(C'\fR پیکربندی کنید. .PP این انکودر صرفاً از حالت مونو پشتیبانی می‌کند. به طور رسمی تنها از نرخ نمونه‌برداری 8000 هرتز پشتیبانی به عمل می‌آورد، اما می‌توانید با تنظیم \fBstrict\fR بر روی \fBunofficial\fR یا پایین‌تر آن را بازنویسی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت بر حسب بیت بر ثانیه. تنها نرخ‌های بیت زیر پشتیبانی می‌شوند، در غیر این صورت libavcodec آن را به نزدیک‌ترین نرخ بیت معتبر گرد خواهد کرد: .RS 4 .IP \fB4750\fR 4 .IX Item "4750" .PD 0 .IP \fB5150\fR 4 .IX Item "5150" .IP \fB5900\fR 4 .IX Item "5900" .IP \fB6700\fR 4 .IX Item "6700" .IP \fB7400\fR 4 .IX Item "7400" .IP \fB7950\fR 4 .IX Item "7950" .IP \fB10200\fR 4 .IX Item "10200" .IP \fB12200\fR 4 .IX Item "12200" .PD .RE .RS 4 .RE .IP \fBdtx\fR 4 .IX Item "dtx" در صورت تنظیم روی 1، مخابره ناپیوسته (تولید نویز آسایش) را مجاز می‌سازد. مقدار پیش‌فرض 0 است (غیرفعال). .SS libopus .IX Subsection "libopus" پوشش انکودر کدک صوتی تعاملی libopus Opus. .PP نیازمند وجود هدرها و کتابخانه libopus در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libopus\*(C'\fR پیکربندی کنید. .PP \fIنگاشت گزینه‌ها (Option Mapping)\fR .IX Subsection "Option Mapping" .PP بیشتر گزینه‌های libopus بر اساس ابزار کاربردی \fBopusenc\fR از مجموعه opus\-tools الگوبرداری شده‌اند. نمودار نگاشت گزینه‌های زیر گزینه‌های پشتیبانی‌شده توسط پوشش libopus و معادل آن‌ها در \fBopusenc\fR را درون پرانتز شرح می‌دهد. .IP "\fBb (\fR\fIbitrate\fR\fB)\fR" 4 .IX Item "b (bitrate)" تنظیم نرخ بیت بر حسب بیت بر ثانیه. گزینه \fBb\fR در FFmpeg بر حسب بیت بر ثانیه و \fBbitrate\fR در \fBopusenc\fR بر حسب کیلوبیت بر ثانیه بیان می‌شود. .IP "\fBvbr (\fR\fIvbr\fR\fB,\fR \fIhard\-cbr\fR\fB, and\fR \fIcvbr\fR\fB)\fR" 4 .IX Item "vbr (vbr, hard-cbr, and cvbr)" تنظیم حالت VBR. گزینه \fBvbr\fR در FFmpeg دارای آرگومان‌های معتبر زیر است که گزینه‌های معادل \fBopusenc\fR درون پرانتز آمده‌اند: .RS 4 .IP "\fBoff (\fR\fIhard\-cbr\fR\fB)\fR" 4 .IX Item "off (hard-cbr)" استفاده از کدگذاری نرخ بیت ثابت (CBR). .IP "\fBon (\fR\fIvbr\fR\fB)\fR" 4 .IX Item "on (vbr)" استفاده از کدگذاری نرخ بیت متغیر (پیش‌فرض). .IP "\fBconstrained (\fR\fIcvbr\fR\fB)\fR" 4 .IX Item "constrained (cvbr)" استفاده از کدگذاری نرخ بیت متغیر مقید. .RE .RS 4 .RE .IP "\fBcompression_level (\fR\fIcomp\fR\fB)\fR" 4 .IX Item "compression_level (comp)" تنظیم پیچیدگی الگوریتم کدگذاری. گزینه‌های معتبر اعداد صحیح در محدوده 0 تا 10 هستند. مقدار 0 سریع‌ترین انکود اما کیفیت پایین‌تر را می‌دهد، در حالی که 10 بالاترین کیفیت اما کندترین انکود را ارائه می‌نماید. مقدار پیش‌فرض 10 است. .IP "\fBframe_duration (\fR\fIframesize\fR\fB)\fR" 4 .IX Item "frame_duration (framesize)" تنظیم حداکثر اندازه فریم، یا مدت فریم بر حسب میلی‌ثانیه. آرگومان باید دقیقاً یکی از مقادیر زیر باشد: 2.5, 5, 10, 20, 40, 60. اندازه‌های فریم کوچک‌تر تاخیر کمتری ایجاد می‌کنند اما کیفیت کمتری در یک نرخ بیت معین به همراه دارند. اندازه‌های بزرگ‌تر از 20ms تنها در نرخ‌های بیت نسبتاً پایین قابل توجه هستند. مقدار پیش‌فرض 20ms است. .IP "\fBpacket_loss (\fR\fIexpect\-loss\fR\fB)\fR" 4 .IX Item "packet_loss (expect-loss)" تنظیم درصد اتلاف بسته مورد انتظار. مقدار پیش‌فرض 0 است. .IP "\fBfec (\fR\fIn/a\fR\fB)\fR" 4 .IX Item "fec (n/a)" فعال‌سازی تصحیح خطای رو به جلو درون‌باندی (Inband FEC). مقدار \fBpacket_loss\fR باید غیرصفر باشد تا از این قابلیت بهره گرفته شود \- بسامد داده‌های جانبی FEC متناسب با میزان اتلاف بسته مورد انتظار خواهد بود. به طور پیش‌فرض غیرفعال است. .IP "\fBapplication (N.A.)\fR" 4 .IX Item "application (N.A.)" تنظیم نوع کاربرد مد نظر. گزینه‌های معتبر در زیر آمده است: .RS 4 .IP \fBvoip\fR 4 .IX Item "voip" اولویت دادن به وضوح بهتر گفتار. .IP \fBaudio\fR 4 .IX Item "audio" اولویت دادن به وفاداری به صدای ورودی (پیش‌فرض). .IP \fBlowdelay\fR 4 .IX Item "lowdelay" محدود کردن به حالت‌های دارای کمترین تاخیر با غیرفعال کردن حالت‌های بهینه‌سازی‌شده برای صدا. .RE .RS 4 .RE .IP "\fBcutoff (N.A.)\fR" 4 .IX Item "cutoff (N.A.)" تنظیم پهنای باند قطع بر حسب هرتز. آرگومان باید دقیقاً یکی از مقادیر روبرو باشد: 4000، 6000، 8000، 12000 یا 20000 که به ترتیب متناظر با باند باریک، باند متوسط، باند پهن، باند فوق پهن و باند کامل هستند. مقدار پیش‌فرض 0 است (فرکانس قطع غیرفعال). توجه داشته باشید که libopus برای نرخ‌های بیت کمتر از 15 kbps فرکانس قطع باند پهن را اجبار می‌کند، مگر اینکه از حالت فقط CELT (گزینه \fBapplication\fR روی \fBlowdelay\fR) استفاده شود. .IP "\fBmapping_family (\fR\fImapping_family\fR\fB)\fR" 4 .IX Item "mapping_family (mapping_family)" تنظیم خانواده نگاشت کانال برای استفاده توسط انکودر. مقدار پیش‌فرض \-1 برای ورودی‌های مونو و استریو از خانواده نگاشت 0 و در غیر این صورت از خانواده 1 استفاده می‌کند. همچنین مقدار پیش‌فرض، بهینه‌سازی‌های ماسک‌گذاری سراند و پهنای باند LFE در libopus را غیرفعال کرده و الزام می‌دارد که ورودی شامل ۸ کانال یا کمتر باشد. .Sp سایر مقادیر عبارتند از: 0 برای مونو و استریو، 1 برای صدای سراند با بهینه‌سازی‌های ماسک‌گذاری و پهنای باند LFE، و 255 برای جریان‌های مستقل با چیدمان کانال نامشخص. .IP "\fBdtx (N.A.)\fR" 4 .IX Item "dtx (N.A.)" در صورت تنظیم بر روی 1 مخابره ناپیوسته را مجاز می‌سازد. مقدار پیش‌فرض 0 است (غیرفعال). .IP "\fBapply_phase_inv (N.A.) (requires libopus >= 1.2)\fR" 4 .IX Item "apply_phase_inv (N.A.) (requires libopus >= 1.2)" اگر روی 0 تنظیم شود، استفاده از وارونگی فاز برای استریوی شدتی را غیرفعال می‌کند که کیفیت دان‌میکس‌های مونو را بهبود می‌بخشد، اما کیفیت استریوی عادی را اندکی کاهش می‌دهد. مقدار پیش‌فرض 1 است (وارونگی فاز فعال). .SS libshine .IX Subsection "libshine" پوشش انکودر MP3 ممیز ثابت Shine. .PP کتابخانه Shine یک انکودر MP3 ممیز ثابت است. در پلتفرم‌های فاقد واحد ممیز شناور (FPU) مانند پردازنده‌های armel و برخی گوشی‌ها و تبلت‌ها عملکرد بسیار بهتری دارد. با این حال، از آنجا که بیش از کیفیت بر عملکرد تمرکز دارد، از نظر کیفیت هم‌تراز با LAME و سایر انکودرهای مناسب استفاده در سطح تولید نیست. همچنین بر اساس صفحه خانگی پروژه، ممکن است این انکودر عاری از باگ نباشد زیرا کد آن سال‌ها پیش نوشته شده و پروژه حداقل برای ۵ سال متوقف بوده است. .PP این انکودر تنها از ورودی استریو و مونو پشتیبانی می‌کند و فقط از حالت CBR پشتیبانی به عمل می‌آورد. .PP پروژه اصلی (آخرین بار در اوایل ۲۰۰۷ به‌روزرسانی شد) در <\fBhttp://sourceforge.net/projects/libshine\-fxp\fR> قرار دارد. ما تنها از فورک به‌روزشده توسط پروژه Savonet/Liquidsoap در <\fBhttps://github.com/savonet/shine\fR> پشتیبانی می‌کنیم. .PP نیازمند هدرها و کتابخانه libshine در هنگام پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libshine\*(C'\fR پیکربندی کنید. .PP همچنین به \fBlibmp3lame\fR مراجعه نمایید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش libshine پشتیبانی می‌شوند. معادل این گزینه‌ها در \fBshineenc\fR درون پرانتز آمده است. .IP "\fBb (\fR\fI\-b\fR\fB)\fR" 4 .IX Item "b (-b)" تنظیم نرخ بیت بر حسب بیت بر ثانیه برای CBR. گزینه \fB\-b\fR در \fBshineenc\fR بر حسب کیلوبیت بر ثانیه بیان می‌شود. .SS libtwolame .IX Subsection "libtwolame" پوشش انکودر TwoLAME MP2. .PP نیازمند وجود هدرها و کتابخانه libtwolame در حین پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libtwolame\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش libtwolame پشتیبانی می‌شوند. گزینه‌های معادل در \fBtwolame\fR بعد از گزینه‌های FFmpeg و درون پرانتز آمده‌اند. .IP "\fBb (\fR\fI\-b\fR\fB)\fR" 4 .IX Item "b (-b)" تنظیم نرخ بیت بر حسب بیت بر ثانیه برای CBR. گزینه \fBb\fR در \fBtwolame\fR بر حسب کیلوبیت بر ثانیه بیان می‌شود. مقدار پیش‌فرض 128k است. .IP "\fBq (\fR\fI\-V\fR\fB)\fR" 4 .IX Item "q (-V)" تنظیم کیفیت برای پشتیبانی آزمایشی از VBR. حداکثر محدوده مقادیر از \-50 تا 50 است و محدوده مفید از \-10 تا 10 می‌باشد؛ هر چه مقدار بالاتر باشد، کیفیت بهتر است. این گزینه تنها هنگام استفاده از ابزار خط فرمان \&\fBffmpeg\fR معتبر است. برای کاربران رابط کتابخانه‌ای، از \fBglobal_quality\fR استفاده کنید. .IP "\fBmode (\fR\fI\-\-mode\fR\fB)\fR" 4 .IX Item "mode (--mode)" تنظیم حالت صدای خروجی. مقادیر ممکن: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" انتخاب حالت به صورت خودکار بر اساس ورودی. این حالت پیش‌فرض است. .IP \fBstereo\fR 4 .IX Item "stereo" استریو .IP \fBjoint_stereo\fR 4 .IX Item "joint_stereo" استریوی مشترک .IP \fBdual_channel\fR 4 .IX Item "dual_channel" دوکاناله مستقل .IP \fBmono\fR 4 .IX Item "mono" مونو .RE .RS 4 .RE .IP "\fBpsymodel (\fR\fI\-\-psyc\-mode\fR\fB)\fR" 4 .IX Item "psymodel (--psyc-mode)" تنظیم مدل آکوستیک روانی برای استفاده در انکود. آرگومان باید یک عدد صحیح بین \-1 تا 4 (شامل هر دو) باشد. هرچه مقدار بالاتر باشد، کیفیت بهتر خواهد بود. مقدار پیش‌فرض 3 است. .IP "\fBenergy_levels (\fR\fI\-\-energy\fR\fB)\fR" 4 .IX Item "energy_levels (--energy)" در صورت تنظیم بر روی 1 افزونه سطوح انرژی را فعال می‌کند. مقدار پیش‌فرض 0 است (غیرفعال). .IP "\fBerror_protection (\fR\fI\-\-protect\fR\fB)\fR" 4 .IX Item "error_protection (--protect)" در صورت تنظیم روی 1 حفاظت در برابر خطای CRC را فعال می‌کند. مقدار پیش‌فرض 0 است (غیرفعال). .IP "\fBcopyright (\fR\fI\-\-copyright\fR\fB)\fR" 4 .IX Item "copyright (--copyright)" در صورت تنظیم بر روی 1 پرچم حق نشر صوتی MPEG را فعال می‌سازد. مقدار پیش‌فرض 0 است (غیرفعال). .IP "\fBoriginal (\fR\fI\-\-original\fR\fB)\fR" 4 .IX Item "original (--original)" در صورت تنظیم روی 1 پرچم صدای اصلی MPEG را فعال می‌کند. مقدار پیش‌فرض 0 است (غیرفعال). .SS libvo\-amrwbenc .IX Subsection "libvo-amrwbenc" انکودر باند پهن چندنرخی تطبیقی VisualOn (Adaptive Multi\-Rate Wideband). .PP نیازمند هدرها و کتابخانه libvo\-amrwbenc در زمان پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libvo\-amrwbenc \-\-enable\-version3\*(C'\fR پیکربندی کنید. .PP این انکودر تنها مونو است. به طور رسمی تنها از نرخ نمونه‌برداری 16000 هرتز پشتیبانی می‌کند، اما می‌توانید با تنظیم \fBstrict\fR بر روی \&\fBunofficial\fR یا پایین‌تر آن را بازنویسی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت بر حسب بیت بر ثانیه. تنها نرخ‌های بیت زیر پشتیبانی می‌شوند، در غیر این صورت libavcodec آن را به نزدیک‌ترین نرخ بیت معتبر گرد خواهد کرد: .RS 4 .IP \fB6600\fR 4 .IX Item "6600" .PD 0 .IP \fB8850\fR 4 .IX Item "8850" .IP \fB12650\fR 4 .IX Item "12650" .IP \fB14250\fR 4 .IX Item "14250" .IP \fB15850\fR 4 .IX Item "15850" .IP \fB18250\fR 4 .IX Item "18250" .IP \fB19850\fR 4 .IX Item "19850" .IP \fB23050\fR 4 .IX Item "23050" .IP \fB23850\fR 4 .IX Item "23850" .PD .RE .RS 4 .RE .IP \fBdtx\fR 4 .IX Item "dtx" در صورت تنظیم روی 1 مخابره ناپیوسته (تولید نویز آسایش) را مجاز می‌داند. مقدار پیش‌فرض 0 است (غیرفعال). .SS libvorbis .IX Subsection "libvorbis" پوشش انکودر libvorbis. .PP نیازمند هدرها و کتابخانه libvorbisenc در زمان پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libvorbis\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش libvorbis پشتیبانی می‌شوند. معادل این گزینه‌ها در \fBoggenc\fR در پرانتز درج شده است. .PP برای دریافت مستندات دقیق‌تر و جامع‌تر درباره گزینه‌های libvorbis، به مستندات libvorbisenc و \fBoggenc\fR مراجعه کنید. به <\fBhttp://xiph.org/vorbis\fR>، <\fBhttp://wiki.xiph.org/Vorbis\-tools\fR> و \fBoggenc\fR\|(1) مراجعه نمایید. .IP "\fBb (\fR\fI\-b\fR\fB)\fR" 4 .IX Item "b (-b)" تنظیم نرخ بیت بر حسب بیت بر ثانیه برای ABR. در \fBoggenc\fR گزینه \fB\-b\fR بر حسب کیلوبیت بر ثانیه بیان می‌شود. .IP "\fBq (\fR\fI\-q\fR\fB)\fR" 4 .IX Item "q (-q)" تنظیم کیفیت ثابت برای VBR. مقدار باید یک عدد اعشاری در محدوده \-1.0 تا 10.0 باشد. هرچه مقدار بالاتر باشد، کیفیت بهتر خواهد بود. مقدار پیش‌فرض \fB3.0\fR است. .Sp این گزینه تنها با ابزار خط فرمان \fBffmpeg\fR معتبر است. برای کاربران رابط کتابخانه‌ای، از \fBglobal_quality\fR استفاده نمایید. .IP "\fBcutoff (\fR\fI\-\-advanced\-encode\-option lowpass_frequency=N\fR\fB)\fR" 4 .IX Item "cutoff (--advanced-encode-option lowpass_frequency=N)" تنظیم پهنای باند قطع بر حسب هرتز؛ مقدار 0 فرکانس قطع را غیرفعال می‌کند. گزینه متناظر در \fBoggenc\fR بر حسب کیلوهرتز بیان می‌شود. مقدار پیش‌فرض \fB0\fR است (قطع غیرفعال). .IP "\fBminrate (\fR\fI\-m\fR\fB)\fR" 4 .IX Item "minrate (-m)" تنظیم حداقل نرخ بیت بر حسب بیت بر ثانیه. در \fBoggenc\fR گزینه \fB\-m\fR بر حسب کیلوبیت بر ثانیه بیان می‌شود. .IP "\fBmaxrate (\fR\fI\-M\fR\fB)\fR" 4 .IX Item "maxrate (-M)" تنظیم حداکثر نرخ بیت بر حسب بیت بر ثانیه. در \fBoggenc\fR سوییچ \fB\-M\fR بر حسب کیلوبیت بر ثانیه بیان می‌شود. این گزینه تنها در حالت ABR تاثیرگذار است. .IP "\fBiblock (\fR\fI\-\-advanced\-encode\-option impulse_noisetune=N\fR\fB)\fR" 4 .IX Item "iblock (--advanced-encode-option impulse_noisetune=N)" تنظیم سوگیری کف نویز برای بلوک‌های ضربه. مقدار یک عدد اعشاری از \&\-15.0 تا 0.0 است. سوگیری منفی به انکودر دستور می‌دهد توجه ویژه‌ای به شفافیت گذارها در صدای انکودشده داشته باشد. مصالحه برای پاسخ گذار بهتر، نرخ بیت بالاتر خواهد بود. .SS mjpeg .IX Subsection "mjpeg" انکودر Motion JPEG. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBhuffman\fR 4 .IX Item "huffman" تنظیم راهبرد کدگذاری هافمن. مقادیر ممکن: .RS 4 .IP \fBdefault\fR 4 .IX Item "default" استفاده از جداول پیش‌فرض هافمن. این راهبرد پیش‌فرض است. .IP \fBoptimal\fR 4 .IX Item "optimal" محاسبه و استفاده از جداول بهینه هافمن. .RE .RS 4 .RE .SS wavpack .IX Subsection "wavpack" انکودر صوتی بدون‌اتلاف WavPack. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های معادل برای ابزار خط فرمان \fBwavpack\fR درون پرانتز فهرست شده‌اند. .PP گزینه‌های مشترک (Shared options) .IX Subsection "Shared options" .PP گزینه‌های مشترک زیر برای این انکودر اعمال می‌شوند. در اینجا تنها نکات ویژه درباره این انکودر خاص مستند می‌شوند. برای مفهوم کلی گزینه‌ها به \fBفصل گزینه‌های کدک (Codec Options)\fR مراجعه کنید. .IP "\fBframe_size (\fR\fI\-\-blocksize\fR\fB)\fR" 4 .IX Item "frame_size (--blocksize)" برای این انکودر، محدوده این گزینه بین 128 تا 131072 است. مقدار پیش‌فرض به صورت خودکار بر اساس نرخ نمونه‌برداری و تعداد کانال‌ها تعیین می‌شود. .Sp برای فرمول کامل محاسبه پیش‌فرض، به \&\fIlibavcodec/wavpackenc.c\fR مراجعه کنید. .IP "\fBcompression_level (\fR\fI\-f\fR\fB,\fR \fI\-h\fR\fB,\fR \fI\-hh\fR\fB, and\fR \fI\-x\fR\fB)\fR" 4 .IX Item "compression_level (-f, -h, -hh, and -x)" .PP گزینه‌های اختصاصی (Private options) .IX Subsection "Private options" .IP "\fBjoint_stereo (\fR\fI\-j\fR\fB)\fR" 4 .IX Item "joint_stereo (-j)" تنظیم فعال بودن یا نبودن استریوی مشترک. مقادیر معتبر عبارتند از: .RS 4 .IP "\fBon (\fR\fI1\fR\fB)\fR" 4 .IX Item "on (1)" اجبار به کدگذاری صدای میانی/جانبی. .IP "\fBoff (\fR\fI0\fR\fB)\fR" 4 .IX Item "off (0)" اجبار به کدگذاری صدای چپ/راست. .IP \fBauto\fR 4 .IX Item "auto" اجازه به انکودر جهت تصمیم‌گیری خودکار. .RE .RS 4 .RE .IP \fBoptimize_mono\fR 4 .IX Item "optimize_mono" تنظیم فعال‌سازی بهینه‌سازی برای مونو. این گزینه تنها برای استریم‌های غیرمونو موثر است. مقادیر در دسترس: .RS 4 .IP \fBon\fR 4 .IX Item "on" فعال .IP \fBoff\fR 4 .IX Item "off" غیرفعال .RE .RS 4 .RE .SH "VIDEO ENCODERS" .IX Header "VIDEO ENCODERS" توضیحات مربوط به برخی از انکودرهای ویدیویی در دسترس در ادامه آمده است. .SS "a64_multi, a64_multi5" .IX Subsection "a64_multi, a64_multi5" انکودر مجموعه نویسه‌های چندرنگ A64 / کمودور ۶۴ (Commodore 64). گزینه \f(CW\*(C`a64_multi5\*(C'\fR با رنگ پنجم (colram) گسترش یافته است. .SS Cinepak .IX Subsection "Cinepak" انکودر Cinepak با نام مستعار CVID. سازگار با ویندوز 3.1 و MacOS کلاسیک (Vintage). .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBg\fR \fIinteger\fR" 4 .IX Item "g integer" فاصله فریم‌های کلیدی. حداقل به ازای هر \f(CW\*(C`\-g\*(C'\fR فریم یک فریم کلیدی درج می‌شود، گاهی اوقات زودتر. .IP "\fBq:v\fR \fIinteger\fR" 4 .IX Item "q:v integer" فاکتور کیفیت. مقدار کمتر بهتر است؛ مقدار بالاتر نرخ بیت کمتری می‌دهد. جدول زیر نرخ‌های بیت را هنگام انکود akiyo_cif.y4m به ازای مقادیر مختلف \f(CW\*(C`\-q:v\*(C'\fR با \f(CW\*(C`\-g 100\*(C'\fR فهرست می‌کند: .RS 4 .ie n .IP "\fR\fB""\-q:v 1""\fR\fB 1918 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 1\fR\fB 1918 kb/s\fR" 4 .IX Item "-q:v 1 1918 kb/s" .PD 0 .ie n .IP "\fR\fB""\-q:v 2""\fR\fB 1735 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 2\fR\fB 1735 kb/s\fR" 4 .IX Item "-q:v 2 1735 kb/s" .ie n .IP "\fR\fB""\-q:v 4""\fR\fB 1500 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 4\fR\fB 1500 kb/s\fR" 4 .IX Item "-q:v 4 1500 kb/s" .ie n .IP "\fR\fB""\-q:v 10""\fR\fB 1041 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 10\fR\fB 1041 kb/s\fR" 4 .IX Item "-q:v 10 1041 kb/s" .ie n .IP "\fR\fB""\-q:v 20""\fR\fB 826 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 20\fR\fB 826 kb/s\fR" 4 .IX Item "-q:v 20 826 kb/s" .ie n .IP "\fR\fB""\-q:v 40""\fR\fB 553 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 40\fR\fB 553 kb/s\fR" 4 .IX Item "-q:v 40 553 kb/s" .ie n .IP "\fR\fB""\-q:v 100""\fR\fB 394 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 100\fR\fB 394 kb/s\fR" 4 .IX Item "-q:v 100 394 kb/s" .ie n .IP "\fR\fB""\-q:v 200""\fR\fB 312 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 200\fR\fB 312 kb/s\fR" 4 .IX Item "-q:v 200 312 kb/s" .ie n .IP "\fR\fB""\-q:v 400""\fR\fB 266 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 400\fR\fB 266 kb/s\fR" 4 .IX Item "-q:v 400 266 kb/s" .ie n .IP "\fR\fB""\-q:v 1000""\fR\fB 237 kb/s\fR" 4 .el .IP "\fR\f(CB\-q:v 1000\fR\fB 237 kb/s\fR" 4 .IX Item "-q:v 1000 237 kb/s" .PD .RE .RS 4 .RE .IP "\fBmax_extra_cb_iterations\fR \fIinteger\fR" 4 .IX Item "max_extra_cb_iterations integer" حداکثر دفعات گذر اضافی برای محاسبه مجدد کتاب کد (Codebook)؛ مقدار بیشتر کیفیت بهتری می‌دهد اما کندتر است. .IP "\fBskip_empty_cb\fR \fIboolean\fR" 4 .IX Item "skip_empty_cb boolean" جلوگیری از هدررفت بایت‌ها، نادیده گرفتن دیکودر نسخه قدیمی MacOS. .IP "\fBmax_strips\fR \fIinteger\fR" 4 .IX Item "max_strips integer" .PD 0 .IP "\fBmin_strips\fR \fIinteger\fR" 4 .IX Item "min_strips integer" .PD حداقل و حداکثر تعداد نوارهایی که استفاده می‌شود. دامنه وسیع‌تر گاهی اوقات کیفیت را بهبود می‌بخشد. نوارهای بیشتر عموماً کیفیت بهتری دارند اما بیت‌های بیشتری مصرف می‌کنند. نوارهای کمتر تمایل به تولید فریم‌های کلیدی بیشتری دارد. مقدار سازگار با نسخه‌های قدیمی 1..3 است. .IP "\fBstrip_number_adaptivity\fR \fIinteger\fR" 4 .IX Item "strip_number_adaptivity integer" میزان مجاز تغییر تعداد نوارها میان فریم‌ها. مقادیر بالاتر بهتر اما کندتر است. .SS ffv1 .IX Subsection "ffv1" انکودر FFv1 .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط انکودر FFv1 در FFmpeg پشتیبانی می‌شوند. .IP \fBcontext\fR 4 .IX Item "context" تنظیم اندازه کانتکست؛ 0 (پیش‌فرض) کوچک است، 1 بزرگ است. .IP \fBcoder\fR 4 .IX Item "coder" تنظیم کدکننده: .RS 4 .IP \fBrice\fR 4 .IX Item "rice" کدگذار گولومب-رایس (Golomb rice) .IP \fBrange_def\fR 4 .IX Item "range_def" کدگذار دامنه‌ای (Range coder) با جدول پیش‌فرض .IP \fBrange_tab\fR 4 .IX Item "range_tab" کدگذار دامنه‌ای با جدول سفارشی .RE .RS 4 .RE .IP \fBslicecrc\fR 4 .IX Item "slicecrc" مقدار \&\-1 (پیش‌فرض، خودکار)، 1 استفاده از crc با حالت اولیه و نهایی صفر، 2 استفاده از crc با حالت اولیه و نهایی غیر صفر .IP \fBqtable\fR 4 .IX Item "qtable" .RS 4 .PD 0 .IP \fBdefault\fR 4 .IX Item "default" .PD پیش‌فرض، خودکار .IP \fB8bit\fR 4 .IX Item "8bit" استفاده از پیش‌فرض ۸ بیتی .IP \fBgreater8bit\fR 4 .IX Item "greater8bit" استفاده از پیش‌فرض >۸ بیتی .RE .RS 4 .RE .IP \fBremap_optimizer\fR 4 .IX Item "remap_optimizer" مقداری بین 0 تا 5، پیش‌فرض 3؛ میزان تلاشی که انکودر برای بهینه‌سازی جدول نگاشت مجدد صرف می‌کند. .SS GIF .IX Subsection "GIF" انکودر تصویر/پویانمایی GIF. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBgifflags\fR \fIinteger\fR" 4 .IX Item "gifflags integer" تنظیم پرچم‌های مورد استفاده برای انکود GIF. .RS 4 .IP \fBoffsetting\fR 4 .IX Item "offsetting" جابجایی تصویر (Picture Offsetting) را فعال می‌کند. .Sp پیش‌فرض فعال است. .IP \fBtransdiff\fR 4 .IX Item "transdiff" تشخیص شفافیت میان فریم‌ها را فعال می‌سازد. .Sp پیش‌فرض فعال است. .RE .RS 4 .RE .IP "\fBgifimage\fR \fIinteger\fR" 4 .IX Item "gifimage integer" انکود یک تصویر GIF کامل به‌ازای هر فریم را به جای یک GIF متحرک پویانمایی‌شده فعال می‌کند. .Sp مقدار پیش‌فرض \fB0\fR است. .IP "\fBglobal_palette\fR \fIinteger\fR" 4 .IX Item "global_palette integer" در صورت امکان، پالتی را در هدر سراسری GIF می‌نویسد. .Sp در صورت غیرفعال بودن، در هر فریم همواره یک پالت نوشته خواهد شد، حتی اگر یک پالت سراسری فراهم شده باشد. .Sp مقدار پیش‌فرض \fB1\fR است. .SS Hap .IX Subsection "Hap" انکودر ویدیوی Vidvox Hap. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBformat\fR \fIinteger\fR" 4 .IX Item "format integer" تعیین قالب Hap برای انکود. .RS 4 .IP \fBhap\fR 4 .IX Item "hap" .PD 0 .IP \fBhap_alpha\fR 4 .IX Item "hap_alpha" .IP \fBhap_q\fR 4 .IX Item "hap_q" .PD .RE .RS 4 .Sp مقدار پیش‌فرض \fBhap\fR است. .RE .IP "\fBchunks\fR \fIinteger\fR" 4 .IX Item "chunks integer" تعداد تکه‌ها (چانک‌ها) را برای تقسیم فریم‌ها بین 1 و 64 مشخص می‌کند. این ویژگی امکان دیکود چندنخی فریم‌های بزرگ را، احتمالاً به بهای افزایش نرخ داده‌ها، فراهم می‌سازد. انکودر ممکن است این مقدار را تغییر دهد تا فریم‌ها به طور مساوی تقسیم شوند. .Sp مقدار پیش‌فرض \fI1\fR است. .IP "\fBcompressor\fR \fIinteger\fR" 4 .IX Item "compressor integer" فشرده‌ساز مرحله دوم را برای استفاده مشخص می‌کند. اگر روی \fBnone\fR تنظیم شود، \fBchunks\fR به 1 محدود خواهد شد، زیرا فریم‌های غیرفشرده تکه‌تکه‌شده فاقد هرگونه مزیتی هستند. .RS 4 .IP \fBnone\fR 4 .IX Item "none" .PD 0 .IP \fBsnappy\fR 4 .IX Item "snappy" .PD .RE .RS 4 .Sp مقدار پیش‌فرض \fBsnappy\fR است. .RE .SS jpeg2000 .IX Subsection "jpeg2000" انکودر بومی jpeg 2000 به صورت پیش‌فرض بااتلاف است؛ از گزینه \f(CW\*(C`\-q:v\*(C'\fR می‌توان برای تنظیم کیفیت انکود استفاده کرد. انکود بدون‌اتلاف را می‌توان با \f(CW\*(C`\-pred 1\*(C'\fR انتخاب نمود. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBformat\fR \fIinteger\fR" 4 .IX Item "format integer" می‌تواند روی \f(CW\*(C`j2k\*(C'\fR یا \f(CW\*(C`jp2\*(C'\fR (پیش‌فرض) تنظیم شود که ذخیره قالب‌های پیکسلی غیر rgb را ممکن می‌سازد. .IP "\fBtile_width\fR \fIinteger\fR" 4 .IX Item "tile_width integer" تنظیم عرض تایل. محدوده از 1 تا 1073741824 است. پیش‌فرض 256 می‌باشد. .IP "\fBtile_height\fR \fIinteger\fR" 4 .IX Item "tile_height integer" تنظیم ارتفاع تایل. محدوده از 1 تا 1073741824 است. پیش‌فرض 256 می‌باشد. .IP "\fBpred\fR \fIinteger\fR" 4 .IX Item "pred integer" امکان تنظیم نوع تبدیل موجک گسسته (DWT) را فراهم می‌کند: .RS 4 .IP "\fBdwt97int (Lossy)\fR" 4 .IX Item "dwt97int (Lossy)" .PD 0 .IP "\fBdwt53 (Lossless)\fR" 4 .IX Item "dwt53 (Lossless)" .PD .RE .RS 4 .Sp پیش‌فرض \f(CW\*(C`dwt97int\*(C'\fR است. .RE .IP "\fBsop\fR \fIboolean\fR" 4 .IX Item "sop boolean" این گزینه را برای افزودن نشانگر SOP در ابتدای هر بسته فعال کنید. به طور پیش‌فرض غیرفعال است. .IP "\fBeph\fR \fIboolean\fR" 4 .IX Item "eph boolean" این گزینه را برای افزودن نشانگر EPH در انتهای هدر هر بسته فعال نمایید. به صورت پیش‌فرض غیرفعال است. .IP "\fBprog\fR \fIinteger\fR" 4 .IX Item "prog integer" ترتیب پیشرفت (Progression Order) را برای استفاده توسط انکودر تنظیم می‌کند. مقادیر ممکن: .RS 4 .IP \fBlrcp\fR 4 .IX Item "lrcp" .PD 0 .IP \fBrlcp\fR 4 .IX Item "rlcp" .IP \fBrpcl\fR 4 .IX Item "rpcl" .IP \fBpcrl\fR 4 .IX Item "pcrl" .IP \fBcprl\fR 4 .IX Item "cprl" .PD .RE .RS 4 .Sp به صورت پیش‌فرض روی \f(CW\*(C`lrcp\*(C'\fR تنظیم شده است. .RE .IP "\fBlayer_rates\fR \fIstring\fR" 4 .IX Item "layer_rates string" به طور پیش‌فرض هنگامی که از این گزینه استفاده نمی‌شود، فشرده‌سازی با استفاده از معیار کیفیت صورت می‌گیرد. این گزینه امکان فشرده‌سازی با استفاده از نسبت فشرده‌سازی را فراهم می‌آورد. نسبت فشرده‌سازی را می‌توان برای هر سطح مشخص نمود. نسبت فشرده‌سازی یک لایه \f(CW\*(C`l\*(C'\fR مشخص می‌کند چه نسبتی از اندازه کل فایل در \f(CW\*(C`l\*(C'\fR لایه اول گنجانده شده است. .Sp مثال کاربردی: .Sp .Vb 1 \& ffmpeg \-i input.bmp \-c:v jpeg2000 \-layer_rates "100,10,1" output.j2k .Ve .Sp این دستور تصویر را طوری فشرده می‌کند که شامل ۳ لایه باشد، جایی که داده‌های موجود در لایه اول ۱۰۰۰ برابر فشرده می‌شوند، در دو لایه اول ۱۰۰ برابر فشرده می‌شوند، و با استفاده از هر ۳ لایه شامل تمامی داده‌ها خواهد بود. .SS librav1e .IX Subsection "librav1e" پوشش انکودر rav1e AV1. .PP نیازمند وجود هدرها و کتابخانه rav1e در هنگام پیکربندی است. باید بیلد را صراحتاً با \f(CW\*(C`\-\-enable\-librav1e\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBqmax\fR 4 .IX Item "qmax" حداکثر کوانتیایزر را برای استفاده در حالت نرخ بیت تعیین می‌کند. .IP \fBqmin\fR 4 .IX Item "qmin" حداقل کوانتیایزر را برای استفاده در حالت نرخ بیت تنظیم می‌کند. .IP \fBqp\fR 4 .IX Item "qp" از حالت کوانتیایزر برای انکود با کوانتیایزر مشخص‌شده (0\-255) استفاده می‌کند. .IP \fBspeed\fR 4 .IX Item "speed" پریست سرعت (0\-10) را برای انکود انتخاب می‌کند. .IP \fBtiles\fR 4 .IX Item "tiles" مشخص می‌کند انکود با چه تعداد تایل انجام شود. .IP \fBtile\-rows\fR 4 .IX Item "tile-rows" تعداد سطرهای تایل‌ها را برای انکود انتخاب می‌کند. .IP \fBtile\-columns\fR 4 .IX Item "tile-columns" تعداد ستون‌های تایل‌ها را برای انکود انتخاب می‌کند. .IP \fBrav1e\-params\fR 4 .IX Item "rav1e-params" تنظیم گزینه‌های rav1e با استفاده از فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR جداشده با ":". برای مشاهده فهرستی از گزینه‌ها به \fBrav1e \-\-help\fR مراجعه کنید. .Sp به عنوان مثال برای تعیین گزینه‌های انکود librav1e با \fB\-rav1e\-params\fR: .Sp .Vb 1 \& ffmpeg \-i input \-c:v librav1e \-b:v 500K \-rav1e\-params speed=5:low_latency=true output.mp4 .Ve .SS libaom\-av1 .IX Subsection "libaom-av1" پوشش انکودر libaom AV1. .PP نیازمند وجود هدرها و کتابخانه libaom در زمان پیکربندی است. باید بیلد را صراحتاً با \&\f(CW\*(C`\-\-enable\-libaom\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP این پوشش از گزینه‌های استاندارد libavcodec زیر پشتیبانی می‌کند: .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت هدف بر حسب بیت بر ثانیه. به طور پیش‌فرض از حالت نرخ بیت متغیر استفاده خواهد کرد. اگر \fBmaxrate\fR و \fBminrate\fR نیز بر روی مقدار یکسانی تنظیم شوند، از حالت نرخ بیت ثابت استفاده می‌کند، در غیر این صورت اگر \fBcrf\fR نیز تنظیم شده باشد از حالت کیفیت مقید استفاده می‌نماید. .IP "\fBg keyint_min\fR" 4 .IX Item "g keyint_min" تنظیم محل قرارگیری فریم‌های کلیدی. اندازه GOP حداکثر فاصله بین فریم‌های کلیدی را تعیین می‌کند؛ اگر صفر باشد استریم خروجی فقط شامل فریم‌های درون‌تصویری (Intra-only) خواهد بود. حداقل فاصله نادیده گرفته می‌شود مگر اینکه با اندازه GOP یکسان باشد که در این صورت فریم‌های کلیدی همیشه در فواصل ثابتی ظاهر می‌شوند. به طور پیش‌فرض تنظیم نشده است، بنابراین بدون این گزینه کتابخانه برای تعیین محل قرارگیری فریم‌های کلیدی کاملاً آزاد است. .IP "\fBqmin qmax\fR" 4 .IX Item "qmin qmax" تنظیم مقادیر حداقل/حداکثر کوانتیزاسیون. محدوده معتبر از 0 تا 63 است (هشدار: این مقدار با مقادیر کوانتیایزر که در عمل توسط AV1 استفاده می‌شود مطابقت ندارد \- برای نگاشت مقادیر واقعی کوانتیایزر به این محدوده آن را بر چهار تقسیم کنید). پیش‌فرض بر روی min/max (بدون قید) است. .IP "\fBminrate maxrate bufsize rc_init_occupancy\fR" 4 .IX Item "minrate maxrate bufsize rc_init_occupancy" تنظیم پارامترهای بافرینگ کنترل نرخ. در صورت عدم تنظیم استفاده نمی‌شود \- پیش‌فرض بر روی نرخ بیت متغیر بدون قید است. .IP \fBthreads\fR 4 .IX Item "threads" تنظیم تعداد نخ‌های پردازشی برای استفاده در حین انکود. این ممکن است نیازمند تنظیم گزینه‌های \&\fBtiles\fR یا \fBrow\-mt\fR باشد تا از تعداد نخ‌های مشخص‌شده به طور کامل استفاده شود. پیش‌فرض برابر با تعداد نخ‌های سخت‌افزاری پشتیبانی‌شده توسط سیستم میزبان است. .IP \fBprofile\fR 4 .IX Item "profile" تنظیم پروفایل انکودینگ. پیش‌فرض استفاده از پروفایلی است که با عمق بیت و زیرنمونه‌برداری رنگی (Chroma subsampling) ورودی مطابقت دارد. .PP این پوشش همچنین دارای برخی گزینه‌های اختصاصی است: .IP \fBcpu\-used\fR 4 .IX Item "cpu-used" تنظیم مصالحه بین کیفیت و سرعت انکود. محدوده معتبر از 0 تا 8 است؛ اعداد بالاتر نشان‌دهنده سرعت بیشتر و کیفیت پایین‌تر هستند. مقدار پیش‌فرض 1 است که کند و باکیفیت بالا خواهد بود. .IP \fBauto\-alt\-ref\fR 4 .IX Item "auto-alt-ref" فعال‌سازی استفاده از فریم‌های مرجع متناوب. پیش‌فرض به تنظیم داخلی کتابخانه برمی‌گردد. .IP "\fBarnr\-max\-frames (\fR\fIframes\fR\fB)\fR" 4 .IX Item "arnr-max-frames (frames)" تنظیم حداکثر تعداد فریم‌های کاهش نویز altref. مقدار پیش‌فرض \-1 است. .IP "\fBarnr\-strength (\fR\fIstrength\fR\fB)\fR" 4 .IX Item "arnr-strength (strength)" تنظیم شدت فیلتر کاهش نویز altref. محدوده از \-1 تا 6 است. مقدار پیش‌فرض \-1 است. .IP "\fBaq\-mode (\fR\fIaq\-mode\fR\fB)\fR" 4 .IX Item "aq-mode (aq-mode)" تنظیم حالت کوانتیزاسیون تطبیقی. مقادیر ممکن: .RS 4 .IP "\fBnone (\fR\fI0\fR\fB)\fR" 4 .IX Item "none (0)" غیرفعال. .IP "\fBvariance (\fR\fI1\fR\fB)\fR" 4 .IX Item "variance (1)" مبتنی بر واریانس. .IP "\fBcomplexity (\fR\fI2\fR\fB)\fR" 4 .IX Item "complexity (2)" مبتنی بر پیچیدگی. .IP "\fBcyclic (\fR\fI3\fR\fB)\fR" 4 .IX Item "cyclic (3)" تازه‌سازی چرخه‌ای. .RE .RS 4 .RE .IP "\fBtune (\fR\fItune\fR\fB)\fR" 4 .IX Item "tune (tune)" تنظیم معیار اعوجاجی که انکودر بر اساس آن بهینه‌سازی (Tune) می‌شود. پیش‌فرض \f(CW\*(C`psnr\*(C'\fR است. .RS 4 .IP "\fBpsnr (\fR\fI0\fR\fB)\fR" 4 .IX Item "psnr (0)" .PD 0 .IP "\fBssim (\fR\fI1\fR\fB)\fR" 4 .IX Item "ssim (1)" .PD .RE .RS 4 .RE .IP \fBlag\-in\-frames\fR 4 .IX Item "lag-in-frames" تنظیم حداکثر تعداد فریم‌هایی که انکودر می‌تواند در هر لحظه جهت پیش‌نگری در جریان نگه دارد. پیش‌فرض به تنظیم داخلی کتابخانه بازمی‌گردد. .IP \fBerror\-resilience\fR 4 .IX Item "error-resilience" فعال‌سازی ویژگی‌های تاب‌آوری در برابر خطا: .RS 4 .IP \fBdefault\fR 4 .IX Item "default" بهبود تاب‌آوری در برابر از دست رفتن کل فریم‌ها. .RE .RS 4 .Sp به طور پیش‌فرض فعال نیست. .RE .IP \fBcrf\fR 4 .IX Item "crf" تنظیم مصالحه بین کیفیت و اندازه برای حالت‌های کیفیت ثابت (بدون نرخ بیت هدف) و کیفیت مقید (با سقف نرخ بیت هدف). محدوده معتبر 0 تا 63 است؛ اعداد بالاتر نشان‌دهنده کیفیت پایین‌تر و حجم خروجی کوچک‌تر هستند. تنها در صورت تنظیم شدن استفاده می‌شود؛ به صورت پیش‌فرض تنها نرخ بیت هدف به کار می‌رود. .IP \fBstatic\-thresh\fR 4 .IX Item "static-thresh" تنظیم آستانه تغییر روی بلوک‌ها که پایین‌تر از آن، بلوک‌ها توسط انکودر نادیده گرفته می‌شوند. بر حسب واحدهای دلخواه به صورت یک عدد صحیح غیرمنفی تعریف می‌شود و پیش‌فرض صفر است (هیچ بلوکی نادیده گرفته نمی‌شود). .IP \fBdrop\-threshold\fR 4 .IX Item "drop-threshold" تنظیم آستانه برای انداختن فریم‌ها در زمان نزدیکی به محدوده‌های کنترل نرخ. به صورت درصدی از بافر هدف تعریف می‌شود \- زمانی که بافر کنترل نرخ به زیر این درصد سقوط کند، فریم‌ها انداخته می‌شوند تا زمانی که بافر به بالای آستانه پر شود. مقدار پیش‌فرض صفر است (هیچ فریمی انداخته نمی‌شود). .IP "\fBdenoise\-noise\-level (\fR\fIlevel\fR\fB)\fR" 4 .IX Item "denoise-noise-level (level)" میزان نویزی که باید برای سنتز گرین فیلم حذف شود. اگر این گزینه تنظیم نشود یا برابر با 0 باشد، سنتز گرین غیرفعال است. .IP "\fBdenoise\-block\-size (\fR\fIpixels\fR\fB)\fR" 4 .IX Item "denoise-block-size (pixels)" اندازه بلوک مورد استفاده جهت کاهش نویز برای سنتز گرین فیلم. در صورت عدم تنظیم، کدک AV1 از مقدار پیش‌فرض 32 استفاده می‌کند. .IP "\fBundershoot\-pct (\fR\fIpct\fR\fB)\fR" 4 .IX Item "undershoot-pct (pct)" تنظیم درصد کمتر از حد بودن نرخ داده‌ها (حداقل) نسبت به نرخ بیت هدف. محدوده از \-1 تا 100 است. مقدار پیش‌فرض \-1 است. .IP "\fBovershoot\-pct (\fR\fIpct\fR\fB)\fR" 4 .IX Item "overshoot-pct (pct)" تنظیم درصد فراتر رفتن نرخ داده‌ها (حداکثر) نسبت به نرخ بیت هدف. محدوده از \-1 تا 1000 است. مقدار پیش‌فرض \-1 است. .IP "\fBminsection\-pct (\fR\fIpct\fR\fB)\fR" 4 .IX Item "minsection-pct (pct)" حداقل درصد تغییرات نرخ بیت GOP نسبت به نرخ بیت هدف. اگر minsection\-pct تنظیم نشود، پوشش libaomenc آن را به این صورت محاسبه می‌کند: \f(CW\*(C`(minrate * 100 / bitrate)\*(C'\fR. محدوده از \-1 تا 100 است. پیش‌فرض \-1 است (تنظیم‌نشده). .IP "\fBmaxsection\-pct (\fR\fIpct\fR\fB)\fR" 4 .IX Item "maxsection-pct (pct)" حداکثر درصد تغییرات نرخ بیت GOP نسبت به نرخ بیت هدف. اگر maxsection\-pct تنظیم نشود، پوشش libaomenc آن را بدین صورت محاسبه می‌نماید: \f(CW\*(C`(maxrate * 100 / bitrate)\*(C'\fR. محدوده از \-1 تا 5000 است. پیش‌فرض \-1 است (تنظیم‌نشده). .IP "\fBframe\-parallel (\fR\fIboolean\fR\fB)\fR" 4 .IX Item "frame-parallel (boolean)" فعال‌سازی قابلیت‌های رمزگشایی‌پذیری موازی فریم‌ها. مقدار پیش‌فرض true است. .IP \fBtiles\fR 4 .IX Item "tiles" تنظیم تعداد تایل‌ها برای انکود ویدیوی ورودی، به صورت ستون x سطر. مقادیر بزرگ‌تر امکان موازی‌سازی بیشتری را در هر دو فرایند انکود و دیکود فراهم می‌سازند، اما ممکن است کارایی کدگذاری را کاهش دهند. پیش‌فرض به حداقل تعداد تایل‌های مورد نیاز بر اساس اندازه ویدیوی ورودی برمی‌گردد (که برای ابعاد تا 4K و خود 4K برابر با 1x1، یعنی یک تایل منفرد است). .IP "\fBtile\-columns tile\-rows\fR" 4 .IX Item "tile-columns tile-rows" تنظیم تعداد تایل‌ها به صورت log2 از تعداد سطرها و ستون‌های تایل. جهت سازگاری با libvpx/VP9 فراهم شده است. .IP "\fBrow\-mt (Requires libaom >= 1.0.0\-759\-g90a15f4f2)\fR" 4 .IX Item "row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)" فعال‌سازی چندنخی مبتنی بر سطر. به طور پیش‌فرض غیرفعال است. .IP "\fBenable\-cdef (\fR\fIboolean\fR\fB)\fR" 4 .IX Item "enable-cdef (boolean)" فعال‌سازی فیلتر بهبود جهتی مقید (CDEF). انکودر libaom\-av1 فیلتر CDEF را به صورت پیش‌فرض فعال می‌کند. .IP "\fBenable\-restoration (\fR\fIboolean\fR\fB)\fR" 4 .IX Item "enable-restoration (boolean)" فعال‌سازی فیلتر بازسازی حلقه (Loop Restoration Filter). برای libaom\-av1 پیش‌فرض true است. .IP "\fBenable\-global\-motion (\fR\fIboolean\fR\fB)\fR" 4 .IX Item "enable-global-motion (boolean)" فعال‌سازی استفاده از حرکت سراسری برای پیش‌بینی بلوک. مقدار پیش‌فرض true است. .IP "\fBenable\-intrabc (\fR\fIboolean\fR\fB)\fR" 4 .IX Item "enable-intrabc (boolean)" فعال‌سازی حالت کپی بلوک برای پیش‌بینی درون‌بلوکی. این حالت برای محتوای صفحه نمایشگر (Screen Content) سودمند است. مقدار پیش‌فرض true است. .IP "\fBenable\-rect\-partitions (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-rect-partitions (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی افرازهای مستطیلی. مقدار پیش‌فرض true است. .IP "\fBenable\-1to4\-partitions (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی افرازهای ۱:۴/۴:۱. مقدار پیش‌فرض true است. .IP "\fBenable\-ab\-partitions (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-ab-partitions (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی افرازهای با شکل AB. مقدار پیش‌فرض true است. .IP "\fBenable\-angle\-delta (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-angle-delta (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی پیش‌بینی درونی دلتای زاویه. مقدار پیش‌فرض true است. .IP "\fBenable\-cfl\-intra (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-cfl-intra (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی کروما پیش‌بینی‌شده از پیش‌بینی درونی لوما (CfL). مقدار پیش‌فرض true است. .IP "\fBenable\-filter\-intra (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-filter-intra (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی پیش‌بینی‌کننده فیلتر درونی. مقدار پیش‌فرض true است. .IP "\fBenable\-intra\-edge\-filter (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی فیلتر لبه درونی. مقدار پیش‌فرض true است. .IP "\fBenable\-smooth\-intra (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-smooth-intra (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی حالت پیش‌بینی درونی هموار. مقدار پیش‌فرض true است. .IP "\fBenable\-paeth\-intra (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-paeth-intra (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی پیش‌بینی‌کننده پائت در پیش‌بینی درونی. مقدار پیش‌فرض true است. .IP "\fBenable\-palette (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-palette (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی حالت پیش‌بینی پالت. مقدار پیش‌فرض true است. .IP "\fBenable\-flip\-idtx (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-flip-idtx (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی انواع تبدیل گسترش‌یافته، شامل FLIPADST_DCT, DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST, IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. مقدار پیش‌فرض true است. .IP "\fBenable\-tx64 (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-tx64 (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی تبدیل ۶۴ نقطه‌ای (64\-pt). مقدار پیش‌فرض true است. .IP "\fBreduced\-tx\-type\-set (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)" استفاده از مجموعه کاهش‌یافته انواع تبدیل. مقدار پیش‌فرض false است. .IP "\fBuse\-intra\-dct\-only (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "use-intra-dct-only (boolean) (Requires libaom >= v2.0.0)" استفاده از DCT تنها برای حالت‌های INTRA. مقدار پیش‌فرض false است. .IP "\fBuse\-inter\-dct\-only (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "use-inter-dct-only (boolean) (Requires libaom >= v2.0.0)" استفاده از DCT تنها برای حالت‌های INTER. مقدار پیش‌فرض false است. .IP "\fBuse\-intra\-default\-tx\-only (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)" استفاده از تبدیل پیش‌فرض تنها برای حالت‌های INTRA. مقدار پیش‌فرض false است. .IP "\fBenable\-ref\-frame\-mvs (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی پیش‌بینی زمانی بردار حرکت. مقدار پیش‌فرض true است. .IP "\fBenable\-reduced\-reference\-set (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)" استفاده از مجموعه کاهش‌یافته مراجع تکی و ترکیبی. مقدار پیش‌فرض false است. .IP "\fBenable\-obmc (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-obmc (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی جبران حرکت بلوک هم‌پوشان (OBMC). مقدار پیش‌فرض true است. .IP "\fBenable\-dual\-filter (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-dual-filter (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی فیلتر دوگانه. مقدار پیش‌فرض true است. .IP "\fBenable\-diff\-wtd\-comp (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب با وزن تفاضلی. مقدار پیش‌فرض true است. .IP "\fBenable\-dist\-wtd\-comp (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب با وزن فاصله‌ای. مقدار پیش‌فرض true است. .IP "\fBenable\-onesided\-comp (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-onesided-comp (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب یک‌طرفه. مقدار پیش‌فرض true است. .IP "\fBenable\-interinter\-wedge (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب گُوه‌ای بین-فریمی. مقدار پیش‌فرض true است. .IP "\fBenable\-interintra\-wedge (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب گُوه‌ای درون-بین فریمی. مقدار پیش‌فرض true است. .IP "\fBenable\-masked\-comp (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-masked-comp (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب ماسک‌دار. مقدار پیش‌فرض true است. .IP "\fBenable\-interintra\-comp (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-interintra-comp (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی ترکیب درون-بین فریمی. مقدار پیش‌فرض true است. .IP "\fBenable\-smooth\-interintra (\fR\fIboolean\fR\fB) (Requires libaom >= v2.0.0)\fR" 4 .IX Item "enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)" فعال‌سازی حالت درون-بین فریمی هموار. مقدار پیش‌فرض true است. .IP \fBaom\-params\fR 4 .IX Item "aom-params" تنظیم گزینه‌های libaom با استفاده از فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR جداشده با ":". برای مشاهده فهرستی از گزینه‌های پشتیبانی‌شده، به بخش "AV1 Specific Options" در دستور \fBaomenc \-\-help\fR مراجعه کنید. .Sp برای مثال جهت تعیین گزینه‌های انکود libaom با \fB\-aom\-params\fR: .Sp .Vb 1 \& ffmpeg \-i input \-c:v libaom\-av1 \-b:v 500K \-aom\-params tune=psnr:enable\-tpl\-model=1 output.mp4 .Ve .SS liboapv .IX Subsection "liboapv" پوشش‌دهنده انکودر کدک ویدیویی پیشرفته حرفه‌ای (Advanced Professional Video). .PP این انکودر نیازمند حضور سرآیندها و کتابخانه liboapv در زمان پیکربندی است. باید ساخت را صراحتاً با \&\fB\-\-enable\-liboapv\fR پیکربندی کنید. .Sp .RS 4 بسیاری از گزینه‌های انکودر liboapv به گزینه‌های سراسری کدک در FFmpeg نگاشت شده‌اند، در حالی که گزینه‌های منحصربه‌فرد انکودر از طریق گزینه‌های اختصاصی ارائه می‌شوند. .RE .PP وب‌سایت پروژه apv در <\fBhttps://github.com/AcademySoftwareFoundation/openapv\fR> قرار دارد. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش‌دهنده liboapv پشتیبانی می‌شوند. .Sp .RS 4 برای دسترسی به مستندات جامع‌تر گزینه‌های liboapv، به مستندات liboapv مراجعه کنید. .RE .IP \fBpreset\fR 4 .IX Item "preset" تنظیم موازنه میان کیفیت و سرعت [fastest, fast, medium, slow, placebo, default] .IP \fBqp\fR 4 .IX Item "qp" تنظیم مقدار پارامتر کوانتیزاسیون برای حالت کنترل نرخ CQP. .IP "\fBoapv\-params (\fR\fIparse_apv_params\fR\fB)\fR" 4 .IX Item "oapv-params (parse_apv_params)" تنظیم گزینه‌های liboapvenc با استفاده از فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR که با «:» از هم جدا شده‌اند. برای مشاهده فهرست پارامترهای پذیرفته‌شده، به راهنمای کاربری انکودر liboapv مراجعه کنید. .SS libsvtav1 .IX Subsection "libsvtav1" پوشش‌دهنده انکودر SVT\-AV1. .PP نیازمند حضور سرآیندها و کتابخانه SVT\-AV1 در زمان پیکربندی است. باید ساخت را صراحتاً با \f(CW\*(C`\-\-enable\-libsvtav1\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBprofile\fR 4 .IX Item "profile" تنظیم پروفایل انکود. .RS 4 .IP \fBmain\fR 4 .IX Item "main" .PD 0 .IP \fBhigh\fR 4 .IX Item "high" .IP \fBprofessional\fR 4 .IX Item "professional" .PD .RE .RS 4 .RE .IP \fBlevel\fR 4 .IX Item "level" تنظیم سطح نقطه عملکرد (operating point level). برای نمونه: \*(Aq4.0\*(Aq .IP \fBhielevel\fR 4 .IX Item "hielevel" تنظیم سطوح پیش‌بینی سلسله‌مراتبی. .RS 4 .IP \fB3level\fR 4 .IX Item "3level" .PD 0 .IP \fB4level\fR 4 .IX Item "4level" .PD این مقدار پیش‌فرض است. .RE .RS 4 .RE .IP \fBtier\fR 4 .IX Item "tier" تنظیم رده نقطه عملکرد (operating point tier). .RS 4 .IP \fBmain\fR 4 .IX Item "main" این مقدار پیش‌فرض است. .IP \fBhigh\fR 4 .IX Item "high" .RE .RS 4 .RE .IP \fBqmax\fR 4 .IX Item "qmax" تنظیم حداکثر کوانتیایزر مورد استفاده هنگام استفاده از یک حالت نرخ بیت. .IP \fBqmin\fR 4 .IX Item "qmin" تنظیم حداقل کوانتیایزر مورد استفاده هنگام استفاده از یک حالت نرخ بیت. .IP \fBcrf\fR 4 .IX Item "crf" مقدار فاکتور نرخ ثابت مورد استفاده در حالت کنترل نرخ crf (از 0 تا 63). .IP \fBqp\fR 4 .IX Item "qp" تنظیم کوانتیایزر مورد استفاده در حالت کنترل نرخ cqp (از 0 تا 63). .IP \fBsc_detection\fR 4 .IX Item "sc_detection" فعال‌سازی تشخیص تغییر صحنه. .IP \fBla_depth\fR 4 .IX Item "la_depth" تنظیم تعداد فریم‌ها برای نگاه به جلو (0\-120). .IP \fBpreset\fR 4 .IX Item "preset" تنظیم موازنه میان کیفیت و سرعت در بازه 0 تا 13. مقادیر بالاتر سریع‌تر اما با کیفیت پایین‌تر هستند. .IP \fBtile_rows\fR 4 .IX Item "tile_rows" تنظیم log2 تعداد سطرهای کاشی‌ها برای استفاده (0\-6). .IP \fBtile_columns\fR 4 .IX Item "tile_columns" تنظیم log2 تعداد ستون‌های کاشی‌ها برای استفاده (0\-4). .IP \fBsvtav1\-params\fR 4 .IX Item "svtav1-params" تنظیم گزینه‌های SVT\-AV1 با استفاده از فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR که با «:» از هم جدا شده‌اند. برای مشاهده فهرست پارامترهای پذیرفته‌شده، به راهنمای کاربری انکودر SVT\-AV1 مراجعه کنید. .SS libsvtjpegxs .IX Subsection "libsvtjpegxs" پوشش‌دهنده انکودر SVT\-JPEG\-XS. .PP نیازمند حضور سرآیندها و کتابخانه SVT\-JPEG\-XS در زمان پیکربندی است. باید ساخت را صراحتاً با \f(CW\*(C`\-\-enable\-libsvtjpegxs\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBdecomp_v\fR 4 .IX Item "decomp_v" تنظیم سطح تجزیه عمودی .IP \fBdecomp_h\fR 4 .IX Item "decomp_h" تنظیم سطح تجزیه افقی .IP \fBquantization\fR 4 .IX Item "quantization" تنظیم الگوریتم کوانتیزاسیون. .RS 4 .IP \fBdeadzone\fR 4 .IX Item "deadzone" .PD 0 .IP \fBuniform\fR 4 .IX Item "uniform" .PD .RE .RS 4 .RE .IP \fBcoding\-signs\fR 4 .IX Item "coding-signs" فعال‌سازی راهبرد مدیریت نشانه‌ها .RS 4 .IP \fBdisable\fR 4 .IX Item "disable" .PD 0 .IP \fBfast\fR 4 .IX Item "fast" .IP \fBfull\fR 4 .IX Item "full" .PD .RE .RS 4 .RE .IP \fBcoding\-sigf\fR 4 .IX Item "coding-sigf" فعال‌سازی کدگذاری اهمیت .IP \fBcoding\-vpred\fR 4 .IX Item "coding-vpred" فعال‌سازی کدگذاری پیش‌بینی عمودی .RS 4 .IP \fBdisable\fR 4 .IX Item "disable" .PD 0 .IP \fBno_residuals\fR 4 .IX Item "no_residuals" .IP \fBno_coeffs\fR 4 .IX Item "no_coeffs" .PD .RE .RS 4 .RE .SS libjxl .IX Subsection "libjxl" پوشش‌دهنده انکودر JPEG XL کتابخانه libjxl. .PP نیازمند حضور سرآیندها و کتابخانه libjxl در زمان پیکربندی است. باید ساخت را صراحتاً با \&\f(CW\*(C`\-\-enable\-libjxl\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP پوشش‌دهنده libjxl از گزینه‌های زیر پشتیبانی می‌کند: .IP \fBdistance\fR 4 .IX Item "distance" تنظیم فاصله هدف Butteraugli. این یک تنظیم کیفیت است: فاصله کمتر کیفیت بالاتری ارائه می‌دهد، به‌طوری که distance=1.0 تقریباً با کیفیت ۹۰ در libjpeg برای محتوای عکاسی قابل مقایسه است. تنظیم distance=0.0 انکود کاملاً بدون‌اتلاف را ارائه می‌دهد. مقادیر معتبر بین 0.0 و 15.0 هستند و مقادیر معقول به‌ندرت از 5.0 فراتر می‌روند. تنظیم distance=0.1 معمولاً برای بیشتر ورودی‌ها شفافیت بصری فراهم می‌کند. مقدار پیش‌فرض 1.0 است. .IP \fBeffort\fR 4 .IX Item "effort" تنظیم میزان تلاش (effort) انکود مورد استفاده. مقادیر بالاتر تلاش کیفیت یکدست‌تری تولید کرده و معمولاً منحنی کیفیت بر بیت در هر پیکسل (quality/bpp) بهتری را به بهای زمان بیشتر پردازنده فراهم می‌سازند. مقادیر معتبر از 1 تا 9 بوده و مقدار پیش‌فرض 7 است. .IP \fBmodular\fR 4 .IX Item "modular" اجبار انکودر به استفاده از حالت چندبخشی (Modular) به‌جای انتخاب خودکار. حالت پیش‌فرض استفاده از VarDCT برای انکود بااتلاف و Modular برای بدون‌اتلاف است. VarDCT عموماً برای انکود بااتلاف نسبت به Modular برتری دارد اما از انکود بدون‌اتلاف پشتیبانی نمی‌کند. .SS libkvazaar .IX Subsection "libkvazaar" انکودر Kvazaar H.265/HEVC. .PP نیازمند حضور سرآیندها و کتابخانه libkvazaar در زمان پیکربندی است. باید ساخت را صراحتاً با \&\fB\-\-enable\-libkvazaar\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت ویدیوی هدف به بیت بر ثانیه و فعال‌سازی کنترل نرخ. .IP \fBkvazaar\-params\fR 4 .IX Item "kvazaar-params" تنظیم پارامترهای kvazaar به‌صورت فهرستی از جفت‌های \fIname\fR=\fIvalue\fR که با ویرگول (,) از هم جدا شده‌اند. برای مشاهده فهرست گزینه‌ها، به مستندات kvazaar مراجعه کنید. .SS libopenh264 .IX Subsection "libopenh264" پوشش‌دهنده انکودر Cisco libopenh264 H.264/MPEG\-4 AVC. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libopenh264 در زمان پیکربندی است. باید ساخت را صراحتاً با \f(CW\*(C`\-\-enable\-libopenh264\*(C'\fR پیکربندی کنید. کتابخانه با استفاده از \&\fBpkg\-config\fR شناسایی می‌شود. .PP برای اطلاعات بیشتر درباره کتابخانه به <\fBhttp://www.openh264.org\fR> مراجعه کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های سراسری FFmpeg زیر بر پیکربندی‌های انکودر libopenh264 تأثیر می‌گذارند. .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت (به‌صورت تعداد بیت بر ثانیه). .IP \fBg\fR 4 .IX Item "g" تنظیم اندازه GOP. .IP \fBmaxrate\fR 4 .IX Item "maxrate" تنظیم حداکثر نرخ بیت (به‌صورت تعداد بیت بر ثانیه). .IP "\fBflags +global_header\fR" 4 .IX Item "flags +global_header" تنظیم سرایند سراسری در جریان بیتی. .IP \fBslices\fR 4 .IX Item "slices" تنظیم تعداد برش‌ها (slices)، مورد استفاده در انکود موازی‌سازی‌شده. مقدار پیش‌فرض 0 است. این گزینه تنها زمانی استفاده می‌شود که \fBslice_mode\fR روی \&\fBfixed\fR تنظیم شده باشد. .IP \fBloopfilter\fR 4 .IX Item "loopfilter" فعال‌سازی فیلتر حلقه (loop filter)، در صورت تنظیم روی 1 (به‌طور خودکار فعال است). برای غیرفعال‌سازی مقدار را روی 0 تنظیم کنید. .IP \fBprofile\fR 4 .IX Item "profile" تنظیم محدودیت‌های پروفایل. در صورت تنظیم روی مقدار \fBmain\fR، حالت CABAC فعال می‌شود (تنظیم فلگ \f(CW\*(C`SEncParamExt.iEntropyCodingModeFlag\*(C'\fR روی 1). .IP \fBmax_nal_size\fR 4 .IX Item "max_nal_size" تنظیم حداکثر اندازه NAL به بایت. .IP \fBallow_skip_frames\fR 4 .IX Item "allow_skip_frames" اجازه پرش از فریم‌ها برای رسیدن به نرخ بیت هدف در صورت تنظیم روی 1. .SS libtheora .IX Subsection "libtheora" پوشش‌دهنده انکودر libtheora Theora. .PP نیازمند حضور سرآیندها و کتابخانه libtheora در زمان پیکربندی است. باید ساخت را صراحتاً با \&\f(CW\*(C`\-\-enable\-libtheora\*(C'\fR پیکربندی کنید. .PP برای اطلاعات بیشتر درباره پروژه libtheora به <\fBhttp://www.theora.org\fR> مراجعه کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های سراسری زیر به گزینه‌های داخلی libtheora نگاشت می‌شوند که بر کیفیت و نرخ بیت استریم انکودشده تأثیر می‌گذارند. .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت ویدیو به بیت بر ثانیه برای حالت CBR (نرخ بیت ثابت). در صورتی که حالت VBR (نرخ بیت متغیر) فعال باشد این گزینه نادیده گرفته می‌شود. .IP \fBflags\fR 4 .IX Item "flags" برای فعال‌سازی انکود با حالت کیفیت ثابت (VBR) از طریق فلگ \&\fBqscale\fR، و همچنین فعال‌سازی حالت‌های \f(CW\*(C`pass1\*(C'\fR و \f(CW\*(C`pass2\*(C'\fR استفاده می‌شود. .IP \fBg\fR 4 .IX Item "g" تنظیم اندازه GOP. .IP \fBglobal_quality\fR 4 .IX Item "global_quality" تنظیم کیفیت سراسری به‌صورت یک عدد صحیح در واحدهای لاندا (lambda units). .Sp تنها زمانی مرتبط است که حالت VBR با \f(CW\*(C`flags +qscale\*(C'\fR فعال شده باشد. این مقدار با تقسیم بر \f(CW\*(C`FF_QP2LAMBDA\*(C'\fR به واحدهای QP تبدیل شده، در بازه [0 \- 10] محدود می‌شود، و سپس در 6.3 ضرب می‌گردد تا مقداری در بازه بومی libtheora یعنی [0\-63] به دست آید. مقدار بالاتر با کیفیت بالاتری متناظر است. .IP \fBq\fR 4 .IX Item "q" فعال‌سازی حالت VBR در صورت تنظیم روی یک مقدار غیرمنفی، و تنظیم مقدار کیفیت ثابت به‌صورت یک مقدار ممیز شناور با دقت مضاعف در واحدهای QP. .Sp این مقدار در بازه [0\-10] محدود شده و سپس در 6.3 ضرب می‌شود تا مقداری در بازه بومی libtheora یعنی [0\-63] به دست آید. .Sp این گزینه تنها هنگام استفاده از ابزار خط فرمان \fBffmpeg\fR معتبر است. برای کاربران رابط برنامه‌نویسی کتابخانه، از \fBglobal_quality\fR استفاده کنید. .PP \fIنمونه‌ها (Examples)\fR .IX Subsection "Examples" .IP \(bu 4 تنظیم انکود با حداکثر کیفیت ثابت (VBR) با \fBffmpeg\fR: .Sp .Vb 1 \& ffmpeg \-i INPUT \-codec:v libtheora \-q:v 10 OUTPUT.ogg .Ve .IP \(bu 4 استفاده از \fBffmpeg\fR برای تبدیل یک استریم ویدیویی Theora با CBR 1000 kbps: .Sp .Vb 1 \& ffmpeg \-i INPUT \-codec:v libtheora \-b:v 1000k OUTPUT.ogg .Ve .SS libvpx .IX Subsection "libvpx" پشتیبانی از فرمت‌های VP8/VP9 از طریق libvpx. .PP نیازمند حضور سرآیندها و کتابخانه libvpx در زمان پیکربندی است. باید ساخت را صراحتاً با \f(CW\*(C`\-\-enable\-libvpx\*(C'\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش‌دهنده libvpx پشتیبانی می‌شوند. گزینه‌ها یا مقادیر معادل در \&\fBvpxenc\fR درون پرانتز برای مهاجرت آسان‌تر فهرست شده‌اند. .PP برای کاهش تکرار در مستندات، تنها گزینه‌های اختصاصی و برخی گزینه‌های دیگر که نیازمند توجه ویژه هستند در اینجا مستند شده‌اند. برای مشاهده مستندات گزینه‌های عمومی مستندنشده، به \&\fBفصل گزینه‌های کدک (Codec Options)\fR مراجعه کنید. .PP برای دریافت مستندات بیشتر درباره گزینه‌های libvpx، دستور \&\fBffmpeg \-h encoder=libvpx\fR، \fBffmpeg \-h encoder=libvpx\-vp9\fR یا \&\fBvpxenc \-\-help\fR را اجرا کنید. اطلاعات بیشتر در مستندات رابط برنامه‌نویسی (API) کتابخانه libvpx در دسترس است. .IP "\fBb (\fR\fItarget\-bitrate\fR\fB)\fR" 4 .IX Item "b (target-bitrate)" تنظیم نرخ بیت به بیت بر ثانیه. توجه داشته باشید که گزینه \fBb\fR در FFmpeg بر حسب بیت بر ثانیه بیان می‌شود، در حالی که \fBtarget\-bitrate\fR در \fBvpxenc\fR بر حسب کیلوبیت بر ثانیه است. .IP "\fBg (\fR\fIkf\-max\-dist\fR\fB)\fR" 4 .IX Item "g (kf-max-dist)" .PD 0 .IP "\fBkeyint_min (\fR\fIkf\-min\-dist\fR\fB)\fR" 4 .IX Item "keyint_min (kf-min-dist)" .IP "\fBqmin (\fR\fImin\-q\fR\fB)\fR" 4 .IX Item "qmin (min-q)" .PD حداقل کوانتیایزر (بهترین کیفیت). .IP "\fBqmax (\fR\fImax\-q\fR\fB)\fR" 4 .IX Item "qmax (max-q)" حداکثر کوانتیایزر (بدترین کیفیت). می‌تواند به‌ازای هر فریم تغییر کند. .IP "\fBbufsize (\fR\fIbuf\-sz\fR\fB,\fR \fIbuf\-optimal\-sz\fR\fB)\fR" 4 .IX Item "bufsize (buf-sz, buf-optimal-sz)" تنظیم اندازه بافر کنترل نرخ (به بیت). توجه داشته باشید که گزینه‌های \fBvpxenc\fR بر حسب میلی‌ثانیه مشخص می‌شوند؛ پوشش‌دهنده libvpx این مقدار را به این صورت تبدیل می‌کند: \&\f(CW\*(C`buf\-sz = bufsize * 1000 / bitrate\*(C'\fR، \&\f(CW\*(C`buf\-optimal\-sz = bufsize * 1000 / bitrate * 5 / 6\*(C'\fR. .IP "\fBrc_init_occupancy (\fR\fIbuf\-initial\-sz\fR\fB)\fR" 4 .IX Item "rc_init_occupancy (buf-initial-sz)" تنظیم تعداد بیت‌هایی که باید پیش از آغاز دیکود در بافر rc بارگذاری شوند. توجه داشته باشید که گزینه \&\fBvpxenc\fR بر حسب میلی‌ثانیه مشخص می‌شود؛ پوشش‌دهنده libvpx این مقدار را به این صورت تبدیل می‌کند: \&\f(CW\*(C`rc_init_occupancy * 1000 / bitrate\*(C'\fR. .IP \fBundershoot\-pct\fR 4 .IX Item "undershoot-pct" تنظیم درصد حداقل کاهش نرخ داده (undershoot) نسبت به نرخ بیت هدف. .IP \fBovershoot\-pct\fR 4 .IX Item "overshoot-pct" تنظیم درصد حداکثر افزایش نرخ داده (overshoot) نسبت به نرخ بیت هدف. .IP "\fBskip_threshold (\fR\fIdrop\-frame\fR\fB)\fR" 4 .IX Item "skip_threshold (drop-frame)" .PD 0 .IP "\fBqcomp (\fR\fIbias\-pct\fR\fB)\fR" 4 .IX Item "qcomp (bias-pct)" .IP "\fBmaxrate (\fR\fImaxsection\-pct\fR\fB)\fR" 4 .IX Item "maxrate (maxsection-pct)" .PD تنظیم حداکثر نرخ بیت GOP به بیت بر ثانیه. توجه داشته باشید که گزینه \fBvpxenc\fR به‌صورت درصدی از نرخ بیت هدف مشخص می‌شود؛ پوشش‌دهنده libvpx این مقدار را به این صورت تبدیل می‌کند: \f(CW\*(C`(maxrate * 100 / bitrate)\*(C'\fR. .IP "\fBminrate (\fR\fIminsection\-pct\fR\fB)\fR" 4 .IX Item "minrate (minsection-pct)" تنظیم حداقل نرخ بیت GOP به بیت بر ثانیه. توجه داشته باشید که گزینه \fBvpxenc\fR به‌صورت درصدی از نرخ بیت هدف مشخص می‌شود؛ پوشش‌دهنده libvpx این مقدار را به این صورت تبدیل می‌کند: \f(CW\*(C`(minrate * 100 / bitrate)\*(C'\fR. .IP "\fBminrate, maxrate, b\fR \fIend\-usage=cbr\fR" 4 .IX Item "minrate, maxrate, b end-usage=cbr" \&\f(CW\*(C`(minrate == maxrate == bitrate)\*(C'\fR. .IP "\fBcrf (\fR\fIend\-usage=cq\fR\fB,\fR \fIcq\-level\fR\fB)\fR" 4 .IX Item "crf (end-usage=cq, cq-level)" .PD 0 .IP "\fBtune (\fR\fItune\fR\fB)\fR" 4 .IX Item "tune (tune)" .RS 4 .IP "\fBpsnr (\fR\fIpsnr\fR\fB)\fR" 4 .IX Item "psnr (psnr)" .IP "\fBssim (\fR\fIssim\fR\fB)\fR" 4 .IX Item "ssim (ssim)" .PD .RE .RS 4 .RE .IP "\fBquality, deadline (\fR\fIdeadline\fR\fB)\fR" 4 .IX Item "quality, deadline (deadline)" .RS 4 .PD 0 .IP \fBbest\fR 4 .IX Item "best" .PD استفاده از ضرب‌الاجل بهترین کیفیت. نام‌گذاری نامناسبی دارد و بسیار کند است؛ از این گزینه باید اجتناب شود زیرا ممکن است خروجی با کیفیتی بدتر از good ارائه دهد. .IP \fBgood\fR 4 .IX Item "good" استفاده از ضرب‌الاجل کیفیت خوب. این موازنه مناسبی میان سرعت و کیفیت هنگام استفاده همراه با گزینه \fBcpu\-used\fR است. .IP \fBrealtime\fR 4 .IX Item "realtime" استفاده از ضرب‌الاجل کیفیت بلادرنگ (realtime). .RE .RS 4 .RE .IP "\fBspeed, cpu\-used (\fR\fIcpu\-used\fR\fB)\fR" 4 .IX Item "speed, cpu-used (cpu-used)" تنظیم اصلاح‌کننده نسبت کیفیت/سرعت. مقادیر بالاتر انکود را به بهای کیفیت تسریع می‌کنند. .IP "\fBnr (\fR\fInoise\-sensitivity\fR\fB)\fR" 4 .IX Item "nr (noise-sensitivity)" .PD 0 .IP \fBstatic\-thresh\fR 4 .IX Item "static-thresh" .PD تنظیم آستانه تغییرات در بلوک‌ها که کمتر از آن توسط انکودر نادیده گرفته (skip) می‌شوند. .IP "\fBslices (\fR\fItoken\-parts\fR\fB)\fR" 4 .IX Item "slices (token-parts)" توجه داشته باشید که گزینه \fBslices\fR در FFmpeg تعداد کل پارتیشن‌ها را مشخص می‌کند، در حالی که \fBtoken\-parts\fR در \fBvpxenc\fR به‌صورت \&\f(CWlog2(partitions)\fR ارائه می‌شود. .IP \fBmax\-intra\-rate\fR 4 .IX Item "max-intra-rate" تنظیم حداکثر نرخ بیت فریم I به‌صورت درصدی از نرخ بیت هدف. مقدار 0 به معنای نامحدود است. .IP \fBforce_key_frames\fR 4 .IX Item "force_key_frames" \&\f(CW\*(C`VPX_EFLAG_FORCE_KF\*(C'\fR .IP "\fBAlternate reference frame related\fR" 4 .IX Item "Alternate reference frame related" .RS 4 .PD 0 .IP \fBauto\-alt\-ref\fR 4 .IX Item "auto-alt-ref" .PD فعال‌سازی استفاده از فریم‌های مرجع جایگزین (تنها در دو مرحله‌ای 2\-pass). مقادیر بزرگ‌تر از ۱ فریم‌های مرجع جایگزین چندلایه‌ای را فعال می‌کنند (فقط VP9). .IP \fBarnr\-maxframes\fR 4 .IX Item "arnr-maxframes" تنظیم حداکثر تعداد فریم‌های کاهش نویز altref. .IP \fBarnr\-type\fR 4 .IX Item "arnr-type" تنظیم نوع فیلتر کاهش نویز altref: backward، forward، centered. .IP \fBarnr\-strength\fR 4 .IX Item "arnr-strength" تنظیم شدت فیلتر کاهش نویز altref. .IP "\fBrc\-lookahead, lag\-in\-frames (\fR\fIlag\-in\-frames\fR\fB)\fR" 4 .IX Item "rc-lookahead, lag-in-frames (lag-in-frames)" تنظیم تعداد فریم‌ها برای نگاه به جلو جهت تعیین نوع فریم و کنترل نرخ. .IP \fBmin\-gf\-interval\fR 4 .IX Item "min-gf-interval" تنظیم حداقل فاصله فریم مرجع طلایی/جایگزین (فقط VP9). .RE .RS 4 .RE .IP \fBerror\-resilient\fR 4 .IX Item "error-resilient" فعال‌سازی ویژگی‌های پایداری در برابر خطا (error resiliency). .IP "\fBsharpness\fR \fIinteger\fR" 4 .IX Item "sharpness integer" افزایش وضوح و تیزی تصویر (sharpness) به بهای کاهش PSNR. بازه معتبر [0, 7] است. .IP \fBts\-parameters\fR 4 .IX Item "ts-parameters" تنظیم پیکربندی مقیاس‌پذیری زمانی با استفاده از فهرستی از جفت‌های key=value جداشده با «:». برای نمونه، جهت تعیین پارامترهای مقیاس‌پذیری زمانی با \f(CW\*(C`ffmpeg\*(C'\fR: .Sp .Vb 3 \& ffmpeg \-i INPUT \-c:v libvpx \-ts\-parameters ts_number_layers=3:\e \& ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\e \& ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT .Ve .Sp در زیر توضیح مختصری از هر یک از پارامترها آمده است؛ لطفاً برای جزئیات بیشتر به \&\f(CW\*(C`struct vpx_codec_enc_cfg\*(C'\fR در \f(CW\*(C`vpx/vpx_encoder.h\*(C'\fR مراجعه کنید. .RS 4 .IP \fBts_number_layers\fR 4 .IX Item "ts_number_layers" تعداد لایه‌های کدگذاری زمانی. .IP \fBts_target_bitrate\fR 4 .IX Item "ts_target_bitrate" نرخ بیت هدف برای هر لایه زمانی (به کیلوبیت بر ثانیه). (نرخ بیت باید شامل لایه زمانی پایین‌تر نیز باشد). .IP \fBts_rate_decimator\fR 4 .IX Item "ts_rate_decimator" ضریب کاهش نرخ فریم برای هر لایه زمانی. .IP \fBts_periodicity\fR 4 .IX Item "ts_periodicity" طول توالی تعیین‌کننده عضویت لایه زمانی فریم‌ها. .IP \fBts_layer_id\fR 4 .IX Item "ts_layer_id" الگوی مشخص‌کننده عضویت فریم‌ها در لایه‌های زمانی. .IP \fBts_layering_mode\fR 4 .IX Item "ts_layering_mode" (اختیاری) انتخاب ساختار زمانی از میان مجموعه‌ای از حالت‌های لایه‌بندی زمانی از پیش تعریف‌شده. در حال حاضر از گزینه‌های زیر پشتیبانی می‌کند. .RS 4 .IP \fB0\fR 4 .IX Item "0" هیچ فلگ لایه‌بندی زمانی به‌طور داخلی ارائه نمی‌شود، متکی بر فلگ‌هایی است که با استفاده از فیلد \f(CW\*(C`metadata\*(C'\fR در \f(CW\*(C`AVFrame\*(C'\fR با کلیدهای زیر منتقل می‌شوند. .RS 4 .IP \fBvp8\-flags\fR 4 .IX Item "vp8-flags" تنظیم فلگ‌های ارسالی به انکودر برای نشان دادن طرح ارجاع‌دهی برای فریم فعلی. برای جزئیات بیشتر به تابع \f(CW\*(C`vpx_codec_encode\*(C'\fR در \f(CW\*(C`vpx/vpx_encoder.h\*(C'\fR مراجعه کنید. .IP \fBtemporal_id\fR 4 .IX Item "temporal_id" شناسه زمانی فریم فعلی برای انکود را به‌صراحت مشخص می‌کند. .RE .RS 4 .RE .IP \fB2\fR 4 .IX Item "2" دو لایه زمانی. 0\-1... .IP \fB3\fR 4 .IX Item "3" سه لایه زمانی. 0\-2\-1\-2...؛ با یک فریم مرجع منفرد. .IP \fB4\fR 4 .IX Item "4" مشابه گزینه "3"، به جز اینکه وابستگی میان دو فریم لایه زمانی ۲ در طول دوره زمانی وجود دارد. .RE .RS 4 .RE .RE .RS 4 .RE .IP "\fBVP8\-specific options\fR" 4 .IX Item "VP8-specific options" .RS 4 .PD 0 .IP \fBscreen\-content\-mode\fR 4 .IX Item "screen-content-mode" .PD حالت محتوای صفحه نمایش، یکی از: 0 (خاموش)، 1 (صفحه نمایش)، 2 (صفحه نمایش با کنترل نرخ تهاجمی‌تر). .RE .RS 4 .RE .IP "\fBVP9\-specific options\fR" 4 .IX Item "VP9-specific options" .RS 4 .PD 0 .IP \fBlossless\fR 4 .IX Item "lossless" .PD فعال‌سازی حالت بدون‌اتلاف. .IP \fBtile\-columns\fR 4 .IX Item "tile-columns" تنظیم تعداد ستون‌های کاشی برای استفاده. توجه داشته باشید که این مقدار به‌صورت \&\f(CWlog2(tile_columns)\fR ارائه می‌شود. برای نمونه، ۸ ستون کاشی با تنظیم گزینه \fBtile\-columns\fR روی ۳ درخواست می‌شود. .IP \fBtile\-rows\fR 4 .IX Item "tile-rows" تنظیم تعداد سطرهای کاشی برای استفاده. توجه داشته باشید که این مقدار به‌صورت \f(CWlog2(tile_rows)\fR ارائه می‌شود. برای نمونه، ۴ سطر کاشی با تنظیم گزینه \fBtile\-rows\fR روی ۲ درخواست می‌شود. .IP \fBframe\-parallel\fR 4 .IX Item "frame-parallel" فعال‌سازی قابلیت‌های دیکودپذیری موازی فریم. .IP \fBaq\-mode\fR 4 .IX Item "aq-mode" تنظیم حالت کوانتیزاسیون تطبیقی (0: خاموش (پیش‌فرض)، 1: واریانس، 2: پیچیدگی، 3: نوسازی چرخه‌ای cyclic refresh، 4: equator360). .IP "\fBcolorspace\fR \fIcolor\-space\fR" 4 .IX Item "colorspace color-space" تنظیم فضای رنگ ورودی. جریان بیتی VP9 از سیگنال‌دهی فضاهای رنگ زیر پشتیبانی می‌کند: .RS 4 .IP "\fBrgb \fR\f(BIsRGB\fR" 4 .IX Item "rgb sRGB" .PD 0 .IP "\fBbt709 \fR\f(BIbt709\fR" 4 .IX Item "bt709 bt709" .IP "\fBunspecified \fR\f(BIunknown\fR" 4 .IX Item "unspecified unknown" .IP "\fBbt470bg \fR\f(BIbt601\fR" 4 .IX Item "bt470bg bt601" .IP "\fBsmpte170m \fR\f(BIsmpte170\fR" 4 .IX Item "smpte170m smpte170" .IP "\fBsmpte240m \fR\f(BIsmpte240\fR" 4 .IX Item "smpte240m smpte240" .IP "\fBbt2020_ncl \fR\f(BIbt2020\fR" 4 .IX Item "bt2020_ncl bt2020" .PD .RE .RS 4 .RE .IP "\fBrow\-mt\fR \fIboolean\fR" 4 .IX Item "row-mt boolean" فعال‌سازی چندنخی مبتنی بر سطر. .IP \fBtune\-content\fR 4 .IX Item "tune-content" تنظیم نوع محتوا: پیش‌فرض (0)، صفحه نمایش (1)، فیلم (2). .IP \fBcorpus\-complexity\fR 4 .IX Item "corpus-complexity" حالت Corpus VBR گونه‌ای از VBR استاندارد است که در آن نقطه میانی توزیع پیچیدگی به‌جای محاسبه برای یک کلیپ یا چانک خاص، مستقیماً وارد می‌شود. .Sp بازه معتبر [0, 10000] است. مقدار 0 (پیش‌فرض) از VBR استاندارد استفاده می‌کند. .IP "\fBenable\-tpl\fR \fIboolean\fR" 4 .IX Item "enable-tpl boolean" فعال‌سازی مدل وابستگی زمانی. .IP \fBref\-frame\-config\fR 4 .IX Item "ref-frame-config" با استفاده از متادیتای به‌ازای هر فریم، اعضای ساختار \f(CW\*(C`vpx_svc_ref_frame_config_t\*(C'\fR در \f(CW\*(C`vpx/vp8cx.h\*(C'\fR را برای کنترل دقیق طرح‌های ارجاع‌دهی و مدیریت بافر فریم تنظیم کنید. از فهرستی از جفت‌های key=value جداشده با «:» استفاده کنید. برای نمونه، .Sp .Vb 2 \& av_dict_set(&av_frame\->metadata, "ref\-frame\-config", \e \& "rfc_update_buffer_slot=7:rfc_lst_fb_idx=0:rfc_gld_fb_idx=1:rfc_alt_fb_idx=2:rfc_reference_last=0:rfc_reference_golden=0:rfc_reference_alt_ref=0"); .Ve .RS 4 .IP \fBrfc_update_buffer_slot\fR 4 .IX Item "rfc_update_buffer_slot" شماره اسلات بافر را برای به‌روزرسانی مشخص می‌کند .IP \fBrfc_update_last\fR 4 .IX Item "rfc_update_last" مشخص می‌کند که آیا فریم LAST به‌روزرسانی شود یا خیر .IP \fBrfc_update_golden\fR 4 .IX Item "rfc_update_golden" مشخص می‌کند که آیا فریم GOLDEN به‌روزرسانی شود یا خیر .IP \fBrfc_update_alt_ref\fR 4 .IX Item "rfc_update_alt_ref" مشخص می‌کند که آیا فریم ALT_REF به‌روزرسانی شود یا خیر .IP \fBrfc_lst_fb_idx\fR 4 .IX Item "rfc_lst_fb_idx" شاخص بافر فریم LAST .IP \fBrfc_gld_fb_idx\fR 4 .IX Item "rfc_gld_fb_idx" شاخص بافر فریم GOLDEN .IP \fBrfc_alt_fb_idx\fR 4 .IX Item "rfc_alt_fb_idx" شاخص بافر فریم ALT_REF .IP \fBrfc_reference_last\fR 4 .IX Item "rfc_reference_last" مشخص می‌کند که آیا به فریم LAST ارجاع داده شود یا خیر .IP \fBrfc_reference_golden\fR 4 .IX Item "rfc_reference_golden" مشخص می‌کند که آیا به فریم GOLDEN ارجاع داده شود یا خیر .IP \fBrfc_reference_alt_ref\fR 4 .IX Item "rfc_reference_alt_ref" مشخص می‌کند که آیا به فریم ALT_REF ارجاع داده شود یا خیر .IP \fBrfc_reference_duration\fR 4 .IX Item "rfc_reference_duration" مدت زمان فریم را مشخص می‌کند .RE .RS 4 .RE .RE .RS 4 .RE .PP برای اطلاعات بیشتر درباره libvpx به این نشانی مراجعه کنید: <\fBhttp://www.webmproject.org\fR> .SS libvvenc .IX Subsection "libvvenc" پوشش‌دهنده انکودر VVenC H.266/VVC. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libvvenc در زمان پیکربندی است. باید ساخت را صراحتاً با \&\fB\-\-enable\-libvvenc\fR پیکربندی کنید. .PP وب‌سایت پروژه VVenC در <\fBhttps://github.com/fraunhoferhhi/vvenc\fR> قرار دارد. .PP \fIفرمت‌های پیکسل پشتیبانی‌شده (Supported Pixel Formats)\fR .IX Subsection "Supported Pixel Formats" .PP کتابخانه VVenC تنها از فضاهای رنگی ۱۰ بیتی به‌عنوان ورودی پشتیبانی می‌کند. اما عمق بیتی داخلی (انکودشده) می‌تواند در زمان اجرا روی ۸ بیتی یا ۱۰ بیتی تنظیم شود. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت ویدیوی هدف. .IP \fBg\fR 4 .IX Item "g" تنظیم اندازه GOP. در حال حاضر برای g=1 (فقط درون‌فریمی Intra only) یا مقدار پیش‌فرض پشتیبانی می‌شود. .IP \fBpreset\fR 4 .IX Item "preset" تنظیم پیش‌تنظیم VVenC. .IP \fBlevelidc\fR 4 .IX Item "levelidc" تنظیم level idc. .IP \fBtier\fR 4 .IX Item "tier" تنظیم tier برای vvc. .IP \fBqp\fR 4 .IX Item "qp" تنظیم پارامتر کوانتیزاسیون ثابت. .IP "\fBsubopt\fR \fIboolean\fR" 4 .IX Item "subopt boolean" تنظیم بهینه‌سازی ذهنی (مبتنی بر ادراک بصری). پیش‌فرض 1 (روشن) است. .IP "\fBbitdepth8\fR \fIboolean\fR" 4 .IX Item "bitdepth8 boolean" تنظیم حالت کدگذاری ۸ بیتی به‌جای استفاده از ۱۰ بیتی. پیش‌فرض 0 (خاموش) است. .IP \fBperiod\fR 4 .IX Item "period" تنظیم دوره نوسازی درون‌فریمی (intra refresh) بر حسب ثانیه. .IP \fBvvenc\-params\fR 4 .IX Item "vvenc-params" تنظیم گزینه‌های vvenc با استفاده از فهرستی از زوج‌های \fIkey\fR=\fIvalue\fR که با «:» از هم جدا شده‌اند. برای مشاهده فهرست گزینه‌ها، \fBvvencapp \-\-fullhelp\fR یا \fBvvencFFapp \-\-fullhelp\fR را ببینید. .Sp برای نمونه، گزینه‌ها می‌توانند به این صورت ارائه شوند: .Sp .Vb 1 \& intraperiod=64:decodingrefreshtype=idr:poc0idr=1:internalbitdepth=8 .Ve .Sp برای نمونه گزینه‌های انکود می‌توانند با \fB\-vvenc\-params\fR ارائه شوند: .Sp .Vb 1 \& ffmpeg \-i input \-c:v libvvenc \-b 1M \-vvenc\-params intraperiod=64:decodingrefreshtype=idr:poc0idr=1:internalbitdepth=8 output.mp4 .Ve .SS libwebp .IX Subsection "libwebp" پوشش‌دهنده انکودر تصویر libwebp WebP .PP کتابخانه libwebp انکودر رسمی گوگل برای تصاویر WebP است. این کتابخانه می‌تواند در هر دو حالت بااتلاف (lossy) یا بدون‌اتلاف (lossless) انکود کند. تصاویر بااتلاف در اصل پوششی در اطراف یک فریم VP8 هستند. تصاویر بدون‌اتلاف یک کدک جداگانه توسعه‌یافته توسط گوگل می‌باشند. .PP \fIفرمت پیکسل (Pixel Format)\fR .IX Subsection "Pixel Format" .PP در حال حاضر libwebp به دلیل محدودیت‌های فرمت و libwebp، تنها از YUV420 برای حالت بااتلاف و RGB برای حالت بدون‌اتلاف پشتیبانی می‌کند. کانال آلفا برای هر دو حالت پشتیبانی می‌شود. به دلیل محدودیت‌های API، اگر هنگام انکود بااتلاف فرمت RGB ارسال شود یا هنگام انکود بدون‌اتلاف فرمت YUV ارسال گردد، فرمت پیکسل به‌طور خودکار با استفاده از توابع libwebp تبدیل خواهد شد. این حالت ایده‌آل نیست و تنها برای راحتی کار انجام شده است. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fB\-lossless\fR \fIboolean\fR" 4 .IX Item "-lossless boolean" فعال/غیرفعال کردن استفاده از حالت بدون‌اتلاف. پیش‌فرض 0 است. .IP "\fB\-compression_level\fR \fIinteger\fR" 4 .IX Item "-compression_level integer" برای بااتلاف، این موازنه کیفیت/سرعت است. مقادیر بالاتر کیفیت بهتری را برای یک اندازه مشخص به قیمت افزایش زمان انکود ارائه می‌دهند. برای بدون‌اتلاف، این موازنه اندازه/سرعت است. مقادیر بالاتر اندازه کوچکتری را به قیمت افزایش زمان انکود ارائه می‌دهند. به‌طور خاص‌تر، تعداد الگوریتم‌های اضافی و ابزارهای فشرده‌سازی مورد استفاده را کنترل کرده و ترکیب این ابزارها را تغییر می‌دهد. این گزینه به گزینه \fImethod\fR در libwebp نگاشت می‌شود. بازه معتبر 0 تا 6 است. پیش‌فرض 4 است. .IP "\fB\-quality\fR \fIfloat\fR" 4 .IX Item "-quality float" برای انکود بااتلاف، این گزینه کیفیت تصویر را کنترل می‌کند. برای انکود بدون‌اتلاف، میزان تلاش و زمان صرف‌شده در فشرده‌سازی را کنترل می‌کند. بازه 0 تا 100 است. پیش‌فرض 75 است. .IP "\fB\-preset\fR \fItype\fR" 4 .IX Item "-preset type" پیش‌تنظیم پیکربندی. این گزینه برخی تنظیمات خودکار را بر اساس نوع کلی تصویر اعمال می‌کند. .RS 4 .IP \fBnone\fR 4 .IX Item "none" عدم استفاده از پیش‌تنظیم. .IP \fBdefault\fR 4 .IX Item "default" استفاده از مقدار پیش‌فرض انکودر. .IP \fBpicture\fR 4 .IX Item "picture" تصویر دیجیتال، مانند پرتره یا نمای داخلی .IP \fBphoto\fR 4 .IX Item "photo" عکاسی در فضای باز، با نورپردازی طبیعی .IP \fBdrawing\fR 4 .IX Item "drawing" طراحی دستی یا خطی، با جزئیات دارای کنتراست بالا .IP \fBicon\fR 4 .IX Item "icon" تصاویر رنگارنگ با ابعاد کوچک .IP \fBtext\fR 4 .IX Item "text" شبه‌متن .RE .RS 4 .RE .SS "libx264, libx264rgb" .IX Subsection "libx264, libx264rgb" پوشش‌دهنده انکودر x264 H.264/MPEG\-4 AVC. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libx264 در زمان پیکربندی است. باید ساخت را صراحتاً با \f(CW\*(C`\-\-enable\-libx264\*(C'\fR پیکربندی کنید. .PP کتابخانه libx264 از تعداد چشمگیری از ویژگی‌ها پشتیبانی می‌کند، از جمله تبدیل مکانی تطبیقی 8x8 و 4x4، جای‌گذاری تطبیقی فریم‌های B، کدگذاری آنتروپی CAVLC/CABAC، درهم‌بافی (MBAFF)، حالت بدون‌اتلاف، و بهینه‌سازی‌های روان‌شناسی بصری (psy) برای حفظ جزئیات (کوانتیزاسیون تطبیقی، psy\-RD، psy\-trellis). .PP بسیاری از گزینه‌های انکودر libx264 به گزینه‌های سراسری کدک در FFmpeg نگاشت شده‌اند، در حالی که گزینه‌های منحصربه‌فرد انکودر از طریق گزینه‌های اختصاصی ارائه می‌شوند. علاوه بر این، گزینه‌های اختصاصی \fBx264opts\fR و \fBx264\-params\fR امکان ارسال فهرستی از چندتایی‌های key=value پذیرفته‌شده توسط تابع \f(CW\*(C`x264_param_parse\*(C'\fR در libx264 را فراهم می‌کنند. .PP وب‌سایت پروژه x264 در <\fBhttp://www.videolan.org/developers/x264.html\fR> قرار دارد. .PP انکودر libx264rgb همانند libx264 است، با این تفاوت که به‌جای YUV، فرمت‌های پیکسلی RGB بسته‌بندی‌شده (packed) را به‌عنوان ورودی می‌پذیرد. .PP \fIفرمت‌های پیکسل پشتیبانی‌شده (Supported Pixel Formats)\fR .IX Subsection "Supported Pixel Formats" .PP کتابخانه x264 از فضاهای رنگی ۸ تا ۱۰ بیتی پشتیبانی می‌کند. عمق بیت دقیق در زمان پیکربندی x264 کنترل می‌شود. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش‌دهنده libx264 پشتیبانی می‌شوند. گزینه‌ها یا مقادیر معادل در \&\fBx264\fR درون پرانتز برای مهاجرت آسان‌تر فهرست شده‌اند. .PP برای کاهش تکرار در مستندات، تنها گزینه‌های اختصاصی و برخی گزینه‌های دیگر که نیازمند توجه ویژه هستند در اینجا مستند شده‌اند. برای مشاهده مستندات گزینه‌های عمومی مستندنشده، به \&\fBفصل گزینه‌های کدک (Codec Options)\fR مراجعه کنید. .PP برای دریافت مستندات دقیق‌تر و جامع‌تر درباره گزینه‌های libx264، دستور \&\fBx264 \-\-fullhelp\fR را اجرا کنید یا به مستندات libx264 مراجعه نمایید. .PP در فهرست زیر، توجه داشته باشید که نام گزینه در \fBx264\fR در صورت وجود نگاشت مستقیم، درون پرانتز پس از نام متناظر در libavcodec نشان داده شده است. .IP "\fBb (\fR\fIbitrate\fR\fB)\fR" 4 .IX Item "b (bitrate)" تنظیم نرخ بیت به بیت بر ثانیه. توجه داشته باشید که گزینه \fBb\fR در FFmpeg بر حسب بیت بر ثانیه بیان می‌شود، در حالی که \fBbitrate\fR در \fBx264\fR بر حسب کیلوبیت بر ثانیه است. .IP "\fBbf (\fR\fIbframes\fR\fB)\fR" 4 .IX Item "bf (bframes)" تعداد فریم‌های B میان فریم‌های I و P .IP "\fBg (\fR\fIkeyint\fR\fB)\fR" 4 .IX Item "g (keyint)" حداکثر اندازه GOP .IP "\fBqmin (\fR\fIqpmin\fR\fB)\fR" 4 .IX Item "qmin (qpmin)" حداقل مقیاس کوانتیایزر .IP "\fBqmax (\fR\fIqpmax\fR\fB)\fR" 4 .IX Item "qmax (qpmax)" حداکثر مقیاس کوانتیایزر .IP "\fBqdiff (\fR\fIqpstep\fR\fB)\fR" 4 .IX Item "qdiff (qpstep)" حداکثر تفاوت میان مقیاس‌های کوانتیایزر .IP "\fBqblur (\fR\fIqblur\fR\fB)\fR" 4 .IX Item "qblur (qblur)" تاری منحنی کوانتیایزر .IP "\fBqcomp (\fR\fIqcomp\fR\fB)\fR" 4 .IX Item "qcomp (qcomp)" ضریب فشرده‌سازی منحنی کوانتیایزر .IP "\fBrefs (\fR\fIref\fR\fB)\fR" 4 .IX Item "refs (ref)" تعداد فریم‌های مرجع که هر فریم P می‌تواند استفاده کند. بازه \fI0\-16\fR است. .IP "\fBlevel (\fR\fIlevel\fR\fB)\fR" 4 .IX Item "level (level)" تنظیم مقدار \f(CW\*(C`x264_param_t.i_level_idc\*(C'\fR در صورتی که مقدار مثبت باشد؛ در غیر این صورت نادیده گرفته می‌شود. .Sp این مقدار می‌تواند با استفاده از API ساختار \f(CW\*(C`AVCodecContext\*(C'\fR تنظیم شود (مثلاً با تنظیم مستقیم مقدار \f(CW\*(C`AVCodecContext\*(C'\fR)، و به‌صورت یک عدد صحیح نگاشت‌شده روی سطح متناظر مشخص می‌شود (مثلاً مقدار 31 به سطح IDC «3.1» در H.264 نگاشت می‌شود، همان‌طور که در جدول \&\f(CW\*(C`x264_levels\*(C'\fR تعریف شده است). در صورت تنظیم روی یک مقدار غیرمثبت نادیده گرفته می‌شود. .Sp به‌عنوان روش جایگزین، می‌تواند به‌عنوان یک گزینه اختصاصی تنظیم شود که مقدار تنظیم‌شده در \f(CW\*(C`AVCodecContext\*(C'\fR را بازنویسی می‌کند، و در این حالت باید به‌صورت شناسه سطح IDC (مانند «3.1»)، همان‌طور که در پیوست A استاندارد H.264 تعریف شده، مشخص شود. .IP "\fBsc_threshold (\fR\fIscenecut\fR\fB)\fR" 4 .IX Item "sc_threshold (scenecut)" تنظیم آستانه برای تشخیص تغییر صحنه. .IP "\fBtrellis (\fR\fItrellis\fR\fB)\fR" 4 .IX Item "trellis (trellis)" انجام کوانتیزاسیون Trellis برای افزایش بهره‌وری. به‌طور پیش‌فرض فعال است. .IP "\fBnr (\fR\fInr\fR\fB)\fR" 4 .IX Item "nr (nr)" کاهش نویز .IP "\fBme_range (\fR\fImerange\fR\fB)\fR" 4 .IX Item "me_range (merange)" حداکثر برد جستجوی حرکت به پیکسل. .IP "\fBme_method (\fR\fIme\fR\fB)\fR" 4 .IX Item "me_method (me)" تنظیم روش تخمین حرکت. مقادیر ممکن به ترتیب نزولی سرعت: .RS 4 .IP "\fBdia (\fR\fIdia\fR\fB)\fR" 4 .IX Item "dia (dia)" .PD 0 .IP "\fBepzs (\fR\fIdia\fR\fB)\fR" 4 .IX Item "epzs (dia)" .PD جستجوی لوزی با شعاع ۱ (سریع‌ترین). \fBepzs\fR یک نام مستعار برای \&\fBdia\fR است. .IP "\fBhex (\fR\fIhex\fR\fB)\fR" 4 .IX Item "hex (hex)" جستجوی شش‌ضلعی با شعاع ۲. .IP "\fBumh (\fR\fIumh\fR\fB)\fR" 4 .IX Item "umh (umh)" جستجوی نامتقارن چند‌شش‌ضلعی. .IP "\fBesa (\fR\fIesa\fR\fB)\fR" 4 .IX Item "esa (esa)" جستجوی جامع. .IP "\fBtesa (\fR\fItesa\fR\fB)\fR" 4 .IX Item "tesa (tesa)" جستجوی جامع هادامارد (کندترین). .RE .RS 4 .RE .IP \fBforced\-idr\fR 4 .IX Item "forced-idr" معمولاً هنگام اجبار نوع فریم I، انکودر می‌تواند هر نوع فریم I را انتخاب کند. این گزینه آن را مجبور به انتخاب یک فریم IDR می‌کند. .IP "\fBsubq (\fR\fIsubme\fR\fB)\fR" 4 .IX Item "subq (subme)" روش تخمین حرکت در سطح زیرپیکسل. .IP "\fBb_strategy (\fR\fIb\-adapt\fR\fB)\fR" 4 .IX Item "b_strategy (b-adapt)" الگوریتم تصمیم‌گیری جای‌گذاری تطبیقی فریم‌های B. تنها در مرحله اول (first\-pass) استفاده شود. .IP "\fBkeyint_min (\fR\fImin\-keyint\fR\fB)\fR" 4 .IX Item "keyint_min (min-keyint)" حداقل اندازه GOP. .IP \fBcoder\fR 4 .IX Item "coder" تنظیم انکودر آنتروپی. مقادیر ممکن: .RS 4 .IP \fBac\fR 4 .IX Item "ac" فعال‌سازی CABAC. .IP \fBvlc\fR 4 .IX Item "vlc" فعال‌سازی CAVLC و غیرفعال‌سازی CABAC. اثری مشابه با گزینه \&\fB\-\-no\-cabac\fR در \fBx264\fR ایجاد می‌کند. .RE .RS 4 .RE .IP \fBcmp\fR 4 .IX Item "cmp" تنظیم الگوریتم مقایسه تخمین حرکت در سطح پیکسل کامل. مقادیر ممکن: .RS 4 .IP \fBchroma\fR 4 .IX Item "chroma" فعال‌سازی کروما در تخمین حرکت. .IP \fBsad\fR 4 .IX Item "sad" نادیده گرفتن کروما در تخمین حرکت. اثری مشابه با گزینه \&\fB\-\-no\-chroma\-me\fR در \fBx264\fR ایجاد می‌کند. .RE .RS 4 .RE .IP "\fBthreads (\fR\fIthreads\fR\fB)\fR" 4 .IX Item "threads (threads)" تعداد نخ‌های انکود. .IP \fBthread_type\fR 4 .IX Item "thread_type" تنظیم روش چندنخی. مقادیر ممکن: .RS 4 .IP \fBslice\fR 4 .IX Item "slice" چندنخی مبتنی بر برش. اثری مشابه با گزینه \&\fB\-\-sliced\-threads\fR در \fBx264\fR تولید می‌کند. .IP \fBframe\fR 4 .IX Item "frame" چندنخی مبتنی بر فریم. .RE .RS 4 .RE .IP \fBflags\fR 4 .IX Item "flags" تنظیم فلگ‌های انکود. می‌تواند برای غیرفعال کردن GOP بسته و فعال‌سازی GOP باز با تنظیم آن روی \f(CW\*(C`\-cgop\*(C'\fR استفاده شود. نتیجه مشابه رفتار گزینه \fB\-\-open\-gop\fR در \fBx264\fR است. .IP "\fBrc_init_occupancy (\fR\fIvbv\-init\fR\fB)\fR" 4 .IX Item "rc_init_occupancy (vbv-init)" اشغال اولیه بافر VBV .IP "\fBpreset (\fR\fIpreset\fR\fB)\fR" 4 .IX Item "preset (preset)" تنظیم پیش‌تنظیم انکود. .IP "\fBtune (\fR\fItune\fR\fB)\fR" 4 .IX Item "tune (tune)" تنظیم کوک پارامترهای انکود. .IP "\fBprofile (\fR\fIprofile\fR\fB)\fR" 4 .IX Item "profile (profile)" تنظیم محدودیت‌های پروفایل. .IP \fBfastfirstpass\fR 4 .IX Item "fastfirstpass" فعال‌سازی تنظیمات سریع هنگام انکود مرحله اول، در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \fB\-\-slow\-firstpass\fR در \fBx264\fR دارد. .IP "\fBcrf (\fR\fIcrf\fR\fB)\fR" 4 .IX Item "crf (crf)" تنظیم کیفیت برای حالت کیفیت ثابت. .IP "\fBcrf_max (\fR\fIcrf\-max\fR\fB)\fR" 4 .IX Item "crf_max (crf-max)" در حالت CRF، از کاهش کیفیت توسط VBV فراتر از این نقطه جلوگیری می‌کند. .IP "\fBqp (\fR\fIqp\fR\fB)\fR" 4 .IX Item "qp (qp)" تنظیم پارامتر روش کنترل نرخ کوانتیزاسیون ثابت. .IP "\fBaq\-mode (\fR\fIaq\-mode\fR\fB)\fR" 4 .IX Item "aq-mode (aq-mode)" تنظیم روش AQ. مقادیر ممکن: .RS 4 .IP "\fBnone (\fR\fI0\fR\fB)\fR" 4 .IX Item "none (0)" غیرفعال. .IP "\fBvariance (\fR\fI1\fR\fB)\fR" 4 .IX Item "variance (1)" واریانس AQ (ماسک پیچیدگی). .IP "\fBautovariance (\fR\fI2\fR\fB)\fR" 4 .IX Item "autovariance (2)" واریانس خودکار AQ (آزمایشی). .RE .RS 4 .RE .IP "\fBaq\-strength (\fR\fIaq\-strength\fR\fB)\fR" 4 .IX Item "aq-strength (aq-strength)" تنظیم شدت AQ، کاهش بلوک‌بندی و تاری در نواحی صاف و دارای بافت. .IP \fBpsy\fR 4 .IX Item "psy" استفاده از بهینه‌سازی‌های روان‌شناسی بصری در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \fB\-\-no\-psy\fR در \fBx264\fR دارد. .IP "\fBpsy\-rd (\fR\fIpsy\-rd\fR\fB)\fR" 4 .IX Item "psy-rd (psy-rd)" تنظیم شدت بهینه‌سازی روان‌شناسی بصری، در قالب \&\fIpsy\-rd\fR:\fIpsy\-trellis\fR. .IP "\fBrc\-lookahead (\fR\fIrc\-lookahead\fR\fB)\fR" 4 .IX Item "rc-lookahead (rc-lookahead)" تنظیم تعداد فریم‌ها برای نگاه به جلو جهت تعیین نوع فریم و کنترل نرخ. .IP \fBweightb\fR 4 .IX Item "weightb" فعال‌سازی پیش‌بینی وزن‌دار برای فریم‌های B در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \fB\-\-no\-weightb\fR در \fBx264\fR دارد. .IP "\fBweightp (\fR\fIweightp\fR\fB)\fR" 4 .IX Item "weightp (weightp)" تنظیم روش پیش‌بینی وزن‌دار برای فریم‌های P. مقادیر ممکن: .RS 4 .IP "\fBnone (\fR\fI0\fR\fB)\fR" 4 .IX Item "none (0)" غیرفعال .IP "\fBsimple (\fR\fI1\fR\fB)\fR" 4 .IX Item "simple (1)" تنها فعال‌سازی مراجع وزن‌دار .IP "\fBsmart (\fR\fI2\fR\fB)\fR" 4 .IX Item "smart (2)" فعال‌سازی هم مراجع وزن‌دار و هم موارد تکراری .RE .RS 4 .RE .IP "\fBssim (\fR\fIssim\fR\fB)\fR" 4 .IX Item "ssim (ssim)" فعال‌سازی محاسبه و چاپ آمار SSIM پس از انکود. .IP "\fBintra\-refresh (\fR\fIintra\-refresh\fR\fB)\fR" 4 .IX Item "intra-refresh (intra-refresh)" فعال‌سازی استفاده از نوسازی دوره‌ای درون‌فریمی به‌جای فریم‌های IDR در صورت تنظیم روی 1. .IP "\fBavcintra\-class (\fR\fIclass\fR\fB)\fR" 4 .IX Item "avcintra-class (class)" پیکربندی انکودر برای تولید AVC\-Intra. مقادیر معتبر 50، 100 و 200 هستند. .IP "\fBbluray\-compat (\fR\fIbluray\-compat\fR\fB)\fR" 4 .IX Item "bluray-compat (bluray-compat)" پیکربندی انکودر جهت سازگاری با استاندارد دیسک بلوری. این گزینه یک میان‌بر برای تنظیم "bluray\-compat=1 force\-cfr=1" است. .IP "\fBb\-bias (\fR\fIb\-bias\fR\fB)\fR" 4 .IX Item "b-bias (b-bias)" تنظیم میزان اثرگذاری بر دفعات استفاده از فریم‌های B. .IP "\fBb\-pyramid (\fR\fIb\-pyramid\fR\fB)\fR" 4 .IX Item "b-pyramid (b-pyramid)" تنظیم روش نگهداری برخی فریم‌های B به‌عنوان مرجع. مقادیر ممکن: .RS 4 .IP "\fBnone (\fR\fInone\fR\fB)\fR" 4 .IX Item "none (none)" غیرفعال. .IP "\fBstrict (\fR\fIstrict\fR\fB)\fR" 4 .IX Item "strict (strict)" هرم کاملاً سلسله‌مراتبی. .IP "\fBnormal (\fR\fInormal\fR\fB)\fR" 4 .IX Item "normal (normal)" غیرسخت‌گیرانه (ناسازگار با بلوری). .RE .RS 4 .RE .IP \fBmixed\-refs\fR 4 .IX Item "mixed-refs" فعال‌سازی استفاده از یک مرجع به‌ازای هر پارتیشن، در مقایسه با یک مرجع به‌ازای هر مکروبلوک در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \fB\-\-no\-mixed\-refs\fR در \fBx264\fR دارد. .IP \fB8x8dct\fR 4 .IX Item "8x8dct" فعال‌سازی تبدیل مکانی تطبیقی (تبدیل 8x8 پروفایل بالا) در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \&\fBx264\fR\*(Aqs \fB\-\-no\-8x8dct\fR دارد. .IP \fBfast\-pskip\fR 4 .IX Item "fast-pskip" فعال‌سازی تشخیص زودهنگام SKIP در فریم‌های P در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \&\fBx264\fR\*(Aqs \fB\-\-no\-fast\-pskip\fR دارد. .IP "\fBaud (\fR\fIaud\fR\fB)\fR" 4 .IX Item "aud (aud)" فعال‌سازی استفاده از جداکننده‌های واحد دسترسی در صورت تنظیم روی 1. .IP \fBmbtree\fR 4 .IX Item "mbtree" فعال‌سازی استفاده از کنترل نرخ درخت مکروبلوک در صورت تنظیم روی 1. در صورت تنظیم روی 0، اثری مشابه با گزینه \&\fBx264\fR\*(Aqs \fB\-\-no\-mbtree\fR دارد. .IP "\fBdeblock (\fR\fIdeblock\fR\fB)\fR" 4 .IX Item "deblock (deblock)" تنظیم پارامترهای فیلتر حلقه، در قالب \fIalpha\fR:\fIbeta\fR. .IP "\fBcplxblur (\fR\fIcplxblur\fR\fB)\fR" 4 .IX Item "cplxblur (cplxblur)" تنظیم کاهش نوسانات در QP (پیش از فشرده‌سازی منحنی). .IP "\fBpartitions (\fR\fIpartitions\fR\fB)\fR" 4 .IX Item "partitions (partitions)" تنظیم پارتیشن‌های مورد بررسی به‌صورت فهرستی از مقادیر جداشده با ویرگول. مقادیر ممکن در فهرست: .RS 4 .IP \fBp8x8\fR 4 .IX Item "p8x8" پارتیشن 8x8 فریم P. .IP \fBp4x4\fR 4 .IX Item "p4x4" پارتیشن 4x4 فریم P. .IP \fBb8x8\fR 4 .IX Item "b8x8" پارتیشن 4x4 فریم B. .IP \fBi8x8\fR 4 .IX Item "i8x8" پارتیشن 8x8 فریم I. .IP \fBi4x4\fR 4 .IX Item "i4x4" پارتیشن 4x4 فریم I. (فعال‌سازی \fBp4x4\fR نیازمند فعال بودن \fBp8x8\fR است. فعال‌سازی \&\fBi8x8\fR نیازمند فعال بودن تبدیل مکانی تطبیقی (گزینه \fB8x8dct\fR) است.) .IP "\fBnone (\fR\fInone\fR\fB)\fR" 4 .IX Item "none (none)" هیچ پارتیشنی را در نظر نگیر. .IP "\fBall (\fR\fIall\fR\fB)\fR" 4 .IX Item "all (all)" تمام پارتیشن‌ها را در نظر بگیر. .RE .RS 4 .RE .IP "\fBdirect\-pred (\fR\fIdirect\fR\fB)\fR" 4 .IX Item "direct-pred (direct)" تنظیم حالت پیش‌بینی مستقیم بردار حرکت. مقادیر ممکن: .RS 4 .IP "\fBnone (\fR\fInone\fR\fB)\fR" 4 .IX Item "none (none)" غیرفعال کردن پیش‌بینی بردار حرکت. .IP "\fBspatial (\fR\fIspatial\fR\fB)\fR" 4 .IX Item "spatial (spatial)" فعال‌سازی پیش‌بینی مکانی. .IP "\fBtemporal (\fR\fItemporal\fR\fB)\fR" 4 .IX Item "temporal (temporal)" فعال‌سازی پیش‌بینی زمانی. .IP "\fBauto (\fR\fIauto\fR\fB)\fR" 4 .IX Item "auto (auto)" تصمیم‌گیری خودکار. .RE .RS 4 .RE .IP "\fBslice\-max\-size (\fR\fIslice\-max\-size\fR\fB)\fR" 4 .IX Item "slice-max-size (slice-max-size)" تنظیم سقف اندازه هر برش به بایت. اگر مشخص نشده باشد اما اندازه بار مفید RTP (\fBps\fR) مشخص باشد، از آن استفاده می‌شود. .IP "\fBstats (\fR\fIstats\fR\fB)\fR" 4 .IX Item "stats (stats)" تنظیم نام فایل برای آمار انکود چندمرحله‌ای. .IP "\fBnal\-hrd (\fR\fInal\-hrd\fR\fB)\fR" 4 .IX Item "nal-hrd (nal-hrd)" تنظیم سیگنال‌دهی اطلاعات HRD (نیازمند تنظیم بودن \fBvbv\-bufsize\fR است). مقادیر ممکن: .RS 4 .IP "\fBnone (\fR\fInone\fR\fB)\fR" 4 .IX Item "none (none)" غیرفعال‌سازی سیگنال‌دهی اطلاعات HRD. .IP "\fBvbr (\fR\fIvbr\fR\fB)\fR" 4 .IX Item "vbr (vbr)" نرخ بیت متغیر. .IP "\fBcbr (\fR\fIcbr\fR\fB)\fR" 4 .IX Item "cbr (cbr)" نرخ بیت ثابت (در کانتینر MP4 مجاز نیست). .RE .RS 4 .RE .IP "\fBx264opts\fR \fIopts\fR" 4 .IX Item "x264opts opts" .PD 0 .IP "\fBx264\-params\fR \fIopts\fR" 4 .IX Item "x264-params opts" .PD بازنویسی پیکربندی x264 با استفاده از فهرستی از گزینه‌های key=value جداشده با «:». .Sp آرگومان هر دو گزینه فهرستی از زوج‌های \fIkey\fR=\fIvalue\fR جداشده با «:» است. با \fBx264opts\fR مقدار می‌تواند حذف شود که در این حالت مقدار \f(CW1\fR فرض می‌شود. .Sp برای مقادیر گزینه‌های \fIfilter\fR و \fIpsy\-rd\fR که خود از «:» به‌عنوان جداکننده استفاده می‌کنند، به‌جای آن از «,» استفاده کنید. آن‌ها از دیرباز این حالت را نیز می‌پذیرند اما بنا به دلایلی مستند نشده باقی مانده است. .Sp برای نمونه، گزینه‌ها می‌توانند به این صورت ارائه شوند: .Sp .Vb 1 \& level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv\-maxrate=768:vbv\-bufsize=2000:analyse=all:me=umh:no\-fast\-pskip=1:subq=6:8x8dct=0:trellis=0 .Ve .Sp برای نمونه جهت تعیین گزینه‌های انکود libx264 با \fBffmpeg\fR: .Sp .Vb 1 \& ffmpeg \-i foo.mpg \-c:v libx264 \-x264opts keyint=123:min\-keyint=20 \-an out.mkv .Ve .Sp برای دریافت فهرست کامل گزینه‌های libx264، دستور \&\fBx264 \-\-fullhelp\fR را اجرا کنید یا به مستندات libx264 مراجعه نمایید. .IP "\fBa53cc\fR \fIboolean\fR" 4 .IX Item "a53cc boolean" وارد کردن زیرنویس‌های بسته‌بندی‌شده (که باید فرمت سازگار با ATSC داشته باشند) به خروجی. تنها دیکودرهای mpeg2 و h264 این‌ها را ارائه می‌دهند. پیش‌فرض 1 (روشن) است. .IP "\fBudu_sei\fR \fIboolean\fR" 4 .IX Item "udu_sei boolean" وارد کردن داده‌های کاربری ثبت‌نشده SEI در صورت موجود بودن به خروجی. پیش‌فرض 0 (خاموش) است. .IP "\fBmb_info\fR \fIboolean\fR" 4 .IX Item "mb_info boolean" تنظیم داده‌های mb_info از طریق AVFrameSideData، تنها در صورت استفاده از طریق API مفید است. پیش‌فرض 0 (خاموش) است. .PP پیش‌تنظیم‌های ffpresets برای کاربردهای رایج ارائه شده‌اند تا بتوانند با سیستم عمومی پیش‌تنظیم‌ها استفاده شوند (مثلاً ارسال گزینه \fBpre\fR). .SS libx265 .IX Subsection "libx265" پوشش‌دهنده انکودر x265 H.265/HEVC. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libx265 در زمان پیکربندی است. باید ساخت را صراحتاً با \&\fB\-\-enable\-libx265\fR پیکربندی کنید. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" تنظیم نرخ بیت ویدیوی هدف. .IP \fBbf\fR 4 .IX Item "bf" .PD 0 .IP \fBg\fR 4 .IX Item "g" .PD تنظیم اندازه GOP. .IP \fBkeyint_min\fR 4 .IX Item "keyint_min" حداقل اندازه GOP. .IP \fBrefs\fR 4 .IX Item "refs" تعداد فریم‌های مرجع که هر فریم P می‌تواند استفاده کند. بازه از \fI1\-16\fR است. .IP \fBpreset\fR 4 .IX Item "preset" تنظیم پیش‌تنظیم x265. .IP \fBtune\fR 4 .IX Item "tune" تنظیم پارامتر کوک x265. .IP \fBprofile\fR 4 .IX Item "profile" تنظیم محدودیت‌های پروفایل. .IP \fBcrf\fR 4 .IX Item "crf" تنظیم کیفیت برای حالت کیفیت ثابت. .IP \fBqp\fR 4 .IX Item "qp" تنظیم پارامتر روش کنترل نرخ کوانتیزاسیون ثابت. .IP \fBqmin\fR 4 .IX Item "qmin" حداقل مقیاس کوانتیایزر. .IP \fBqmax\fR 4 .IX Item "qmax" حداکثر مقیاس کوانتیایزر. .IP \fBqdiff\fR 4 .IX Item "qdiff" حداکثر تفاوت میان مقیاس‌های کوانتیایزر. .IP \fBqblur\fR 4 .IX Item "qblur" تاری منحنی کوانتیایزر .IP \fBqcomp\fR 4 .IX Item "qcomp" ضریب فشرده‌سازی منحنی کوانتیایزر .IP \fBi_qfactor\fR 4 .IX Item "i_qfactor" .PD 0 .IP \fBb_qfactor\fR 4 .IX Item "b_qfactor" .IP \fBforced\-idr\fR 4 .IX Item "forced-idr" .PD معمولاً هنگام اجبار نوع فریم I، انکودر می‌تواند هر نوع فریم I را انتخاب کند. این گزینه آن را مجبور به انتخاب فریم IDR می‌کند. .IP \fBx265\-stats\fR 4 .IX Item "x265-stats" تعیین نام فایل برای آمار انکود دو مرحله‌ای (2\-pass). این مقدار هنگام استفاده از گزینه \&\fB\-passlogfile\fR به‌طور خودکار تنظیم می‌شود. .IP "\fBudu_sei\fR \fIboolean\fR" 4 .IX Item "udu_sei boolean" وارد کردن داده‌های کاربری ثبت‌نشده SEI در صورت موجود بودن به خروجی. پیش‌فرض 0 (خاموش) است. .IP \fBx265\-params\fR 4 .IX Item "x265-params" تنظیم گزینه‌های x265 با استفاده از فهرستی از زوج‌های \fIkey\fR=\fIvalue\fR جداشده با «:». برای مشاهده فهرست گزینه‌ها، \fBx265 \-\-help\fR را ببینید. .Sp برای نمونه جهت تعیین گزینه‌های انکود libx265 با \fB\-x265\-params\fR: .Sp .Vb 1 \& ffmpeg \-i input \-c:v libx265 \-x265\-params crf=26:psy\-rd=1 output.mp4 .Ve .SS libxavs2 .IX Subsection "libxavs2" پوشش‌دهنده انکودر xavs2 AVS2\-P2/IEEE1857.4. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libxavs2 در زمان پیکربندی است. باید ساخت را صراحتاً با \&\fB\-\-enable\-libxavs2\fR پیکربندی کنید. .PP گزینه‌های استاندارد libavcodec زیر استفاده می‌شوند: .IP \(bu 4 \&\fBb\fR / \fBbit_rate\fR .IP \(bu 4 \&\fBg\fR / \fBgop_size\fR .IP \(bu 4 \&\fBbf\fR / \fBmax_b_frames\fR .PP این انکودر همچنین گزینه‌های اختصاصی خود را دارد: .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBlcu_row_threads\fR 4 .IX Item "lcu_row_threads" تنظیم تعداد نخ‌های موازی برای سطرها از 1 تا 8 (پیش‌فرض 5). .IP \fBinitial_qp\fR 4 .IX Item "initial_qp" تنظیم پارامتر کوانتیزاسیون xavs2 از 1 تا 63 (پیش‌فرض 34). این مقدار برای تنظیم qp اولیه برای نخستین فریم استفاده می‌شود. .IP \fBqp\fR 4 .IX Item "qp" تنظیم پارامتر کوانتیزاسیون xavs2 از 1 تا 63 (پیش‌فرض 34). این مقدار برای تنظیم مقدار qp تحت حالت QP ثابت (constant\-QP) استفاده می‌شود. .IP \fBmax_qp\fR 4 .IX Item "max_qp" تنظیم حداکثر qp برای کنترل نرخ از 1 تا 63 (پیش‌فرض 55). .IP \fBmin_qp\fR 4 .IX Item "min_qp" تنظیم حداقل qp برای کنترل نرخ از 1 تا 63 (پیش‌فرض 20). .IP \fBspeed_level\fR 4 .IX Item "speed_level" تنظیم سطح سرعت از 0 تا 9 (پیش‌فرض 0). مقادیر بالاتر کیفیت بهتری دارند اما کندتر هستند. .IP \fBlog_level\fR 4 .IX Item "log_level" تنظیم سطح گزارش‌گیری از \-1 تا 3 (پیش‌فرض 0). مقادیر: \-1: هیچ، 0: خطا، 1: هشدار، 2: اطلاعات، 3: اشکال‌زدایی. .IP \fBxavs2\-params\fR 4 .IX Item "xavs2-params" تنظیم گزینه‌های xavs2 با استفاده از فهرستی از زوج‌های \fIkey\fR=\fIvalue\fR جداشده با «:». .Sp برای نمونه جهت تعیین گزینه‌های انکود libxavs2 با \fB\-xavs2\-params\fR: .Sp .Vb 1 \& ffmpeg \-i input \-c:v libxavs2 \-xavs2\-params RdoqLevel=0 output.avs2 .Ve .SS libxeve .IX Subsection "libxeve" پوشش‌دهنده انکودر MPEG\-5 EVC با انکودر ویدیویی فوق‌سریع ضروری (XEVE). گزینه‌ها یا مقادیر معادل در xeve درون پرانتز برای مهاجرت آسان‌تر فهرست شده‌اند. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libxeve در زمان پیکربندی است. باید ساخت را صراحتاً با \&\fB\-\-enable\-libxeve\fR پیکربندی کنید. .Sp .RS 4 بسیاری از گزینه‌های انکودر libxeve به گزینه‌های سراسری کدک در FFmpeg نگاشت شده‌اند، در حالی که گزینه‌های منحصربه‌فرد انکودر از طریق گزینه‌های اختصاصی ارائه می‌شوند. علاوه بر این، گزینه اختصاصی xeve\-params امکان ارسال فهرستی از چندتایی‌های key=value پذیرفته‌شده توسط تابع \f(CW\*(C`parse_xeve_params\*(C'\fR در libxeve را فراهم می‌کند. .RE .PP وب‌سایت پروژه xeve در <\fBhttps://github.com/mpeg5/xeve\fR> قرار دارد. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش‌دهنده libxeve پشتیبانی می‌شوند. گزینه‌ها یا مقادیر معادل در xeve درون پرانتز برای مهاجرت آسان‌تر فهرست شده‌اند. .Sp .RS 4 برای کاهش تکرار در مستندات، تنها گزینه‌های اختصاصی و برخی گزینه‌های دیگر که نیازمند توجه ویژه هستند در اینجا مستند شده‌اند. برای مشاهده مستندات گزینه‌های عمومی مستندنشده، به \&\fBفصل گزینه‌های کدک (Codec Options)\fR مراجعه کنید. .RE .Sp .RS 4 برای دریافت مستندات دقیق‌تر و جامع‌تر درباره گزینه‌های libxeve، دستور \&\f(CW\*(C`xeve_app \-\-help\*(C'\fR را اجرا کنید یا به مستندات libxeve مراجعه نمایید. .RE .IP "\fBb (\fR\fIbitrate\fR\fB)\fR" 4 .IX Item "b (bitrate)" تنظیم نرخ بیت ویدیوی هدف به بیت بر ثانیه. توجه داشته باشید که گزینه b در FFmpeg بر حسب بیت بر ثانیه بیان می‌شود، در حالی که نرخ بیت در xeve بر حسب کیلوبیت بر ثانیه است. .IP "\fBbf (\fR\fIbframes\fR\fB)\fR" 4 .IX Item "bf (bframes)" تنظیم حداکثر تعداد فریم‌های B (شامل 1, 3, 7, 15). .IP "\fBg (\fR\fIkeyint\fR\fB)\fR" 4 .IX Item "g (keyint)" تنظیم اندازه GOP (دوره تصویر I). .IP "\fBpreset (\fR\fIpreset\fR\fB)\fR" 4 .IX Item "preset (preset)" تنظیم پیش‌تنظیم xeve. تنظیم مقدار پیش‌تنظیم انکودر برای تعیین سرعت انکود [fast, medium, slow, placebo] .IP "\fBtune (\fR\fItune\fR\fB)\fR" 4 .IX Item "tune (tune)" تنظیم پارامتر کوک انکودر [psnr, zerolatency] .IP "\fBprofile (\fR\fIprofile\fR\fB)\fR" 4 .IX Item "profile (profile)" تنظیم پروفایل انکودر [0: پایه baseline؛ 1: اصلی main] .IP "\fBcrf (\fR\fIcrf\fR\fB)\fR" 4 .IX Item "crf (crf)" تنظیم کیفیت برای حالت کیفیت ثابت. فاکتور نرخ ثابت <10..49> [پیش‌فرض: 32] .IP "\fBqp (\fR\fIqp\fR\fB)\fR" 4 .IX Item "qp (qp)" تنظیم پارامتر روش کنترل نرخ کوانتیزاسیون ثابت. پارامتر کوانتیزاسیون qp بین <0..51> [پیش‌فرض: 32] .IP "\fBthreads (\fR\fIthreads\fR\fB)\fR" 4 .IX Item "threads (threads)" اجبار به استفاده از تعداد مشخصی از نخ‌ها .SS libxvid .IX Subsection "libxvid" پوشش‌دهنده انکودر Xvid MPEG\-4 Part 2. .PP این انکودر نیازمند حضور سرآیندها و کتابخانه libxvidcore در زمان پیکربندی است. باید ساخت را صراحتاً با \f(CW\*(C`\-\-enable\-libxvid \-\-enable\-gpl\*(C'\fR پیکربندی کنید. .PP انکودر بومی \f(CW\*(C`mpeg4\*(C'\fR از فرمت MPEG\-4 Part 2 پشتیبانی می‌کند، بنابراین کاربران می‌توانند بدون این کتابخانه به این فرمت انکود کنند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .PP گزینه‌های زیر توسط پوشش‌دهنده libxvid پشتیبانی می‌شوند. برخی از گزینه‌های زیر فهرست شده‌اند اما مستند نشده‌اند و به گزینه‌های مشترک کدک مربوط می‌شوند. برای مشاهده مستندات آن‌ها به \fBفصل گزینه‌های کدک (Codec Options)\fR مراجعه کنید. سایر گزینه‌های مشترک که فهرست نشده‌اند تأثیری بر انکودر libxvid ندارند. .IP \fBb\fR 4 .IX Item "b" .PD 0 .IP \fBg\fR 4 .IX Item "g" .IP \fBqmin\fR 4 .IX Item "qmin" .IP \fBqmax\fR 4 .IX Item "qmax" .IP \fBmpeg_quant\fR 4 .IX Item "mpeg_quant" .IP \fBthreads\fR 4 .IX Item "threads" .IP \fBbf\fR 4 .IX Item "bf" .IP \fBb_qfactor\fR 4 .IX Item "b_qfactor" .IP \fBb_qoffset\fR 4 .IX Item "b_qoffset" .IP \fBflags\fR 4 .IX Item "flags" .PD تنظیم فلگ‌های اختصاصی انکود. مقادیر ممکن: .RS 4 .IP \fBmv4\fR 4 .IX Item "mv4" استفاده از چهار بردار حرکت به‌ازای هر مکروبلوک. .IP \fBaic\fR 4 .IX Item "aic" فعال‌سازی پیش‌بینی AC با کیفیت بالا. .IP \fBgray\fR 4 .IX Item "gray" تنها انکود به‌صورت مقیاس خاکستری (سیاه‌وسفید). .IP \fBqpel\fR 4 .IX Item "qpel" فعال‌سازی جبران حرکت یک‌چهارم پیکسل. .IP \fBcgop\fR 4 .IX Item "cgop" فعال‌سازی GOP بسته. .IP \fBglobal_header\fR 4 .IX Item "global_header" قرار دادن سرایندهای سراسری در داده‌های الحاقی (extradata) به‌جای هر فریم کلیدی. .RE .RS 4 .RE .IP \fBgmc\fR 4 .IX Item "gmc" فعال‌سازی استفاده از جبران حرکت سراسری (GMC). پیش‌فرض 0 (غیرفعال) است. .IP \fBme_quality\fR 4 .IX Item "me_quality" تنظیم سطح کیفیت تخمین حرکت. مقادیر ممکن به ترتیب نزولی سرعت و صعودی کیفیت: .RS 4 .IP \fB0\fR 4 .IX Item "0" عدم استفاده از تخمین حرکت (پیش‌فرض). .IP "\fB1, 2\fR" 4 .IX Item "1, 2" فعال‌سازی جستجوی ناحیه‌ای لوزی پیشرفته برای بلوک‌های 16x16 و پالایش نیم‌پیکسل برای بلوک‌های 16x16. .IP "\fB3, 4\fR" 4 .IX Item "3, 4" فعال‌سازی تمامی موارد فوق، به‌علاوه جستجوی ناحیه‌ای لوزی پیشرفته برای بلوک‌های 8x8 و پالایش نیم‌پیکسل برای بلوک‌های 8x8، و همچنین فعال‌سازی تخمین حرکت روی صفحه‌های کروما برای فریم‌های P و B. .IP "\fB5, 6\fR" 4 .IX Item "5, 6" فعال‌سازی تمامی موارد فوق، به‌علاوه جستجوی گسترش‌یافته بلوک‌های 16x16 و 8x8. .RE .RS 4 .RE .IP \fBmbd\fR 4 .IX Item "mbd" تنظیم الگوریتم تصمیم‌گیری مکروبلوک. مقادیر ممکن به ترتیب صعودی کیفیت: .RS 4 .IP \fBsimple\fR 4 .IX Item "simple" استفاده از الگوریتم تابع مقایسه مکروبلوک (پیش‌فرض). .IP \fBbits\fR 4 .IX Item "bits" فعال‌سازی پالایش نیم‌پیکسل و یک‌چهارم پیکسل مبتنی بر اعوجاج نرخ برای بلوک‌های 16x16. .IP \fBrd\fR 4 .IX Item "rd" فعال‌سازی تمامی موارد فوق، به‌علاوه پالایش نیم‌پیکسل و یک‌چهارم پیکسل مبتنی بر اعوجاج نرخ برای بلوک‌های 8x8، و جستجوی مبتنی بر اعوجاج نرخ با استفاده از الگوی مربعی. .RE .RS 4 .RE .IP \fBlumi_aq\fR 4 .IX Item "lumi_aq" فعال‌سازی کوانتیزاسیون تطبیقی ماسک روشنایی (lumi masking) در صورت تنظیم روی 1. پیش‌فرض 0 (غیرفعال) است. .IP \fBvariance_aq\fR 4 .IX Item "variance_aq" فعال‌سازی کوانتیزاسیون تطبیقی واریانس در صورت تنظیم روی 1. پیش‌فرض 0 (غیرفعال) است. .Sp هنگام ترکیب با \fBlumi_aq\fR، کیفیت حاصل بهتر از هیچ‌یک از دو مورد به‌تنهایی نخواهد بود. به عبارت دیگر، کیفیت حاصل اثر بدتر میان این دو خواهد بود. .IP \fBtrellis\fR 4 .IX Item "trellis" تنظیم کوانتیزاسیون بهینه اعوجاج نرخ. .IP \fBssim\fR 4 .IX Item "ssim" تنظیم روش نمایش شاخص شباهت ساختاری (SSIM). مقادیر ممکن: .RS 4 .IP \fBoff\fR 4 .IX Item "off" غیرفعال کردن نمایش اطلاعات SSIM. .IP \fBavg\fR 4 .IX Item "avg" خروجی میانگین SSIM در پایان انکود به stdout. قالب نمایش میانگین SSIM به‌صورت زیر است: .Sp .Vb 1 \& Average SSIM: %f .Ve .Sp برای کاربرانی که با C آشنایی ندارند، \f(CW%f\fR به معنای یک عدد اعشاری ممیز شناور است (مانند 0.939232). .IP \fBframe\fR 4 .IX Item "frame" خروجی هم داده‌های SSIM به‌ازای هر فریم در حین انکود و هم میانگین SSIM در پایان انکود به stdout. قالب اطلاعات به‌ازای هر فریم به‌صورت زیر است: .Sp .Vb 1 \& SSIM: avg: %1.3f min: %1.3f max: %1.3f .Ve .Sp برای کاربرانی که با C آشنایی ندارند، \f(CW%1\fR.3f به معنای یک عدد ممیز شناور گردشده تا ۳ رقم بعد از اعشار است (مانند 0.932). .RE .RS 4 .RE .IP \fBssim_acc\fR 4 .IX Item "ssim_acc" تنظیم دقت SSIM. گزینه‌های معتبر اعداد صحیح در بازه 0\-4 هستند؛ مقدار 0 دقیق‌ترین نتیجه را ارائه می‌دهد و 4 سریع‌ترین محاسبه را انجام می‌دهد. .SS MediaCodec .IX Subsection "MediaCodec" پوشش‌دهنده انکودر MediaCodec امکان انکود ویدیویی با شتاب سخت‌افزاری را روی دستگاه‌های اندروید فراهم می‌کند. این انکودر از کدگذاری H.264، H.265 (HEVC)، VP8، VP9، MPEG\-4 و AV1 پشتیبانی می‌کند (اینکه کار کند یا خیر به دستگاه بستگی دارد). .PP اندروید دو مجموعه API ارائه می‌دهد: Java MediaCodec و NDK MediaCodec. پوشش‌دهنده انکودر MediaCodec از هر دو پشتیبانی می‌کند. توجه داشته باشید که API ان‌دی‌کی MediaCodec بدون نیاز به JVM عمل می‌کند، اما ممکن است به دلیل وابستگی به سرویس‌های چارچوب سیستم، به‌ویژه پس از اندروید ۱۵، خارج از محیط JVM کار نکند. .IP "\fBndk_codec\fR \fIboolean\fR" 4 .IX Item "ndk_codec boolean" استفاده از API ان‌دی‌کی MediaCodec به‌جای API جاوا. در صورتی که \&\f(CWav_jni_get_java_vm()\fR مقدار NULL برگرداند به‌طور پیش‌فرض فعال است. .IP "\fBndk_async\fR \fIboolean\fR" 4 .IX Item "ndk_async boolean" استفاده از NDK MediaCodec در حالت ناهمگام (async). حالت ناهمگام نسبت به نظرسنجی (poll) در یک حلقه در حالت همگام، سربار کمتری دارد. نقص حالت ناهمگام این است که AV_CODEC_FLAG_GLOBAL_HEADER در آن کار نمی‌کند (در صورت لزوم از bsf فیلتر extract_extradata استفاده کنید). این قابلیت روی دستگاه‌های پایین‌تر از اندروید ۸.۰ کار نمی‌کند و به‌طور خودکار غیرفعال خواهد شد. .IP "\fBcodec_name\fR \fIstring\fR" 4 .IX Item "codec_name string" یک نوع کدک می‌تواند پیاده‌سازی‌های متعددی روی یک دستگاه واحد داشته باشد؛ این گزینه مشخص می‌کند کدام backend استفاده شود (از طریق API ساخت createCodecByName در MediaCodec). این گزینه به‌طور پیش‌فرض NULL است و انکودر توسط createEncoderByType ایجاد می‌شود. .IP "\fBbitrate_mode\fR \fIinteger\fR" 4 .IX Item "bitrate_mode integer" مقادیر ممکن: .RS 4 .IP \fBcq\fR 4 .IX Item "cq" حالت کیفیت ثابت .IP \fBvbr\fR 4 .IX Item "vbr" حالت نرخ بیت متغیر .IP \fBcbr\fR 4 .IX Item "cbr" حالت نرخ بیت ثابت .IP \fBcbr_fd\fR 4 .IX Item "cbr_fd" حالت نرخ بیت ثابت با حذف فریم .RE .RS 4 .RE .IP "\fBpts_as_dts\fR \fIboolean\fR" 4 .IX Item "pts_as_dts boolean" استفاده از PTS به‌عنوان DTS. این یک راه‌حل موقت است زیرا API مدیاکدک زمان‌بندی دیکود ارائه نمی‌دهد. در صورتی که فریم B برابر 0 باشد به‌طور خودکار فعال می‌شود. .IP "\fBoperating_rate\fR \fIinteger\fR" 4 .IX Item "operating_rate integer" نرخ عملیاتی مطلوبی که کدک باید در آن فعالیت کند؛ صفر به معنای نامشخص است. این گزینه برای مواردی مانند ضبط ویدیوی سرعت‌بالا/حرکت‌آهسته استفاده می‌شود، جایی که فرمت انکودر ویدیو شامل نرخ پخش هدف است (مثلاً 30fps)، اما مؤلفه باید توانایی مدیریت نرخ بالای ضبط عملیاتی را داشته باشد (مثلاً 240fps). این نرخ توسط کدک برای برنامه‌ریزی منابع و تنظیم نقاط عملکرد استفاده خواهد شد. .IP "\fBqp_i_min\fR \fIinteger\fR" 4 .IX Item "qp_i_min integer" حداقل پارامتر کوانتیزاسیون برای فریم I. .IP "\fBqp_p_min\fR \fIinteger\fR" 4 .IX Item "qp_p_min integer" حداقل پارامتر کوانتیزاسیون برای فریم P. .IP "\fBqp_b_min\fR \fIinteger\fR" 4 .IX Item "qp_b_min integer" حداقل پارامتر کوانتیزاسیون برای فریم B. .IP "\fBqp_i_max\fR \fIinteger\fR" 4 .IX Item "qp_i_max integer" حداکثر پارامتر کوانتیزاسیون برای فریم I. .IP "\fBqp_p_max\fR \fIinteger\fR" 4 .IX Item "qp_p_max integer" حداکثر پارامتر کوانتیزاسیون برای فریم P. .IP "\fBqp_b_max\fR \fIinteger\fR" 4 .IX Item "qp_b_max integer" حداکثر پارامتر کوانتیزاسیون برای فریم B. .SS MediaFoundation .IX Subsection "MediaFoundation" پوشش‌دهنده‌های زیر برای انکودرها در چارچوب MediaFoundation در دسترس هستند: .IP * 4 .IX Item "*" .PD 0 .IP * 4 .IX Item "*" .IP * 4 .IX Item "*" .PD .PP این‌ها از هر دو نوع انکود نرم‌افزاری و سخت‌افزاری پشتیبانی می‌کنند. .PP انکودرهای ویدیو می‌توانند ورودی را در هر یک از قالب‌های nv12 یا yuv420p دریافت کنند (برخی انکودرها از هر دو پشتیبانی می‌کنند، برخی تنها از یکی — در عمل، nv12 انتخاب امن‌تری است، به‌ویژه در میان انکودرهای سخت‌افزاری). .PP انکود شتاب‌یافته سخت‌افزاری نیازمند D3D11 است، از جمله قابلیت‌های تغییر اندازه سخت‌افزاری از طریق فیلتر scale_d3d11. .PP برای مشاهده فهرست تمام گزینه‌های موجود برای انکودرهای MediaFoundation، استفاده کنید از: \&\fBffmpeg \-h encoder=\fR به‌عنوان نمونه \fBffmpeg \-h encoder=h264_mf\fR .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBrate_control\fR 4 .IX Item "rate_control" انتخاب حالت کنترل نرخ. حالت‌های موجود: .RS 4 .IP \fBdefault\fR 4 .IX Item "default" حالت پیش‌فرض .IP \fBcbr\fR 4 .IX Item "cbr" حالت CBR .IP \fBpc_vbr\fR 4 .IX Item "pc_vbr" حالت VBR با قید اوج (Peak constrained) .IP \fBu_vbr\fR 4 .IX Item "u_vbr" حالت VBR بدون قید (Unconstrained) .IP \fBquality\fR 4 .IX Item "quality" حالت کیفیت .IP \fBld_vbr\fR 4 .IX Item "ld_vbr" حالت VBR با تأخیر کم (نیازمند ویندوز ۸+) .IP \fBg_vbr\fR 4 .IX Item "g_vbr" حالت VBR سراسری (نیازمند ویندوز ۸+) .IP \fBgld_vbr\fR 4 .IX Item "gld_vbr" حالت VBR با تأخیر کم سراسری (نیازمند ویندوز ۸+) .RE .RS 4 .RE .IP \fBscenario\fR 4 .IX Item "scenario" انتخاب سناریوی کاربرد. سناریوهای موجود: .RS 4 .IP \fBdefault\fR 4 .IX Item "default" سناریوی پیش‌فرض .IP \fBdisplay_remoting\fR 4 .IX Item "display_remoting" سناریوی ریموت تصویر (نمایش از راه دور) .IP \fBvideo_conference\fR 4 .IX Item "video_conference" سناریوی ویدیو کنفرانس .IP \fBarchive\fR 4 .IX Item "archive" سناریوی آرشیو .IP \fBlive_streaming\fR 4 .IX Item "live_streaming" سناریوی پخش زنده .IP \fBcamera_record\fR 4 .IX Item "camera_record" سناریوی ضبط دوربین .IP \fBdisplay_remoting_with_feature_map\fR 4 .IX Item "display_remoting_with_feature_map" سناریوی ریموت تصویر با نقشه ویژگی‌ها .RE .RS 4 .RE .IP \fBquality\fR 4 .IX Item "quality" تنظیم کیفیت انکود (0\-100). مقدار \-1 به معنای کیفیت پیش‌فرض است. .IP \fBhw_encoding\fR 4 .IX Item "hw_encoding" اجبار انکود سخت‌افزاری (0\-1). پیش‌فرض 0 (غیرفعال) است. .PP \fIنمونه‌ها (Examples)\fR .IX Subsection "Examples" .PP انکود سخت‌افزاری: .PP .Vb 1 \& ffmpeg \-i input.mp4 \-c:v h264_mf \-hw_encoding 1 output.mp4 .Ve .PP دیکود شتاب‌یافته سخت‌افزاری همراه با انکود سخت‌افزاری: .PP .Vb 1 \& ffmpeg \-hwaccel d3d11va \-i input.mp4 \-c:v h264_mf \-hw_encoding 1 output.mp4 .Ve .PP دیکود شتاب‌یافته سخت‌افزاری، تغییر اندازه سخت‌افزاری و انکود با تنظیم کیفیت: .PP .Vb 1 \& ffmpeg \-hwaccel d3d11va \-hwaccel_output_format d3d11 \-i input.mp4 \-vf scale_d3d11=1920:1080 \-c:v hevc_mf \-hw_encoding 1 \-quality 80 output.mp4 .Ve .SS "Microsoft RLE" .IX Subsection "Microsoft RLE" انکودر Microsoft RLE معروف به MSRLE. تنها از حالت پالت ۸ بیتی پشتیبانی می‌شود. سازگار با Windows 3.1 و Windows 95. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBg\fR \fIinteger\fR" 4 .IX Item "g integer" فاصله فریم‌های کلیدی. یک فریم کلیدی حداقل هر \f(CW\*(C`\-g\*(C'\fR فریم یک‌بار درج می‌شود، گاهی زودتر. .SS mpeg2 .IX Subsection "mpeg2" انکودر ویدیوی MPEG\-2. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBprofile\fR 4 .IX Item "profile" انتخاب پروفایل mpeg2 برای انکود: .RS 4 .IP \fB422\fR 4 .IX Item "422" .PD 0 .IP \fBhigh\fR 4 .IX Item "high" .IP \fBss\fR 4 .IX Item "ss" .PD از نظر مکانی مقیاس‌پذیر (Spatially Scalable) .IP \fBsnr\fR 4 .IX Item "snr" مقیاس‌پذیر بر اساس نسبت سیگنال به نویز (SNR Scalable) .IP \fBmain\fR 4 .IX Item "main" .PD 0 .IP \fBsimple\fR 4 .IX Item "simple" .PD .RE .RS 4 .RE .IP \fBlevel\fR 4 .IX Item "level" انتخاب سطح mpeg2 برای انکود: .RS 4 .IP \fBhigh\fR 4 .IX Item "high" .PD 0 .IP \fBhigh1440\fR 4 .IX Item "high1440" .IP \fBmain\fR 4 .IX Item "main" .IP \fBlow\fR 4 .IX Item "low" .PD .RE .RS 4 .RE .IP "\fBseq_disp_ext\fR \fIinteger\fR" 4 .IX Item "seq_disp_ext integer" مشخص می‌کند که آیا انکودر باید یک sequence_display_extension در خروجی بنویسد یا خیر. .RS 4 .IP \fB\-1\fR 4 .IX Item "-1" .PD 0 .IP \fBauto\fR 4 .IX Item "auto" .PD تصمیم‌گیری خودکار برای نوشتن یا ننوشتن آن (این مقدار پیش‌فرض است) با بررسی اینکه آیا داده‌های مورد نظر برای نوشتن با مقادیر پیش‌فرض یا نامشخص تفاوت دارند یا خیر. .IP \fB0\fR 4 .IX Item "0" .PD 0 .IP \fBnever\fR 4 .IX Item "never" .PD هرگز ننویس. .IP \fB1\fR 4 .IX Item "1" .PD 0 .IP \fBalways\fR 4 .IX Item "always" .PD همیشه بنویس. .RE .RS 4 .RE .IP "\fBvideo_format\fR \fIinteger\fR" 4 .IX Item "video_format integer" مشخص‌کننده video_format نوشته‌شده در افزونه نمایش توالی (sequence display extension) است که نشان‌دهنده منبع تصاویر ویدیو می‌باشد. مقدار پیش‌فرض \fBunspecified\fR است، می‌تواند \fBcomponent\fR، \fBpal\fR، \fBntsc\fR، \fBsecam\fR یا \fBmac\fR باشد. برای حداکثر سازگاری، از \fBcomponent\fR استفاده کنید. .IP "\fBa53cc\fR \fIboolean\fR" 4 .IX Item "a53cc boolean" وارد کردن زیرنویس‌های بسته‌بندی‌شده (که باید فرمت سازگار با ATSC داشته باشند) به خروجی. پیش‌فرض 1 (روشن) است. .SS png .IX Subsection "png" انکودر تصویر PNG. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBcompression_level\fR 4 .IX Item "compression_level" تنظیم سطح فشرده‌سازی، از 0 تا 9 (پیش‌فرض) .PP \fIگزینه‌های اختصاصی (Private options)\fR .IX Subsection "Private options" .IP "\fBdpi\fR \fIinteger\fR" 4 .IX Item "dpi integer" تنظیم چگالی فیزیکی پیکسل‌ها، بر حسب نقطه در اینچ (DPI)، به‌طور پیش‌فرض تنظیم‌نشده .IP "\fBdpm\fR \fIinteger\fR" 4 .IX Item "dpm integer" تنظیم چگالی فیزیکی پیکسل‌ها، بر حسب نقطه در متر (DPM)، به‌طور پیش‌فرض تنظیم‌نشده .IP "\fBpred\fR \fImethod\fR" 4 .IX Item "pred method" تنظیم روش پیش‌بینی (none, sub, up, avg, paeth, mixed)، پیش‌فرض paeth است .SS ProRes .IX Subsection "ProRes" انکودر Apple ProRes. .PP کتابخانه FFmpeg شامل ۲ انکودر ProRes است: انکودر prores\-aw و prores\-ks. انکودر مورد استفاده می‌تواند با گزینه \f(CW\*(C`\-vcodec\*(C'\fR انتخاب شود. .PP \fIگزینه‌های اختصاصی برای prores\-ks (Private Options for prores-ks)\fR .IX Subsection "Private Options for prores-ks" .IP "\fBprofile\fR \fIinteger\fR" 4 .IX Item "profile integer" انتخاب پروفایل ProRes برای انکود .RS 4 .IP \fBproxy\fR 4 .IX Item "proxy" .PD 0 .IP \fBlt\fR 4 .IX Item "lt" .IP \fBstandard\fR 4 .IX Item "standard" .IP \fBhq\fR 4 .IX Item "hq" .IP \fB4444\fR 4 .IX Item "4444" .IP \fB4444xq\fR 4 .IX Item "4444xq" .PD .RE .RS 4 .RE .IP "\fBquant_mat\fR \fIinteger\fR" 4 .IX Item "quant_mat integer" انتخاب ماتریس کوانتیزاسیون. .RS 4 .IP \fBauto\fR 4 .IX Item "auto" .PD 0 .IP \fBdefault\fR 4 .IX Item "default" .IP \fBproxy\fR 4 .IX Item "proxy" .IP \fBlt\fR 4 .IX Item "lt" .IP \fBstandard\fR 4 .IX Item "standard" .IP \fBhq\fR 4 .IX Item "hq" .PD .RE .RS 4 .Sp در صورت تنظیم روی \fIauto\fR، ماتریس متناسب با پروفایل انتخاب خواهد شد. در صورت عدم تنظیم، ماتریسی که بالاترین کیفیت را فراهم می‌کند، یعنی \fIdefault\fR، انتخاب خواهد شد. .RE .IP "\fBbits_per_mb\fR \fIinteger\fR" 4 .IX Item "bits_per_mb integer" تعداد بیت‌های اختصاص‌یافته برای کدگذاری یک مکروبلوک. پروفایل‌های مختلف بین ۲۰۰ تا ۲۴۰۰ بیت به‌ازای هر مکروبلوک استفاده می‌کنند؛ حداکثر مقدار ۸۰۰۰ است. .IP "\fBmbs_per_slice\fR \fIinteger\fR" 4 .IX Item "mbs_per_slice integer" تعداد مکروبلوک‌ها در هر برش (1\-8)؛ مقدار پیش‌فرض (8) تقریباً در تمامی شرایط مناسب است. .IP "\fBvendor\fR \fIstring\fR" 4 .IX Item "vendor string" بازنویسی شناسه سازنده ۴ بایتی. یک شناسه سفارشی مانند \fIapl0\fR ادعا می‌کند که استریم توسط انکودر اپل تولید شده است. .IP "\fBalpha_bits\fR \fIinteger\fR" 4 .IX Item "alpha_bits integer" مشخص کردن تعداد بیت‌ها برای مؤلفه آلفا. مقادیر ممکن \fI0\fR، \fI8\fR و \fI16\fR هستند. از \fI0\fR برای غیرفعال‌سازی کدگذاری صفحه آلفا استفاده کنید. .PP \fIملاحظات سرعت (Speed considerations)\fR .IX Subsection "Speed considerations" .PP در حالت پیش‌فرض عملکرد، انکودر باید قیدهای فریم را رعایت کند (یعنی فریم‌هایی با اندازه بزرگ‌تر از مقدار درخواست‌شده تولید نکند) در حالی که همچنان تصویر خروجی را تا حد امکان باکیفیت بسازد. فریمی که حاوی جزئیات کوچک زیادی باشد فشرده‌سازی آن دشوارتر است و انکودر زمان بیشتری را صرف جستجوی کوانتیایزرهای مناسب برای هر برش خواهد کرد. .PP تنظیم یک سقف بالاتر برای \fBbits_per_mb\fR سرعت را بهبود می‌بخشد. .PP برای سریع‌ترین سرعت انکود، پارامتر \fBqscale\fR را تنظیم کنید (مقدار ۴ مقدار توصیه شده است) و هیچ قید اندازه‌ای تعیین نکنید. .SS "QSV Encoders" .IX Subsection "QSV Encoders" خانواده انکودرهای Intel QuickSync Video شامل (MPEG\-2, H.264, HEVC, JPEG/MJPEG, VP9, AV1) .PP \fIروش کنترل نرخ (Ratecontrol Method)\fR .IX Subsection "Ratecontrol Method" .PP روش کنترل نرخ به شرح زیر انتخاب می‌شود: .IP \(bu 4 هنگامی که \fBglobal_quality\fR مشخص شود، از یک حالت مبتنی بر کیفیت استفاده می‌شود. به‌طور خاص این به معنای یکی از موارد زیر است: .RS 4 .IP \- 4 \&\fICQP\fR \- مقیاس کوانتیایزر ثابت، هنگامی که فلگ کدک \fBqscale\fR نیز تنظیم شده باشد (گزینه \fB\-qscale\fR در ffmpeg). .IP \- 4 \&\fILA_ICQ\fR \- کیفیت ثابت هوشمند با نگاه به جلو (lookahead)، هنگامی که گزینه \&\fBlook_ahead\fR نیز تنظیم شده باشد. .IP \- 4 \&\fIICQ\fR \-\- کیفیت ثابت هوشمند در غیر این صورت. برای حالت‌های ICQ، بازه کیفیت سراسری ۱ تا ۵۱ است که ۱ بهترین کیفیت می‌باشد. .RE .RS 4 .RE .IP \(bu 4 در غیر این صورت، هنگامی که نرخ بیت میانگین مطلوب با گزینه \fBb\fR مشخص شود، از یک حالت مبتنی بر نرخ بیت استفاده می‌شود: .RS 4 .IP \- 4 \&\fILA\fR \- حالت VBR با نگاه به جلو، هنگامی که گزینه \fBlook_ahead\fR مشخص شده باشد. .IP \- 4 \&\fIVCM\fR \- حالت ویدیو کنفرانس، هنگامی که گزینه \fBvcm\fR تنظیم شده باشد. .IP \- 4 \&\fICBR\fR \- نرخ بیت ثابت، هنگامی که \fBmaxrate\fR مشخص شده و برابر با نرخ بیت میانگین باشد. .IP \- 4 \&\fIVBR\fR \- نرخ بیت متغیر، هنگامی که \fBmaxrate\fR مشخص شده اما بالاتر از نرخ بیت میانگین باشد. .IP \- 4 \&\fIAVBR\fR \- حالت VBR میانگین، هنگامی که \fBmaxrate\fR مشخص نشده و هر دو گزینه \&\fBavbr_accuracy\fR و \fBavbr_convergence\fR روی مقادیر غیرصفر تنظیم شده باشند. این حالت برای H264 و HEVC در ویندوز در دسترس است. .RE .RS 4 .RE .IP \(bu 4 در غیر این صورت از روش کنترل نرخ پیش‌فرض \fICQP\fR استفاده می‌شود. .PP توجه داشته باشید که بسته به سیستم شما، ممکن است حالتی متفاوت از آنچه مشخص کرده‌اید توسط انکودر انتخاب شود. سطح پرگویی (verbosity) را روی \fIverbose\fR یا بالاتر تنظیم کنید تا تنظیمات واقعی مورد استفاده توسط زمان اجرای QSV را مشاهده نمایید. .PP \fIگزینه‌های سراسری \-> گزینه‌های MSDK (Global Options \-> MSDK Options)\fR .IX Subsection "Global Options -> MSDK Options" .PP گزینه‌های سراسری اضافی libavcodec به گزینه‌های MSDK به شرح زیر نگاشت می‌شوند: .IP \(bu 4 \&\fBg/gop_size\fR \-> \fBGopPicSize\fR .IP \(bu 4 \&\fBbf/max_b_frames\fR+1 \-> \fBGopRefDist\fR .IP \(bu 4 \&\fBrc_init_occupancy/rc_initial_buffer_occupancy\fR \-> \&\fBInitialDelayInKB\fR .IP \(bu 4 \&\fBslices\fR \-> \fBNumSlice\fR .IP \(bu 4 \&\fBrefs\fR \-> \fBNumRefFrame\fR .IP \(bu 4 \&\fBb_strategy/b_frame_strategy\fR \-> \fBBRefType\fR .IP \(bu 4 فلگ کدک \&\fBcgop/CLOSED_GOP\fR \-> \fBGopOptFlag\fR .IP \(bu 4 برای حالت \fICQP\fR، گزینه‌های \fBi_qfactor/i_qoffset\fR و \&\fBb_qfactor/b_qoffset\fR اختلاف میان \fIQPP\fR و \fIQPI\fR، و همچنین \fIQPP\fR و \fIQPB\fR را به ترتیب تعیین می‌کنند. .IP \(bu 4 تنظیم گزینه \fBcoder\fR روی مقدار \fIvlc\fR باعث می‌شود انکودر H.264 به‌جای CABAC از CAVLC استفاده کند. .PP \fIگزینه‌های مشترک (Common Options)\fR .IX Subsection "Common Options" .PP گزینه‌های زیر توسط تمامی انکودرهای qsv استفاده می‌شوند. .IP \fIasync_depth\fR 4 .IX Item "async_depth" مشخص می‌کند که یک برنامه کاربردی چه تعداد عملیات ناهمگام را پیش از همگام‌سازی صریح نتیجه انجام می‌دهد. اگر صفر باشد، مقدار مشخص نشده است. .IP \fIpreset\fR 4 .IX Item "preset" این گزینه بازه‌ای از گزینه‌ها را از veryfast (بهترین سرعت) تا veryslow (بهترین کیفیت) برمی‌شمارد. .RS 4 .IP \fBveryfast\fR 4 .IX Item "veryfast" .PD 0 .IP \fBfaster\fR 4 .IX Item "faster" .IP \fBfast\fR 4 .IX Item "fast" .IP \fBmedium\fR 4 .IX Item "medium" .IP \fBslow\fR 4 .IX Item "slow" .IP \fBslower\fR 4 .IX Item "slower" .IP \fBveryslow\fR 4 .IX Item "veryslow" .PD .RE .RS 4 .RE .IP \fIforced_idr\fR 4 .IX Item "forced_idr" اجبار فریم‌های I به‌عنوان فریم‌های IDR. .IP \fIlow_power\fR 4 .IX Item "low_power" برای انکودرها، این فلگ را روی ON قرار دهید تا مصرف توان و استفاده از GPU کاهش یابد. .PP \fIگزینه‌های زمان اجرا (Runtime Options)\fR .IX Subsection "Runtime Options" .PP گزینه‌های زیر می‌توانند در حین انکود qsv استفاده شوند. .IP \fIglobal_quality\fR 4 .IX Item "global_quality" .PD 0 .IP \fIi_quant_factor\fR 4 .IX Item "i_quant_factor" .IP \fIi_quant_offset\fR 4 .IX Item "i_quant_offset" .IP \fIb_quant_factor\fR 4 .IX Item "b_quant_factor" .IP \fIb_quant_offset\fR 4 .IX Item "b_quant_offset" .PD در h264_qsv و hevc_qsv پشتیبانی می‌شود. این مقادیر را تغییر دهید تا پیکربندی qp در کدک qsv بازنشانی شود. .IP \fImax_frame_size\fR 4 .IX Item "max_frame_size" در h264_qsv و hevc_qsv پشتیبانی می‌شود. این مقدار را تغییر دهید تا پیکربندی MaxFrameSize در کدک qsv بازنشانی شود. .IP \fIgop_size\fR 4 .IX Item "gop_size" این مقدار را تغییر دهید تا پیکربندی gop در کدک qsv بازنشانی شود. .IP \fIint_ref_type\fR 4 .IX Item "int_ref_type" .PD 0 .IP \fIint_ref_cycle_size\fR 4 .IX Item "int_ref_cycle_size" .IP \fIint_ref_qp_delta\fR 4 .IX Item "int_ref_qp_delta" .IP \fIint_ref_cycle_dist\fR 4 .IX Item "int_ref_cycle_dist" .PD در h264_qsv و hevc_qsv پشتیبانی می‌شود. این مقادیر را تغییر دهید تا پیکربندی نوسازی درون‌فریمی (Intra Refresh) در کدک qsv بازنشانی شود. .IP \fIqmax\fR 4 .IX Item "qmax" .PD 0 .IP \fIqmin\fR 4 .IX Item "qmin" .IP \fImax_qp_i\fR 4 .IX Item "max_qp_i" .IP \fImin_qp_i\fR 4 .IX Item "min_qp_i" .IP \fImax_qp_p\fR 4 .IX Item "max_qp_p" .IP \fImin_qp_p\fR 4 .IX Item "min_qp_p" .IP \fImax_qp_b\fR 4 .IX Item "max_qp_b" .IP \fImin_qp_b\fR 4 .IX Item "min_qp_b" .PD در h264_qsv پشتیبانی می‌شود. این مقادیر را تغییر دهید تا پیکربندی max/min qp در کدک qsv بازنشانی شود. .IP \fIlow_delay_brc\fR 4 .IX Item "low_delay_brc" در h264_qsv، hevc_qsv و av1_qsv پشتیبانی می‌شود. این مقدار را تغییر دهید تا پیکربندی low_delay_brc در کدک qsv بازنشانی شود. .IP \fIframerate\fR 4 .IX Item "framerate" این مقدار را تغییر دهید تا پیکربندی framerate در کدک qsv بازنشانی شود. .IP \fIbit_rate\fR 4 .IX Item "bit_rate" .PD 0 .IP \fIrc_buffer_size\fR 4 .IX Item "rc_buffer_size" .IP \fIrc_initial_buffer_occupancy\fR 4 .IX Item "rc_initial_buffer_occupancy" .IP \fIrc_max_rate\fR 4 .IX Item "rc_max_rate" .PD این مقادیر را تغییر دهید تا پیکربندی کنترل نرخ بیت در کدک qsv بازنشانی شود. .IP \fIpic_timing_sei\fR 4 .IX Item "pic_timing_sei" در h264_qsv و hevc_qsv پشتیبانی می‌شود. این مقدار را تغییر دهید تا پیکربندی pic_timing_sei در کدک qsv بازنشانی شود. .IP \fIqsv_params\fR 4 .IX Item "qsv_params" تنظیم پارامترهای انکودر QSV به‌صورت فهرستی از جفت‌های کلید\-مقدار جداشده با دونقطه. .Sp مقدار \fBqsv_params\fR باید به‌صورت \f(CW\*(C`key1=value1:key2=value2:...\*(C'\fR قالب‌بندی شود. .Sp این پارامترها با استفاده از تابع MFXSetParameter مستقیماً به انکودر زیرین Intel Quick Sync Video (QSV) منتقل می‌شوند. .Sp نمونه: .Sp .Vb 1 \& ffmpeg \-i input.mp4 \-c:v h264_qsv \-qsv_params "CodingOption1=1:CodingOption2=2" output.mp4 .Ve .Sp این گزینه امکان کنترل دقیق بر تنظیمات گوناگون اختصاصی انکودر ارائه‌شده توسط انکودر QSV را فراهم می‌سازد. .PP \fIگزینه‌های H264 (H264 options)\fR .IX Subsection "H264 options" .PP این گزینه‌ها توسط h264_qsv استفاده می‌شوند .IP \fIextbrc\fR 4 .IX Item "extbrc" کنترل نرخ بیت توسعه‌یافته. .IP \fIrecovery_point_sei\fR 4 .IX Item "recovery_point_sei" این فلگ را تنظیم کنید تا پیام SEI نقطه بازیابی در ابتدای هر چرخه نوسازی درون‌فریمی درج شود. .IP \fIrdo\fR 4 .IX Item "rdo" فعال‌سازی بهینه‌سازی اعوجاج نرخ. .IP \fImax_frame_size\fR 4 .IX Item "max_frame_size" حداکثر اندازه فریم انکودشده به بایت. .IP \fImax_frame_size_i\fR 4 .IX Item "max_frame_size_i" حداکثر اندازه فریم انکودشده برای فریم‌های I به بایت. اگر این مقدار بزرگ‌تر از صفر تنظیم شود، برای فریم‌های I مقدار تنظیم‌شده توسط max_frame_size نادیده گرفته می‌شود. .IP \fImax_frame_size_p\fR 4 .IX Item "max_frame_size_p" حداکثر اندازه فریم انکودشده برای فریم‌های P به بایت. اگر این مقدار بزرگ‌تر از صفر تنظیم شود، برای فریم‌های P مقدار تنظیم‌شده توسط max_frame_size نادیده گرفته می‌شود. .IP \fImax_slice_size\fR 4 .IX Item "max_slice_size" حداکثر اندازه برش انکودشده به بایت. .IP \fIbitrate_limit\fR 4 .IX Item "bitrate_limit" تغییر وضعیت محدودیت‌های نرخ بیت. نرخ بیت را طوری تغییر می‌دهد که در بازه تحمیل‌شده توسط انکودر QSV قرار گیرد. خاموش کردن این فلگ ممکن است منجر به نقض انطباق با HRD شود. توجه داشته باشید که تعیین نرخ بیت پایین‌تر از بازه انکودر QSV ممکن است تأثیر چشمگیری بر کیفیت بگذارد. در صورت روشن بودن، این گزینه در حالت‌های غیر CQP اعمال می‌شود: اگر نرخ بیت در بازه تحمیل‌شده توسط انکودر QSV نباشد، تغییر داده می‌شود تا در آن بازه قرار گیرد. .IP \fImbbrc\fR 4 .IX Item "mbbrc" تنظیم این فلگ، کنترل نرخ بیت در سطح مکروبلوک را فعال می‌کند که عموماً کیفیت بصری ذهنی را بهبود می‌بخشد. فعال‌سازی این فلگ ممکن است اثر منفی بر کارایی و معیارهای سنجش کیفیت بصری عینی بگذارد. .IP \fIlow_delay_brc\fR 4 .IX Item "low_delay_brc" تنظیم این فلگ ویژگی LowDelayBRC را در افزونه qsv روشن یا خاموش می‌کند، که کنترل دقیق‌تری بر نرخ بیت ارائه می‌دهد تا نوسانات اندازه فریم به فریم جریان بیتی به حداقل برسد. مقادیر: \-1\-پیش‌فرض 0\-خاموش 1\-روشن .IP \fIadaptive_i\fR 4 .IX Item "adaptive_i" این فلگ درج فریم‌های I توسط انکودر QSV را کنترل می‌کند. این فلگ را روشن (ON) کنید تا امکان تغییر نوع فریم از P و B به I فراهم شود. .IP \fIadaptive_b\fR 4 .IX Item "adaptive_b" این فلگ تغییر نوع فریم از B به P را کنترل می‌کند. .IP \fIp_strategy\fR 4 .IX Item "p_strategy" فعال‌سازی هرم P: مقدار 0\-پیش‌فرض 1\-ساده 2\-هرمی (bf باید روی 0 تنظیم شود). .IP \fIb_strategy\fR 4 .IX Item "b_strategy" این گزینه استفاده از فریم‌های B را به‌عنوان مرجع کنترل می‌کند. .IP \fIdblk_idc\fR 4 .IX Item "dblk_idc" این گزینه فیلتر فشرده‌زدایی (deblocking) را غیرفعال می‌کند. مقداری در بازه 0~2 دارد. .IP \fIcavlc\fR 4 .IX Item "cavlc" در صورت تنظیم، از CAVLC استفاده می‌شود؛ در صورت عدم تنظیم، از CABAC برای انکود استفاده می‌شود. .IP \fIvcm\fR 4 .IX Item "vcm" حالت ویدیو کنفرانس، لطفاً بخش روش کنترل نرخ را مشاهده کنید. .IP \fIidr_interval\fR 4 .IX Item "idr_interval" فاصله (بر حسب فریم‌های I) میان فریم‌های IDR. .IP \fIpic_timing_sei\fR 4 .IX Item "pic_timing_sei" درج SEI زمان‌بندی تصویر با عنصر نحوی pic_struct_syntax. .IP \fIsingle_sei_nal_unit\fR 4 .IX Item "single_sei_nal_unit" قرار دادن تمام پیام‌های SEI در یک واحد NALU منفرد. .IP \fImax_dec_frame_buffering\fR 4 .IX Item "max_dec_frame_buffering" حداکثر تعداد فریم‌های بافرشده در DPB. .IP \fIlook_ahead\fR 4 .IX Item "look_ahead" استفاده از الگوریتم VBR با نگاه به جلو. .IP \fIlook_ahead_depth\fR 4 .IX Item "look_ahead_depth" عمق نگاه به جلو بر حسب تعداد فریم‌ها. .IP \fIlook_ahead_downsampling\fR 4 .IX Item "look_ahead_downsampling" ضریب کاهش مقیاس فریم‌های ذخیره‌شده برای تحلیل نگاه به جلو. .RS 4 .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBauto\fR 4 .IX Item "auto" .IP \fBoff\fR 4 .IX Item "off" .IP \fB2x\fR 4 .IX Item "2x" .IP \fB4x\fR 4 .IX Item "4x" .PD .RE .RS 4 .RE .IP \fIint_ref_type\fR 4 .IX Item "int_ref_type" مشخص‌کننده نوع نوسازی درون‌فریمی (intra refresh). هدف اصلی نوسازی درون‌فریمی بهبود پایداری در برابر خطا بدون تأثیر چشمگیر بر اندازه جریان بیتی انکودشده ناشی از فریم‌های I است. انکودر SDK با انکود بخشی از هر فریم در چرخه نوسازی با استفاده از MBهای درون‌فریمی به این مهم دست می‌یابد. مقدار \fInone\fR به معنای عدم نوسازی است. مقدار \fIvertical\fR به معنای نوسازی عمودی بر اساس ستون‌های MBها است. مقدار \fIhorizontal\fR به معنای نوسازی افقی بر اساس سطرهای MBها است. مقدار \fIslice\fR به معنای نوسازی افقی بر اساس برش‌ها بدون همپوشانی است. در حالت \fIslice\fR، مقدار in_ref_cycle_size نادیده گرفته می‌شود. برای فعال‌سازی نوسازی درون‌فریمی، فریم B باید روی 0 تنظیم شود. .IP \fIint_ref_cycle_size\fR 4 .IX Item "int_ref_cycle_size" تعداد تصاویر درون چرخه نوسازی را با شروع از ۲ مشخص می‌کند. مقادیر ۰ و ۱ نامعتبر هستند. .IP \fIint_ref_qp_delta\fR 4 .IX Item "int_ref_qp_delta" اختلاف QP را برای MBهای درون‌فریمی درج‌شده مشخص می‌کند. اگر عمق بیت انکود هدف برای نمونه‌های روشنایی ۸ باشد، این یک مقدار علامت‌دار در بازه [\-51, 51] است و این بازه برای عمق بیت ۱۰ برابر [\-63, 63] و برای عمق بیت ۱۲ برابر [\-75, 75] خواهد بود. .IP \fIint_ref_cycle_dist\fR 4 .IX Item "int_ref_cycle_dist" فاصله میان آغاز چرخه‌های نوسازی درون‌فریمی بر حسب فریم. .IP \fIprofile\fR 4 .IX Item "profile" .RS 4 .PD 0 .IP \fBunknown\fR 4 .IX Item "unknown" .IP \fBbaseline\fR 4 .IX Item "baseline" .IP \fBmain\fR 4 .IX Item "main" .IP \fBhigh\fR 4 .IX Item "high" .PD .RE .RS 4 .RE .IP \fIa53cc\fR 4 .IX Item "a53cc" استفاده از زیرنویس‌های بسته‌بندی‌شده A53 Closed Captions (در صورت موجود بودن). .IP \fIaud\fR 4 .IX Item "aud" درج NAL جداکننده واحد دسترسی. .IP \fImfmode\fR 4 .IX Item "mfmode" حالت چندفریمی (Multi\-Frame Mode). .RS 4 .IP \fBoff\fR 4 .IX Item "off" .PD 0 .IP \fBauto\fR 4 .IX Item "auto" .PD .RE .RS 4 .RE .IP \fIrepeat_pps\fR 4 .IX Item "repeat_pps" تکرار pps به‌ازای هر فریم. .IP \fImax_qp_i\fR 4 .IX Item "max_qp_i" حداکثر مقیاس کوانتیایزر ویدیو برای فریم I. .IP \fImin_qp_i\fR 4 .IX Item "min_qp_i" حداقل مقیاس کوانتیایزر ویدیو برای فریم I. .IP \fImax_qp_p\fR 4 .IX Item "max_qp_p" حداکثر مقیاس کوانتیایزر ویدیو برای فریم P. .IP \fImin_qp_p\fR 4 .IX Item "min_qp_p" حداقل مقیاس کوانتیایزر ویدیو برای فریم P. .IP \fImax_qp_b\fR 4 .IX Item "max_qp_b" حداکثر مقیاس کوانتیایزر ویدیو برای فریم B. .IP \fImin_qp_b\fR 4 .IX Item "min_qp_b" حداقل مقیاس کوانتیایزر ویدیو برای فریم B. .IP \fIscenario\fR 4 .IX Item "scenario" ارائه یک راهنمایی به انکودر درباره سناریوی نشست انکود. .RS 4 .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBdisplayremoting\fR 4 .IX Item "displayremoting" .IP \fBvideoconference\fR 4 .IX Item "videoconference" .IP \fBarchive\fR 4 .IX Item "archive" .IP \fBlivestreaming\fR 4 .IX Item "livestreaming" .IP \fBcameracapture\fR 4 .IX Item "cameracapture" .IP \fBvideosurveillance\fR 4 .IX Item "videosurveillance" .IP \fBgamestreaming\fR 4 .IX Item "gamestreaming" .IP \fBremotegaming\fR 4 .IX Item "remotegaming" .PD .RE .RS 4 .RE .IP \fIavbr_accuracy\fR 4 .IX Item "avbr_accuracy" دقت کنترل نرخ AVBR (واحد یک‌دهم درصد). .IP \fIavbr_convergence\fR 4 .IX Item "avbr_convergence" همگرایی کنترل نرخ AVBR (واحد ۱۰۰ فریم) .Sp پارامترهای \fIavbr_accuracy\fR و \fIavbr_convergence\fR برای الگوریتم کنترل نرخ بیت متغیر میانگین (AVBR) هستند. این الگوریتم بر کیفیت کلی انکود تمرکز دارد در حالی که نرخ بیت مشخص‌شده یعنی \&\fItarget_bitrate\fR را در بازه دقت \fIavbr_accuracy\fR، پس از دوره \fIavbr_Convergence\fR تأمین می‌کند. این روش از HRD پیروی نمی‌کند و نرخ بیت لحظه‌ای محدود یا اضافه نمی‌شود. .IP \fIskip_frame\fR 4 .IX Item "skip_frame" استفاده از متادیتای "qsv_skip_frame" به‌ازای هر فریم برای پرش از فریم هنگام انکود. این گزینه نحوه استفاده از این متادیتا را تعریف می‌کند. .RS 4 .IP \fBno_skip\fR 4 .IX Item "no_skip" پرش فریم غیرفعال است. .IP \fBinsert_dummy\fR 4 .IX Item "insert_dummy" انکودر فریمی را در جریان بیتی درج می‌کند که تمام مکروبلوک‌های آن به‌صورت ردشده (skipped) انکود شده‌اند. .IP \fBinsert_nothing\fR 4 .IX Item "insert_nothing" مشابه insert_dummy، اما انکودر هیچ‌چیزی در جریان بیتی درج نمی‌کند. فریم‌های ردشده همچنان در brc استفاده می‌شوند؛ برای نمونه، gop همچنان شامل فریم‌های ردشده است و فریم‌های بعد از فریم‌های ردشده اندازه بزرگ‌تری خواهند داشت. .IP \fBbrc_only\fR 4 .IX Item "brc_only" متادیتای skip_frame تعداد فریم‌های از دست رفته پیش از فریم فعلی را نشان می‌دهد. .RE .RS 4 .RE .PP \fIگزینه‌های HEVC (HEVC Options)\fR .IX Subsection "HEVC Options" .PP این گزینه‌ها توسط hevc_qsv استفاده می‌شوند .IP \fIextbrc\fR 4 .IX Item "extbrc" کنترل نرخ بیت توسعه‌یافته. .IP \fIrecovery_point_sei\fR 4 .IX Item "recovery_point_sei" این فلگ را تنظیم کنید تا پیام SEI نقطه بازیابی در ابتدای هر چرخه نوسازی درون‌فریمی درج شود. .IP \fIrdo\fR 4 .IX Item "rdo" فعال‌سازی بهینه‌سازی اعوجاج نرخ. .IP \fImax_frame_size\fR 4 .IX Item "max_frame_size" حداکثر اندازه فریم انکودشده به بایت. .IP \fImax_frame_size_i\fR 4 .IX Item "max_frame_size_i" حداکثر اندازه فریم انکودشده برای فریم‌های I به بایت. اگر این مقدار بزرگ‌تر از صفر تنظیم شود، برای فریم‌های I مقدار تنظیم‌شده توسط max_frame_size نادیده گرفته می‌شود. .IP \fImax_frame_size_p\fR 4 .IX Item "max_frame_size_p" حداکثر اندازه فریم انکودشده برای فریم‌های P به بایت. اگر این مقدار بزرگ‌تر از صفر تنظیم شود، برای فریم‌های P مقدار تنظیم‌شده توسط max_frame_size نادیده گرفته می‌شود. .IP \fImax_slice_size\fR 4 .IX Item "max_slice_size" حداکثر اندازه برش انکودشده به بایت. .IP \fImbbrc\fR 4 .IX Item "mbbrc" تنظیم این فلگ، کنترل نرخ بیت در سطح مکروبلوک را فعال می‌کند که عموماً کیفیت بصری ذهنی را بهبود می‌بخشد. فعال‌سازی این فلگ ممکن است اثر منفی بر کارایی و معیارهای سنجش کیفیت بصری عینی بگذارد. .IP \fIlow_delay_brc\fR 4 .IX Item "low_delay_brc" تنظیم این فلگ ویژگی LowDelayBRC را در افزونه qsv روشن یا خاموش می‌کند، که کنترل دقیق‌تری بر نرخ بیت ارائه می‌دهد تا نوسانات اندازه فریم به فریم جریان بیتی به حداقل برسد. مقادیر: \-1\-پیش‌فرض 0\-خاموش 1\-روشن .IP \fIadaptive_i\fR 4 .IX Item "adaptive_i" این فلگ درج فریم‌های I توسط انکودر QSV را کنترل می‌کند. این فلگ را روشن (ON) کنید تا امکان تغییر نوع فریم از P و B به I فراهم شود. .IP \fIadaptive_b\fR 4 .IX Item "adaptive_b" این فلگ تغییر نوع فریم از B به P را کنترل می‌کند. .IP \fIp_strategy\fR 4 .IX Item "p_strategy" فعال‌سازی هرم P: مقدار 0\-پیش‌فرض 1\-ساده 2\-هرمی (bf باید روی 0 تنظیم شود). .IP \fIb_strategy\fR 4 .IX Item "b_strategy" این گزینه استفاده از فریم‌های B را به‌عنوان مرجع کنترل می‌کند. .IP \fIdblk_idc\fR 4 .IX Item "dblk_idc" این گزینه فیلتر فشرده‌زدایی (deblocking) را غیرفعال می‌کند. مقداری در بازه 0~2 دارد. .IP \fIidr_interval\fR 4 .IX Item "idr_interval" فاصله (بر حسب فریم‌های I) میان فریم‌های IDR. .RS 4 .IP \fBbegin_only\fR 4 .IX Item "begin_only" خروجی دادن یک فریم IDR تنها در ابتدای جریان. .RE .RS 4 .RE .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) هگزادسیمال افزونه‌ها که با «:» جدا شده‌اند جهت بارگذاری در یک نشست داخلی. .IP \fIlook_ahead_depth\fR 4 .IX Item "look_ahead_depth" عمق نگاه به جلو بر حسب تعداد فریم، در دسترس هنگام فعال بودن گزینه extbrc. .IP \fIprofile\fR 4 .IX Item "profile" تنظیم پروفایل انکود (گزینه scc نیازمند libmfx >= 1.32 است). .RS 4 .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBmain\fR 4 .IX Item "main" .IP \fBmain10\fR 4 .IX Item "main10" .IP \fBmainsp\fR 4 .IX Item "mainsp" .IP \fBrext\fR 4 .IX Item "rext" .IP \fBscc\fR 4 .IX Item "scc" .PD .RE .RS 4 .RE .IP \fItier\fR 4 .IX Item "tier" تنظیم رده انکود (تنها سطح level >= 4 می‌تواند از رده بالا high tier پشتیبانی کند). این گزینه تنها زمانی اعمال می‌شود که گزینه level مشخص شده باشد. .RS 4 .IP \fBmain\fR 4 .IX Item "main" .PD 0 .IP \fBhigh\fR 4 .IX Item "high" .PD .RE .RS 4 .RE .IP \fIgpb\fR 4 .IX Item "gpb" مقدار 1: GPB (فریم تعمیم‌یافته P/B) .Sp مقدار 0: فریم معمولی P. .IP \fItile_cols\fR 4 .IX Item "tile_cols" تعداد ستون‌ها برای انکود کاشی‌بندی‌شده (tiled encoding). .IP \fItile_rows\fR 4 .IX Item "tile_rows" تعداد سطرها برای انکود کاشی‌بندی‌شده. .IP \fIaud\fR 4 .IX Item "aud" درج NAL جداکننده واحد دسترسی. .IP \fIpic_timing_sei\fR 4 .IX Item "pic_timing_sei" درج SEI زمان‌بندی تصویر با عنصر نحوی pic_struct_syntax. .IP \fItransform_skip\fR 4 .IX Item "transform_skip" این گزینه را روی ON قرار دهید تا transformskip فعال شود. این ویژگی روی پلتفرم‌های هم‌رده یا جدیدتر از ICL پشتیبانی می‌شود. .IP \fIint_ref_type\fR 4 .IX Item "int_ref_type" مشخص‌کننده نوع نوسازی درون‌فریمی (intra refresh). هدف اصلی نوسازی درون‌فریمی بهبود پایداری در برابر خطا بدون تأثیر چشمگیر بر اندازه جریان بیتی انکودشده ناشی از فریم‌های I است. انکودر SDK با انکود بخشی از هر فریم در چرخه نوسازی با استفاده از MBهای درون‌فریمی به این مهم دست می‌یابد. مقدار \fInone\fR به معنای عدم نوسازی است. مقدار \fIvertical\fR به معنای نوسازی عمودی بر اساس ستون‌های MBها است. مقدار \fIhorizontal\fR به معنای نوسازی افقی بر اساس سطرهای MBها است. مقدار \fIslice\fR به معنای نوسازی افقی بر اساس برش‌ها بدون همپوشانی است. در حالت \fIslice\fR، مقدار in_ref_cycle_size نادیده گرفته می‌شود. برای فعال‌سازی نوسازی درون‌فریمی، فریم B باید روی 0 تنظیم شود. .IP \fIint_ref_cycle_size\fR 4 .IX Item "int_ref_cycle_size" تعداد تصاویر درون چرخه نوسازی را با شروع از ۲ مشخص می‌کند. مقادیر ۰ و ۱ نامعتبر هستند. .IP \fIint_ref_qp_delta\fR 4 .IX Item "int_ref_qp_delta" اختلاف QP را برای MBهای درون‌فریمی درج‌شده مشخص می‌کند. اگر عمق بیت انکود هدف برای نمونه‌های روشنایی ۸ باشد، این یک مقدار علامت‌دار در بازه [\-51, 51] است و این بازه برای عمق بیت ۱۰ برابر [\-63, 63] و برای عمق بیت ۱۲ برابر [\-75, 75] خواهد بود. .IP \fIint_ref_cycle_dist\fR 4 .IX Item "int_ref_cycle_dist" فاصله میان آغاز چرخه‌های نوسازی درون‌فریمی بر حسب فریم. .IP \fImax_qp_i\fR 4 .IX Item "max_qp_i" حداکثر مقیاس کوانتیایزر ویدیو برای فریم I. .IP \fImin_qp_i\fR 4 .IX Item "min_qp_i" حداقل مقیاس کوانتیایزر ویدیو برای فریم I. .IP \fImax_qp_p\fR 4 .IX Item "max_qp_p" حداکثر مقیاس کوانتیایزر ویدیو برای فریم P. .IP \fImin_qp_p\fR 4 .IX Item "min_qp_p" حداقل مقیاس کوانتیایزر ویدیو برای فریم P. .IP \fImax_qp_b\fR 4 .IX Item "max_qp_b" حداکثر مقیاس کوانتیایزر ویدیو برای فریم B. .IP \fImin_qp_b\fR 4 .IX Item "min_qp_b" حداقل مقیاس کوانتیایزر ویدیو برای فریم B. .IP \fIscenario\fR 4 .IX Item "scenario" ارائه یک راهنمایی به انکودر درباره سناریوی نشست انکود. .RS 4 .IP \fBunknown\fR 4 .IX Item "unknown" .PD 0 .IP \fBdisplayremoting\fR 4 .IX Item "displayremoting" .IP \fBvideoconference\fR 4 .IX Item "videoconference" .IP \fBarchive\fR 4 .IX Item "archive" .IP \fBlivestreaming\fR 4 .IX Item "livestreaming" .IP \fBcameracapture\fR 4 .IX Item "cameracapture" .IP \fBvideosurveillance\fR 4 .IX Item "videosurveillance" .IP \fBgamestreaming\fR 4 .IX Item "gamestreaming" .IP \fBremotegaming\fR 4 .IX Item "remotegaming" .PD .RE .RS 4 .RE .IP \fIavbr_accuracy\fR 4 .IX Item "avbr_accuracy" دقت کنترل نرخ AVBR (واحد یک‌دهم درصد). .IP \fIavbr_convergence\fR 4 .IX Item "avbr_convergence" همگرایی کنترل نرخ AVBR (واحد ۱۰۰ فریم) .Sp پارامترهای \fIavbr_accuracy\fR و \fIavbr_convergence\fR برای الگوریتم کنترل نرخ بیت متغیر میانگین (AVBR) هستند. این الگوریتم بر کیفیت کلی انکود تمرکز دارد در حالی که نرخ بیت مشخص‌شده یعنی \&\fItarget_bitrate\fR را در بازه دقت \fIavbr_accuracy\fR، پس از دوره \fIavbr_Convergence\fR تأمین می‌کند. این روش از HRD پیروی نمی‌کند و نرخ بیت لحظه‌ای محدود یا اضافه نمی‌شود. .IP \fIskip_frame\fR 4 .IX Item "skip_frame" استفاده از متادیتای "qsv_skip_frame" به‌ازای هر فریم برای پرش از فریم هنگام انکود. این گزینه نحوه استفاده از این متادیتا را تعریف می‌کند. .RS 4 .IP \fBno_skip\fR 4 .IX Item "no_skip" پرش فریم غیرفعال است. .IP \fBinsert_dummy\fR 4 .IX Item "insert_dummy" انکودر فریمی را در جریان بیتی درج می‌کند که تمام مکروبلوک‌های آن به‌صورت ردشده (skipped) انکود شده‌اند. .IP \fBinsert_nothing\fR 4 .IX Item "insert_nothing" مشابه insert_dummy، اما انکودر هیچ‌چیزی در جریان بیتی درج نمی‌کند. فریم‌های ردشده همچنان در brc استفاده می‌شوند؛ برای نمونه، gop همچنان شامل فریم‌های ردشده است و فریم‌های بعد از فریم‌های ردشده اندازه بزرگ‌تری خواهند داشت. .IP \fBbrc_only\fR 4 .IX Item "brc_only" متادیتای skip_frame تعداد فریم‌های از دست رفته پیش از فریم فعلی را نشان می‌دهد. .RE .RS 4 .RE .PP \fIگزینه‌های MPEG2 (MPEG2 Options)\fR .IX Subsection "MPEG2 Options" .PP این گزینه‌ها توسط mpeg2_qsv استفاده می‌شوند .IP \fIprofile\fR 4 .IX Item "profile" .RS 4 .PD 0 .IP \fBunknown\fR 4 .IX Item "unknown" .IP \fBsimple\fR 4 .IX Item "simple" .IP \fBmain\fR 4 .IX Item "main" .IP \fBhigh\fR 4 .IX Item "high" .PD .RE .RS 4 .RE .PP \fIگزینه‌های VP9 (VP9 Options)\fR .IX Subsection "VP9 Options" .PP این گزینه‌ها توسط vp9_qsv استفاده می‌شوند .IP \fIprofile\fR 4 .IX Item "profile" .RS 4 .PD 0 .IP \fBunknown\fR 4 .IX Item "unknown" .IP \fBprofile0\fR 4 .IX Item "profile0" .IP \fBprofile1\fR 4 .IX Item "profile1" .IP \fBprofile2\fR 4 .IX Item "profile2" .IP \fBprofile3\fR 4 .IX Item "profile3" .PD .RE .RS 4 .RE .IP \fItile_cols\fR 4 .IX Item "tile_cols" تعداد ستون‌ها برای انکود کاشی‌بندی‌شده (نیازمند libmfx >= 1.29). .IP \fItile_rows\fR 4 .IX Item "tile_rows" تعداد سطرها برای انکود کاشی‌بندی‌شده (نیازمند libmfx >= 1.29). .PP \fIگزینه‌های AV1 (AV1 Options)\fR .IX Subsection "AV1 Options" .PP این گزینه‌ها توسط av1_qsv استفاده می‌شوند (نیازمند libvpl). .IP \fIprofile\fR 4 .IX Item "profile" .RS 4 .PD 0 .IP \fBunknown\fR 4 .IX Item "unknown" .IP \fBmain\fR 4 .IX Item "main" .PD .RE .RS 4 .RE .IP \fItile_cols\fR 4 .IX Item "tile_cols" تعداد ستون‌ها برای انکود کاشی‌بندی‌شده. .IP \fItile_rows\fR 4 .IX Item "tile_rows" تعداد سطرها برای انکود کاشی‌بندی‌شده. .IP \fIadaptive_i\fR 4 .IX Item "adaptive_i" این فلگ درج فریم‌های I توسط انکودر QSV را کنترل می‌کند. این فلگ را روشن (ON) کنید تا امکان تغییر نوع فریم از P و B به I فراهم شود. .IP \fIadaptive_b\fR 4 .IX Item "adaptive_b" این فلگ تغییر نوع فریم از B به P را کنترل می‌کند. .IP \fIb_strategy\fR 4 .IX Item "b_strategy" این گزینه استفاده از فریم‌های B را به‌عنوان مرجع کنترل می‌کند. .IP \fIextbrc\fR 4 .IX Item "extbrc" کنترل نرخ بیت توسعه‌یافته. .IP \fIlook_ahead_depth\fR 4 .IX Item "look_ahead_depth" عمق نگاه به جلو بر حسب تعداد فریم، در دسترس هنگام فعال بودن گزینه extbrc. .IP \fIlow_delay_brc\fR 4 .IX Item "low_delay_brc" تنظیم این فلگ ویژگی LowDelayBRC را در افزونه qsv روشن یا خاموش می‌کند، که کنترل دقیق‌تری بر نرخ بیت ارائه می‌دهد تا نوسانات اندازه فریم به فریم جریان بیتی به حداقل برسد. مقادیر: \-1\-پیش‌فرض 0\-خاموش 1\-روشن .IP \fImax_frame_size\fR 4 .IX Item "max_frame_size" تنظیم حداکثر اندازه مجاز به بایت برای هر فریم. اگر اندازه فریم از این محدودیت فراتر رود، انکودر مقدار QP را برای کنترل اندازه فریم تنظیم خواهد کرد. در حالت کنترل نرخ CQP نامعتبر است. .IP \fImax_frame_size_i\fR 4 .IX Item "max_frame_size_i" حداکثر اندازه فریم انکودشده برای فریم‌های I به بایت. اگر این مقدار بزرگ‌تر از صفر تنظیم شود، برای فریم‌های I مقدار تنظیم‌شده توسط max_frame_size نادیده گرفته می‌شود. .IP \fImax_frame_size_p\fR 4 .IX Item "max_frame_size_p" حداکثر اندازه فریم انکودشده برای فریم‌های P به بایت. اگر این مقدار بزرگ‌تر از صفر تنظیم شود، برای فریم‌های P مقدار تنظیم‌شده توسط max_frame_size نادیده گرفته می‌شود. .SS snow .IX Subsection "snow" \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBiterative_dia_size\fR 4 .IX Item "iterative_dia_size" اندازه لوزی (dia size) برای تخمین حرکت تکرارشونده. .SS "اینکودرهای VAAPI (VAAPI encoders)" .IX Subsection "VAAPI encoders" پوشش‌دهنده‌هایی برای اینکودرهای سخت‌افزاری قابل دسترسی از طریق VAAPI. .PP این اینکودرها ورودی را تنها در سطوح سخت‌افزاری VAAPI می‌پذیرند. اگر ورودی شما در فریم‌های نرم‌افزاری است، از فیلتر \fBhwupload\fR برای بارگذاری آن‌ها روی GPU استفاده کنید. .PP گزینه‌های استاندارد libavcodec زیر استفاده می‌شوند: .IP \(bu 4 \&\fBg\fR / \fBgop_size\fR .IP \(bu 4 \&\fBbf\fR / \fBmax_b_frames\fR .IP \(bu 4 \&\fBprofile\fR .Sp در صورت عدم تنظیم، این مقدار به صورت خودکار از فرمت فریم‌های ورودی و پروفایل‌های پشتیبانی‌شده توسط درایور تعیین می‌شود. .IP \(bu 4 \&\fBlevel\fR .IP \(bu 4 \&\fBb\fR / \fBbit_rate\fR .IP \(bu 4 \&\fBmaxrate\fR / \fBrc_max_rate\fR .IP \(bu 4 \&\fBbufsize\fR / \fBrc_buffer_size\fR .IP \(bu 4 \&\fBrc_init_occupancy\fR / \fBrc_initial_buffer_occupancy\fR .IP \(bu 4 \&\fBcompression_level\fR .Sp موازنه سرعت / کیفیت: مقادیر بالاتر سریع‌تر / کیفیت پایین‌تر هستند. .IP \(bu 4 \&\fBq\fR / \fBglobal_quality\fR .Sp موازنه حجم / کیفیت: مقادیر بالاتر حجم کمتر / کیفیت پایین‌تر هستند. .IP \(bu 4 \&\fBqmin\fR .IP \(bu 4 \&\fBqmax\fR .IP \(bu 4 \&\fBi_qfactor\fR / \fBi_quant_factor\fR .IP \(bu 4 \&\fBi_qoffset\fR / \fBi_quant_offset\fR .IP \(bu 4 \&\fBb_qfactor\fR / \fBb_quant_factor\fR .IP \(bu 4 \&\fBb_qoffset\fR / \fBb_quant_offset\fR .IP \(bu 4 \&\fBslices\fR .PP تمامی اینکودرها از گزینه‌های زیر پشتیبانی می‌کنند: .IP \fBlow_power\fR 4 .IX Item "low_power" برخی درایورها/پلتفرم‌ها اینکودر دومی برای برخی کدک‌ها با هدف مصرف توان کمتر نسبت به اینکودر پیش‌فرض ارائه می‌دهند؛ تنظیم این گزینه تلاش می‌کند از آن اینکودر استفاده کند. توجه داشته باشید که ممکن است مجموعه ویژگی‌های محدودتری را پشتیبانی کند، بنابراین ممکن است برخی گزینه‌های دیگر در این حالت در دسترس نباشند. .IP \fBidr_interval\fR 4 .IX Item "idr_interval" تنظیم تعداد فریم‌های درون‌تصویری (intra) عادی میان فریم‌های تازه‌سازی کامل (IDR) در حالت open\-GOP. فریم‌های intra همچنان IRAP هستند، اما هدرهای سراسری را شامل نمی‌شوند و ممکن است تصاویر آغازین غیرقابل رمزگشایی داشته باشند. .IP \fBb_depth\fR 4 .IX Item "b_depth" تنظیم عمق ارجاع فریم B. هنگامی که روی ۱ (پیش‌فرض) تنظیم شود، تمامی فریم‌های B تنها به فریم‌های P یا I ارجاع می‌دهند. با تنظیم مقادیر بزرگ‌تر، چندین لایه از فریم‌های B وجود خواهد داشت و فریم‌ها در هر لایه تنها به فریم‌های لایه‌های بالاتر ارجاع خواهند داد. .IP \fBasync_depth\fR 4 .IX Item "async_depth" حداکثر موازی‌سازی پردازش. این مقدار را برای بهبود عملکرد تک‌کاناله افزایش دهید. این گزینه در صورتی که درایور تابع vaSyncBuffer را پیاده‌سازی نکرده باشد کار نمی‌کند. لطفاً مطمئن شوید در صورت استفاده از مقدار بزرگ async_depth، به اندازه کافی hw_frames تخصیص داده شده باشد. .IP \fBmax_frame_size\fR 4 .IX Item "max_frame_size" تنظیم حداکثر اندازه مجاز بر حسب بایت برای هر فریم. اگر اندازه فریم از این محدودیت فراتر رود، اینکودر مقدار QP را برای کنترل اندازه فریم تنظیم می‌کند. در حالت کنترل نرخ CQP نامعتبر است. .IP \fBrc_mode\fR 4 .IX Item "rc_mode" تنظیم حالت کنترل نرخ مورد استفاده. یک درایور مشخص ممکن است تنها از زیرمجموعه‌ای از این حالت‌ها پشتیبانی کند. .Sp حالت‌های ممکن: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" انتخاب خودکار حالت بر اساس پشتیبانی درایور و سایر گزینه‌ها. این مقدار پیش‌فرض است. .IP \fBCQP\fR 4 .IX Item "CQP" کیفیت ثابت (Constant\-quality). .IP \fBCBR\fR 4 .IX Item "CBR" نرخ بیت ثابت (Constant\-bitrate). .IP \fBVBR\fR 4 .IX Item "VBR" نرخ بیت متغیر (Variable\-bitrate). .IP \fBICQ\fR 4 .IX Item "ICQ" کیفیت ثابت هوشمند (Intelligent constant\-quality). .IP \fBQVBR\fR 4 .IX Item "QVBR" نرخ بیت متغیر با کیفیت معین (Quality\-defined variable\-bitrate). .IP \fBAVBR\fR 4 .IX Item "AVBR" نرخ بیت متغیر میانگین (Average variable bitrate). .RE .RS 4 .RE .IP \fBblbrc\fR 4 .IX Item "blbrc" فعال‌سازی کنترل نرخ در سطح بلوک، که نرخ بیت متفاوتی را بلوک به بلوک اختصاص می‌دهد. برای حالت CQP نامعتبر است. .PP هر اینکودر گزینه‌های اختصاصی خود را نیز دارد: .IP \fBav1_vaapi\fR 4 .IX Item "av1_vaapi" گزینه \&\fBprofile\fR مقدار \fIseq_profile\fR را تنظیم می‌کند. گزینه \&\fBtier\fR مقدار \fIseq_tier\fR را تنظیم می‌کند. گزینه \&\fBlevel\fR مقدار \fIseq_level_idx\fR را تنظیم می‌کند. .RS 4 .IP \fBtiles\fR 4 .IX Item "tiles" تنظیم تعداد تایل‌ها (tiles) برای انکود ویدیوی ورودی، به صورت columns x rows. (پیش‌فرض auto است که به معنی استفاده از حداقل تعداد سطر/ستون تایل است). .IP \fBtile_groups\fR 4 .IX Item "tile_groups" تنظیم تعداد گروه‌های تایل. تمامی تایل‌ها تا حد امکان به طور یکنواخت در هر گروه تایل توزیع خواهند شد. (پیش‌فرض ۱ است). .RE .RS 4 .RE .IP \fBh264_vaapi\fR 4 .IX Item "h264_vaapi" گزینه \&\fBprofile\fR مقدار \fIprofile_idc\fR و \fIconstraint_set*_flag\fRها را تنظیم می‌کند. گزینه \&\fBlevel\fR مقدار \fIlevel_idc\fR را تنظیم می‌کند. .RS 4 .IP \fBcoder\fR 4 .IX Item "coder" تنظیم اینکودر انتروپی (پیش‌فرض \fIcabac\fR است). مقادیر ممکن: .RS 4 .IP \fBac\fR 4 .IX Item "ac" .PD 0 .IP \fBcabac\fR 4 .IX Item "cabac" .PD استفاده از CABAC. .IP \fBvlc\fR 4 .IX Item "vlc" .PD 0 .IP \fBcavlc\fR 4 .IX Item "cavlc" .PD استفاده از CAVLC. .RE .RS 4 .RE .IP \fBaud\fR 4 .IX Item "aud" گنجاندن جداکننده‌های واحد دسترسی (access unit delimiters) در استریم (به‌طور پیش‌فرض گنجانده نمی‌شود). .IP \fBsei\fR 4 .IX Item "sei" تنظیم انواع پیام‌های SEI برای گنجاندن. ترکیبی از مقادیر زیر: .RS 4 .IP \fBidentifier\fR 4 .IX Item "identifier" گنجاندن یک پیام \fIuser_data_unregistered\fR حاوی اطلاعاتی درباره اینکودر. .IP \fBtiming\fR 4 .IX Item "timing" گنجاندن پارامترهای زمان‌بندی تصویر (پیام‌های \fIbuffering_period\fR و \&\fIpic_timing\fR). .IP \fBrecovery_point\fR 4 .IX Item "recovery_point" گنجاندن نقاط بازیابی در صورت لزوم (پیام‌های \fIrecovery_point\fR). .RE .RS 4 .RE .RE .RS 4 .RE .IP \fBhevc_vaapi\fR 4 .IX Item "hevc_vaapi" گزینه‌های \&\fBprofile\fR و \fBlevel\fR به ترتیب مقادیر \&\fIgeneral_profile_idc\fR و \fIgeneral_level_idc\fR را تنظیم می‌کنند. .RS 4 .IP \fBaud\fR 4 .IX Item "aud" گنجاندن جداکننده‌های واحد دسترسی در استریم (به‌طور پیش‌فرض گنجانده نمی‌شود). .IP \fBtier\fR 4 .IX Item "tier" تنظیم \fIgeneral_tier_flag\fR. این ممکن است بر سطح (level) انتخاب‌شده برای استریم در صورتی که صراحتاً مشخص نشده باشد تأثیر بگذارد. .IP \fBsei\fR 4 .IX Item "sei" تنظیم انواع پیام‌های SEI برای گنجاندن. ترکیبی از مقادیر زیر: .RS 4 .IP \fBhdr\fR 4 .IX Item "hdr" گنجاندن متادیتای HDR در صورتی که فریم‌های ورودی آن را داشته باشند (پیام‌های \fImastering_display_colour_volume\fR و \fIcontent_light_level\fR). .RE .RS 4 .RE .IP \fBtiles\fR 4 .IX Item "tiles" تنظیم تعداد تایل‌ها برای انکود ویدیوی ورودی، به صورت columns x rows. مقادیر بزرگ‌تر موازی‌سازی بیشتری در هر دو بخش انکود و دیکود فراهم می‌کنند، اما ممکن است بهره‌وری انکود را کاهش دهند. .RE .RS 4 .RE .IP \fBmjpeg_vaapi\fR 4 .IX Item "mjpeg_vaapi" تنها از انکود خط پایه DCT پشتیبانی می‌شود. اینکودر همیشه از جدول‌های استاندارد کوانتیزاسیون و هافمن استفاده می‌کند \- گزینه \fBglobal_quality\fR جدول کوانتیزاسیون استاندارد را مقیاس‌بندی می‌کند (محدوده ۱\-۱۰۰). .Sp برای YUV، حالت‌های نمونه‌برداری فرعی 4:2:0، 4:2:2 و 4:4:4 پشتیبانی می‌شوند. RGB نیز پشتیبانی می‌شود و یک تصویر JPEG از نوع RGB ایجاد می‌کند. .RS 4 .IP \fBjfif\fR 4 .IX Item "jfif" گنجاندن هدر JFIF در هر فریم (به‌طور پیش‌فرض گنجانده نمی‌شود). .IP \fBhuffman\fR 4 .IX Item "huffman" گنجاندن جدول‌های استاندارد هافمن (به‌طور پیش‌فرض فعال است). غیرفعال کردن این گزینه چند صد بایت در هر فریم خروجی صرفه‌جویی می‌کند، اما ممکن است سازگاری با برخی دیکودرهای JPEG را که MJPEG را به طور کامل مدیریت نمی‌کنند از بین ببرد. .RE .RS 4 .RE .IP \fBmpeg2_vaapi\fR 4 .IX Item "mpeg2_vaapi" گزینه‌های \&\fBprofile\fR و \fBlevel\fR مقدار \fIprofile_and_level_indication\fR را تعیین می‌کنند. .IP \fBvp8_vaapi\fR 4 .IX Item "vp8_vaapi" فریم‌های B پشتیبانی نمی‌شوند. .Sp گزینه \&\fBglobal_quality\fR مقدار \fIq_idx\fR مورد استفاده برای فریم‌های غیرکلیدی را تنظیم می‌کند (محدوده ۰\-۱۲۷). .RS 4 .IP \fBloop_filter_level\fR 4 .IX Item "loop_filter_level" .PD 0 .IP \fBloop_filter_sharpness\fR 4 .IX Item "loop_filter_sharpness" .PD تنظیم دستی پارامترهای فیلتر حلقه (loop filter). .RE .RS 4 .RE .IP \fBvp9_vaapi\fR 4 .IX Item "vp9_vaapi" گزینه \&\fBglobal_quality\fR مقدار \fIq_idx\fR مورد استفاده برای فریم‌های P را تنظیم می‌کند (محدوده ۰\-۲۵۵). .RS 4 .IP \fBloop_filter_level\fR 4 .IX Item "loop_filter_level" .PD 0 .IP \fBloop_filter_sharpness\fR 4 .IX Item "loop_filter_sharpness" .PD تنظیم دستی پارامترهای فیلتر حلقه. .RE .RS 4 .Sp فریم‌های B پشتیبانی می‌شوند، اما استریم خروجی همواره به ترتیب انکود است تا ترتیب نمایش. در صورت فعال بودن فریم‌های B، ممکن است استفاده از فیلتر جریان بیت \fBvp9_raw_reorder\fR برای اصلاح استریم خروجی جهت نمایش فریم‌ها به ترتیب درست ضروری باشد. .Sp تنها فریم‌های عادی تولید می‌شوند \- ممکن است برای تولید استریمی قابل استفاده با همه دیکودرها، به فیلتر جریان بیت \fBvp9_superframe\fR نیاز باشد. .RE .SS vbn .IX Subsection "vbn" اینکودر تصویر باینری Vizrt (Vizrt Binary Image). .PP این فرمت توسط شرکت پخش Vizrt برای پخش سریع بافت‌ها (texture streaming) استفاده می‌شود. ویژگی‌های پیشرفته این فرمت از قبیل فشرده‌سازی LZW داده‌های بافت یا ایجاد mipmapها پشتیبانی نمی‌شوند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBformat\fR \fIstring\fR" 4 .IX Item "format string" فشرده‌سازی بافت مورد استفاده در فایل VBN را تنظیم می‌کند. می‌تواند \fIdxt1\fR، \&\fIdxt5\fR یا \fIraw\fR باشد. پیش‌فرض \fIdxt5\fR است. .SS vc2 .IX Subsection "vc2" فرمت SMPTE VC\-2 (پیش‌تر BBC Dirac Pro). این کدک در اصل برای پخش حرفه‌ای طراحی شده بود اما از آنجا که از yuv420، yuv422 و yuv444 در عمق‌های ۸ (محدوده محدود یا کامل)، ۱۰ یا ۱۲ بیت پشتیبانی می‌کند، برای سایر کارهایی که به سربار و فشرده‌سازی کم نیاز دارند (مانند ضبط صفحه‌نمایش) مناسب است. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBb\fR 4 .IX Item "b" نرخ بیت ویدیوی هدف را تنظیم می‌کند. معمولاً این مقدار حدود ۱:۶ نرخ بیت ویدیوی فشرده‌نشده است (مثلاً برای 1920x1080 50fps yuv422p10 حدود 400Mbps است). مقادیر بالاتر (نزدیک به نرخ بیت فشرده‌نشده) حالت فشرده‌سازی بدون اتلاف را فعال می‌کنند. .IP \fBfield_order\fR 4 .IX Item "field_order" کدگذاری میدانی را در صورت تنظیم برای ورودی‌های درهم‌بافته (interlaced) فعال می‌کند (مثلاً tt \- ابتدا فیلد بالایی). با محتوای درهم‌بافته باید فشرده‌سازی را افزایش دهد زیرا فیلدها را جدا کرده و هر یک را جداگانه انکود می‌کند. .IP \fBwavelet_depth\fR 4 .IX Item "wavelet_depth" تعداد کل تبدیل‌های موجک (wavelet transforms) را برای اعمال تعیین می‌کند، بین ۱ تا ۵ (پیش‌فرض). مقادیر کمتر فشرده‌سازی و کیفیت را کاهش می‌دهند. دیکودرهای ضعیف‌تر ممکن است قادر به مدیریت مقادیر \fBwavelet_depth\fR بیش از ۳ نباشند. .IP \fBwavelet_type\fR 4 .IX Item "wavelet_type" نوع تبدیل را تنظیم می‌کند. در حال حاضر تنها \fI5_3\fR (LeGall) و \fI9_7\fR (Deslauriers\-Dubuc) پیاده‌سازی شده‌اند که 9_7 فشرده‌سازی بهتری دارد و بنابراین پیش‌فرض است. .IP \fBslice_width\fR 4 .IX Item "slice_width" .PD 0 .IP \fBslice_height\fR 4 .IX Item "slice_height" .PD اندازه هر برش (slice) را تعیین می‌کند. مقادیر بزرگ‌تر به فشرده‌سازی بهتر منجر می‌شوند. برای سازگاری با سایر دیکودرهای محدودتر از \fBslice_width\fR برابر با ۳۲ و \fBslice_height\fR برابر با ۸ استفاده کنید. .IP \fBtolerance\fR 4 .IX Item "tolerance" میزان تلورانس کاهش نرخ سیستم کنترل نرخ را بر حسب درصد تعیین می‌کند. این کار برای جلوگیری از اجرای یک جستجوی سنگین است. .IP \fBqm\fR 4 .IX Item "qm" پیش‌تنظیم ماتریس کوانتیزاسیون مورد استفاده را به صورت پیش‌فرض یا زمانی که \fBwavelet_depth\fR روی ۵ تنظیم شده است تعیین می‌کند. .RS 4 .IP \- 4 \&\fIdefault\fR از ماتریس کوانتیزاسیون پیش‌فرض مشخصات استفاده می‌کند که با مقادیری برای سطح پنجم گسترش یافته است. این گزینه تعادل خوبی بین حفظ جزئیات و حذف آرتیفکت‌ها فراهم می‌کند. .IP \- 4 \&\fIflat\fR از یک ماتریس کوانتیزاسیون کاملاً صفرشده استفاده می‌کند. این گزینه PSNR را افزایش می‌دهد اما ممکن است ادراک بصری را کاهش دهد. در بنچمارک‌های غیرواقعی استفاده می‌شود. .IP \- 4 \&\fIcolor\fR جزئیات را کاهش می‌دهد اما در نرخ‌های بیت بسیار پایین تلاش می‌کند رنگ را حفظ کند. .RE .RS 4 .RE .SH "اینکودرهای زیرنویس (SUBTITLES ENCODERS)" .IX Header "SUBTITLES ENCODERS" .SS dvbsub .IX Subsection "dvbsub" این کدک فرمت زیرنویس بیتی (bitmap) را که در پخش و ضبط‌های DVB استفاده می‌شود، انکود می‌کند. بیت‌مپ‌ها معمولاً در یک کانتینر مانند MPEG\-TS به عنوان یک استریم مجزا جاسازی می‌شوند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP "\fBmin_bpp\fR \fIinteger (2, 4, or 8)\fR" 4 .IX Item "min_bpp integer (2, 4, or 8)" تنظیم حداقل مقدار بیت بر پیکسل (bits\-per\-pixel) برای جدول‌های تطبیق رنگ (color lookup tables) زیرنویس. .Sp سامانه DVB از جدول‌های تطبیق رنگ ۲، ۴ و ۸ بیت بر پیکسل پشتیبانی می‌کند. این گزینه امکان اجبار یک مقدار مشخص بیت بر پیکسل را صرف‌نظر از تعداد رنگ‌ها فراهم می‌سازد. از آنجا که همه پخش‌کننده‌ها از ۲ بیت بر پیکسل پشتیبانی نمی‌کنند یا آن را به درستی پشتیبانی نمی‌نمایند، این مقدار به طور پیش‌فرض روی ۴ تنظیم است. .SS dvdsub .IX Subsection "dvdsub" این کدک فرمت زیرنویس بیتی مورد استفاده در DVDها را انکود می‌کند. معمولاً آن‌ها در جفت‌فایل‌های VOBSUB ذخیره می‌شوند (*.idx + *.sub)، و همچنین می‌توانند در فایل‌های Matroska استفاده شوند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBpalette\fR 4 .IX Item "palette" مشخص کردن پالت سراسری مورد استفاده توسط بیت‌مپ‌ها. .Sp فرمت این گزینه رشته‌ای شامل ۱۶ عدد هگزادسیمال ۲۴ بیتی (بدون پیشوند 0x) است که با کاما از هم جدا شده‌اند، برای نمونه \f(CW\*(C`0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b\*(C'\fR. .IP \fBeven_rows_fix\fR 4 .IX Item "even_rows_fix" هنگامی که روی ۱ تنظیم شود، راهکاری جانبی را فعال می‌کند که تعداد سطرهای پیکسل را در تمام زیرنویس‌ها زوج می‌کند. این کار مشکلی را در برخی پخش‌کننده‌ها که در صورت فرد بودن سطر آخر را قطع می‌کنند رفع می‌کند. این راهکار در صورت نیاز تنها یک سطر کاملاً شفاف اضافه می‌کند. سربار آن اندک است و معمولاً به طور میانگین یک بایت به ازای هر زیرنویس است. .Sp به طور پیش‌فرض، این راهکار غیرفعال است. .SS lrc .IX Subsection "lrc" این کدک فرمت متن ترانه LRC را انکود می‌کند. .PP \fIگزینه‌ها (Options)\fR .IX Subsection "Options" .IP \fBprecision\fR 4 .IX Item "precision" دقت بخش کسری برچسب زمان (timestamp) را مشخص می‌کند. مبنای زمان (Time base) بر اساس این مقدار تعیین می‌شود. .Sp پیش‌فرض برابر ۲ برای صدم ثانیه (centiseconds) است. .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 "مکسرها (MUXERS)" .IX Header "MUXERS" مکسرها عناصر پیکربندی‌شده‌ای در FFmpeg هستند که امکان نوشتن جریان‌های چندرسانه‌ای را در نوع خاصی از پرونده فراهم می‌کنند. .PP هنگامی که بیلد FFmpeg خود را پیکربندی می‌کنید، تمام مکسرهای پشتیبانی‌شده به طور پیش‌فرض فعال هستند. می‌توانید فهرست تمام مکسرهای موجود را با استفاده از گزینه configure به نام \f(CW\*(C`\-\-list\-muxers\*(C'\fR مشاهده کنید. .PP می‌توانید تمام مکسرها را با گزینه پیکربندی \f(CW\*(C`\-\-disable\-muxers\*(C'\fR غیرفعال کنید و مکسرهای تکی را به طور انتخابی با گزینه‌های \f(CW\*(C`\-\-enable\-muxer=\fR\f(CIMUXER\fR\f(CW\*(C'\fR / \&\f(CW\*(C`\-\-disable\-muxer=\fR\f(CIMUXER\fR\f(CW\*(C'\fR فعال یا غیرفعال نمایید. .PP گزینه \f(CW\*(C`\-muxers\*(C'\fR در ابزارهای ff* فهرست مکسرهای فعال را نمایش می‌دهد. از \f(CW\*(C`\-formats\*(C'\fR برای مشاهده فهرست ترکیبی دیمکسرها و مکسرهای فعال استفاده کنید. .PP در ادامه شرحی از برخی مکسرهای در دسترس فعلی آمده است. .SS "مکسرهای خام (Raw muxers)" .IX Subsection "Raw muxers" این بخش مکسرهای خام را پوشش می‌دهد. آن‌ها یک جریان تکی مطابق با کدک تعیین‌شده را می‌پذیرند. آن‌ها برچسب‌های زمانی یا متاداده را ذخیره نمی‌کنند. پسوند شناسایی‌شده همان نام مکسر است مگر اینکه خلاف آن ذکر شده باشد. .PP شامل مکسرهای زیر است. نوع رسانه و پسوندهای احتمالی مورد استفاده برای انتخاب خودکار مکسر از روی پسوندهای خروجی نیز نشان داده شده است. .IP "\fBac3\fR \fIaudio\fR" 4 .IX Item "ac3 audio" صدای Dolby Digital، همچنین معروف به AC\-3. .IP "\fBadx\fR \fIaudio\fR" 4 .IX Item "adx audio" صدای CRI Middleware ADX. .Sp این مکسر تعداد کل نمونه‌ها را نزدیک به شروع اولین بسته زمانی که خروجی قابل جستجو (seekable) باشد و تعداد بتواند در ۳۲ بیت ذخیره شود، می‌نویسد. .IP "\fBaptx\fR \fIaudio\fR" 4 .IX Item "aptx audio" صدای aptX (فناوری پردازش صوتی برای بلوتوث). .IP "\fBaptx_hd\fR \fIaudio\fR \fB(aptxdh)\fR" 4 .IX Item "aptx_hd audio (aptxdh)" صدای aptX HD (فناوری پردازش صوتی برای بلوتوث). .IP "\fBavs2\fR \fIvideo\fR \fB(avs, avs2)\fR" 4 .IX Item "avs2 video (avs, avs2)" ویدیوی AVS2\-P2 (استاندارد صوتی تصویری \- نسل دوم \- بخش ۲) / استاندارد IEEE 1857.4 .IP "\fBavs3\fR \fIvideo\fR \fB(avs3)\fR" 4 .IX Item "avs3 video (avs3)" ویدیوی AVS3\-P2 (استاندارد صوتی تصویری \- نسل سوم \- بخش ۲) / استاندارد IEEE 1857.10 .IP "\fBcavsvideo\fR \fIvideo\fR \fB(cavs)\fR" 4 .IX Item "cavsvideo video (cavs)" استاندارد AVS چینی (استاندارد صوتی تصویری \- نسل اول) .IP "\fBcodec2raw\fR \fIaudio\fR" 4 .IX Item "codec2raw audio" صدای Codec 2. .Sp هیچ پسوندی ثبت نشده است، بنابراین نام قالب باید ارائه شود، به عنوان مثال با ابزار خط فرمان ffmpeg به صورت \f(CW\*(C`\-f codec2raw\*(C'\fR. .IP "\fBdata\fR \fIany\fR" 4 .IX Item "data any" مکسر داده عمومی. .Sp این مکسر یک جریان تکی با هر کدک از هر نوع را می‌پذیرد. جریان ورودی باید با استفاده از گزینه \f(CW\*(C`\-map\*(C'\fR با ابزار خط فرمان \&\fBffmpeg\fR انتخاب شود. .Sp هیچ پسوندی ثبت نشده است، بنابراین نام قالب باید مشخص شود، به عنوان مثال با ابزار خط فرمان \fBffmpeg\fR به صورت \f(CW\*(C`\-f data\*(C'\fR. .IP "\fBdfpwm\fR \fIaudio\fR \fB(dfpwm)\fR" 4 .IX Item "dfpwm audio (dfpwm)" مکسر صوتی خام DFPWM1a (مدولاسیون عرض پالس فیلتر پویا). .IP "\fBdirac\fR \fIvideo\fR \fB(drc, vc2)\fR" 4 .IX Item "dirac video (drc, vc2)" ویدیوی BBC Dirac. .Sp کدک Dirac Pro زیرمجموعه‌ای از آن است و به عنوان SMPTE VC\-2 استاندارد شده است. .IP "\fBdnxhd\fR \fIvideo\fR \fB(dnxhd, dnxhr)\fR" 4 .IX Item "dnxhd video (dnxhd, dnxhr)" ویدیوی Avid DNxHD. .Sp به عنوان SMPTE VC\-3 استاندارد شده است. جریان‌های DNxHR را می‌پذیرد. .IP "\fBdts\fR \fIaudio\fR" 4 .IX Item "dts audio" صدای DTS Coherent Acoustics (DCA). .IP "\fBeac3\fR \fIaudio\fR" 4 .IX Item "eac3 audio" صدای Dolby Digital Plus، همچنین معروف به Enhanced AC\-3. .IP "\fBevc\fR \fIvideo\fR \fB(evc)\fR" 4 .IX Item "evc video (evc)" ویدیوی MPEG\-5 Essential Video Coding (EVC) / EVC / MPEG\-5 Part 1 EVC. .IP "\fBg722\fR \fIaudio\fR" 4 .IX Item "g722 audio" صدای ITU\-T G.722. .IP "\fBg723_1\fR \fIaudio\fR \fB(tco, rco)\fR" 4 .IX Item "g723_1 audio (tco, rco)" صدای ITU\-T G.723.1. .IP "\fBg726\fR \fIaudio\fR" 4 .IX Item "g726 audio" صدای ITU\-T G.726 با ترتیب بایتی بزرگ (Big-endian یا "تراز چپ"). .Sp هیچ پسوندی ثبت نشده است، بنابراین نام قالب باید مشخص شود، به عنوان مثال با ابزار خط فرمان \fBffmpeg\fR به صورت \f(CW\*(C`\-f g726\*(C'\fR. .IP "\fBg726le\fR \fIaudio\fR" 4 .IX Item "g726le audio" صدای ITU\-T G.726 با ترتیب بایتی کوچک (Little-endian یا "تراز راست"). .Sp هیچ پسوندی ثبت نشده است، بنابراین نام قالب باید مشخص شود، به عنوان مثال با ابزار خط فرمان \fBffmpeg\fR به صورت \f(CW\*(C`\-f g726le\*(C'\fR. .IP "\fBgsm\fR \fIaudio\fR" 4 .IX Item "gsm audio" صدای Global System for Mobile Communications (GSM). .IP "\fBh261\fR \fIvideo\fR" 4 .IX Item "h261 video" ویدیوی ITU\-T H.261. .IP "\fBh263\fR \fIvideo\fR" 4 .IX Item "h263 video" ویدیوی ITU\-T H.263 / H.263\-1996, H.263+ / H.263\-1998 / H.263 version 2. .IP "\fBh264\fR \fIvideo\fR \fB(h264, 264)\fR" 4 .IX Item "h264 video (h264, 264)" ویدیوی ITU\-T H.264 / MPEG\-4 Part 10 AVC. جریان بیت باید به نحو Annex B تبدیل شود اگر در حالت پیشوند طول باشد. .IP "\fBhevc\fR \fIvideo\fR \fB(hevc, h265, 265)\fR" 4 .IX Item "hevc video (hevc, h265, 265)" ویدیوی ITU\-T H.265 / MPEG\-H Part 2 HEVC. جریان بیت باید به نحو Annex B تبدیل شود اگر در حالت پیشوند طول باشد. .IP "\fBm4v\fR \fIvideo\fR" 4 .IX Item "m4v video" ویدیوی MPEG\-4 Part 2. .IP "\fBmjpeg\fR \fIvideo\fR \fB(mjpg, mjpeg)\fR" 4 .IX Item "mjpeg video (mjpg, mjpeg)" ویدیوی Motion JPEG. .IP "\fBmlp\fR \fIaudio\fR" 4 .IX Item "mlp audio" صدای Meridian Lossless Packing، همچنین معروف به Packed PCM. .IP "\fBmp2\fR \fIaudio\fR \fB(mp2, m2a, mpa)\fR" 4 .IX Item "mp2 audio (mp2, m2a, mpa)" صدای MPEG\-1 Audio Layer II. .IP "\fBmpeg1video\fR \fIvideo\fR \fB(mpg, mpeg, m1v)\fR" 4 .IX Item "mpeg1video video (mpg, mpeg, m1v)" ویدیوی MPEG\-1 Part 2. .IP "\fBmpeg2video\fR \fIvideo\fR \fB(m2v)\fR" 4 .IX Item "mpeg2video video (m2v)" ویدیوی ITU\-T H.262 / MPEG\-2 Part 2. .IP "\fBobu\fR \fIvideo\fR" 4 .IX Item "obu video" مکسر واحدهای جریان بیت باز کم‌سربار AV1 (Open Bitstream Units). .Sp واحدهای OBU تحدیدکننده زمانی در تمام واحدهای زمانی جریان درج خواهند شد. .IP "\fBrawvideo\fR \fIvideo\fR \fB(yuv, rgb)\fR" 4 .IX Item "rawvideo video (yuv, rgb)" ویدیوی فشرده‌نشده خام. .IP "\fBsbc\fR \fIaudio\fR \fB(sbc, msbc)\fR" 4 .IX Item "sbc audio (sbc, msbc)" صدای کدک زیرباندی با پیچیدگی پایین Bluetooth SIG (SBC). .IP "\fBtruehd\fR \fIaudio\fR \fB(thd)\fR" 4 .IX Item "truehd audio (thd)" صدای Dolby TrueHD. .IP "\fBvc1\fR \fIvideo\fR" 4 .IX Item "vc1 video" ویدیوی SMPTE 421M / VC\-1. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 ذخیره فریم‌های ویدیوی خام با مکسر \fBrawvideo\fR با استفاده از \fBffmpeg\fR: .Sp .Vb 1 \& ffmpeg \-f lavfi \-i testsrc \-t 10 \-s hd1080p testsrc.yuv .Ve .Sp از آنجا که مکسر rawvideo اطلاعات مربوط به اندازه و قالب را ذخیره نمی‌کند، این اطلاعات باید هنگام دیمکس کردن پرونده ارائه شوند: .Sp .Vb 1 \& ffplay \-video_size 1920x1080 \-pixel_format rgb24 \-f rawvideo testsrc.rgb .Ve .SS "مکسرهای خام پی‌سی‌ام (Raw PCM muxers)" .IX Subsection "Raw PCM muxers" این بخش مکسرهای صوتی خام PCM (مدولاسیون کد پالس) را پوشش می‌دهد. .PP آن‌ها یک جریان تکی مطابق با کدک تعیین‌شده را می‌پذیرند. آن‌ها برچسب‌های زمانی یا متاداده را ذخیره نمی‌کنند. پسوند شناسایی‌شده همان نام مکسر است. .PP شامل مکسرهای زیر است. پسوند اختیاری اضافی مورد استفاده برای انتخاب خودکار مکسر از روی پسوند خروجی نیز در پرانتز نشان داده شده است. .IP "\fBalaw (al)\fR" 4 .IX Item "alaw (al)" پی‌سی‌ام A\-law .IP \fBf32be\fR 4 .IX Item "f32be" پی‌سی‌ام ۳۲ بیتی ممیز شناور با ترتیب بایتی بزرگ (Big-endian) .IP \fBf32le\fR 4 .IX Item "f32le" پی‌سی‌ام ۳۲ بیتی ممیز شناور با ترتیب بایتی کوچک (Little-endian) .IP \fBf64be\fR 4 .IX Item "f64be" پی‌سی‌ام ۶۴ بیتی ممیز شناور با ترتیب بایتی بزرگ (Big-endian) .IP \fBf64le\fR 4 .IX Item "f64le" پی‌سی‌ام ۶۴ بیتی ممیز شناور با ترتیب بایتی کوچک (Little-endian) .IP "\fBmulaw (ul)\fR" 4 .IX Item "mulaw (ul)" پی‌سی‌ام mu\-law .IP \fBs16be\fR 4 .IX Item "s16be" پی‌سی‌ام ۱۶ بیتی علامت‌دار با ترتیب بایتی بزرگ (Big-endian) .IP \fBs16le\fR 4 .IX Item "s16le" پی‌سی‌ام ۱۶ بیتی علامت‌دار با ترتیب بایتی کوچک (Little-endian) .IP \fBs24be\fR 4 .IX Item "s24be" پی‌سی‌ام ۲۴ بیتی علامت‌دار با ترتیب بایتی بزرگ (Big-endian) .IP \fBs24le\fR 4 .IX Item "s24le" پی‌سی‌ام ۲۴ بیتی علامت‌دار با ترتیب بایتی کوچک (Little-endian) .IP \fBs32be\fR 4 .IX Item "s32be" پی‌سی‌ام ۳۲ بیتی علامت‌دار با ترتیب بایتی بزرگ (Big-endian) .IP \fBs32le\fR 4 .IX Item "s32le" پی‌سی‌ام ۳۲ بیتی علامت‌دار با ترتیب بایتی کوچک (Little-endian) .IP "\fBs8 (sb)\fR" 4 .IX Item "s8 (sb)" پی‌سی‌ام ۸ بیتی علامت‌دار .IP \fBu16be\fR 4 .IX Item "u16be" پی‌سی‌ام ۱۶ بیتی بدون علامت با ترتیب بایتی بزرگ (Big-endian) .IP \fBu16le\fR 4 .IX Item "u16le" پی‌سی‌ام ۱۶ بیتی بدون علامت با ترتیب بایتی کوچک (Little-endian) .IP \fBu24be\fR 4 .IX Item "u24be" پی‌سی‌ام ۲۴ بیتی بدون علامت با ترتیب بایتی بزرگ (Big-endian) .IP \fBu24le\fR 4 .IX Item "u24le" پی‌سی‌ام ۲۴ بیتی بدون علامت با ترتیب بایتی کوچک (Little-endian) .IP \fBu32be\fR 4 .IX Item "u32be" پی‌سی‌ام ۳۲ بیتی بدون علامت با ترتیب بایتی بزرگ (Big-endian) .IP \fBu32le\fR 4 .IX Item "u32le" پی‌سی‌ام ۳۲ بیتی بدون علامت با ترتیب بایتی کوچک (Little-endian) .IP "\fBu8 (ub)\fR" 4 .IX Item "u8 (ub)" پی‌سی‌ام ۸ بیتی بدون علامت .IP \fBvidc\fR 4 .IX Item "vidc" پی‌سی‌ام Archimedes VIDC .SS "مکسرهای جریان برنامه MPEG\-1/MPEG\-2" .IX Subsection "MPEG-1/MPEG-2 program stream muxers" این بخش قالب‌های متعلق به خانواده سیستم‌های MPEG\-1 و MPEG\-2 را پوشش می‌دهد. .PP قالب سیستم‌های MPEG\-1 (همچنین معروف به ISO/IEEC 11172\-1 یا جریان برنامه MPEG\-1) برای قالب تراک‌های رسانه‌ای ذخیره‌شده در VCD (دیسک فشرده ویدیویی) پذیرفته شده است. .PP استاندارد سیستم‌های MPEG\-2 (همچنین معروف به ISO/IEEC 13818\-1) دو قالب کانتینر را پوشش می‌دهد، یکی معروف به جریان انتقال (Transport Stream) و دیگری جریان برنامه (Program Stream)؛ در اینجا تنها مورد دوم پوشش داده می‌شود. .PP قالب جریان برنامه MPEG\-2 (همچنین به دلیل پسوند پرونده مربوطه معروف به VOB) توسعه‌ای از جریان برنامه MPEG\-1 است: علاوه بر پشتیبانی از کدک‌های مختلف برای جریان‌های صوتی و تصویری، زیرنویس‌ها و متاداده ناوبری را نیز ذخیره می‌کند. جریان برنامه MPEG\-2 برای ذخیره جریان‌های رسانه‌ای در دستگاه‌های ذخیره‌سازی SVCD و DVD پذیرفته شده است. .PP این بخش شامل مکسرهای زیر است. .IP "\fBmpeg (mpg,mpeg)\fR" 4 .IX Item "mpeg (mpg,mpeg)" مکسر سیستم‌های MPEG\-1 / جریان برنامه MPEG\-1. .IP \fBvcd\fR 4 .IX Item "vcd" مکسر سیستم‌های MPEG\-1 / جریان برنامه MPEG\-1 (VCD). .Sp این مکسر می‌تواند برای تولید تراک‌ها در قالب پذیرفته‌شده توسط دستگاه‌های ذخیره‌سازی VCD (دیسک فشرده ویدیویی) استفاده شود. .Sp همانند مکسر \fBmpeg\fR است با چند تفاوت جزئی. .IP \fBvob\fR 4 .IX Item "vob" مکسر جریان برنامه MPEG\-2 (VOB). .IP \fBdvd\fR 4 .IX Item "dvd" مکسر جریان برنامه MPEG\-2 (DVD VOB). .Sp این مکسر می‌تواند برای تولید تراک‌ها در قالب پذیرفته‌شده توسط دستگاه‌های ذخیره‌سازی DVD (دیسک چندمنظوره دیجیتال) استفاده شود. .Sp همانند مکسر \fBvob\fR است با چند تفاوت جزئی. .IP "\fBsvcd (vob)\fR" 4 .IX Item "svcd (vob)" مکسر جریان برنامه MPEG\-2 (SVCD VOB). .Sp این مکسر می‌تواند برای تولید تراک‌ها در قالب پذیرفته‌شده توسط دستگاه‌های ذخیره‌سازی SVCD (دیسک فشرده ویدیویی برتر) استفاده شود. .Sp همانند مکسر \fBvob\fR است با چند تفاوت جزئی. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBmuxrate\fR \fIrate\fR" 4 .IX Item "muxrate rate" تنظیم نرخ مکس تعریف‌شده توسط کاربر بر حسب تعداد بیت بر ثانیه. اگر مشخص نشود، نرخ مکس محاسبه‌شده به طور خودکار به کار گرفته می‌شود. مقدار پیش‌فرض \f(CW0\fR است. .IP "\fBpreload\fR \fIdelay\fR" 4 .IX Item "preload delay" تنظیم تأخیر دیمکس\-دیکود اولیه بر حسب میکروثانیه. مقدار پیش‌فرض \&\f(CW500000\fR است. .SS "مکسرهای MOV/MPEG\-4/ISOMBFF" .IX Subsection "MOV/MPEG-4/ISOMBFF muxers" این بخش قالب‌های متعلق به خانواده QuickTime / MOV، از جمله قالب MPEG\-4 Part 14 و قالب پرونده رسانه‌ای پایه ISO (ISOBMFF) را پوشش می‌دهد. این قالب‌ها ساختار مشترکی بر اساس قالب پرونده رسانه‌ای پایه ISO (ISOBMFF) دارند. .PP قالب MOV در ابتدا برای استفاده با Apple QuickTime توسعه داده شد. بعدها به عنوان پایه‌ای برای قالب MPEG\-4 Part 1 (بعدها Part 14)، که با عنوان ISO/IEC 14496\-1 نیز شناخته می‌شود، به کار رفت. سپس آن قالب به ISOBMFF تعمیم یافت، که همچنین با نام‌های قالب MPEG\-4 Part 12، استاندارد ISO/IEC 14496\-12 یا ISO/IEC 15444\-12 نامیده می‌شود. .PP این بخش شامل مکسرهای زیر است. .IP \fB3gp\fR 4 .IX Item "3gp" قالب پروژه مشارکت نسل سوم (3GPP) برای سرویس‌های چندرسانه‌ای 3G UMTS .IP \fB3g2\fR 4 .IX Item "3g2" قالب پروژه مشارکت ۲ نسل سوم (3GP2 یا 3GPP2) برای سرویس‌های چندرسانه‌ای 3G CDMA2000، مشابه با \fB3gp\fR با افزونه‌ها و محدودیت‌ها .IP \fBf4v\fR 4 .IX Item "f4v" قالب ویدیویی Adobe Flash .IP \fBipod\fR 4 .IX Item "ipod" قالب پرونده صوتی MPEG\-4، همانند MOV/MP4 اما محدود به اینکه تنها شامل جریان‌های صوتی باشد، معمولاً با دستگاه iPod اپل پخش می‌شود .IP \fBismv\fR 4 .IX Item "ismv" قالب صوتی/تصویری استریم روان Microsoft IIS (خدمات اطلاعات اینترنتی) (ISMV یا ISMA). این قالب بر پایه قالب MPEG\-4 Part 14 با چند نوع ناسازگار است که برای استریم پرونده‌های رسانه‌ای برای سرور Microsoft IIS استفاده می‌شود. .IP \fBmov\fR 4 .IX Item "mov" قالب پخش‌کننده QuickTime که با پسوند \f(CW\*(C`.mov\*(C'\fR شناسایی می‌شود .IP \fBmp4\fR 4 .IX Item "mp4" قالب MP4 یا MPEG\-4 Part 14 .IP \fBpsp\fR 4 .IX Item "psp" گونه قالب PlayStation Portable MP4/MPEG\-4 Part 14. این قالب بر پایه قالب MPEG\-4 Part 14 با چند نوع ناسازگار است که برای پخش پرونده‌ها در دستگاه‌های PlayStation استفاده می‌شود. .PP \fIقطعه‌بندی (Fragmentation)\fR .IX Subsection "Fragmentation" .PP مکسرهای \fBmov\fR، \fBmp4\fR و \fBismv\fR از قطعه‌بندی پشتیبانی می‌کنند. به طور معمول، یک پرونده MOV/MP4 تمام متاداده‌های مربوط به تمام بسته‌ها را در یک مکان ذخیره می‌کند. .PP این داده‌ها معمولاً در انتهای پرونده نوشته می‌شوند، اما می‌توان با افزودن \f(CW\*(C`+faststart\*(C'\fR به \f(CW\*(C`\-movflags\*(C'\fR، یا با استفاده از ابزار \fBqt\-faststart\fR، آن‌ها را برای پخش بهتر به ابتدای پرونده منتقل کرد. .PP یک پرونده قطعه‌بندی‌شده شامل تعدادی قطعه (fragment) است، که در آن بسته‌ها و متاداده‌های مربوط به آن بسته‌ها در کنار هم ذخیره می‌شوند. نوشتن یک پرونده قطعه‌بندی‌شده این مزیت را دارد که پرونده حتی در صورت قطع شدن فرایند نوشتن نیز قابل دیکود است (در حالی که یک MOV/MP4 معمولی اگر به درستی خاتمه نیابد غیرقابل دیکود خواهد بود)، و هنگام نوشتن پرونده‌های بسیار طولانی به حافظه کمتری نیاز دارد (زیرا نوشتن پرونده‌های معمولی MOV/MP4 اطلاعات مربوط به تک‌تک بسته‌ها را تا زمان بسته شدن پرونده در حافظه نگه می‌دارد). نقطه ضعف آن این است که سازگاری کمتری با سایر برنامه‌ها دارد. .PP قطعه‌بندی با تنظیم یکی از گزینه‌هایی که نحوه برش پرونده به قطعات را مشخص می‌کنند، فعال می‌شود: .IP \fBfrag_duration\fR 4 .IX Item "frag_duration" .PD 0 .IP \fBfrag_size\fR 4 .IX Item "frag_size" .IP \fBmin_frag_duration\fR 4 .IX Item "min_frag_duration" .IP "\fBmovflags +frag_keyframe\fR" 4 .IX Item "movflags +frag_keyframe" .IP "\fBmovflags +frag_custom\fR" 4 .IX Item "movflags +frag_custom" .PD .PP اگر بیش از یک شرط مشخص شود، قطعات هنگامی که یکی از شرایط تعیین‌شده برآورده شود برش داده می‌شوند. استثنای این قاعده گزینه \fBmin_frag_duration\fR است که باید برای اعمال هر یک از شرایط دیگر برآورده شود. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBbrand\fR \fIbrand_string\fR" 4 .IX Item "brand brand_string" بازنویسی نشان تجاری اصلی (major brand). .IP "\fBempty_hdlr_name\fR \fIbool\fR" 4 .IX Item "empty_hdlr_name bool" فعال‌سازی برای صرف‌نظر از نوشتن نام درون جعبه \f(CW\*(C`hdlr\*(C'\fR. پیش‌فرض \f(CW\*(C`false\*(C'\fR است. .IP "\fBencryption_key\fR \fIkey\fR" 4 .IX Item "encryption_key key" تنظیم کلید رمزگذاری رسانه در قالب هگزادسیمال .IP "\fBencryption_kid\fR \fIkid\fR" 4 .IX Item "encryption_kid kid" تنظیم شناسه کلید رمزگذاری رسانه در قالب هگزادسیمال .IP "\fBencryption_scheme\fR \fIscheme\fR" 4 .IX Item "encryption_scheme scheme" پیکربندی طرح رمزگذاری، مقادیر مجاز عبارتند از \fBnone\fR و \&\fBcenc\-aes\-ctr\fR .IP "\fBfrag_duration\fR \fIduration\fR" 4 .IX Item "frag_duration duration" ایجاد قطعاتی با طول \fIduration\fR میکروثانیه. .IP "\fBfrag_interleave\fR \fInumber\fR" 4 .IX Item "frag_interleave number" درهم‌آمیزی (Interleave) نمونه‌ها درون قطعات (حداکثر تعداد نمونه‌های متوالی؛ مقدار کمتر درهم‌آمیزی فشرده‌تری ایجاد می‌کند اما سربار بیشتری دارد). به طور پیش‌فرض روی \f(CW0\fR تنظیم شده است. .IP "\fBfrag_size\fR \fIsize\fR" 4 .IX Item "frag_size size" ایجاد قطعاتی که حداکثر تا \fIsize\fR بایت داده بار مفید (payload) دارند .IP "\fBiods_audio_profile\fR \fIprofile\fR" 4 .IX Item "iods_audio_profile profile" مشخص کردن شماره iods برای اتم پروفایل صوتی (از \-1 تا 255)، پیش‌فرض \f(CW\-1\fR است .IP "\fBiods_video_profile\fR \fIprofile\fR" 4 .IX Item "iods_video_profile profile" مشخص کردن شماره iods برای اتم پروفایل ویدیویی (از \-1 تا 255)، پیش‌فرض \f(CW\-1\fR است .IP "\fBism_lookahead\fR \fInum_entries\fR" 4 .IX Item "ism_lookahead num_entries" مشخص کردن تعداد ورودی‌های پیش‌نگری (lookahead) برای پرونده‌های ISM (از 0 تا 255)، پیش‌فرض \f(CW0\fR است .IP "\fBmin_frag_duration\fR \fIduration\fR" 4 .IX Item "min_frag_duration duration" عدم ایجاد قطعات کوتاه‌تر از \fIduration\fR میکروثانیه .IP "\fBmoov_size\fR \fIbytes\fR" 4 .IX Item "moov_size bytes" رزرو فضا برای اتم moov در ابتدای پرونده به جای قرار دادن اتم moov در انتها. اگر فضای رزرو شده ناکافی باشد، عملیات مکس با شکست مواجه می‌شود. .IP "\fBmov_gamma\fR \fIgamma\fR" 4 .IX Item "mov_gamma gamma" تعیین مقدار گاما برای اتم gama (به عنوان یک عدد اعشاری از 0 تا 10)، پیش‌فرض \f(CW0.0\fR است، باید همراه با \f(CW\*(C`+ movflags\*(C'\fR تنظیم شود .IP "\fBmovflags\fR \fIflags\fR" 4 .IX Item "movflags flags" تنظیم سوییچ‌های مختلف مکس. فلگ‌های زیر می‌توانند استفاده شوند: .RS 4 .IP \fBcmaf\fR 4 .IX Item "cmaf" نوشتن خروجی MP4 قطعه‌بندی‌شده سازگار با CMAF (قالب برنامه رسانه‌ای مشترک) .IP \fBdash\fR 4 .IX Item "dash" نوشتن خروجی MP4 قطعه‌بندی‌شده سازگار با DASH (استریم تطبیقی پویا روی HTTP) .IP \fBdefault_base_moof\fR 4 .IX Item "default_base_moof" مشابه با فلگ \fBomit_tfhd_offset\fR، این فلگ از نوشتن فیلد مطلق base_data_offset در اتم‌های tfhd اجتناب می‌کند، اما این کار را با استفاده از فلگ جدید default\-base\-is\-moof انجام می‌دهد. این فلگ از استاندارد 14496\-12:2012 جدید است. این ممکن است در شرایط خاص تجزیه قطعات را ساده‌تر کند (با اجتناب از پایه‌گذاری محاسبات مکان قطعه تراک بر اساس انتهای ضمنی قطعه تراک قبلی). .IP \fBdelay_moov\fR 4 .IX Item "delay_moov" به تأخیر انداختن نوشتن moov اولیه تا زمانی که اولین قطعه برش داده شود، یا تا اولین تخلیه (flush) قطعه .IP \fBdisable_chpl\fR 4 .IX Item "disable_chpl" غیرفعال‌سازی نشانگرهای فصل Nero (اتم chpl). به طور معمول، هم فصل‌های Nero و هم یک تراک فصل QuickTime در پرونده نوشته می‌شوند. با تنظیم این گزینه، تنها تراک فصل QuickTime نوشته خواهد شد. فصل‌های Nero می‌توانند هنگام پردازش مجدد پرونده با برخی برنامه‌های برچسب‌گذاری، مانند mp3Tag 2.61a و iTunes 11.3، باعث خرابی شوند، و احتمالاً نسخه‌های دیگر نیز تحت تأثیر قرار می‌گیرند. .IP \fBfaststart\fR 4 .IX Item "faststart" اجرای یک دور دوم برای انتقال اندیس (اتم moov) به ابتدای پرونده. این عملیات می‌تواند مدتی طول بکشد و در موقعیت‌های مختلف مانند خروجی قطعه‌بندی‌شده کار نخواهد کرد، بنابراین به طور پیش‌فرض فعال نیست. .IP \fBfrag_custom\fR 4 .IX Item "frag_custom" اجازه به فراخوان‌کننده برای انتخاب دستی زمان برش قطعات، با فراخوانی \&\f(CW\*(C`av_write_frame(ctx, NULL)\*(C'\fR جهت نوشتن یک قطعه با بسته‌های نوشته‌شده تا آن لحظه. (این تنها با سایر برنامه‌هایی که libavformat را ادغام می‌کنند مفید است، نه از طریق \fBffmpeg\fR.) .IP \fBfrag_discont\fR 4 .IX Item "frag_discont" اعلام اینکه قطعه بعدی نسبت به قطعات قبلی ناپیوسته است .IP \fBfrag_every_frame\fR 4 .IX Item "frag_every_frame" قطعه‌بندی در هر فریم .IP \fBfrag_keyframe\fR 4 .IX Item "frag_keyframe" شروع یک قطعه جدید در هر فریم کلیدی ویدیو .IP \fBglobal_sidx\fR 4 .IX Item "global_sidx" نوشتن یک اندیس sidx سراسری در ابتدای پرونده .IP \fBisml\fR 4 .IX Item "isml" ایجاد یک فید استریم روان زنده (برای ارسال به نقطه انتشار) .IP \fBnegative_cts_offsets\fR 4 .IX Item "negative_cts_offsets" فعال‌سازی استفاده از نسخه ۱ جعبه CTTS، که در آن آفست‌های CTS می‌توانند منفی باشند. این ویژگی به نمونه اولیه اجازه می‌دهد که DTS/CTS برابر با صفر داشته باشد، و نیاز به فهرست‌های ویرایش را برای برخی موارد مانند تراک‌های ویدیویی دارای فریم‌های B کاهش می‌دهد. علاوه بر این، انطباق با دستورالعمل‌های تعامل‌پذیری DASH\-IF را آسان‌تر می‌کند. .Sp این گزینه هنگام نوشتن پرونده‌های \fBismv\fR (استریم روان) به طور ضمنی تنظیم می‌شود. .IP \fBomit_tfhd_offset\fR 4 .IX Item "omit_tfhd_offset" عدم نوشتن هیچ base_data_offset مطلقی در اتم‌های tfhd. این کار از پیوند دادن قطعات به موقعیت‌های بایتی مطلق در پرونده/جریان‌ها جلوگیری می‌کند. .IP \fBprefer_icc\fR 4 .IX Item "prefer_icc" در صورت نوشتن اتم colr، اولویت دادن به استفاده از پروفایل ICC در صورت وجود در داده‌های جانبی بسته جریان. .IP \fBrtphint\fR 4 .IX Item "rtphint" افزودن تراک‌های راهنمای RTP (hinting) به پرونده خروجی .IP \fBseparate_moof\fR 4 .IX Item "separate_moof" نوشتن یک اتم moof (قطعه فیلم) جداگانه برای هر تراک. به طور معمول، بسته‌ها برای تمام تراک‌ها در یک اتم moof نوشته می‌شوند (که کمی کارآمدتر است)، اما با تنظیم این گزینه، مکسر یک جفت moof/mdat برای هر تراک می‌نویسد که تفکیک تراک‌ها را آسان‌تر می‌سازد. .IP \fBskip_sidx\fR 4 .IX Item "skip_sidx" صرف‌نظر از نوشتن اتم sidx. هنگامی که سربار بیت‌ریت ناشی از اتم sidx زیاد است، این گزینه می‌تواند برای مواردی که اتم sidx اجباری نیست استفاده شود. هنگامی که فلگ \fBglobal_sidx\fR فعال باشد، این گزینه نادیده گرفته می‌شود. .IP \fBskip_trailer\fR 4 .IX Item "skip_trailer" صرف‌نظر از نوشتن دنباله mfra/tfra/mfro برای پرونده‌های قطعه‌بندی‌شده .IP \fBuse_metadata_tags\fR 4 .IX Item "use_metadata_tags" استفاده از اتم mdta برای متاداده .IP \fBwrite_colr\fR 4 .IX Item "write_colr" نوشتن اتم colr حتی اگر اطلاعات رنگ نامشخص باشد. این فلگ آزمایشی است، ممکن است نام آن تغییر کند یا اصلاح شود؛ در اسکریپت‌ها استفاده نکنید. .IP \fBwrite_gama\fR 4 .IX Item "write_gama" نوشتن اتم منسوخ‌شده gama .IP \fBhybrid_fragmented\fR 4 .IX Item "hybrid_fragmented" برای قابلیت بازیابی \- نوشتن پرونده خروجی به صورت یک پرونده قطعه‌بندی‌شده. این امکان را می‌دهد تا پرونده میانی در حین نوشته شدن قابل خواندن باشد (به ویژه اگر فرایند نوشتن به طور ناگهانی متوقف شود). پس از پایان نوشتن، پرونده به یک پرونده معمولی و غیرقطعه‌بندی‌شده تبدیل می‌شود که سازگارتر است و جستجوی آسان‌تر و سریع‌تری را ممکن می‌سازد. .Sp در صورت قطع فرایند نوشتن، پرونده میانی را می‌توان به صورت دستی بازسازی (remux) کرد تا یک پرونده معمولی و غیرقطعه‌بندی‌شده از آنچه در پرونده ناتمام نوشته شده بود به دست آید. .RE .RS 4 .RE .IP "\fBmovie_timescale\fR \fIscale\fR" 4 .IX Item "movie_timescale scale" تنظیم مقیاس زمانی نوشته‌شده در جعبه هدر فیلم (\f(CW\*(C`mvhd\*(C'\fR). محدوده از 1 تا INT_MAX است. پیش‌فرض \f(CW1000\fR است. .IP "\fBrtpflags\fR \fIflags\fR" 4 .IX Item "rtpflags flags" افزودن تراک‌های راهنمای RTP به پرونده خروجی. .Sp فلگ‌های زیر می‌توانند استفاده شوند: .RS 4 .IP \fBh264_mode0\fR 4 .IX Item "h264_mode0" استفاده از حالت 0 برای H.264 در RTP .IP \fBlatm\fR 4 .IX Item "latm" استفاده از بسته‌بندی MP4A\-LATM به جای MPEG4\-GENERIC برای AAC .IP \fBrfc2190\fR 4 .IX Item "rfc2190" استفاده از بسته‌بندی RFC 2190 به جای RFC 4629 برای H.263 .IP \fBsend_bye\fR 4 .IX Item "send_bye" ارسال بسته‌های RTCP BYE هنگام اتمام .IP \fBskip_rtcp\fR 4 .IX Item "skip_rtcp" عدم ارسال گزارش‌های ارسال‌کننده RTCP .RE .RS 4 .RE .IP "\fBskip_iods\fR \fIbool\fR" 4 .IX Item "skip_iods bool" صرف‌نظر از نوشتن اتم iods (مقدار پیش‌فرض \f(CW\*(C`true\*(C'\fR است) .IP "\fBuse_editlist\fR \fIbool\fR" 4 .IX Item "use_editlist bool" استفاده از فهرست ویرایش (مقدار پیش‌فرض \f(CW\*(C`auto\*(C'\fR است) .IP "\fBuse_stream_ids_as_track_ids\fR \fIbool\fR" 4 .IX Item "use_stream_ids_as_track_ids bool" استفاده از شناسه‌های جریان به عنوان شناسه‌های تراک (مقدار پیش‌فرض \f(CW\*(C`false\*(C'\fR است) .IP "\fBvideo_track_timescale\fR \fIscale\fR" 4 .IX Item "video_track_timescale scale" تنظیم مقیاس زمانی استفاده‌شده برای تراک‌های ویدیویی. محدوده از \f(CW0\fR تا INT_MAX است. اگر روی \f(CW0\fR تنظیم شود، مقیاس زمانی به طور خودکار بر اساس پایه زمانی جریان بومی تنظیم می‌شود. پیش‌فرض \f(CW0\fR است. .IP "\fBwrite_btrt\fR \fIbool\fR" 4 .IX Item "write_btrt bool" اجبار یا غیرفعال کردن نوشتن جعبه بیت‌ریت درون جعبه stsd یک تراک. این جعبه شامل اندازه بافر دیکود (بر حسب بایت)، حداکثر بیت‌ریت و بیت‌ریت متوسط برای تراک است. اگر هیچ‌یک از این مقادیر قابل محاسبه نباشد، از نوشتن جعبه صرف‌نظر می‌شود. پیش‌فرض \f(CW\-1\fR یا \f(CW\*(C`auto\*(C'\fR است که جعبه را تنها در حالت MP4 می‌نویسد. .IP "\fBwrite_prft\fR \fIoption\fR" 4 .IX Item "write_prft option" نوشتن جعبه مرجع زمانی تولیدکننده (PRFT) با یک منبع زمانی مشخص برای فیلد NTP در جعبه PRFT. مقدار را به صورت \fBwallclock\fR تنظیم کنید تا منبع زمانی به عنوان زمان ساعت دیواری (wallclock) تعیین شود و \fBpts\fR تا منبع زمانی به عنوان مقادیر PTS بسته‌های ورودی تعیین گردد. .IP "\fBwrite_tmcd\fR \fIbool\fR" 4 .IX Item "write_tmcd bool" تعیین \f(CW\*(C`on\*(C'\fR برای اجبار به نوشتن تراک کد زمانی، \f(CW\*(C`off\*(C'\fR برای غیرفعال کردن آن و \f(CW\*(C`auto\*(C'\fR برای نوشتن تراک کد زمانی تنها برای خروجی mov و mp4 (پیش‌فرض). .Sp تنظیم مقدار روی \fBpts\fR تنها برای موارد کاربردی انکودینگ زنده که در آن مقادیر PTS به عنوان زمان ساعت دیواری در مبدأ تنظیم شده‌اند قابل اعمال است. به عنوان مثال، یک کاربرد انکودینگ با منبع ضبط decklink که در آن \fBvideo_pts\fR و \&\fBaudio_pts\fR روی \fBabs_wallclock\fR تنظیم شده‌اند. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 ارسال محتوای Smooth Streaming به صورت بلادرنگ به یک نقطه انتشار در IIS با مکسر \fBismv\fR با استفاده از \fBffmpeg\fR: .Sp .Vb 1 \& ffmpeg \-re <> \-movflags isml+frag_keyframe \-f ismv http://server/publishingpoint.isml/Streams(Encoder1) .Ve .SS a64 .IX Subsection "a64" مکسر ویدیوی Commodore 64 قالب A64. .PP این مکسر یک جریان ویدیویی با کدک \f(CW\*(C`a64_multi\*(C'\fR یا \f(CW\*(C`a64_multi5\*(C'\fR را می‌پذیرد. .SS ac4 .IX Subsection "ac4" مکسر صوتی خام AC\-4. .PP این مکسر یک جریان صوتی \f(CW\*(C`ac4\*(C'\fR را می‌پذیرد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBwrite_crc\fR \fIbool\fR" 4 .IX Item "write_crc bool" در صورت فعال بودن، یک مجموع مقابله‌ای (checksum) از نوع CRC برای هر بسته در خروجی می‌نویسد، پیش‌فرض \f(CW\*(C`false\*(C'\fR است .SS adts .IX Subsection "adts" مکسر جریان انتقال داده‌های صوتی (ADTS \- Audio Data Transport Stream). .PP این مکسر یک جریان AAC را می‌پذیرد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBwrite_id3v2\fR \fIbool\fR" 4 .IX Item "write_id3v2 bool" فعال‌سازی نوشتن برچسب‌های ID3v2.4 در ابتدای جریان. پیش‌فرض غیرفعال است. .IP "\fBwrite_apetag\fR \fIbool\fR" 4 .IX Item "write_apetag bool" فعال‌سازی نوشتن برچسب‌های APE در انتهای جریان. پیش‌فرض غیرفعال است. .IP "\fBwrite_mpeg2\fR \fIbool\fR" 4 .IX Item "write_mpeg2 bool" فعال‌سازی تنظیم بیت نسخه MPEG در هدر فریم ADTS روی 1 که نشان‌دهنده MPEG\-2 است. پیش‌فرض 0 است که نشان‌دهنده MPEG\-4 است. .SS aea .IX Subsection "aea" مکسر صوتی MD STUDIO. .PP این مکسر یک جریان صوتی ATRAC1 را با یک یا دو کانال و نرخ نمونه‌برداری 44100Hz می‌پذیرد. .PP از آنجا که AEA از ذخیره عنوان تراک پشتیبانی می‌کند، این مکسر همچنین عنوان را از متاداده جریان در کانتینر می‌نویسد. .SS aiff .IX Subsection "aiff" مکسر قالب پرونده تبادل صوتی (AIFF \- Audio Interchange File Format). .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBwrite_id3v2\fR \fIbool\fR" 4 .IX Item "write_id3v2 bool" فعال‌سازی نوشتن برچسب‌های ID3v2 در صورت تنظیم روی 1. پیش‌فرض 0 (غیرفعال) است. .IP "\fBid3v2_version\fR \fIbool\fR" 4 .IX Item "id3v2_version bool" انتخاب نسخه ID3v2 برای نوشتن. در حال حاضر فقط نسخه‌های ۳ و ۴ (معروف به ID3v2.3 و ID3v2.4) پشتیبانی می‌شوند. پیش‌فرض نسخه ۴ است. .SS alp .IX Subsection "alp" مکسر صوتی بازی Lego Racers متعلق به High Voltage Software. .PP یک جریان تک ADPCM_IMA_ALP با حداکثر ۲ کانال و نرخ نمونه‌برداری نه بیشتر از 44100 Hz را می‌پذیرد. .PP پسوندها: \f(CW\*(C`tun\*(C'\fR، \f(CW\*(C`pcm\*(C'\fR .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBtype\fR \fItype\fR" 4 .IX Item "type type" تنظیم نوع پرونده. .Sp مقدار \&\fItype\fR مقادیر زیر را می‌پذیرد: .RS 4 .IP \fBtun\fR 4 .IX Item "tun" تنظیم نوع پرونده به عنوان موسیقی (music). باید دارای نرخ نمونه‌برداری 22050 Hz باشد. .IP \fBpcm\fR 4 .IX Item "pcm" تنظیم نوع پرونده به عنوان جلوه صوتی (sfx). .IP \fBauto\fR 4 .IX Item "auto" تنظیم نوع پرونده بر اساس پسوند پرونده خروجی. پسوند \f(CW\*(C`.pcm\*(C'\fR منجر به نوع \f(CW\*(C`pcm\*(C'\fR و در غیر این صورت نوع \f(CW\*(C`tun\*(C'\fR تنظیم می‌شود. \fI(پیش‌فرض)\fR .RE .RS 4 .RE .SS amr .IX Subsection "amr" مکسر صوتی 3GPP AMR (چندنرخی تطبیقی). .PP یک جریان صوتی تکی حاوی جریان AMR NB را می‌پذیرد. .SS amv .IX Subsection "amv" مکسر قالب AMV (ویدیوی رسانه‌ای Actions). .SS apm .IX Subsection "apm" مکسر صوتی Rayman 2 APM شرکت Ubisoft. .PP یک جریان صوتی تکی ADPCM IMA APM را می‌پذیرد. .SS apng .IX Subsection "apng" مکسر گرافیک شبکه‌ای متحرک قابل حمل (APNG). .PP یک جریان ویدیویی تکی APNG را می‌پذیرد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBfinal_delay\fR \fIdelay\fR" 4 .IX Item "final_delay delay" اجبار به ایجاد تأخیر بر حسب ثانیه پس از آخرین فریم در هر تکرار. مقدار پیش‌فرض \f(CW0.0\fR است. .IP "\fBplays\fR \fIrepetitions\fR" 4 .IX Item "plays repetitions" مشخص کردن تعداد دفعات پخش محتوا؛ مقدار \f(CW0\fR باعث ایجاد یک حلقه تکرار بی‌نهایت می‌شود و با \f(CW1\fR هیچ تکراری وجود نخواهد داشت. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 استفاده از \fBffmpeg\fR برای تولید یک خروجی APNG با ۲ تکرار، و با تأخیر نیم ثانیه‌ای پس از اولین تکرار: .Sp .Vb 1 \& ffmpeg \-i INPUT \-final_delay 0.5 \-plays 2 out.apng .Ve .SS argo_asf .IX Subsection "argo_asf" مکسر صوتی ASF شرکت Argonaut Games. .PP یک جریان صوتی تکی ADPCM را می‌پذیرد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBversion_major\fR \fIversion\fR" 4 .IX Item "version_major version" بازنویسی نسخه اصلی (major) پرونده، مشخص‌شده به عنوان یک عدد صحیح، مقدار پیش‌فرض \f(CW2\fR است .IP "\fBversion_minor\fR \fIversion\fR" 4 .IX Item "version_minor version" بازنویسی نسخه فرعی (minor) پرونده، مشخص‌شده به عنوان یک عدد صحیح، مقدار پیش‌فرض \f(CW1\fR است .IP "\fBname\fR \fIname\fR" 4 .IX Item "name name" جاسازی نام پرونده درون پرونده؛ اگر مشخص نشود، از نام پرونده خروجی استفاده می‌شود. نام تا ۸ نویسه بریده می‌شود. .SS argo_cvg .IX Subsection "argo_cvg" مکسر صوتی CVG شرکت Argonaut Games. .PP یک جریان صوتی تکی یک‌کاناله ADPCM با نرخ 22050Hz را می‌پذیرد. .PP گزینه‌های \fBloop\fR و \fBreverb\fR فلگ‌های مربوطه را در هدر تنظیم می‌کنند که بعداً می‌توانند برای پردازش متناسب جریان صوتی بازیابی شوند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBskip_rate_check\fR \fIbool\fR" 4 .IX Item "skip_rate_check bool" صرف‌نظر از بررسی نرخ نمونه‌برداری (پیش‌فرض \f(CW\*(C`false\*(C'\fR است) .IP "\fBloop\fR \fIbool\fR" 4 .IX Item "loop bool" تنظیم فلگ حلقه تکرار (پیش‌فرض \f(CW\*(C`false\*(C'\fR است) .IP "\fBreverb\fR \fIboolean\fR" 4 .IX Item "reverb boolean" تنظیم فلگ طنین (reverb) (پیش‌فرض \f(CW\*(C`true\*(C'\fR است) .SS "asf, asf_stream" .IX Subsection "asf, asf_stream" مکسر صوتی قالب سیستم‌های پیشرفته / فعال (یا استریمینگ) (ASF). .PP گونه \fBasf_stream\fR باید برای استریم انتخاب شود. .PP توجه داشته باشید که Windows Media Audio (wma) و Windows Media Video (wmv) نیز از این مکسر استفاده می‌کنند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBpacket_size\fR \fIsize\fR" 4 .IX Item "packet_size size" تنظیم اندازه بسته مکسر بر حسب بایت. با تنظیم این مقدار می‌توانید بر اساس منبع خود، تکه‌تکه شدن داده‌ها یا سربار مکسر را کاهش دهید. مقدار پیش‌فرض \f(CW3200\fR، حداقل \f(CW100\fR و حداکثر \f(CW\*(C`64Ki\*(C'\fR است. .SS ass .IX Subsection "ass" مکسر زیرنویس ASS/SSA (SubStation Alpha). .PP یک جریان زیرنویس تکی ASS را می‌پذیرد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBignore_readorder\fR \fIbool\fR" 4 .IX Item "ignore_readorder bool" نوشتن فوری رخدادهای دیالوگ، حتی اگر خارج از ترتیب باشند؛ پیش‌فرض \f(CW\*(C`false\*(C'\fR است، در غیر این صورت آن‌ها تا زمانی که رخداد زمانی مورد انتظار یافت شود در حافظه موقت (cache) نگه داشته می‌شوند. .SS ast .IX Subsection "ast" مکسر جریان صوتی AST (Audio Stream). .PP این قالب برای پخش صدا در برخی از بازی‌های Nintendo Wii استفاده می‌شود. .PP یک جریان صوتی تکی را می‌پذیرد. .PP گزینه‌های \fBloopstart\fR و \fBloopend\fR می‌توانند برای تعریف بخشی از پرونده جهت تکرار حلقه برای پخش‌کننده‌هایی که از این گزینه‌ها پشتیبانی می‌کنند استفاده شوند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBloopstart\fR \fIstart\fR" 4 .IX Item "loopstart start" مشخص کردن موقعیت شروع حلقه بر حسب میلی‌ثانیه، از \f(CW\-1\fR تا \f(CW\*(C`INT_MAX\*(C'\fR؛ در صورتی که روی \f(CW\-1\fR تنظیم شود، هیچ حلقه‌ای مشخص نمی‌شود (پیش‌فرض \-1) و مقدار \fBloopend\fR نادیده گرفته می‌شود. .IP "\fBloopend\fR \fIend\fR" 4 .IX Item "loopend end" مشخص کردن موقعیت پایان حلقه بر حسب میلی‌ثانیه، از \f(CW0\fR تا \&\f(CW\*(C`INT_MAX\*(C'\fR؛ پیش‌فرض \f(CW0\fR است، در صورتی که روی \f(CW0\fR تنظیم شود، کل مدت زمان جریان فرض می‌گردد. .SS au .IX Subsection "au" مکسر صوتی SUN AU. .PP یک جریان صوتی تکی را می‌پذیرد. .SS avi .IX Subsection "avi" مکسر صوتی تصویری درهم‌آمیخته (AVI \- Audio Video Interleaved). .PP قالب AVI یک قالب اختصاصی توسعه‌یافته توسط مایکروسافت است که بعدها به طور رسمی از طریق مشخصات فنی Open DML مشخص شد. .PP به دلیل تفاوت در پیاده‌سازی پخش‌کننده‌ها، ممکن است تنظیم برخی گزینه‌ها لازم باشد تا اطمینان حاصل شود که خروجی تولیدشده می‌تواند به درستی توسط پخش‌کننده مورد نظر پخش شود. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBflipped_raw_rgb\fR \fIbool\fR" 4 .IX Item "flipped_raw_rgb bool" اگر روی \f(CW\*(C`true\*(C'\fR تنظیم شود، ارتفاع مثبت را برای بیت‌مپ‌های RGB خام ذخیره می‌کند که نشان می‌دهد بیت‌مپ از پایین به بالا ذخیره شده است. توجه داشته باشید که این گزینه خود بیت‌مپ را معکوس نمی‌کند و این کار باید از قبل به صورت دستی انجام شود، به عنوان مثال با استفاده از فیلتر \fBvflip\fR. پیش‌فرض \f(CW\*(C`false\*(C'\fR است و نشان می‌دهد بیت‌مپ از بالا به پایین ذخیره شده است. .IP "\fBreserve_index_space\fR \fIsize\fR" 4 .IX Item "reserve_index_space size" رزرو مقدار مشخصی بایت برای اندیس اصلی OpenDML هر جریان در هدر پرونده. به طور پیش‌فرض، اگر در اولین اندیس اصلی فضایی باقی نمانده باشد، اندیس‌های اصلی اضافی درون بسته‌های داده جاسازی می‌شوند و به عنوان زنجیره‌ای از اندیس‌ها به یکدیگر پیوند می‌خورند. این ساختار اندیس می‌تواند برای برخی موارد کاربردی مشکلاتی ایجاد کند، به عنوان مثال نرم‌افزارهای شخص ثالثی که به شدت به مشخصات اندیس OpenDML متکی هستند یا زمانی که پرش پرونده کُند است. رزرو فضای کافی برای اندیس در هدر پرونده از این مشکلات جلوگیری می‌کند. .Sp فضای اندیس مورد نیاز به اندازه پرونده خروجی بستگی دارد و باید حدود ۱۶ بایت به ازای هر گیگابایت باشد. هنگامی که این گزینه حذف شود یا روی صفر تنظیم شود، فضای اندیس لازم تخمین زده می‌شود. .Sp مقدار پیش‌فرض \f(CW0\fR است. .IP "\fBwrite_channel_mask\fR \fIbool\fR" 4 .IX Item "write_channel_mask bool" نوشتن ماسک چیدمان کانال در هدر جریان صوتی. .Sp این گزینه به طور پیش‌فرض فعال است. غیرفعال کردن ماسک کانال می‌تواند در سناریوهای خاص مفید باشد، به عنوان مثال هنگام ادغام چندین جریان صوتی در یک جریان برای سازگاری با نرم‌افزاری که تنها از یک جریان صوتی منفرد در AVI پشتیبانی می‌کند (به \fBبخش "amerge" در راهنمای ffmpeg\-filters\fR مراجعه کنید). .SS avif .IX Subsection "avif" مکسر قالب تصویر AV1 (کدک ویدیویی ۱ اتحاد برای رسانه باز). .PP این مکسر تصاویر انکودشده با استفاده از کدک AV1 را ذخیره می‌کند. .PP یک یا دو جریان ویدیویی را می‌پذیرد. در صورتی که دو جریان ویدیویی ارائه شود، جریان دوم باید شامل یک صفحه منفرد باشد که ماسک آلفا را ذخیره می‌کند. .PP در صورتی که بیش از یک تصویر ارائه شود، خروجی تولیدشده به عنوان یک AVIF متحرک در نظر گرفته می‌شود و تعداد دورهای حلقه تکرار را می‌توان با گزینه \fBloop\fR مشخص کرد. .PP این مکسر بر اساس مشخصات فنی ارائه شده توسط Alliance for Open Media در آدرس <\fBhttps://aomediacodec.github.io/av1\-avif\fR> است. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBloop\fR \fIcount\fR" 4 .IX Item "loop count" تعداد دفعات تکرار حلقه در AVIF متحرک؛ مقدار \f(CW0\fR یک حلقه بی‌نهایت را مشخص می‌کند، پیش‌فرض \f(CW0\fR است .IP "\fBmovie_timescale\fR \fItimescale\fR" 4 .IX Item "movie_timescale timescale" تنظیم مقیاس زمانی نوشته‌شده در جعبه هدر فیلم (\f(CW\*(C`mvhd\*(C'\fR). محدوده از 1 تا INT_MAX است. پیش‌فرض \f(CW1000\fR است. .SS avm2 .IX Subsection "avm2" مکسر قالب ShockWave Flash (SWF) / ماشین مجازی ۲ اکشن‌اسکریپت (AVM2). .PP یک جریان صوتی، یک جریان ویدیویی یا هر دو را می‌پذیرد. .SS bit .IX Subsection "bit" مکسر قالب پرونده G.729 (.bit). .PP یک جریان صوتی تکی G.729 را می‌پذیرد. .SS caf .IX Subsection "caf" مکسر Apple CAF (قالب صوتی پایه \- Core Audio Format). .PP یک جریان صوتی تکی را می‌پذیرد. .SS codec2 .IX Subsection "codec2" مکسر صوتی Codec2. .PP یک جریان صوتی تکی codec2 را می‌پذیرد. .SS chromaprint .IX Subsection "chromaprint" مکسرهای اثرانگشت‌نگار Chromaprint. .PP برای فعال‌سازی کامپایل این فیلتر باید FFmpeg را با \f(CW\*(C`\-\-enable\-chromaprint\*(C'\fR پیکربندی کنید. .PP این مکسر داده‌های صوتی را به کتابخانه Chromaprint ارسال می‌کند، که برای داده‌های صوتی ارائه‌شده یک اثر انگشت تولید می‌کند. ببینید: <\fBhttps://acoustid.org/chromaprint\fR> .PP یک جریان صوتی خام ۱۶ بیتی علامت‌دار با ترتیب بایتی محلی (native-endian) با حداکثر ۲ کانال دریافت می‌کند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBalgorithm\fR \fIversion\fR" 4 .IX Item "algorithm version" انتخاب نسخه الگوریتم برای اثرانگشت‌نگاری. محدوده از \f(CW0\fR تا \&\f(CW4\fR است. نسخه \f(CW3\fR تشخیص سکوت را فعال می‌کند. پیش‌فرض \f(CW1\fR است. .IP "\fBfp_format\fR \fIformat\fR" 4 .IX Item "fp_format format" قالبی که اثر انگشت در آن صادر می‌شود. گزینه‌های زیر را می‌پذیرد: .RS 4 .IP \fBbase64\fR 4 .IX Item "base64" اثر انگشت فشرده‌شده Base64 \fI(پیش‌فرض)\fR .IP \fBcompressed\fR 4 .IX Item "compressed" اثر انگشت فشرده‌شده باینری .IP \fBraw\fR 4 .IX Item "raw" اثر انگشت خام باینری .RE .RS 4 .RE .IP "\fBsilence_threshold\fR \fIthreshold\fR" 4 .IX Item "silence_threshold threshold" آستانه تشخیص سکوت. محدوده از \f(CW\-1\fR تا \&\f(CW32767\fR است، که در آن \f(CW\-1\fR تشخیص سکوت را غیرفعال می‌کند. تشخیص سکوت تنها با نسخه \f(CW3\fR این الگوریتم قابل استفاده است. .Sp تشخیص سکوت برای استفاده با سرویس AcoustID باید غیرفعال باشد. پیش‌فرض \f(CW\-1\fR است. .SS crc .IX Subsection "crc" مکسر بررسی افزونگی چرخه‌ای (CRC \- Cyclic Redundancy Check). .PP این مکسر CRC از نوع Adler\-32 تمام فریم‌های صوتی و تصویری ورودی را محاسبه و چاپ می‌کند. به طور پیش‌فرض، فریم‌های صوتی به صوتی خام ۱۶ بیتی علامت‌دار و فریم‌های ویدیویی به ویدیوی خام قبل از محاسبه CRC تبدیل می‌شوند. .PP خروجی مکسر شامل یک خط منفرد به این شکل است: CRC=0x\fICRC\fR، که در آن \fICRC\fR یک عدد هگزادسیمال با صفر پرشده تا ۸ رقم شامل CRC تمام فریم‌های ورودی دیکودشده است. .PP همچنین مکسر \fBframecrc\fR را ببینید. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 استفاده از \fBffmpeg\fR برای محاسبه CRC ورودی و ذخیره آن در پرونده \fIout.crc\fR: .Sp .Vb 1 \& ffmpeg \-i INPUT \-f crc out.crc .Ve .IP \(bu 4 استفاده از \fBffmpeg\fR برای چاپ CRC در خروجی استاندارد با دستور: .Sp .Vb 1 \& ffmpeg \-i INPUT \-f crc \- .Ve .IP \(bu 4 می‌توانید قالب خروجی هر فریم را در \fBffmpeg\fR با تعیین کدک و قالب صوتی و تصویری انتخاب کنید. به عنوان مثال، برای محاسبه CRC صدای ورودی تبدیل‌شده به PCM بدون علامت ۸ بیتی و ویدیوی ورودی تبدیل‌شده به ویدیوی MPEG\-2، از دستور زیر استفاده کنید: .Sp .Vb 1 \& ffmpeg \-i INPUT \-c:a pcm_u8 \-c:v mpeg2video \-f crc \- .Ve .SS dash .IX Subsection "dash" مکسر استریم تطبیقی پویا روی HTTP (DASH \- Dynamic Adaptive Streaming over HTTP). .PP این مکسر قطعات و پرونده‌های مانیفست را مطابق با استاندارد MPEG\-DASH استاندارد ISO/IEC 23009\-1:2014 و به‌روزرسانی‌های بعدی استاندارد ایجاد می‌کند. .PP برای اطلاعات بیشتر ببینید: .IP \(bu 4 مشخصات فنی ISO DASH: <\fBhttp://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009\-1_2014.zip\fR> .IP \(bu 4 مشخصات فنی WebM DASH: <\fBhttps://sites.google.com/a/webmproject.org/wiki/adaptive\-streaming/webm\-dash\-specification\fR> .PP این مکسر یک پرونده مانیفست MPD (شرح ارائه رسانه) و پرونده‌های قطعه را برای هر جریان ایجاد می‌کند. پرونده‌های قطعه در همان پوشه پرونده مانیفست MPD قرار می‌گیرند. .PP نام پرونده قطعه ممکن است حاوی شناسه‌های از پیش تعریف‌شده باشد که در بخش \f(CW\*(C`SegmentTemplate\*(C'\fR مانیفست طبق بخش 5.3.9.4.4 استاندارد تعریف شده است. .PP شناسه‌های در دسترس عبارتند از \f(CW\*(C`$RepresentationID$\*(C'\fR، \f(CW\*(C`$Number$\*(C'\fR، \&\f(CW\*(C`$Bandwidth$\*(C'\fR و \f(CW\*(C`$Time$\*(C'\fR. علاوه بر شناسه‌های استاندارد، شناسه مخصوص ffmpeg با نام \f(CW\*(C`$ext$\*(C'\fR نیز پشتیبانی می‌شود. در صورت تعیین، \fBffmpeg\fR مقدار \f(CW\*(C`$ext$\*(C'\fR را در نام پرونده با پسوندهای قالب مکس مانند \f(CW\*(C`mp4\*(C'\fR، \&\f(CW\*(C`webm\*(C'\fR و غیره جایگزین می‌کند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBadaptation_sets\fR \fIadaptation_sets\fR" 4 .IX Item "adaptation_sets adaptation_sets" تخصیص جریان‌ها به مجموعه‌های تطبیق (Adaptation Sets)، مشخص‌شده در بخش \f(CW\*(C`AdaptationSets\*(C'\fR مانیفست MPD. .Sp یک مجموعه تطبیق شامل مجموعه‌ای از یک یا چند جریان است که به عنوان یک زیرمجموعه واحد در دسترس قرار می‌گیرند، به عنوان مثال جریان‌های متناظری که با اندازه‌های مختلف انکود شده‌اند و توسط کاربر بسته به پهنای باند موجود قابل انتخاب هستند، یا جریان‌های صوتی مختلف با زبان‌های متفاوت. .Sp هر مجموعه تطبیق با نحو زیر مشخص می‌شود: .Sp .Vb 1 \& id=,streams= .Ve .Sp که در آن \fIindex\fR باید یک اندیس عددی باشد، و \fIstreams\fR توالی‌ای از اندیس‌های جریان است که با \f(CW\*(C`,\*(C'\fR جدا شده‌اند. چندین مجموعه تطبیق را می‌توان با فاصله (space) از هم جدا و مشخص کرد. .Sp برای نگاشت تمام جریان‌های ویدیویی (یا صوتی) به یک مجموعه تطبیق، می‌توان از \f(CW\*(C`v\*(C'\fR (یا \&\f(CW\*(C`a\*(C'\fR) به عنوان شناسه جریان به جای شناسه‌ها استفاده کرد. .Sp هنگامی که هیچ تخصیصی تعریف نشده باشد، به طور پیش‌فرض یک مجموعه تطبیق برای هر جریان در نظر گرفته می‌شود. .Sp فیلدهای اختیاری زیر نیز می‌توانند مشخص شوند: .RS 4 .IP \fBdescriptor\fR 4 .IX Item "descriptor" تعریف توصیف‌گر همان‌طور که در ISO/IEC 23009\-1:2014/Amd.2:2015 تعریف شده است. .Sp به عنوان مثال: .Sp .Vb 1 \& .Ve .Sp رشته توصیف‌گر باید یک برچسب XML خودبسته (self-closing) باشد. .IP \fBfrag_duration\fR 4 .IX Item "frag_duration" بازنویسی مدت زمان قطعه سراسری مشخص‌شده با گزینه \&\fBfrag_duration\fR. .IP \fBfrag_type\fR 4 .IX Item "frag_type" بازنویسی نوع قطعه سراسری مشخص‌شده با گزینه \&\fBfrag_type\fR. .IP \fBseg_duration\fR 4 .IX Item "seg_duration" بازنویسی مدت زمان بخش (segment) سراسری مشخص‌شده با گزینه \&\fBseg_duration\fR. .IP \fBtrick_id\fR 4 .IX Item "trick_id" علامت‌گذاری یک مجموعه تطبیق به عنوان حاوی جریان‌هایی که قرار است برای حالت ترفند (Trick Mode) برای مجموعه تطبیق ارجاع‌شده استفاده شوند. .RE .RS 4 .Sp چند مثال از مقادیر ممکن برای گزینه \fBadaptation_sets\fR در ادامه آمده است: .Sp .Vb 1 \& id=0,seg_duration=2,frag_duration=1,frag_type=duration,streams=v id=1,seg_duration=2,frag_type=none,streams=a \& \& \& \& id=0,seg_duration=2,frag_type=none,streams=0 id=1,seg_duration=10,frag_type=none,trick_id=0,streams=1 .Ve .RE .IP "\fBdash_segment_type\fR \fItype\fR" 4 .IX Item "dash_segment_type type" تنظیم نوع پرونده‌های قطعه DASH. .Sp مقادیر ممکن: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" قالب پرونده‌های قطعه dash بر اساس کدک جریان انتخاب خواهد شد. این حالت پیش‌فرض است. .IP \fBmp4\fR 4 .IX Item "mp4" پرونده‌های قطعه dash در قالب ISOBMFF/MP4 خواهند بود .IP \fBwebm\fR 4 .IX Item "webm" پرونده‌های قطعه dash در قالب WebM خواهند بود .RE .RS 4 .RE .IP "\fBextra_window_size\fR \fIsize\fR" 4 .IX Item "extra_window_size size" تنظیم حداکثر تعداد قطعاتی که خارج از مانیفست قبل از حذف از دیسک نگه داشته می‌شوند. .IP "\fBformat_options\fR \fIoptions_list\fR" 4 .IX Item "format_options options_list" تنظیم گزینه‌های قالب کانتینر (mp4/webm) با استفاده از فهرستی از پارامترهای key=value که با \f(CW\*(C`:\*(C'\fR از هم جدا شده‌اند. مقادیر حاوی نویسه‌های خاص \f(CW\*(C`:\*(C'\fR باید گریز داده (escape) شوند. .IP "\fBfrag_duration\fR \fIduration\fR" 4 .IX Item "frag_duration duration" تنظیم طول قطعات درون بخش‌ها بر حسب ثانیه؛ مقدار اعشاری نیز قابل تنظیم است. .IP "\fBfrag_type\fR \fItype\fR" 4 .IX Item "frag_type type" تنظیم نوع بازه زمانی برای قطعه‌بندی. .Sp مقادیر ممکن: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" تنظیم یک قطعه به ازای هر بخش .IP \fBevery_frame\fR 4 .IX Item "every_frame" قطعه‌بندی در هر فریم .IP \fBduration\fR 4 .IX Item "duration" قطعه‌بندی در بازه‌های زمانی مشخص .IP \fBpframes\fR 4 .IX Item "pframes" قطعه‌بندی در فریم‌های کلیدی و به دنبال بازآرایی P\-Frame (فقط ویدیو، آزمایشی) .RE .RS 4 .RE .IP "\fBglobal_sidx\fR \fIbool\fR" 4 .IX Item "global_sidx bool" نوشتن اتم سراسری \f(CW\*(C`SIDX\*(C'\fR. فقط برای خروجی mp4 تک‌پرونده‌ای در حالت غیر استریمینگ قابل اعمال است. .IP "\fBhls_master_name\fR \fIfile_name\fR" 4 .IX Item "hls_master_name file_name" نام لیست پخش اصلی HLS. پیش‌فرض \fImaster.m3u8\fR است. .IP "\fBhls_playlist\fR \fIbool\fR" 4 .IX Item "hls_playlist bool" تولید پرونده‌های لیست پخش HLS. لیست پخش اصلی با نام پرونده مشخص‌شده توسط گزینه \fBhls_master_name\fR تولید می‌شود. یک پرونده لیست پخش رسانه برای هر جریان با نام‌های پرونده \&\fImedia_0.m3u8\fR، \fImedia_1.m3u8\fR و غیره تولید می‌شود. .IP "\fBhttp_opts\fR \fIhttp_opts\fR" 4 .IX Item "http_opts http_opts" مشخص کردن فهرستی از گزینه‌های key=value که با \f(CW\*(C`:\*(C'\fR از هم جدا شده‌اند تا به پروتکل HTTP زیرین ارسال شوند. فقط برای خروجی HTTP قابل اعمال است. .IP "\fBhttp_persistent\fR \fIbool\fR" 4 .IX Item "http_persistent bool" استفاده از اتصالات پایدار HTTP (Persistent). فقط برای خروجی HTTP قابل اعمال است. .IP "\fBhttp_user_agent\fR \fIuser_agent\fR" 4 .IX Item "http_user_agent user_agent" بازنویسی فیلد User\-Agent در هدر HTTP. فقط برای خروجی HTTP قابل اعمال است. .IP "\fBignore_io_errors\fR \fIbool\fR" 4 .IX Item "ignore_io_errors bool" نادیده گرفتن خطاهای ورودی/خروجی (IO) هنگام باز کردن و نوشتن. برای اجراهای طولانی‌مدت با خروجی شبکه مفید است. این گزینه به طور پیش‌فرض غیرفعال است. .IP "\fBindex_correction\fR \fIbool\fR" 4 .IX Item "index_correction bool" فعال یا غیرفعال کردن منطق تصحیح اندیس بخش. فقط زمانی قابل اعمال است که \&\fBuse_template\fR فعال و \fBuse_timeline\fR غیرفعال باشد. این گزینه به طور پیش‌فرض غیرفعال است. .Sp هنگامی که فعال باشد، منطق جریان اندیس‌های بخش را زیر نظر می‌گیرد. اگر مقدار اندیس بخش یک جریان در موقعیت زمانی واقعی مورد انتظار نباشد، این منطق مقدار اندیس را تصحیح می‌کند. .Sp معمولاً این منطق در موارد کاربردی استریمینگ زنده مورد نیاز است. نوسانات پهنای باند شبکه در طول استریمینگ طولانی‌مدت رایج است. هر نوسان می‌تواند باعث شود اندیس‌های بخش از موقعیت زمانی واقعی مورد انتظار عقب بیفتند. .IP "\fBinit_seg_name\fR \fIinit_name\fR" 4 .IX Item "init_seg_name init_name" نام مبتنی بر الگوی DASH برای استفاده در بخش مقداردهی اولیه (initialization segment). پیش‌فرض \&\f(CW\*(C`init\-stream$RepresentationID$.$ext$\*(C'\fR است. عبارت \f(CW\*(C`$ext$\*(C'\fR با پسوند پرونده مخصوص قالب بخش جایگزین می‌شود. .IP "\fBldash\fR \fIbool\fR" 4 .IX Item "ldash bool" فعال‌سازی Dash با تاخیر کم (Low\-latency Dash) با محدود کردن وجود و مقادیر برخی عناصر. به طور پیش‌فرض غیرفعال است. .IP "\fBlhls\fR \fIbool\fR" 4 .IX Item "lhls bool" فعال‌سازی HLS با تاخیر کم (LHLS). افزودن برچسب \f(CW\*(C`#EXT\-X\-PREFETCH\*(C'\fR با URI بخش فعلی. توسعه‌دهندگان پخش‌کننده hls.js در حال تلاش برای استانداردسازی مشخصات فنی باز LHLS هستند. پیش‌نویس مشخصات فنی در <\fBhttps://github.com/video\-dev/hlsjs\-rfcs/blob/lhls\-spec/proposals/0001\-lhls.md\fR> در دسترس است. .Sp این گزینه تلاش می‌کند با مشخصات فنی باز فوق مطابقت داشته باشد. این گزینه به طور خودکار گزینه‌های \&\fBstreaming\fR و \fBhls_playlist\fR را فعال می‌کند. این یک ویژگی آزمایشی است. .Sp نکته: این نسخه LHLS اپل نیست. ببینید: <\fBhttps://datatracker.ietf.org/doc/html/draft\-pantos\-hls\-rfc8216bis\fR> .IP "\fBmaster_m3u8_publish_rate\fR \fIsegment_intervals_count\fR" 4 .IX Item "master_m3u8_publish_rate segment_intervals_count" انتشار مکرر لیست پخش اصلی پس از تعداد مشخصی بازه زمانی بخش. .IP "\fBmax_playback_rate\fR \fIrate\fR" 4 .IX Item "max_playback_rate rate" تنظیم حداکثر نرخ پخش که برای اهداف تنظیم خودکار تأخیر پخش و اشغال بافر در طول پخش عادی توسط کلاینت‌ها مناسب اعلام شده است. .IP "\fBmedia_seg_name\fR \fIsegment_name\fR" 4 .IX Item "media_seg_name segment_name" نام مبتنی بر الگوی DASH برای استفاده در بخش‌های رسانه. پیش‌فرض \&\f(CW\*(C`chunk\-stream$RepresentationID$\-$Number%05d$.$ext$\*(C'\fR است. عبارت \f(CW\*(C`$ext$\*(C'\fR با پسوند پرونده مخصوص قالب بخش جایگزین می‌شود. .IP "\fBmethod\fR \fImethod\fR" 4 .IX Item "method method" استفاده از متد HTTP ارائه‌شده برای ایجاد پرونده‌های خروجی. معمولاً روی \f(CW\*(C`PUT\*(C'\fR یا \f(CW\*(C`POST\*(C'\fR تنظیم می‌شود. .IP "\fBmin_playback_rate\fR \fIrate\fR" 4 .IX Item "min_playback_rate rate" تنظیم حداقل نرخ پخش که برای اهداف تنظیم خودکار تأخیر پخش و اشغال بافر در طول پخش عادی توسط کلاینت‌ها مناسب اعلام شده است. .IP "\fBmpd_profile\fR \fIflags\fR" 4 .IX Item "mpd_profile flags" تنظیم یک یا چند پروفایل مانیفست MPD. .Sp مقادیر ممکن: .RS 4 .IP \fBdash\fR 4 .IX Item "dash" پروفایل زنده قالب پرونده رسانه‌ای پایه ISO در MPEG\-DASH .IP \fBdvb_dash\fR 4 .IX Item "dvb_dash" پروفایل DVB\-DASH .RE .RS 4 .Sp مقدار پیش‌فرض \f(CW\*(C`dash\*(C'\fR است. .RE .IP "\fBremove_at_exit\fR \fIbool\fR" 4 .IX Item "remove_at_exit bool" فعال یا غیرفعال کردن حذف تمام بخش‌ها در زمان اتمام کار. به طور پیش‌فرض غیرفعال است. .IP "\fBseg_duration\fR \fIduration\fR" 4 .IX Item "seg_duration duration" تنظیم طول بخش بر حسب ثانیه (مقدار اعشاری قابل تنظیم است). این مقدار هنگامی که گزینه \&\fBuse_template\fR فعال و گزینه \fBuse_timeline\fR غیرفعال باشد به عنوان میانگین مدت زمان بخش، و برای سایر موارد کاربردی به عنوان حداقل مدت زمان بخش در نظر گرفته می‌شود. .Sp مقدار پیش‌فرض \f(CW5\fR است. .IP "\fBsingle_file\fR \fIbool\fR" 4 .IX Item "single_file bool" فعال یا غیرفعال کردن ذخیره تمام بخش‌ها در یک پرونده واحد، که با استفاده از محدوده‌های بایتی (byte ranges) قابل دسترسی است. به طور پیش‌فرض غیرفعال است. .Sp نام پرونده منفرد را می‌توان با گزینه \&\fBsingle_file_name\fR مشخص کرد؛ اگر مشخص نشود، نام پایه پرونده مانیفست با پسوند قالب خروجی در نظر گرفته می‌شود. .IP "\fBsingle_file_name\fR \fIfile_name\fR" 4 .IX Item "single_file_name file_name" نام مبتنی بر الگوی DASH برای استفاده در عنصر \f(CW\*(C`baseURL\*(C'\fR مانیفست. مستلزم آن است که گزینه \fBsingle_file\fR روی \&\fItrue\fR تنظیم شده باشد. در الگو، عبارت \f(CW\*(C`$ext$\*(C'\fR با پسوند پرونده مخصوص قالب بخش جایگزین می‌شود. .IP "\fBavailability_start_time_ms\fR \fImilliseconds\fR" 4 .IX Item "availability_start_time_ms milliseconds" تنظیم صفت \f(CW\*(C`availabilityStartTime\*(C'\fR در MPD به صورت زمان یونیکس (Unix epoch) بر حسب میلی‌ثانیه. اگر روی \f(CW0\fR تنظیم شود، زمان ساعت دیواری هنگام نوشتن اولین بسته استفاده می‌شود. این گزینه برای خروجی‌های زنده‌ای مفید است که نیاز به یک زمان شروع دسترسی پایدار در طول راه‌اندازی‌های مجدد دارند. .IP "\fBstreaming\fR \fIbool\fR" 4 .IX Item "streaming bool" فعال یا غیرفعال کردن حالت استریمینگ چانک خروجی. در حالت استریمینگ چانک، هر فریم یک قطعه \f(CW\*(C`moof\*(C'\fR خواهد بود که یک چانک را تشکیل می‌دهد. این گزینه به طور پیش‌فرض غیرفعال است. .IP "\fBsuggested_presentation_delay\fR \fIduration\fR" 4 .IX Item "suggested_presentation_delay duration" تنظیم صفت \f(CW\*(C`suggestedPresentationDelay\*(C'\fR در MPD. اگر روی \&\f(CW0\fR تنظیم شود، مدت زمان آخرین بخش استفاده می‌شود. .IP "\fBtarget_latency\fR \fItarget_latency\fR" 4 .IX Item "target_latency target_latency" تنظیم تأخیر هدف مورد نظر بر حسب ثانیه برای ارائه سرویس (مقدار اعشاری قابل تنظیم است). فقط زمانی قابل اعمال است که گزینه‌های \fBstreaming\fR و \&\fBwrite_prft\fR فعال باشند. این یک فیلد اطلاع‌رسانی است که کلاینت‌ها می‌توانند برای سنجش میزان تأخیر سرویس از آن استفاده کنند. .IP "\fBtimeout\fR \fItimeout\fR" 4 .IX Item "timeout timeout" تنظیم زمان انقضا (timeout) برای عملیات سوکت ورودی/خروجی بر حسب ثانیه (مقدار اعشاری قابل تنظیم است). فقط برای خروجی HTTP قابل اعمال است. .IP "\fBupdate_period\fR \fIperiod\fR" 4 .IX Item "update_period period" تنظیم دوره به‌روزرسانی MPD، برای محتوای پویا. واحد آن ثانیه است. اگر روی \f(CW0\fR تنظیم شود، دوره به طور خودکار محاسبه می‌شود. .Sp مقدار پیش‌فرض \f(CW0\fR است. .IP "\fBuse_template\fR \fIbool\fR" 4 .IX Item "use_template bool" فعال یا غیرفعال کردن استفاده از \f(CW\*(C`SegmentTemplate\*(C'\fR به جای \&\f(CW\*(C`SegmentList\*(C'\fR در مانیفست. این گزینه به طور پیش‌فرض فعال است. .IP "\fBuse_timeline\fR \fIbool\fR" 4 .IX Item "use_timeline bool" فعال یا غیرفعال کردن استفاده از \f(CW\*(C`SegmentTimeline\*(C'\fR در بخش مانیفست \&\f(CW\*(C`SegmentTemplate\*(C'\fR. این گزینه به طور پیش‌فرض فعال است. .IP "\fButc_timing_url\fR \fIurl\fR" 4 .IX Item "utc_timing_url url" آدرس صفحه‌ای که برچسب زمانی UTC را در قالب ISO برمی‌گرداند، به عنوان مثال \f(CW\*(C`https://time.akamai.com/?iso\*(C'\fR .IP "\fBwindow_size\fR \fIsize\fR" 4 .IX Item "window_size size" تنظیم حداکثر تعداد بخش‌های نگه‌داشته‌شده در مانیفست، و دور انداختن قدیمی‌ترین بخش. این ویژگی برای استریمینگ زنده مفید است. .Sp اگر مقدار \f(CW0\fR باشد، تمام بخش‌ها در مانیفست نگه داشته می‌شوند. مقدار پیش‌فرض \f(CW0\fR است. .IP "\fBwrite_prft\fR \fIwrite_prft\fR" 4 .IX Item "write_prft write_prft" نوشتن عناصر Producer Reference Time در جریان‌های پشتیبانی‌شده. این کار همچنین نوشتن جعبه‌های prft را در مکسر زیرین فعال می‌کند. فقط زمانی قابل اعمال است که گزینه \fIutc_url\fR فعال باشد. به طور پیش‌فرض روی \fIauto\fR تنظیم شده است که در این حالت مکسر تلاش می‌کند آن را تنها در حالت‌هایی که به آن نیاز دارند فعال کند. .PP \fIمثال\fR .IX Subsection "Example" .PP تولید یک خروجی DASH با خواندن از یک منبع ورودی به صورت بلادرنگ با استفاده از \&\fBffmpeg\fR. .PP دو جریان چندرسانه‌ای از پرونده ورودی تولید می‌شوند، که هر دو شامل یک جریان ویدیویی انکودشده از طریق \fBlibx264\fR و یک جریان صوتی انکودشده با \fBlibfdk_aac\fR هستند. اولین جریان چندرسانه‌ای حاوی ویدیویی با بیت‌ریت 800k و صدا با نرخ پیش‌فرض است، دومی حاوی ویدیویی با ابعاد مقیاس‌بندی‌شده 320x170 پیکسل با بیت‌ریت 300k و صدای بازنمونه‌برداری‌شده در 22005 Hz است. .PP گزینه \fBwindow_size\fR تنها ۵ بخش اخیر را با مدت زمان پیش‌فرض ۵ ثانیه نگه می‌دارد. .PP .Vb 7 \& ffmpeg \-re \-i \-map 0 \-map 0 \-c:a libfdk_aac \-c:v libx264 \e \& \-b:v:0 800k \-profile:v:0 main \e \& \-b:v:1 300k \-s:v:1 320x170 \-profile:v:1 baseline \-ar:a:1 22050 \e \& \-bf 1 \-keyint_min 120 \-g 120 \-sc_threshold 0 \-b_strategy 0 \e \& \-use_timeline 1 \-use_template 1 \-window_size 5 \e \& \-adaptation_sets "id=0,streams=v id=1,streams=a" \e \& \-f dash /path/to/out.mpd .Ve .SS daud .IX Subsection "daud" مکسر صوتی سینمای دیجیتال (D\-Cinema). .PP یک جریان صوتی تکی ۶ کاناله بازنمونه‌برداری‌شده در فرکانس 96000 Hz انکودشده با کدک \fBpcm_24daud\fR را می‌پذیرد. .PP \fIمثال\fR .IX Subsection "Example" .PP استفاده از \fBffmpeg\fR برای مکس صدای ورودی به چیدمان کانال \fB5.1\fR با بازنمونه‌برداری در فرکانس 96000Hz: .PP .Vb 1 \& ffmpeg \-i INPUT \-af aresample=96000,pan=5.1 slow.302 .Ve .PP برای نسخه‌های ffmpeg پیش از 7.0 ممکن است مجبور شوید از فیلتر \fBasetnsamples\fR برای محدود کردن اندازه بسته‌های مکس‌شده استفاده کنید، زیرا این قالب از مکس بسته‌های بزرگ‌تر از ۶۵۵۳۵ بایت (۳۶۴۰ نمونه) پشتیبانی نمی‌کند. در نسخه‌های جدیدتر ffmpeg صدا به طور خودکار به بسته‌های ۳۶۰۰۰ بایتی (۲۰۰۰ نمونه) بسته‌بندی می‌شود. .SS dv .IX Subsection "dv" مکسر ویدیوی دیجیتال (DV \- Digital Video). .PP دقیقاً یک جریان ویدیویی \fBdvvideo\fR و حداکثر دو جریان صوتی \&\fBpcm_s16\fR را می‌پذیرد. محدودیت‌های بیشتری توسط ویژگی‌های ویدیو (که باید مطابق با یک پروفایل پشتیبانی‌شده ویدیوی DV باشد) و نرخ فریم تعیین می‌شود. .PP \fIمثال\fR .IX Subsection "Example" .PP استفاده از \fBffmpeg\fR برای تبدیل ورودی: .PP .Vb 1 \& ffmpeg \-i INPUT \-s:v 720x480 \-pix_fmt yuv411p \-r 29.97 \-ac 2 \-ar 48000 \-y out.dv .Ve .SS ffmetadata .IX Subsection "ffmetadata" مکسر متاداده FFmpeg. .PP این مکسر متاداده جریان‌ها را در قالب \fBffmetadata\fR می‌نویسد. .PP برای اطلاعات درباره قالب، به \fBفصل متاداده (Metadata)\fR مراجعه کنید. .PP \fIمثال\fR .IX Subsection "Example" .PP استفاده از \fBffmpeg\fR برای استخراج متاداده از یک پرونده ورودی به یک پرونده \fImetadata.ffmeta\fR در قالب \fBffmetadata\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-f ffmetadata metadata.ffmeta .Ve .SS fifo .IX Subsection "fifo" مکسر صف ورودی اول خروجی اول (FIFO). .PP شبه‌مکسر \fBfifo\fR با استفاده از یک صف ورودی اول خروجی اول و اجرای مکسر واقعی در یک رشته (thread) جداگانه، امکان تفکیک انکودینگ و مکس را فراهم می‌کند. .PP این ویژگی به ویژه در ترکیب با مکسر \fBtee\fR سودمند است و می‌تواند برای ارسال داده‌ها به چندین مقصد با قابلیت اطمینان، سرعت نوشتن و تأخیرهای متفاوت استفاده شود. .PP مکسر هدف یا از نام خروجی انتخاب می‌شود یا از طریق گزینه \fBfifo_format\fR تعیین می‌گردد. .PP رفتار مکسر \fBfifo\fR در صورت پر شدن صف یا در صورت شکست خروجی (به عنوان مثال اگر یک بسته نتواند در خروجی نوشته شود) قابل انتخاب است: .IP \(bu 4 خروجی می‌تواند به صورت شفاف با تأخیر قابل تنظیم بین تلاش‌های مجدد بر اساس زمان واقعی یا زمان جریان پردازش‌شده دوباره راه‌اندازی شود. .IP \(bu 4 انکودینگ می‌تواند در طول خطای موقت مسدود شود، یا در صورتی که صف FIFO پر شود به صورت شفاف با دور انداختن بسته‌ها ادامه یابد. .PP کاربران API باید توجه داشته باشند که توابع بازخوانی (\f(CW\*(C`interrupt_callback\*(C'\fR، \f(CW\*(C`io_open\*(C'\fR و \f(CW\*(C`io_close\*(C'\fR) مورد استفاده درون \f(CW\*(C`AVFormatContext\*(C'\fR آن باید چندنخی امن (thread\-safe) باشند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBattempt_recovery\fR \fIbool\fR" 4 .IX Item "attempt_recovery bool" در صورت بروز خطا، تلاش برای بازیابی خروجی انجام شود. این گزینه به ویژه هنگام استفاده با خروجی شبکه مفید است، زیرا راه‌اندازی مجدد استریم را به صورت شفاف ممکن می‌سازد. به طور پیش‌فرض این گزینه روی \&\f(CW\*(C`false\*(C'\fR تنظیم شده است. .IP "\fBdrop_pkts_on_overflow\fR \fIbool\fR" 4 .IX Item "drop_pkts_on_overflow bool" در صورت تنظیم روی \f(CW\*(C`true\*(C'\fR، در صورتی که صف fifo پر شود، بسته‌ها به جای مسدود کردن انکودر دور ریخته می‌شوند. این امر ادامه‌یافتن استریم را بدون ایجاد تأخیر در ورودی ممکن می‌سازد، هرچند به قیمت نادیده گرفتن بخشی از جریان تمام می‌شود. به طور پیش‌فرض این گزینه روی \f(CW\*(C`false\*(C'\fR تنظیم شده است، بنابراین در چنین مواردی انکودر مسدود می‌شود تا زمانی که مکسر برخی از بسته‌ها را پردازش کند و هیچ‌یک از آن‌ها از بین نرود. .IP "\fBfifo_format\fR \fIformat_name\fR" 4 .IX Item "fifo_format format_name" تعیین نام قالب. زمانی مفید است که نتوان آن را از پسوند نام خروجی حدس زد. .IP "\fBformat_opts\fR \fIoptions\fR" 4 .IX Item "format_opts options" تعیین گزینه‌های قالب برای مکسر زیرین. گزینه‌های مکسر می‌توانند به عنوان فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR جداشده با \*(Aq:\*(Aq مشخص شوند. .IP "\fBmax_recovery_attempts\fR \fIcount\fR" 4 .IX Item "max_recovery_attempts count" تنظیم حداکثر تعداد تلاش‌های متوالی ناموفق برای بازیابی که پس از آن خروجی به طور دائمی با شکست مواجه می‌شود. به طور پیش‌فرض این گزینه روی \&\f(CW0\fR (نامحدود) تنظیم شده است. .IP "\fBqueue_size\fR \fIsize\fR" 4 .IX Item "queue_size size" تعیین اندازه صف به عنوان تعداد بسته‌ها. مقدار پیش‌فرض \&\f(CW60\fR است. .IP "\fBrecover_any_error\fR \fIbool\fR" 4 .IX Item "recover_any_error bool" اگر روی \f(CW\*(C`true\*(C'\fR تنظیم شود، بازیابی صرف‌نظر از نوع خطای ایجادکننده شکست تلاش خواهد شد. به طور پیش‌فرض این گزینه روی \&\f(CW\*(C`false\*(C'\fR تنظیم شده است و در صورت بروز برخی خطاهای خاص (معمولاً دائمی)، حتی در صورت تنظیم گزینه \fBattempt_recovery\fR روی \f(CW\*(C`true\*(C'\fR نیز برای بازیابی تلاشی صورت نمی‌گیرد. .IP "\fBrecovery_wait_streamtime\fR \fIbool\fR" 4 .IX Item "recovery_wait_streamtime bool" اگر روی \f(CW\*(C`false\*(C'\fR تنظیم شود، زمان واقعی هنگام انتظار برای تلاش بازیابی استفاده می‌شود (یعنی بازیابی پس از زمان مشخص‌شده توسط گزینه \fBrecovery_wait_time\fR انجام می‌شود). .Sp اگر روی \f(CW\*(C`true\*(C'\fR تنظیم شود، زمان جریان پردازش‌شده به جای آن در نظر گرفته می‌شود (یعنی بازیابی پس از دور ریختن بسته‌های متناظر با گزینه \fBrecovery_wait_time\fR انجام می‌شود). .Sp به طور پیش‌فرض این گزینه روی \f(CW\*(C`false\*(C'\fR تنظیم شده است. .IP "\fBrecovery_wait_time\fR \fIduration\fR" 4 .IX Item "recovery_wait_time duration" تعیین زمان انتظار به ثانیه قبل از تلاش بازیابی بعدی پس از تلاش ناموفق قبلی. مقدار پیش‌فرض \f(CW5\fR است. .IP "\fBrestart_with_keyframe\fR \fIbool\fR" 4 .IX Item "restart_with_keyframe bool" تعیین اینکه آیا پس از بازیابی از سرریز صف یا شکست، منتظر فریم کلیدی بماند یا خیر. این گزینه به طور پیش‌فرض روی \f(CW\*(C`false\*(C'\fR تنظیم شده است. .IP "\fBtimeshift\fR \fIduration\fR" 4 .IX Item "timeshift duration" بافر کردن مقدار مشخصی از بسته‌ها و به تأخیر انداختن نوشتن خروجی. توجه داشته باشید که مقدار گزینه \fBqueue_size\fR باید به اندازه کافی بزرگ باشد تا بسته‌ها را برای انتقال زمانی (timeshift) ذخیره کند. در پایان ورودی، بافر fifo با سرعت بلادرنگ تخلیه می‌شود. .PP \fIمثال\fR .IX Subsection "Example" .PP استفاده از \fBffmpeg\fR برای استریم به یک سرور RTMP، ادامه پردازش جریان با نرخ بلادرنگ حتی در صورت بروز خطای موقت (قطعی شبکه) و تلاش برای بازیابی استریم در هر ثانیه به طور نامحدود: .PP .Vb 3 \& ffmpeg \-re \-i ... \-c:v libx264 \-c:a aac \-f fifo \-fifo_format flv \e \& \-drop_pkts_on_overflow 1 \-attempt_recovery 1 \-recovery_wait_time 1 \e \& \-map 0:v \-map 0:a rtmp://example.com/live/stream_name .Ve .SS film_cpk .IX Subsection "film_cpk" مکسر فیلم سگا (.cpk). .PP این قالب به عنوان قالب داخلی برای چندین بازی سگا استفاده می‌شد. .PP برای اطلاعات بیشتر در مورد قالب پرونده فیلم سگا، به <\fBhttp://wiki.multimedia.cx/index.php?title=Sega_FILM\fR> مراجعه کنید. .PP حداکثر یک جریان ویدیویی \fBcinepak\fR یا ویدیوی خام، و حداکثر یک جریان صوتی را می‌پذیرد. .SS filmstrip .IX Subsection "filmstrip" مکسر Adobe Filmstrip. .PP این قالب توسط چندین ابزار Adobe برای ذخیره خروجی فیلم‌استریپ تولیدشده استفاده می‌شود. این مکسر یک جریان ویدیوی خام تکی را می‌پذیرد. .SS fits .IX Subsection "fits" مکسر سیستم انتقال تصویر منعطف (FITS \- Flexible Image Transport System). .PP این قالب تصویری برای ذخیره داده‌های نجومی استفاده می‌شود. .PP برای اطلاعات بیشتر در مورد این قالب، به <\fBhttps://fits.gsfc.nasa.gov\fR> مراجعه کنید. .SS flac .IX Subsection "flac" مکسر صوتی خام FLAC. .PP این مکسر دقیقاً یک جریان صوتی FLAC را می‌پذیرد. علاوه بر این، امکان افزودن تصاویر با آرایش (disposition) به نام \fBattached_pic\fR وجود دارد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBwrite_header\fR \fIbool\fR" 4 .IX Item "write_header bool" نوشتن هدر پرونده در صورت تنظیم روی \f(CW\*(C`true\*(C'\fR، پیش‌فرض \f(CW\*(C`true\*(C'\fR است .PP \fIمثال\fR .IX Subsection "Example" .PP استفاده از \fBffmpeg\fR برای ذخیره جریان صوتی از یک پرونده ورودی، به همراه چندین تصویر با آرایش \fBattached_pic\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-i pic1.png \-i pic2.jpg \-map 0:a \-map 1 \-map 2 \-disposition:v attached_pic OUTPUT .Ve .SS flv .IX Subsection "flv" مکسر قالب ویدیویی Adobe Flash (FLV). .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBflvflags\fR \fIflags\fR" 4 .IX Item "flvflags flags" مقادیر ممکن: .RS 4 .IP \fBaac_seq_header_detect\fR 4 .IX Item "aac_seq_header_detect" قرار دادن هدر توالی AAC بر اساس داده‌های جریان صوتی. .IP \fBno_sequence_end\fR 4 .IX Item "no_sequence_end" غیرفعال کردن برچسب پایان توالی. .IP \fBno_metadata\fR 4 .IX Item "no_metadata" غیرفعال کردن برچسب متاداده. .IP \fBno_duration_filesize\fR 4 .IX Item "no_duration_filesize" غیرفعال کردن مدت زمان و اندازه پرونده در متاداده زمانی که در انتهای جریان برابر با صفر هستند. (برای جریان زنده غیرقابل پرش استفاده می‌شود). .IP \fBadd_keyframe_index\fR 4 .IX Item "add_keyframe_index" برای تسهیل جستجو و پرش زمانی؛ به ویژه برای شبه‌استریمینگ HTTP. .RE .RS 4 .RE .SS framecrc .IX Subsection "framecrc" قالب آزمایش CRC به ازای هر بسته. .PP این مکسر CRC از نوع Adler\-32 را برای هر بسته صوتی و تصویری محاسبه و چاپ می‌کند. به طور پیش‌فرض، فریم‌های صوتی به صوتی خام ۱۶ بیتی علامت‌دار و فریم‌های ویدیویی به ویدیوی خام قبل از محاسبه CRC تبدیل می‌شوند. .PP خروجی مکسر شامل یک خط برای هر بسته صوتی و تصویری به شکل زیر است: .PP .Vb 1 \& , , , , , 0x .Ve .PP عبارت \&\fICRC\fR یک عدد هگزادسیمال پرشده با صفر تا ۸ رقم است که حاوی CRC آن بسته می‌باشد. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .PP به عنوان مثال، برای محاسبه CRC فریم‌های صوتی و تصویری در \&\fIINPUT\fR که به بسته‌های صوتی و تصویری خام تبدیل شده‌اند، و ذخیره آن در پرونده \fIout.crc\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-f framecrc out.crc .Ve .PP برای چاپ اطلاعات در خروجی استاندارد (stdout)، از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-f framecrc \- .Ve .PP با \fBffmpeg\fR می‌توانید قالبی را که فریم‌های صوتی و تصویری قبل از محاسبه CRC برای هر بسته به آن انکود می‌شوند، با تعیین کدک صوتی و تصویری انتخاب کنید. به عنوان مثال، برای محاسبه CRC هر فریم صوتی ورودی دیکودشده تبدیل‌شده به PCM بدون علامت ۸ بیتی و هر فریم ویدیویی ورودی دیکودشده تبدیل‌شده به ویدیوی MPEG\-2، از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-c:a pcm_u8 \-c:v mpeg2video \-f framecrc \- .Ve .PP همچنین مکسر \fBcrc\fR را ببینید. .SS framehash .IX Subsection "framehash" قالب آزمایش هش به ازای هر بسته. .PP این مکسر یک هش رمزنگاری برای هر بسته صوتی و تصویری محاسبه و چاپ می‌کند. این می‌تواند برای بررسی برابری بسته به بسته بدون نیاز به مقایسه باینری تک‌تک آن‌ها استفاده شود. .PP به طور پیش‌فرض، فریم‌های صوتی به صوتی خام ۱۶ بیتی علامت‌دار و فریم‌های ویدیویی به ویدیوی خام قبل از محاسبه هش تبدیل می‌شوند، اما خروجی تبدیل‌های صریح به سایر کدک‌ها نیز می‌تواند استفاده شود. این مکسر به طور پیش‌فرض از تابع هش رمزنگاری SHA\-256 استفاده می‌کند، اما از چندین الگوریتم دیگر نیز پشتیبانی می‌نماید. .PP خروجی مکسر شامل یک خط برای هر بسته صوتی و تصویری به شکل زیر است: .PP .Vb 1 \& , , , , , .Ve .PP عبارت \&\fIhash\fR یک عدد هگزادسیمال است که نشان‌دهنده هش محاسبه‌شده برای بسته می‌باشد. .IP "\fBhash\fR \fIalgorithm\fR" 4 .IX Item "hash algorithm" استفاده از تابع هش رمزنگاری مشخص‌شده توسط رشته \fIalgorithm\fR. مقادیر پشتیبانی‌شده عبارتند از \f(CW\*(C`MD5\*(C'\fR، \f(CW\*(C`murmur3\*(C'\fR، \f(CW\*(C`RIPEMD128\*(C'\fR، \&\f(CW\*(C`RIPEMD160\*(C'\fR، \f(CW\*(C`RIPEMD256\*(C'\fR، \f(CW\*(C`RIPEMD320\*(C'\fR، \f(CW\*(C`SHA160\*(C'\fR، \&\f(CW\*(C`SHA224\*(C'\fR، \f(CW\*(C`SHA256\*(C'\fR (پیش‌فرض)، \f(CW\*(C`SHA512/224\*(C'\fR، \f(CW\*(C`SHA512/256\*(C'\fR، \&\f(CW\*(C`SHA384\*(C'\fR، \f(CW\*(C`SHA512\*(C'\fR، \f(CW\*(C`CRC32\*(C'\fR و \f(CW\*(C`adler32\*(C'\fR. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .PP برای محاسبه هش SHA\-256 فریم‌های صوتی و تصویری در \fIINPUT\fR که به بسته‌های صوتی و تصویری خام تبدیل شده‌اند، و ذخیره آن در پرونده \&\fIout.sha256\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-f framehash out.sha256 .Ve .PP برای چاپ اطلاعات در خروجی استاندارد با استفاده از تابع هش MD5، از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-f framehash \-hash md5 \- .Ve .PP همچنین مکسر \fBhash\fR را ببینید. .SS framemd5 .IX Subsection "framemd5" قالب آزمایش MD5 به ازای هر بسته. .PP این یک گونه از مکسر \fBframehash\fR است. بر خلاف آن مکسر، این مورد به طور پیش‌فرض از تابع هش MD5 استفاده می‌کند. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .PP برای محاسبه هش MD5 فریم‌های صوتی و تصویری در \fIINPUT\fR که به بسته‌های صوتی و تصویری خام تبدیل شده‌اند، و ذخیره آن در پرونده \&\fIout.md5\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-f framemd5 out.md5 .Ve .PP برای چاپ اطلاعات در stdout، از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-f framemd5 \- .Ve .PP همچنین مکسرهای \fBframehash\fR و \fBmd5\fR را ببینید. .SS gif .IX Subsection "gif" مکسر GIF متحرک. .PP توجه داشته باشید که قالب GIF پایه زمانی بسیار بزرگی دارد: بنابراین تأخیر بین دو فریم نمی‌تواند کمتر از یک صدم ثانیه (centisecond) باشد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBloop\fR \fIbool\fR" 4 .IX Item "loop bool" تنظیم تعداد دفعات تکرار حلقه خروجی. از \f(CW\-1\fR برای بدون حلقه و از \f(CW0\fR برای تکرار بی‌نهایت (پیش‌فرض) استفاده کنید. .IP "\fBfinal_delay\fR \fIdelay\fR" 4 .IX Item "final_delay delay" اجبار تأخیر (بر حسب صدم ثانیه) پس از آخرین فریم. هر فریم با یک تأخیر تا فریم بعدی پایان می‌یابد. پیش‌فرض \f(CW\-1\fR است، که یک مقدار ویژه برای اعلام به مکسر جهت استفاده مجدد از تأخیر قبلی است. در صورت وجود حلقه، ممکن است بخواهید این مقدار را برای مشخص کردن یک مکث سفارشی کنید. .PP \fIمثال\fR .IX Subsection "Example" .PP انکود یک gif با ۱۰ بار تکرار حلقه، همراه با ۵ ثانیه تأخیر بین دورهای تکرار: .PP .Vb 1 \& ffmpeg \-i INPUT \-loop 10 \-final_delay 500 out.gif .Ve .PP نکته ۱: اگر مایل به استخراج فریم‌ها در پرونده‌های GIF جداگانه هستید، باید مکسر \fBimage2\fR را اجبار کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-c:v gif \-f image2 "out%d.gif" .Ve .SS gxf .IX Subsection "gxf" مکسر قالب تبادل عمومی (GXF \- General eXchange Format). .PP قالب GXF توسط گروه Grass Valley توسعه داده شد، سپس توسط SMPTE به عنوان SMPTE 360M استاندارد شد و در SMPTE RDD 14\-2007 برای دربرگرفتن وضوح‌های ویدیویی با تفکیک‌پذیری بالا (HD) گسترش یافت. .PP حداکثر یک جریان ویدیویی با کدک \fBmjpeg\fR، یا \&\fBmpeg1video\fR، یا \fBmpeg2video\fR، یا \fBdvvideo\fR با وضوح \&\fB512x480\fR یا \fB608x576\fR، و چندین جریان صوتی با نرخ 48000Hz و کدک \fBpcm16_le\fR را می‌پذیرد. .SS hash .IX Subsection "hash" قالب آزمایش هش. .PP این مکسر یک هش رمزنگاری از تمام فریم‌های صوتی و تصویری ورودی محاسبه و چاپ می‌کند. این می‌تواند برای بررسی‌های برابری بدون نیاز به مقایسه باینری کامل استفاده شود. .PP به طور پیش‌فرض فریم‌های صوتی به صوتی خام ۱۶ بیتی علامت‌دار و فریم‌های ویدیویی به ویدیوی خام قبل از محاسبه هش تبدیل می‌شوند، اما از خروجی تبدیل‌های صریح به سایر کدک‌ها نیز می‌توان استفاده کرد. برچسب‌های زمانی نادیده گرفته می‌شوند. به طور پیش‌فرض از تابع هش رمزنگاری SHA\-256 استفاده می‌کند، اما از چندین الگوریتم دیگر نیز پشتیبانی می‌نماید. .PP خروجی مکسر شامل یک خط منفرد به شکل زیر است: \&\fIalgo\fR=\fIhash\fR، که در آن \fIalgo\fR یک رشته کوتاه نشان‌دهنده تابع هش استفاده‌شده، و \fIhash\fR یک عدد هگزادسیمال نشان‌دهنده هش محاسبه‌شده است. .IP "\fBhash\fR \fIalgorithm\fR" 4 .IX Item "hash algorithm" استفاده از تابع هش رمزنگاری مشخص‌شده توسط رشته \fIalgorithm\fR. مقادیر پشتیبانی‌شده عبارتند از \f(CW\*(C`MD5\*(C'\fR، \f(CW\*(C`murmur3\*(C'\fR، \f(CW\*(C`RIPEMD128\*(C'\fR، \&\f(CW\*(C`RIPEMD160\*(C'\fR، \f(CW\*(C`RIPEMD256\*(C'\fR، \f(CW\*(C`RIPEMD320\*(C'\fR، \f(CW\*(C`SHA160\*(C'\fR، \&\f(CW\*(C`SHA224\*(C'\fR، \f(CW\*(C`SHA256\*(C'\fR (پیش‌فرض)، \f(CW\*(C`SHA512/224\*(C'\fR، \f(CW\*(C`SHA512/256\*(C'\fR، \&\f(CW\*(C`SHA384\*(C'\fR، \f(CW\*(C`SHA512\*(C'\fR، \f(CW\*(C`CRC32\*(C'\fR و \f(CW\*(C`adler32\*(C'\fR. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .PP برای محاسبه هش SHA\-256 ورودی تبدیل‌شده به صدا و تصویر خام، و ذخیره آن در پرونده \fIout.sha256\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-f hash out.sha256 .Ve .PP برای چاپ هش MD5 در خروجی استاندارد از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-f hash \-hash md5 \- .Ve .PP همچنین مکسر \fBframehash\fR را ببینید. .SS hds .IX Subsection "hds" مکسر استریمینگ پویا روی HTTP (HDS \- HTTP Dynamic Streaming). .PP استریمینگ پویای HTTP یا HDS یک روش استریم با بیت‌ریت تطبیقی توسعه داده شده توسط شرکت Adobe است. پروتکل HDS محتوای ویدیویی MP4 را از طریق اتصالات HTTP منتقل می‌کند. پروتکل HDS می‌تواند برای استریمینگ بر اساس تقاضا (VOD) یا استریم زنده استفاده شود. .PP این مکسر یک مانیفست .f4m (پرونده مانیفست رسانه‌ای Adobe Flash)، یک پرونده .abst (پرونده بوت‌استرپ Adobe) برای هر جریان، و پرونده‌های قطعه را در پوشه‌ای که به عنوان خروجی مشخص شده است ایجاد می‌کند. .PP این موارد باید توسط یک پخش‌کننده HDS از طریق HTTPS در دسترس قرار گیرند تا بتواند پخش جریان تولیدشده را انجام دهد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBextra_window_size\fR \fIint\fR" 4 .IX Item "extra_window_size int" تعداد قطعاتی که خارج از مانیفست قبل از حذف از دیسک نگه داشته می‌شوند .IP "\fBmin_frag_duration\fR \fImicroseconds\fR" 4 .IX Item "min_frag_duration microseconds" حداقل مدت زمان قطعه (بر حسب میکروثانیه)، مقدار پیش‌فرض ۱ ثانیه (\f(CW10000000\fR) است .IP "\fBremove_at_exit\fR \fIbool\fR" 4 .IX Item "remove_at_exit bool" حذف تمام قطعات در زمان اتمام کار هنگامی که روی \f(CW\*(C`true\*(C'\fR تنظیم شده باشد .IP "\fBwindow_size\fR \fIint\fR" 4 .IX Item "window_size int" تعداد قطعات نگه‌داشته‌شده در مانیفست، در صورتی که روی مقداری متفاوت از \&\f(CW0\fR تنظیم شود. به طور پیش‌فرض تمام قطعات در پوشه خروجی نگه داشته می‌شوند. .PP \fIمثال\fR .IX Subsection "Example" .PP استفاده از \fBffmpeg\fR برای تولید پرونده‌های HDS در پوشه \fIoutput.hds\fR با نرخ بلادرنگ: .PP .Vb 1 \& ffmpeg \-re \-i INPUT \-f hds \-b:v 200k output.hds .Ve .SS hls .IX Subsection "hls" مکسر Apple HTTP Live Streaming که جریان MPEG\-TS را بر اساس مشخصات فنی HTTP Live Streaming (HLS) قطعه‌بندی می‌کند. .PP یک پرونده لیست پخش (playlist) و یک یا چند پرونده قطعه ایجاد می‌کند. نام پرونده خروجی، نام پرونده لیست پخش را مشخص می‌سازد. .PP به طور پیش‌فرض، مکسر برای هر قطعه تولیدشده یک پرونده ایجاد می‌کند. این پرونده‌ها نامی مشابه با لیست پخش دارند که به دنبال آن یک عدد ترتیبی و پسوند .ts قرار می‌گیرد. .PP اطمینان حاصل کنید که هنگام انکودینگ نیاز به GOP بسته (Closed GOP) دارید و اندازه GOP را به گونه‌ای تنظیم کنید که با محدودیت زمانی قطعه شما مطابقت داشته باشد. .PP به عنوان مثال، برای تبدیل یک پرونده ورودی با \fBffmpeg\fR: .PP .Vb 1 \& ffmpeg \-i in.mkv \-c:v h264 \-flags +cgop \-g 30 \-hls_time 1 out.m3u8 .Ve .PP این مثال لیست پخش \fIout.m3u8\fR و پرونده‌های قطعه زیر را تولید می‌کند: \&\fIout0.ts\fR، \fIout1.ts\fR، \fIout2.ts\fR و غیره. .PP همچنین مکسر \fBsegment\fR را ببینید که پیاده‌سازی عمومی‌تر و انعطاف‌پذیرتری از یک قطعه‌بند را ارائه می‌دهد و می‌تواند برای انجام قطعه‌بندی HLS استفاده شود. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBhls_init_time\fR \fIduration\fR" 4 .IX Item "hls_init_time duration" تنظیم طول اولیه قطعه هدف. مقدار پیش‌فرض \fI0\fR است. .Sp مقدار \&\fIduration\fR باید مشخص‌کننده مدت زمان باشد؛ به \fBبخش مدت زمان (Time duration) در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. .Sp قطعه روی فریم کلیدی بعدی پس از سپری شدن این زمان در اولین لیست m3u8 برش داده می‌شود. پس از پر شدن لیست پخش اولیه، \fBffmpeg\fR قطعات را با مدت زمانی برابر با \fBhls_time\fR برش می‌دهد. .IP "\fBhls_time\fR \fIduration\fR" 4 .IX Item "hls_time duration" تنظیم طول قطعه هدف. مقدار پیش‌فرض 2 است. .Sp مقدار \&\fIduration\fR باید مشخص‌کننده مدت زمان باشد؛ به \fBبخش مدت زمان (Time duration) در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید. قطعه روی فریم کلیدی بعدی پس از سپری شدن این زمان برش داده می‌شود. .IP "\fBhls_list_size\fR \fIsize\fR" 4 .IX Item "hls_list_size size" تنظیم حداکثر تعداد ورودی‌های لیست پخش. اگر روی 0 تنظیم شود، پرونده لیست شامل تمام قطعات خواهد بود. مقدار پیش‌فرض 5 است. .IP "\fBhls_delete_threshold\fR \fIsize\fR" 4 .IX Item "hls_delete_threshold size" تنظیم تعداد قطعات بدون ارجاع برای نگهداری روی دیسک قبل از اینکه \f(CW\*(C`hls_flags delete_segments\*(C'\fR آن‌ها را حذف کند. این مقدار را افزایش دهید تا به کلاینت‌ها اجازه داده شود به بارگیری قطعاتی که اخیراً در لیست پخش ارجاع داده شده بودند ادامه دهند. مقدار پیش‌فرض 1 است، به این معنی که قطعات قدیمی‌تر از \&\fBhls_list_size+1\fR حذف خواهند شد. .IP "\fBhls_start_number_source\fR \fIsource\fR" 4 .IX Item "hls_start_number_source source" شروع شماره توالی لیست پخش (\f(CW\*(C`#EXT\-X\-MEDIA\-SEQUENCE\*(C'\fR) بر اساس منبع مشخص‌شده. مگر اینکه \fBhls_flags single_file\fR تنظیم شده باشد، همچنین منبع شماره‌های توالی شروع نام پرونده‌های قطعه و زیرنویس را مشخص می‌کند. در هر صورت، اگر \fBhls_flags append_list\fR تنظیم شده باشد و شماره توالی لیست پخش خوانده‌شده بزرگ‌تر از شماره توالی شروع مشخص‌شده باشد، آن مقدار به عنوان مقدار شروع استفاده خواهد شد. .Sp مقادیر زیر را می‌پذیرد: .RS 4 .IP "\fBgeneric (پیش‌فرض)\fR" 4 .IX Item "generic (default)" تنظیم شماره‌های شروع بر اساس مقدار گزینه \fBstart_number\fR. .IP \fBepoch\fR 4 .IX Item "epoch" تنظیم شماره شروع بر اساس ثانیه‌های سپری‌شده از مبدأ یونیکس (1970\-01\-01 00:00:00). .IP \fBepoch_us\fR 4 .IX Item "epoch_us" تنظیم شماره شروع بر اساس میکروثانیه‌های سپری‌شده از مبدأ یونیکس (1970\-01\-01 00:00:00). .IP \fBdatetime\fR 4 .IX Item "datetime" تنظیم شماره شروع بر اساس تاریخ/زمان فعلی به صورت YYYYmmddHHMMSS، به عنوان مثال 20161231235759. .RE .RS 4 .RE .IP "\fBstart_number\fR \fInumber\fR" 4 .IX Item "start_number number" شروع شماره توالی لیست پخش (\f(CW\*(C`#EXT\-X\-MEDIA\-SEQUENCE\*(C'\fR) از \fInumber\fR مشخص‌شده هنگامی که مقدار \fBhls_start_number_source\fR برابر با \fIgeneric\fR باشد. (این حالت پیش‌فرض است.) مگر اینکه \fBhls_flags single_file\fR تنظیم شده باشد، همچنین شماره‌های توالی شروع نام پرونده‌های قطعه و زیرنویس را مشخص می‌کند. مقدار پیش‌فرض 0 است. .IP "\fBhls_allow_cache\fR \fIbool\fR" 4 .IX Item "hls_allow_cache bool" تعیین صریح اینکه آیا کلاینت مجاز به ذخیره موقت قطعات رسانه‌ای هست (1) یا نباید آن‌ها را ذخیره کند (0). .IP "\fBhls_base_url\fR \fIbaseurl\fR" 4 .IX Item "hls_base_url baseurl" الحاق \fIbaseurl\fR به ابتدای هر ورودی در لیست پخش. برای تولید لیست‌های پخش با مسیرهای مطلق مفید است. .Sp توجه داشته باشید که شماره توالی لیست پخش باید برای هر قطعه منحصر به فرد باشد و نباید با شماره توالی نام پرونده قطعه اشتباه گرفته شود که می‌تواند چرخشی باشد، به عنوان مثال اگر گزینه \fBwrap\fR مشخص شده باشد. .IP "\fBhls_segment_filename\fR \fIfilename\fR" 4 .IX Item "hls_segment_filename filename" تنظیم نام پرونده قطعه. مگر اینکه گزینه \fBhls_flags\fR با \&\fBsingle_file\fR تنظیم شده باشد، از \fIfilename\fR به عنوان یک قالب رشته‌ای با شماره قطعه الحاق‌شده استفاده می‌شود. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-hls_segment_filename \*(Aqfile%03d.ts\*(Aq out.m3u8 .Ve .Sp لیست پخش \fIout.m3u8\fR و پرونده‌های قطعه زیر را تولید می‌کند: \&\fIfile000.ts\fR، \fIfile001.ts\fR، \fIfile002.ts\fR و غیره. .Sp عبارت \&\fIfilename\fR ممکن است حاوی مشخصات مسیر کامل یا نسبی باشد، اما تنها بخش نام پرونده بدون هیچ مسیری در لیست قطعات m3u8 قرار خواهد گرفت. در صورت تعیین یک مسیر نسبی، مسیر پرونده‌های قطعه ایجادشده نسبت به دایرکتوری کاری جاری خواهد بود. هنگامی که \fBstrftime_mkdir\fR تنظیم شده باشد، کل مقدار گسترش‌یافته \fIfilename\fR در لیست قطعات m3u8 نوشته خواهد شد. .Sp هنگامی که \fBvar_stream_map\fR با دو یا چند جریان متغیر تنظیم شده باشد، الگوی \&\fIfilename\fR باید حاوی رشته "%v" باشد و این رشته به موقعیت اندیس جریان متغیر در نام پرونده‌های قطعه تولیدشده گسترش می‌یابد. .Sp به عنوان مثال: .Sp .Vb 3 \& ffmpeg \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \-b:a:1 32k \e \& \-map 0:v \-map 0:a \-map 0:v \-map 0:a \-f hls \-var_stream_map "v:0,a:0 v:1,a:1" \e \& \-hls_segment_filename \*(Aqfile_%v_%03d.ts\*(Aq out_%v.m3u8 .Ve .Sp مجموعه‌های پرونده قطعه لیست‌های پخش زیر را تولید می‌کند: \&\fIfile_0_000.ts\fR، \fIfile_0_001.ts\fR، \fIfile_0_002.ts\fR و غیره و \&\fIfile_1_000.ts\fR، \fIfile_1_001.ts\fR، \fIfile_1_002.ts\fR و غیره. .Sp رشته "%v" ممکن است در نام پرونده یا در آخرین نام دایرکتوری حاوی پرونده وجود داشته باشد، اما تنها در یکی از آن‌ها. (علاوه بر این، \f(CW%v\fR ممکن است چندین بار در آخرین زیردایرکتوری یا نام پرونده ظاهر شود.) اگر رشته \f(CW%v\fR در نام دایرکتوری وجود داشته باشد، زیردایرکتوری‌ها پس از گسترش الگوی نام دایرکتوری ایجاد می‌شوند. این امر امکان ایجاد قطعات مربوط به جریان‌های متغیر مختلف را در زیرپوشه‌ها فراهم می‌کند. .Sp به عنوان مثال: .Sp .Vb 3 \& ffmpeg \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \-b:a:1 32k \e \& \-map 0:v \-map 0:a \-map 0:v \-map 0:a \-f hls \-var_stream_map "v:0,a:0 v:1,a:1" \e \& \-hls_segment_filename \*(Aqvs%v/file_%03d.ts\*(Aq vs%v/out.m3u8 .Ve .Sp مجموعه‌های پرونده قطعه لیست‌های پخش زیر را تولید می‌کند: \&\fIvs0/file_000.ts\fR، \fIvs0/file_001.ts\fR، \fIvs0/file_002.ts\fR و غیره و \&\fIvs1/file_000.ts\fR، \fIvs1/file_001.ts\fR، \fIvs1/file_002.ts\fR و غیره. .IP "\fBstrftime\fR \fIbool\fR" 4 .IX Item "strftime bool" استفاده از \f(CWstrftime()\fR روی \fIfilename\fR برای گسترش نام پرونده قطعه با زمان محلی. شماره قطعه نیز در این حالت در دسترس است، اما برای استفاده از آن باید \fBsecond_level_segment_index\fR را در \fBhls_flag\fR تنظیم کنید و مشخص‌کننده آن %%d خواهد بود. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-strftime 1 \-hls_segment_filename \*(Aqfile\-%Y%m%d\-%s.ts\*(Aq out.m3u8 .Ve .Sp لیست پخش \fIout.m3u8\fR و پرونده‌های قطعه زیر را تولید می‌کند: \&\fIfile\-20160215\-1455569023.ts\fR، \fIfile\-20160215\-1455569024.ts\fR و غیره. توجه: در برخی سیستم‌ها/محیط‌ها، مشخص‌کننده \f(CW%s\fR در دسترس نیست. مستندات \f(CWstrftime()\fR را ببینید. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-strftime 1 \-hls_flags second_level_segment_index \-hls_segment_filename \*(Aqfile\-%Y%m%d\-%%04d.ts\*(Aq out.m3u8 .Ve .Sp لیست پخش \fIout.m3u8\fR و پرونده‌های قطعه زیر را تولید می‌کند: \&\fIfile\-20160215\-0001.ts\fR، \fIfile\-20160215\-0002.ts\fR و غیره. .IP "\fBstrftime_mkdir\fR \fIbool\fR" 4 .IX Item "strftime_mkdir bool" هنگام استفاده همراه با \fBstrftime\fR، تمام زیردایرکتوری‌هایی را که در مقادیر گسترش‌یافته گزینه \fBhls_segment_filename\fR وجود دارند ایجاد می‌کند. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-strftime 1 \-strftime_mkdir 1 \-hls_segment_filename \*(Aq%Y%m%d/file\-%Y%m%d\-%s.ts\*(Aq out.m3u8 .Ve .Sp پوشه \fI20160215\fR را (در صورت عدم وجود) ایجاد کرده و سپس لیست پخش \fIout.m3u8\fR و پرونده‌های قطعه زیر را تولید می‌کند: \&\fI20160215/file\-20160215\-1455569023.ts\fR، \&\fI20160215/file\-20160215\-1455569024.ts\fR و غیره. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-strftime 1 \-strftime_mkdir 1 \-hls_segment_filename \*(Aq%Y/%m/%d/file\-%Y%m%d\-%s.ts\*(Aq out.m3u8 .Ve .Sp سلسله‌مراتب پوشه‌های \fI2016/02/15\fR را (در صورت عدم وجود هر یک) ایجاد کرده و سپس لیست پخش \fIout.m3u8\fR و پرونده‌های قطعه زیر را تولید می‌کند: \&\fI2016/02/15/file\-20160215\-1455569023.ts\fR، \&\fI2016/02/15/file\-20160215\-1455569024.ts\fR و غیره. .IP "\fBhls_segment_options\fR \fIoptions_list\fR" 4 .IX Item "hls_segment_options options_list" تنظیم گزینه‌های قالب خروجی با استفاده از فهرستی از پارامترهای key=value که با : جدا شده‌اند. مقادیر حاوی نویسه‌های خاص \f(CW\*(C`:\*(C'\fR باید گریز داده شوند. .IP "\fBhls_key_info_file\fR \fIkey_info_file\fR" 4 .IX Item "hls_key_info_file key_info_file" استفاده از اطلاعات موجود در \fIkey_info_file\fR برای رمزگذاری قطعه. خط اول \fIkey_info_file\fR مشخص‌کننده کلید URI نوشته‌شده در لیست پخش است. این URL کلید برای دسترسی به کلید رمزگذاری در طول پخش استفاده می‌شود. خط دوم مسیر پرونده کلید استفاده‌شده برای دریافت کلید در طول فرایند رمزگذاری را مشخص می‌کند. پرونده کلید به عنوان یک آرایه بسته‌بندی‌شده واحد از ۱۶ بایت در قالب باینری خوانده می‌شود. خط اختیاری سوم، بردار مقداردهی اولیه (IV) را به عنوان یک رشته هگزادسیمال مشخص می‌کند تا به جای شماره توالی قطعه (پیش‌فرض) برای رمزگذاری استفاده شود. تغییرات در \fIkey_info_file\fR در صورت فعال بودن \fBhls_flags periodic_rekey\fR منجر به رمزگذاری قطعه با کلید/IV جدید و ثبت یک ورودی در لیست پخش برای URI/IV کلید جدید خواهد شد. .Sp قالب پرونده اطلاعات کلید: .Sp .Vb 3 \& \& \& (optional) .Ve .Sp نمونه‌های URI کلید: .Sp .Vb 3 \& http://server/file.key \& /path/to/file.key \& file.key .Ve .Sp نمونه‌های مسیر پرونده کلید: .Sp .Vb 2 \& file.key \& /path/to/file.key .Ve .Sp نمونه IV: .Sp .Vb 1 \& 0123456789ABCDEF0123456789ABCDEF .Ve .Sp نمونه پرونده اطلاعات کلید: .Sp .Vb 3 \& http://server/file.key \& /path/to/file.key \& 0123456789ABCDEF0123456789ABCDEF .Ve .Sp نمونه اسکریپت شل: .Sp .Vb 8 \& #!/bin/sh \& BASE_URL=${1:\-\*(Aq.\*(Aq} \& openssl rand 16 > file.key \& echo $BASE_URL/file.key > file.keyinfo \& echo file.key >> file.keyinfo \& echo $(openssl rand \-hex 16) >> file.keyinfo \& ffmpeg \-f lavfi \-re \-i testsrc \-c:v h264 \-hls_flags delete_segments \e \& \-hls_key_info_file file.keyinfo out.m3u8 .Ve .IP "\fBhls_enc\fR \fIbool\fR" 4 .IX Item "hls_enc bool" فعال‌سازی (1) یا غیرفعال‌سازی (0) رمزگذاری AES128. در صورت فعال بودن، هر قطعه تولیدشده رمزگذاری می‌شود و کلید رمزگذاری با نام \fIplaylist name\fR.key ذخیره می‌گردد. .IP "\fBhls_enc_key\fR \fIkey\fR" 4 .IX Item "hls_enc_key key" مشخص کردن یک کلید ۱۶ بایتی برای رمزگذاری قطعات؛ به طور پیش‌فرض به صورت تصادفی تولید می‌شود. .IP "\fBhls_enc_key_url\fR \fIkeyurl\fR" 4 .IX Item "hls_enc_key_url keyurl" در صورت تنظیم، \fIkeyurl\fR به جای \fIbaseurl\fR به نام پرونده کلید در لیست پخش الصاق می‌شود. .IP "\fBhls_enc_iv\fR \fIiv\fR" 4 .IX Item "hls_enc_iv iv" مشخص کردن بردار مقداردهی اولیه ۱۶ بایتی برای هر قطعه به جای مقادیر تولیدشده به صورت خودکار. .IP "\fBhls_segment_type\fR \fIflags\fR" 4 .IX Item "hls_segment_type flags" مقادیر ممکن: .RS 4 .IP \fBmpegts\fR 4 .IX Item "mpegts" خروجی پرونده‌های قطعه در قالب جریان انتقال MPEG\-2 (Transport Stream). این با تمام نسخه‌های HLS سازگار است. .IP \fBfmp4\fR 4 .IX Item "fmp4" خروجی پرونده‌های قطعه در قالب MP4 قطعه‌بندی‌شده، مشابه MPEG\-DASH. پرونده‌های fmp4 ممکن است در نسخه ۷ HLS و بالاتر استفاده شوند. .RE .RS 4 .RE .IP "\fBhls_fmp4_init_filename\fR \fIfilename\fR" 4 .IX Item "hls_fmp4_init_filename filename" تنظیم نام پرونده برای پرونده هدر پرونده‌های قطعه، نام پرونده پیش‌فرض \fIinit.mp4\fR است. .Sp هنگامی که \fBstrftime\fR فعال باشد، \fIfilename\fR با زمان محلی به نام پرونده قطعه گسترش می‌یابد. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-hls_segment_type fmp4 \-strftime 1 \-hls_fmp4_init_filename "%s_init.mp4" out.m3u8 .Ve .Sp یک init به این صورت تولید خواهد کرد: \fI1602678741_init.mp4\fR. .IP "\fBhls_fmp4_init_resend\fR \fIbool\fR" 4 .IX Item "hls_fmp4_init_resend bool" ارسال مجدد پرونده init پس از هر بار تازه‌سازی پرونده m3u8، پیش‌فرض \fI0\fR است. .Sp هنگامی که \fBvar_stream_map\fR با دو یا چند جریان متغیر تنظیم شده باشد، الگوی \&\fIfilename\fR باید حاوی رشته "%v" باشد؛ این رشته موقعیت اندیس جریان متغیر را در نام پرونده‌های init تولیدشده مشخص می‌کند. رشته "%v" ممکن است در نام پرونده یا در آخرین نام دایرکتوری حاوی پرونده وجود داشته باشد. اگر رشته در نام دایرکتوری وجود داشته باشد، زیرپوشه‌ها پس از گسترش الگوی نام دایرکتوری ایجاد می‌شوند. این امر امکان ایجاد پرونده‌های init مربوط به جریان‌های متغیر مختلف را در زیرپوشه‌ها فراهم می‌سازد. .IP "\fBhls_flags\fR \fIflags\fR" 4 .IX Item "hls_flags flags" مقادیر ممکن: .RS 4 .IP \fBsingle_file\fR 4 .IX Item "single_file" اگر این فلگ تنظیم شود، مکسر تمام قطعات را در یک پرونده منفرد MPEG\-TS ذخیره می‌کند، و از محدوده‌های بایتی در لیست پخش استفاده خواهد کرد. لیست‌های پخش HLS تولیدشده با این روش دارای شماره نسخه ۴ خواهند بود. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-i in.nut \-hls_flags single_file out.m3u8 .Ve .Sp لیست پخش \fIout.m3u8\fR و یک پرونده قطعه منفرد \fIout.ts\fR را تولید خواهد کرد. .IP \fBdelete_segments\fR 4 .IX Item "delete_segments" پرونده‌های قطعه حذف‌شده از لیست پخش پس از گذشت مدتی برابر با مدت زمان قطعه به اضافه مدت زمان لیست پخش از روی دیسک پاک می‌شوند. .IP \fBappend_list\fR 4 .IX Item "append_list" الحاق قطعات جدید به انتهای لیست قطعات قدیمی، و حذف \f(CW\*(C`#EXT\-X\-ENDLIST\*(C'\fR از لیست قطعات قدیمی. .IP \fBround_durations\fR 4 .IX Item "round_durations" گرد کردن اطلاعات مدت زمان در اطلاعات قطعه پرونده لیست پخش به مقادیر عدد صحیح، به جای استفاده از ممیز شناور. اگر ویژگی‌های دیگری که نیازمند نسخه‌های بالاتر HLS هستند وجود نداشته باشد، این امر به \fBffmpeg\fR اجازه می‌دهد تا یک m3u8 با نسخه ۲ HLS خروجی دهد. .IP \fBdiscont_start\fR 4 .IX Item "discont_start" افزودن برچسب \f(CW\*(C`#EXT\-X\-DISCONTINUITY\*(C'\fR به لیست پخش، پیش از اطلاعات اولین قطعه. .IP \fBomit_endlist\fR 4 .IX Item "omit_endlist" عدم الحاق برچسب \f(CW\*(C`EXT\-X\-ENDLIST\*(C'\fR در انتهای لیست پخش. .IP \fBperiodic_rekey\fR 4 .IX Item "periodic_rekey" پرونده مشخص‌شده توسط \f(CW\*(C`hls_key_info_file\*(C'\fR به طور دوره‌ای بررسی شده و به‌روزرسانی‌های اطلاعات رمزگذاری شناسایی می‌شود. حتماً این پرونده را، از جمله پرونده حاوی کلید رمزگذاری AES، به صورت اتمیک (atomic) جایگزین کنید. .IP \fBindependent_segments\fR 4 .IX Item "independent_segments" افزودن برچسب \f(CW\*(C`#EXT\-X\-INDEPENDENT\-SEGMENTS\*(C'\fR به لیست‌های پخشی که دارای قطعات ویدیویی هستند و زمانی که شروع تمام قطعات آن لیست پخش با یک فریم کلیدی تضمین شده باشد. .IP \fBiframes_only\fR 4 .IX Item "iframes_only" افزودن برچسب \f(CW\*(C`#EXT\-X\-I\-FRAMES\-ONLY\*(C'\fR به لیست‌های پخشی که دارای قطعات ویدیویی هستند و می‌توانند تنها فریم‌های I را در حالت \f(CW\*(C`#EXT\-X\-BYTERANGE\*(C'\fR پخش کنند. .IP \fBsplit_by_time\fR 4 .IX Item "split_by_time" اجازه به قطعات برای شروع روی فریم‌هایی غیر از فریم‌های کلیدی. این امر رفتار برخی پخش‌کننده‌ها را زمانی که زمان بین فریم‌های کلیدی ناهماهنگ است بهبود می‌بخشد، اما ممکن است وضعیت را در سایر پخش‌کننده‌ها بدتر کند و باعث بروز برخی ناهنجاری‌ها در هنگام جستجو و پرش زمانی شود. این فلگ باید همراه با گزینه \fBhls_time\fR استفاده شود. .IP \fBprogram_date_time\fR 4 .IX Item "program_date_time" تولید برچسب‌های \f(CW\*(C`EXT\-X\-PROGRAM\-DATE\-TIME\*(C'\fR. .IP \fBsecond_level_segment_index\fR 4 .IX Item "second_level_segment_index" امکان استفاده از اندیس‌های قطعه به صورت %%d در عبارت گزینه \&\fBhls_segment_filename\fR علاوه بر مقادیر تاریخ/زمان هنگامی که گزینه \&\fBstrftime\fR فعال است. برای دریافت اعداد با عرض ثابت و صفرهای ابتدایی، قالب %%0xd در دسترس است که در آن x عرض مورد نیاز است. .IP \fBsecond_level_segment_size\fR 4 .IX Item "second_level_segment_size" امکان استفاده از اندازه قطعه (شمارش‌شده به بایت) به صورت %%s در عبارت گزینه \&\fBhls_segment_filename\fR علاوه بر مقادیر تاریخ/زمان هنگامی که strftime فعال است. برای دریافت اعداد با عرض ثابت و صفرهای ابتدایی، قالب %%0xs در دسترس است که در آن x عرض مورد نیاز است. .IP \fBsecond_level_segment_duration\fR 4 .IX Item "second_level_segment_duration" امکان استفاده از مدت زمان قطعه (محاسبه‌شده به میکروثانیه) به صورت %%t در عبارت گزینه \&\fBhls_segment_filename\fR علاوه بر مقادیر تاریخ/زمان هنگامی که strftime فعال است. برای دریافت اعداد با عرض ثابت و صفرهای ابتدایی، قالب %%0xt در دسترس است که در آن x عرض مورد نیاز است. .Sp به عنوان مثال: .Sp .Vb 4 \& ffmpeg \-i sample.mpeg \e \& \-f hls \-hls_time 3 \-hls_list_size 5 \e \& \-hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \e \& \-strftime 1 \-strftime_mkdir 1 \-hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8 .Ve .Sp قطعاتی مانند این تولید خواهد کرد: \&\fIsegment_20170102194334_0003_00122200_0000003000000.ts\fR، \fIsegment_20170102194334_0004_00120072_0000003000000.ts\fR و غیره. .IP \fBtemp_file\fR 4 .IX Item "temp_file" نوشتن داده‌های قطعه در \fIfilename.tmp\fR و تغییر نام آن به filename تنها زمانی که قطعه کامل شد. .Sp یک وب‌سرور ارائه‌دهنده قطعات را می‌توان طوری پیکربندی کرد که درخواست‌ها به *.tmp را رد کند تا از دسترسی به قطعات در حال نوشتن پیش از اضافه شدن آن‌ها به لیست پخش m3u8 جلوگیری شود. .Sp این فلگ همچنین بر نحوه ایجاد پرونده‌های لیست پخش m3u8 تأثیر می‌گذارد. اگر این فلگ تنظیم شود، تمام پرونده‌های لیست پخش در یک پرونده موقت نوشته شده و پس از تکمیل تغییر نام می‌یابند، مشابه نحوه مدیریت قطعات. اما لیست‌های پخش با پروتکل \f(CW\*(C`file\*(C'\fR و با نوع \fBhls_playlist_type\fR غیر از \fBvod\fR، صرف‌نظر از این فلگ همیشه در یک پرونده موقت نوشته می‌شوند. .Sp پرونده‌های لیست پخش اصلی مشخص‌شده با \fBmaster_pl_name\fR، در صورت وجود، با پروتکل \&\f(CW\*(C`file\*(C'\fR، در صورتی که مقدار \fBmaster_pl_publish_rate\fR غیر صفر باشد، صرف‌نظر از این فلگ همیشه در یک پرونده موقت نوشته می‌شوند. .RE .RS 4 .RE .IP "\fBhls_playlist_type\fR \fItype\fR" 4 .IX Item "hls_playlist_type type" اگر نوع برابر با \fBevent\fR باشد، برچسب \f(CW\*(C`#EXT\-X\-PLAYLIST\-TYPE:EVENT\*(C'\fR در هدر m3u8 ساطع می‌شود. این کار مقدار \fBhls_list_size\fR را به 0 اجبار می‌کند؛ لیست پخش تنها قابل الحاق خواهد بود. .Sp اگر نوع برابر با \fBvod\fR باشد، برچسب \f(CW\*(C`#EXT\-X\-PLAYLIST\-TYPE:VOD\*(C'\fR در هدر m3u8 ساطع می‌شود. این کار مقدار \fBhls_list_size\fR را به 0 اجبار می‌کند؛ لیست پخش نباید تغییر کند. .IP "\fBmethod\fR \fImethod\fR" 4 .IX Item "method method" استفاده از متد HTTP ارائه‌شده برای ایجاد پرونده‌های hls. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-re \-i in.ts \-f hls \-method PUT http://example.com/live/out.m3u8 .Ve .Sp تمام پرونده‌های قطعه mpegts را با استفاده از متد HTTP PUT در وب‌سرور بارگذاری می‌کند، و پرونده‌های m3u8 را در هر بار \f(CW\*(C`refresh\*(C'\fR با استفاده از همان متد به‌روزرسانی می‌نماید. توجه داشته باشید که وب‌سرور باید از متد ارائه‌شده برای بارگذاری پرونده‌ها پشتیبانی کند. .IP "\fBhttp_user_agent\fR \fIagent\fR" 4 .IX Item "http_user_agent agent" بازنویسی فیلد User\-Agent در هدر HTTP. فقط برای خروجی HTTP قابل اعمال است. .IP "\fBvar_stream_map\fR \fIstream_map\fR" 4 .IX Item "var_stream_map stream_map" مشخص کردن یک رشته نگاشت که نحوه گروه‌بندی جریان‌های صوتی، تصویری و زیرنویس را در جریان‌های متغیر (variant streams) مختلف تعریف می‌کند. گروه‌های جریان متغیر با فاصله از هم جدا می‌شوند. .Sp قالب رشته مورد انتظار به این صورت است: "a:0,v:0 a:1,v:1 ....". در اینجا a:، v: و s: به ترتیب کلیدهای مشخص‌کننده جریان‌های صوتی، تصویری و زیرنویس هستند. مقادیر مجاز 0 تا 9 هستند (صرفاً بر اساس کاربرد عملی محدود شده است). .Sp هنگامی که دو یا چند جریان متغیر وجود داشته باشد، الگوی نام پرونده خروجی باید شامل رشته "%v" باشد: این رشته موقعیت اندیس جریان متغیر را در نام پرونده‌های لیست پخش رسانه خروجی مشخص می‌کند. رشته "%v" ممکن است در نام پرونده یا در آخرین نام دایرکتوری حاوی پرونده وجود داشته باشد. اگر رشته در نام دایرکتوری وجود داشته باشد، زیرپوشه‌ها پس از گسترش الگوی نام دایرکتوری ایجاد می‌شوند. این امر ایجاد جریان‌های متغیر را در زیرپوشه‌ها امکان‌پذیر می‌سازد. .Sp چند مثال در ادامه آمده است: .RS 4 .IP \(bu 4 ایجاد دو جریان متغیر hls. اولین جریان متغیر شامل جریان ویدیویی با بیت‌ریت 1000k و جریان صوتی با بیت‌ریت 64k خواهد بود و دومین جریان متغیر شامل جریان ویدیویی با بیت‌ریت 256k و جریان صوتی با بیت‌ریت 32k خواهد بود. در اینجا، دو لیست پخش رسانه با نام‌های پرونده \fIout_0.m3u8\fR و \&\fIout_1.m3u8\fR ایجاد خواهد شد. .Sp .Vb 3 \& ffmpeg \-re \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \-b:a:1 32k \e \& \-map 0:v \-map 0:a \-map 0:v \-map 0:a \-f hls \-var_stream_map "v:0,a:0 v:1,a:1" \e \& http://example.com/live/out_%v.m3u8 .Ve .IP \(bu 4 اگر متنی معنادار به جای اندیس‌ها در نام‌های حاصل می‌خواهید، می‌توانید نام‌هایی را برای هر یک یا برخی از متغیرها مشخص کنید. مثال زیر مانند مثال قبلی دو جریان متغیر hls ایجاد می‌کند. اما در اینجا، دو لیست پخش رسانه با نام‌های پرونده \fIout_my_hd.m3u8\fR و \fIout_my_sd.m3u8\fR ایجاد خواهند شد. .Sp .Vb 3 \& ffmpeg \-re \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \-b:a:1 32k \e \& \-map 0:v \-map 0:a \-map 0:v \-map 0:a \-f hls \-var_stream_map "v:0,a:0,name:my_hd v:1,a:1,name:my_sd" \e \& http://example.com/live/out_%v.m3u8 .Ve .IP \(bu 4 ایجاد سه جریان متغیر hls. اولین جریان متغیر فقط ویدیویی با بیت‌ریت ویدیوی 1000k، دومین جریان متغیر فقط صوتی با بیت‌ریت 64k و سومین جریان متغیر فقط ویدیویی با بیت‌ریت 256k خواهد بود. در اینجا، سه لیست پخش رسانه با نام‌های پرونده \fIout_0.m3u8\fR، \&\fIout_1.m3u8\fR و \fIout_2.m3u8\fR ایجاد خواهند شد. .Sp .Vb 3 \& ffmpeg \-re \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \e \& \-map 0:v \-map 0:a \-map 0:v \-f hls \-var_stream_map "v:0 a:0 v:1" \e \& http://example.com/live/out_%v.m3u8 .Ve .IP \(bu 4 ایجاد جریان‌های متغیر در زیرپوشه‌ها. در اینجا اولین لیست پخش رسانه در \fIhttp://example.com/live/vs_0/out.m3u8\fR و دومی در \&\fIhttp://example.com/live/vs_1/out.m3u8\fR ایجاد می‌شود. .Sp .Vb 3 \& ffmpeg \-re \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \-b:a:1 32k \e \& \-map 0:v \-map 0:a \-map 0:v \-map 0:a \-f hls \-var_stream_map "v:0,a:0 v:1,a:1" \e \& http://example.com/live/vs_%v/out.m3u8 .Ve .IP \(bu 4 ایجاد دو جریان متغیر فقط صوتی و دو جریان متغیر فقط ویدیویی. علاوه بر برچسب \&\f(CW\*(C`#EXT\-X\-STREAM\-INF\*(C'\fR برای هر جریان متغیر در لیست پخش اصلی، برچسب \&\f(CW\*(C`#EXT\-X\-MEDIA\*(C'\fR نیز برای دو جریان متغیر فقط صوتی اضافه می‌شود و آن‌ها با نام‌های گروه صوتی \*(Aqaud_low\*(Aq و \*(Aqaud_high\*(Aq به دو جریان متغیر فقط ویدیویی نگاشت می‌شوند. به طور پیش‌فرض، یک متغیر hls منفرد حاوی تمام جریان‌های انکودشده ایجاد می‌شود. .Sp .Vb 5 \& ffmpeg \-re \-i in.ts \-b:a:0 32k \-b:a:1 64k \-b:v:0 1000k \-b:v:1 3000k \e \& \-map 0:a \-map 0:a \-map 0:v \-map 0:v \-f hls \e \& \-var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \e \& \-master_pl_name master.m3u8 \e \& http://example.com/live/out_%v.m3u8 .Ve .IP \(bu 4 ایجاد دو جریان متغیر فقط صوتی و یک جریان متغیر فقط ویدیویی. علاوه بر برچسب \&\f(CW\*(C`#EXT\-X\-STREAM\-INF\*(C'\fR برای هر جریان متغیر در لیست پخش اصلی، برچسب \&\f(CW\*(C`#EXT\-X\-MEDIA\*(C'\fR نیز برای دو جریان متغیر فقط صوتی اضافه می‌شود و آن‌ها با نام گروه صوتی \*(Aqaud_low\*(Aq به یک جریان متغیر فقط ویدیویی نگاشت می‌شوند، و گروه صوتی دارای وضعیت پیش‌فرض NO یا YES است. به طور پیش‌فرض، یک متغیر hls منفرد حاوی تمام جریان‌های انکودشده ایجاد می‌شود. .Sp .Vb 5 \& ffmpeg \-re \-i in.ts \-b:a:0 32k \-b:a:1 64k \-b:v:0 1000k \e \& \-map 0:a \-map 0:a \-map 0:v \-f hls \e \& \-var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \e \& \-master_pl_name master.m3u8 \e \& http://example.com/live/out_%v.m3u8 .Ve .IP \(bu 4 ایجاد دو جریان متغیر فقط صوتی و یک جریان متغیر فقط ویدیویی. علاوه بر برچسب \&\f(CW\*(C`#EXT\-X\-STREAM\-INF\*(C'\fR برای هر جریان متغیر در لیست پخش اصلی، برچسب \&\f(CW\*(C`#EXT\-X\-MEDIA\*(C'\fR نیز برای دو جریان متغیر فقط صوتی اضافه می‌شود و آن‌ها با نام گروه صوتی \*(Aqaud_low\*(Aq به یک جریان متغیر فقط ویدیویی نگاشت می‌شوند، و گروه صوتی دارای وضعیت پیش‌فرض NO یا YES است، و یک زبان صوتی به نام ENG و زبان صوتی دیگر به نام CHN نام‌گذاری شده است. به طور پیش‌فرض، یک متغیر hls منفرد حاوی تمام جریان‌های انکودشده ایجاد می‌شود. .Sp .Vb 5 \& ffmpeg \-re \-i in.ts \-b:a:0 32k \-b:a:1 64k \-b:v:0 1000k \e \& \-map 0:a \-map 0:a \-map 0:v \-f hls \e \& \-var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \e \& \-master_pl_name master.m3u8 \e \& http://example.com/live/out_%v.m3u8 .Ve .IP \(bu 4 ایجاد یک جریان متغیر منفرد. افزودن برچسب \f(CW\*(C`#EXT\-X\-MEDIA\*(C'\fR با \&\f(CW\*(C`TYPE=SUBTITLES\*(C'\fR در لیست پخش اصلی با نام گروه زیرنویس webvtt برابر با \*(Aqsubtitle\*(Aq و نام اختیاری زیرنویس، به عنوان مثال \*(AqEnglish\*(Aq. اطمینان حاصل کنید که پرونده ورودی حداقل دارای یک جریان زیرنویس متنی باشد. .Sp .Vb 8 \& ffmpeg \-y \-i input_with_subtitle.mkv \e \& \-b:v:0 5250k \-c:v h264 \-pix_fmt yuv420p \-profile:v main \-level 4.1 \e \& \-b:a:0 256k \e \& \-c:s webvtt \-c:a mp2 \-ar 48000 \-ac 2 \-map 0:v \-map 0:a:0 \-map 0:s:0 \e \& \-f hls \-var_stream_map "v:0,a:0,s:0,sgroup:subtitle,sname:English" \e \& \-master_pl_name master.m3u8 \-t 300 \-hls_time 10 \-hls_init_time 4 \-hls_list_size \e \& 10 \-master_pl_publish_rate 10 \-hls_flags \e \& delete_segments+discont_start+split_by_time ./tmp/video.m3u8 .Ve .RE .RS 4 .RE .IP "\fBcc_stream_map\fR \fIcc_stream_map\fR" 4 .IX Item "cc_stream_map cc_stream_map" رشته نگاشت که گروه‌های مختلف زیرنویس بسته (closed captions) و ویژگی‌های آن‌ها را مشخص می‌کند. گروه‌های جریان زیرنویس بسته با فاصله از هم جدا می‌شوند. .Sp قالب رشته مورد انتظار به این صورت است: "ccgroup:,instreamid:,language: ....". صفت‌های \*(Aqccgroup\*(Aq و \*(Aqinstreamid\*(Aq اجباری هستند. \*(Aqlanguage\*(Aq یک صفت اختیاری است. .Sp گروه‌های زیرنویس بسته پیکربندی‌شده با استفاده از این گزینه، با ارائه همان نام \*(Aqccgroup\*(Aq در رشته \&\fBvar_stream_map\fR به جریان‌های متغیر مختلف نگاشت می‌شوند. .Sp به عنوان مثال: .Sp .Vb 7 \& ffmpeg \-re \-i in.ts \-b:v:0 1000k \-b:v:1 256k \-b:a:0 64k \-b:a:1 32k \e \& \-a53cc:0 1 \-a53cc:1 1 \e \& \-map 0:v \-map 0:a \-map 0:v \-map 0:a \-f hls \e \& \-cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \e \& \-var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \e \& \-master_pl_name master.m3u8 \e \& http://example.com/live/out_%v.m3u8 .Ve .Sp دو برچسب \f(CW\*(C`#EXT\-X\-MEDIA\*(C'\fR با \f(CW\*(C`TYPE=CLOSED\-CAPTIONS\*(C'\fR در لیست پخش اصلی برای INSTREAM\-IDهای \*(AqCC1\*(Aq و \*(AqCC2\*(Aq اضافه خواهد کرد. همچنین، صفت \&\f(CW\*(C`CLOSED\-CAPTIONS\*(C'\fR را با نام گروه \*(Aqcc\*(Aq برای دو جریان متغیر خروجی اضافه می‌کند. .Sp اگر \fBvar_stream_map\fR تنظیم نشده باشد، اولین ccgroup موجود در \&\fBcc_stream_map\fR به جریان متغیر خروجی نگاشت می‌شود. .Sp به عنوان مثال: .Sp .Vb 4 \& ffmpeg \-re \-i in.ts \-b:v 1000k \-b:a 64k \-a53cc 1 \-f hls \e \& \-cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \e \& \-master_pl_name master.m3u8 \e \& http://example.com/live/out.m3u8 .Ve .Sp این دستور برچسب \f(CW\*(C`#EXT\-X\-MEDIA\*(C'\fR را با \f(CW\*(C`TYPE=CLOSED\-CAPTIONS\*(C'\fR در لیست پخش اصلی با نام گروه \*(Aqcc\*(Aq، زبان \*(Aqen\*(Aq (انگلیسی) و INSTREAM\-ID برابر با \&\*(AqCC1\*(Aq اضافه می‌کند. همچنین، صفت \f(CW\*(C`CLOSED\-CAPTIONS\*(C'\fR را با نام گروه \*(Aqcc\*(Aq برای جریان متغیر خروجی اضافه خواهد کرد. .IP "\fBmaster_pl_name\fR \fIname\fR" 4 .IX Item "master_pl_name name" ایجاد لیست پخش اصلی HLS با نام داده‌شده. .Sp به عنوان مثال: .Sp .Vb 1 \& ffmpeg \-re \-i in.ts \-f hls \-master_pl_name master.m3u8 http://example.com/live/out.m3u8 .Ve .Sp یک لیست پخش اصلی HLS با نام \fImaster.m3u8\fR ایجاد می‌کند که در <\fBhttp://example.com/live\fR> منتشر می‌شود. .IP "\fBmaster_pl_publish_rate\fR \fIcount\fR" 4 .IX Item "master_pl_publish_rate count" انتشار مکرر لیست پخش اصلی پس از هر تعداد مشخص‌شده از بازه‌های قطعه. .Sp به عنوان مثال: .Sp .Vb 2 \& ffmpeg \-re \-i in.ts \-f hls \-master_pl_name master.m3u8 \e \& \-hls_time 2 \-master_pl_publish_rate 30 http://example.com/live/out.m3u8 .Ve .Sp یک لیست پخش اصلی HLS با نام \fImaster.m3u8\fR ایجاد می‌کند و به انتشار مکرر آن پس از هر ۳۰ قطعه یعنی پس از هر ۶۰ ثانیه ادامه می‌دهد. .IP "\fBhttp_persistent\fR \fIbool\fR" 4 .IX Item "http_persistent bool" استفاده از اتصالات پایدار HTTP (Persistent). فقط برای خروجی HTTP قابل اعمال است. .IP "\fBtimeout\fR \fItimeout\fR" 4 .IX Item "timeout timeout" تنظیم زمان انقضا برای عملیات سوکت ورودی/خروجی (I/O). فقط برای خروجی HTTP قابل اعمال است. .IP "\fBignore_io_errors\fR \fIbool\fR" 4 .IX Item "ignore_io_errors bool" نادیده گرفتن خطاهای ورودی/خروجی در حین باز کردن، نوشتن و حذف کردن. برای اجراهای طولانی‌مدت با خروجی شبکه مفید است. .IP "\fBheaders\fR \fIheaders\fR" 4 .IX Item "headers headers" تنظیم هدرهای سفارشی HTTP، می‌تواند هدرهای پیش‌فرض داخلی را بازنویسی کند. فقط برای خروجی HTTP قابل اعمال است. .SS iamf .IX Subsection "iamf" مکسر مدل و فرمت‌های صوتی فراگیر (IAMF). .PP فرمت IAMF برای ارائه محتوای صوتی فراگیر به منظور پخش در طیف گسترده‌ای از دستگاه‌ها، هم در کاربردهای پخش جریانی (استریمینگ) و هم کاربردهای آفلاین استفاده می‌شود. این کاربردها شامل پخش جریانی صدای اینترنتی، سرویس‌های چندپخشی/پخش همگانی، بارگیری پرونده، بازی‌های ویدیویی، ارتباطات، واقعیت مجازی و افزوده و موارد دیگر است. در این کاربردها، صدا ممکن است در دستگاه‌های بسیار متنوعی مانند هدفون، تلفن‌های همراه، تبلت‌ها، تلویزیون‌ها، ساندبارها، سیستم‌های سینمای خانگی و نمایشگرهای بزرگ پخش شود. .PP این فرمت توسط Alliance for Open Media ترویج و طراحی شده است. .PP برای اطلاعات بیشتر در مورد این فرمت، به <\fBhttps://aomedia.org/iamf\fR> مراجعه کنید. .SS ico .IX Subsection "ico" مکسر پرونده‌های ICO. .PP فرمت پرونده آیکون مایکروسافت (ICO) دارای محدودیت‌های سخت‌گیرانه‌ای است که باید مورد توجه قرار گیرند: .IP \(bu 4 اندازه در هیچ بُعد نمی‌تواند از ۲۵۶ پیکسل بیشتر باشد .IP \(bu 4 تنها تصاویر BMP و PNG می‌توانند ذخیره شوند .IP \(bu 4 اگر از تصویر BMP استفاده شود، باید یکی از فرمت‌های پیکسلی زیر باشد: .Sp .Vb 7 \& BMP Bit Depth FFmpeg Pixel Format \& 1bit pal8 \& 4bit pal8 \& 8bit pal8 \& 16bit rgb555le \& 24bit bgr24 \& 32bit bgra .Ve .IP \(bu 4 اگر از تصویر BMP استفاده شود، باید از هدر DIB با عنوان BITMAPINFOHEADER استفاده کند .IP \(bu 4 اگر از تصویر PNG استفاده شود، باید از فرمت پیکسلی rgba استفاده کند .SS ilbc .IX Subsection "ilbc" مکسر خام کدک با نرخ بیت پایین اینترنتی (iLBC). .PP این مکسر یک جریان صوتی تکی \fBilbc\fR را می‌پذیرد. .SS "image2, image2pipe" .IX Subsection "image2, image2pipe" مکسر پرونده‌های تصویری. .PP مکسر \fBimage2\fR فریم‌های ویدیویی را در پرونده‌های تصویری می‌نویسد. .PP نام‌های پرونده خروجی با یک الگو مشخص می‌شوند که می‌تواند برای تولید مجموعه‌ای از پرونده‌ها با شماره‌گذاری متوالی استفاده شود. این الگو ممکن است شامل رشته "%d" یا "%0\fIN\fRd" باشد؛ این رشته موقعیت نویسه‌هایی را مشخص می‌کند که نشان‌دهنده شماره‌گذاری در نام‌های پرونده هستند. اگر از قالب "%0\fIN\fRd" استفاده شود، رشته نشان‌دهنده عدد در هر نام پرونده با صفر تا \fIN\fR رقم پر می‌شود (0-padded). نویسه واقعی \*(Aq%\*(Aq می‌تواند در الگو با رشته "%%" مشخص شود. .PP اگر الگو شامل "%d" یا "%0\fIN\fRd" باشد، اولین نام پرونده در فهرست پرونده‌های مشخص‌شده حاوی عدد ۱ خواهد بود و تمامی شماره‌های بعدی متوالی خواهند بود. .PP الگو می‌تواند حاوی پسوندی باشد که برای تعیین خودکار فرمت پرونده‌های تصویری برای نوشتن استفاده می‌شود. .PP به عنوان مثال، الگوی "img\-%03d.bmp" دنباله‌ای از نام‌های پرونده به شکل \fIimg\-001.bmp\fR، \fIimg\-002.bmp\fR، ...، \fIimg\-010.bmp\fR و غیره را مشخص می‌کند. الگوی "img%%\-%d.jpg" دنباله‌ای از نام‌های پرونده به شکل \fIimg%\-1.jpg\fR، \fIimg%\-2.jpg\fR، ...، \fIimg%\-10.jpg\fR و غیره را مشخص خواهد کرد. .PP مکسر تصویر از فرمت پرونده تصویری .Y.U.V پشتیبانی می‌کند. ویژگی خاص این فرمت در این است که هر فریم تصویر شامل سه پرونده برای هر یک از مؤلفه‌های YUV420P است. برای خواندن یا نوشتن این فرمت پرونده تصویری، نام پرونده \*(Aq.Y\*(Aq را مشخص کنید. مکسر در صورت نیاز پرونده‌های \*(Aq.U\*(Aq و \*(Aq.V\*(Aq را به طور خودکار باز می‌کند. .PP مکسر \fBimage2pipe\fR همان گزینه‌های مکسر \fBimage2\fR را می‌پذیرد، اما اعتبارسنجی و بسط الگو را نادیده می‌گیرد، چرا که قرار است خروجی را به جای یک پرونده ذخیره‌شده واقعی، در خروجی دستور بنویسد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBframe_pts\fR \fIbool\fR" 4 .IX Item "frame_pts bool" در صورت تنظیم روی 1، نام پرونده را با برچسب زمانی ارائه (PTS) بسته بسط می‌دهد. مقدار پیش‌فرض 0 است. .IP "\fBstart_number\fR \fIcount\fR" 4 .IX Item "start_number count" شروع دنباله از شماره مشخص‌شده. مقدار پیش‌فرض 1 است. .IP "\fBupdate\fR \fIbool\fR" 4 .IX Item "update bool" در صورت تنظیم روی 1، نام پرونده همیشه فقط به عنوان یک نام پرونده و نه یک الگو تفسیر می‌شود و پرونده متناظر به طور مداوم با تصاویر جدید رونویسی خواهد شد. مقدار پیش‌فرض 0 است. .IP "\fBstrftime\fR \fIbool\fR" 4 .IX Item "strftime bool" در صورت تنظیم روی 1، نام پرونده را با اطلاعات تاریخ و زمان برگرفته از \f(CWstrftime()\fR بسط می‌دهد. مقدار پیش‌فرض 0 است. .IP "\fBatomic_writing\fR \fIbool\fR" 4 .IX Item "atomic_writing bool" نوشتن خروجی در یک پرونده موقت، که پس از اتمام نوشتن به نام پرونده هدف تغییر نام داده می‌شود. در حالت پیش‌فرض غیرفعال است. .IP "\fBprotocol_opts\fR \fIoptions_list\fR" 4 .IX Item "protocol_opts options_list" تنظیم گزینه‌های پروتکل به صورت فهرستی از پارامترهای key=value جداشده با «:». مقادیری که حاوی نویسه خاص \f(CW\*(C`:\*(C'\fR هستند باید گریز داده شوند. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 استفاده از \fBffmpeg\fR برای ایجاد دنباله‌ای از پرونده‌های \fIimg\-001.jpeg\fR، \fIimg\-002.jpeg\fR، ...، با گرفتن یک تصویر در هر ثانیه از ویدیوی ورودی: .Sp .Vb 1 \& ffmpeg \-i in.avi \-fps_mode cfr \-r 1 \-f image2 \*(Aqimg\-%03d.jpeg\*(Aq .Ve .Sp توجه داشته باشید که در \fBffmpeg\fR، اگر فرمت با گزینه \f(CW\*(C`\-f\*(C'\fR مشخص نشده باشد و نام پرونده خروجی فرمت یک پرونده تصویری را مشخص کند، مکسر image2 به طور خودکار انتخاب می‌شود، بنابراین دستور قبلی می‌تواند به این صورت نوشته شود: .Sp .Vb 1 \& ffmpeg \-i in.avi \-fps_mode cfr \-r 1 \*(Aqimg\-%03d.jpeg\*(Aq .Ve .Sp همچنین توجه داشته باشید که الگو لزوماً نباید شامل "%d" یا "%0\fIN\fRd" باشد، به عنوان مثال برای ایجاد یک پرونده تصویری منفرد \fIimg.jpeg\fR از ابتدای ویدیوی ورودی می‌توانید از دستور زیر استفاده کنید: .Sp .Vb 1 \& ffmpeg \-i in.avi \-f image2 \-frames:v 1 img.jpeg .Ve .IP \(bu 4 گزینه \fBstrftime\fR به شما اجازه می‌دهد نام پرونده را با اطلاعات تاریخ و زمان بسط دهید. برای سینتکس، مستندات تابع \f(CWstrftime()\fR را بررسی کنید. .Sp برای تولید پرونده‌های تصویری از الگوی "%Y\-%m\-%d_%H\-%M\-%S" تابع \f(CWstrftime()\fR، می‌توان از دستور \fBffmpeg\fR زیر استفاده کرد: .Sp .Vb 1 \& ffmpeg \-f v4l2 \-r 1 \-i /dev/video0 \-f image2 \-strftime 1 "%Y\-%m\-%d_%H\-%M\-%S.jpg" .Ve .IP \(bu 4 تنظیم نام پرونده با PTS فریم فعلی: .Sp .Vb 1 \& ffmpeg \-f v4l2 \-r 1 \-i /dev/video0 \-copyts \-f image2 \-frame_pts true %d.jpg .Ve .IP \(bu 4 انتشار محتوای میزکار شما به طور مستقیم روی یک سرور WebDAV در هر ثانیه: .Sp .Vb 1 \& ffmpeg \-f x11grab \-framerate 1 \-i :0.0 \-q:v 6 \-update 1 \-protocol_opts method=PUT http://example.com/desktop.jpg .Ve .SS ircam .IX Subsection "ircam" مکسر فرمت سامانه پرونده صوتی برکلی / IRCAM / CARL (موسوم به BICSF). .PP فرمت صوتی برکلی/IRCAM/CARL که در دهه ۱۹۸۰ توسعه یافت، نتیجه ادغام چندین فرمت و سامانه پرونده صوتی پیشین از جمله سامانه csound توسعه‌یافته توسط دکتر Gareth Loy در آزمایشگاه پژوهش‌های صوتی رایانه‌ای (CARL) در دانشگاه کالیفرنیا، سن دیگو، سامانه پرونده صوتی IRCAM توسعه‌یافته توسط Rob Gross و Dan Timis در Institut de Recherche et Coordination Acoustique / Musique در پاریس و سامانه پرونده سریع برکلی (Berkeley Fast Filesystem) است. .PP این فرمت در ابتدا به عنوان بخشی از Berkeley/IRCAM/CARL Sound Filesystem توسعه داده شد، که مجموعه‌ای از برنامه‌ها برای پیاده‌سازی یک سامانه پرونده برای کاربردهای صوتی در حال اجرا تحت یونیکس برکلی بود. این فرمت به ویژه در مراکز دانشگاهی پژوهش موسیقی محبوبیت داشت و بارها در ساخت آثار اولیه موسیقی تولیدشده با رایانه به کار گرفته شد. .PP این مکسر یک جریان صوتی تکی حاوی داده‌های PCM را می‌پذیرد. .SS ivf .IX Subsection "ivf" مکسر On2 IVF. .PP قالب IVF توسط شرکت On2 Technologies (که قبلاً با نام Duck Corporation شناخته می‌شد) برای ذخیره کدک‌های توسعه‌یافته داخلی طراحی شد. .PP این مکسر یک جریان ویدیویی تکی \fBvp8\fR، \fBvp9\fR یا \fBav1\fR را می‌پذیرد. .SS jacosub .IX Subsection "jacosub" مکسر فرمت زیرنویس JACOsub. .PP این مکسر یک جریان زیرنویس تکی \fBjacosub\fR را می‌پذیرد. .PP برای توضیحات تفصیلی درباره این فرمت، به <\fBhttp://unicorn.us.com/jacosub/jscripts.html\fR> مراجعه کنید. .SS kvag .IX Subsection "kvag" مکسر Simon & Schuster Interactive VAG. .PP این کانتینر سفارشی VAG توسط برخی بازی‌های شرکت Simon & Schuster Interactive مانند "Real War" و "Real War: Rogue States" استفاده می‌شود. .PP این مکسر یک جریان صوتی تکی \fBadpcm_ima_ssi\fR را می‌پذیرد. .SS lc3 .IX Subsection "lc3" کدک صوتی ارتباطی با پیچیدگی پایین Bluetooth SIG (LC3)، یا کدک صوتی ارتباطی با پیچیدگی پایین پلاس ETSI TS 103 634 (LC3plus). .PP این مکسر یک جریان صوتی تکی \fBlc3\fR را می‌پذیرد. .SS lrc .IX Subsection "lrc" مکسر فرمت پرونده متن ترانه LRC. .PP قالب LRC (کوتاه‌شده‌ی LyRiCs) یک فرمت پرونده رایانه‌ای است که متن ترانه را با یک پرونده صوتی مانند MP3، Vorbis یا MIDI همگام‌سازی می‌کند. .PP این مکسر یک جریان زیرنویس تکی \fBsubrip\fR یا \fBtext\fR را می‌پذیرد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBprecision\fR \fInumber\fR" 4 .IX Item "precision number" تنظیم تعداد ارقام اعشاری استفاده‌شده برای بخش کسری (کسر ثانیه) برچسب‌های زمانی. محدوده \f(CW1\fR تا \f(CW6\fR است. پیش‌فرض \f(CW2\fR است، یعنی صدم ثانیه. .PP \fIمتاداده\fR .IX Subsection "Metadata" .PP تگ‌های متاداده زیر به متاداده متناظر در فرمت تبدیل می‌شوند: .IP \fBtitle\fR 4 .IX Item "title" .PD 0 .IP \fBalbum\fR 4 .IX Item "album" .IP \fBartist\fR 4 .IX Item "artist" .IP \fBauthor\fR 4 .IX Item "author" .IP \fBcreator\fR 4 .IX Item "creator" .IP \fBencoder\fR 4 .IX Item "encoder" .IP \fBencoder_version\fR 4 .IX Item "encoder_version" .PD .PP اگر \fBencoder_version\fR به طور صریح تنظیم نشود، به طور خودکار روی نسخه libavformat تنظیم می‌شود. .SS matroska .IX Subsection "matroska" مکسر کانتینر ماتروشکا (Matroska). .PP این مکسر مشخصات کانتینرهای matroska و webm را پیاده‌سازی می‌کند. .PP \fIمتاداده\fR .IX Subsection "Metadata" .PP تنظیمات متاداده شناخته‌شده در این مکسر عبارتند از: .IP \fBtitle\fR 4 .IX Item "title" تنظیم نام عنوان ارائه‌شده به یک تراک تکی. این برای جریانی که به عنوان ضمیمه نوشته می‌شود، به عنصر FileDescription نگاشت می‌گردد. .IP \fBlanguage\fR 4 .IX Item "language" مشخص کردن زبان تراک در فرم زبان‌های Matroska. .Sp زبان می‌تواند فرم ۳ حرفی کتاب‌شناختی ISO\-639\-2 (یا همان ISO 639\-2/B) باشد (مانند "fre" برای فرانسوی)، یا یک کد زبان ترکیب‌شده با یک کد کشور برای ویژگی‌های خاص زبانی (مانند "fre\-ca" برای فرانسوی کانادایی). .IP \fBstereo_mode\fR 4 .IX Item "stereo_mode" تنظیم چیدمان ویدیوی سه‌بعدی استریو از دو نما در یک تراک ویدیویی تکی. .Sp مقادیر زیر شناخته می‌شوند: .RS 4 .IP \fBmono\fR 4 .IX Item "mono" ویدیو استریو نیست .IP \fBleft_right\fR 4 .IX Item "left_right" هر دو نما در کنار یکدیگر چیده شده‌اند، نمای چشم چپ در سمت چپ قرار دارد .IP \fBbottom_top\fR 4 .IX Item "bottom_top" هر دو نما با جهت‌گیری بالا-پایین قرار گرفته‌اند، نمای چشم چپ در پایین است .IP \fBtop_bottom\fR 4 .IX Item "top_bottom" هر دو نما با جهت‌گیری بالا-پایین قرار گرفته‌اند، نمای چشم چپ در بالا است .IP \fBcheckerboard_rl\fR 4 .IX Item "checkerboard_rl" هر نما در یک الگوی درهم‌بافته شطرنجی چیده شده است که نمای چشم راست اول است .IP \fBcheckerboard_lr\fR 4 .IX Item "checkerboard_lr" هر نما در یک الگوی درهم‌بافته شطرنجی چیده شده است که نمای چشم چپ اول است .IP \fBrow_interleaved_rl\fR 4 .IX Item "row_interleaved_rl" هر نما از درهم‌بافی مبتنی بر ردیف تشکیل شده است، نمای چشم راست ردیف اول است .IP \fBrow_interleaved_lr\fR 4 .IX Item "row_interleaved_lr" هر نما از درهم‌بافی مبتنی بر ردیف تشکیل شده است، نمای چشم چپ ردیف اول است .IP \fBcol_interleaved_rl\fR 4 .IX Item "col_interleaved_rl" هر دو نما به صورت درهم‌بافته ستونی چیده شده‌اند، نمای چشم راست ستون اول است .IP \fBcol_interleaved_lr\fR 4 .IX Item "col_interleaved_lr" هر دو نما به صورت درهم‌بافته ستونی چیده شده‌اند، نمای چشم چپ ستون اول است .IP \fBanaglyph_cyan_red\fR 4 .IX Item "anaglyph_cyan_red" تمامی فریم‌ها در قالب آناگلیف و قابل مشاهده از طریق فیلترهای قرمز-فیروزه‌ای هستند .IP \fBright_left\fR 4 .IX Item "right_left" هر دو نما در کنار یکدیگر چیده شده‌اند، نمای چشم راست در سمت چپ قرار دارد .IP \fBanaglyph_green_magenta\fR 4 .IX Item "anaglyph_green_magenta" تمامی فریم‌ها در قالب آناگلیف و قابل مشاهده از طریق فیلترهای سبز-سرخابی هستند .IP \fBblock_lr\fR 4 .IX Item "block_lr" هر دو چشم در یک Block قرار گرفته‌اند، نمای چشم چپ اول است .IP \fBblock_rl\fR 4 .IX Item "block_rl" هر دو چشم در یک Block قرار گرفته‌اند، نمای چشم راست اول است .RE .RS 4 .RE .PP به عنوان مثال یک کلیپ سه‌بعدی WebM می‌تواند با خط فرمان زیر ایجاد شود: .PP .Vb 1 \& ffmpeg \-i sample_left_right_clip.mpg \-an \-c:v libvpx \-metadata stereo_mode=left_right \-y stereo_clip.webm .Ve .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBreserve_index_space\fR \fIsize\fR" 4 .IX Item "reserve_index_space size" به طور پیش‌فرض، این مکسر ایندکس مورد نیاز برای جستجو (که در اصطلاحات ماتروشکا cues نامیده می‌شود) را در انتهای پرونده می‌نویسد، زیرا نمی‌تواند از قبل بداند چه مقدار فضا باید برای ایندکس در ابتدای پرونده اختصاص دهد. با این حال برای برخی کاربردها \-\- مانند پخش جریانی که در آن جستجو امکان‌پذیر اما کُند است \-\- قرار دادن ایندکس در ابتدای پرونده سودمند خواهد بود. .Sp اگر این گزینه روی مقداری غیر از صفر تنظیم شود، مکسر به میزان \fIsize\fR بایت فضا در هدر پرونده رزرو می‌کند و سپس هنگامی که مکس کردن پایان یافت سعی می‌کند Cues را در آنجا بنویسد. اگر فضای رزرو شده کافی نباشد، هیچ نشانه‌ای (Cues) نوشته نخواهد شد، پرونده نهایی می‌شود و نوشتن تریلر خطایی را برمی‌گرداند. یک اندازه مطمئن برای اکثر موارد کاربرد حدود 50kB در هر ساعت ویدیو است. .Sp توجه داشته باشید که cues تنها زمانی نوشته می‌شوند که خروجی قابلیت جستجو (seekable) داشته باشد و این گزینه در غیر این صورت هیچ اثری نخواهد داشت. .IP "\fBcues_to_front\fR \fIbool\fR" 4 .IX Item "cues_to_front bool" در صورت تنظیم، مکسر ایندکس را در ابتدای پرونده و با جابجایی داده‌های اصلی در صورت لزوم می‌نویسد. این می‌تواند با reserve_index_space ترکیب شود که در این حالت داده‌ها تنها در صورتی جابجا می‌شوند که فضای رزرو شده اولیه ناکافی باشد. .Sp این گزینه اگر خروجی غیرقابل جستجو باشد نادیده گرفته می‌شود. .IP "\fBcluster_size_limit\fR \fIsize\fR" 4 .IX Item "cluster_size_limit size" ذخیره حداکثر به میزان بایت مشخص‌شده در یک کلاستر (Cluster). .Sp در صورت عدم تعیین، این محدودیت به طور خودکار روی یک مقدار ثابت معقول تنظیم می‌شود. .IP "\fBcluster_time_limit\fR \fIduration\fR" 4 .IX Item "cluster_time_limit duration" ذخیره حداکثر به میزان میلی‌ثانیه‌های مشخص‌شده در یک کلاستر. .Sp در صورت عدم تعیین، این محدودیت به طور خودکار روی یک مقدار ثابت معقول تنظیم می‌شود. .IP "\fBdash\fR \fIbool\fR" 4 .IX Item "dash bool" ایجاد یک پرونده WebM منطبق با مشخصات WebM DASH. به طور پیش‌فرض روی \f(CW\*(C`false\*(C'\fR تنظیم شده است. .IP "\fBdash_track_number\fR \fIindex\fR" 4 .IX Item "dash_track_number index" شماره تراک برای جریان DASH. به طور پیش‌فرض روی \f(CW1\fR تنظیم شده است. .IP "\fBlive\fR \fIbool\fR" 4 .IX Item "live bool" نوشتن پرونده‌ها با این فرض که یک جریان زنده است. به طور پیش‌فرض روی \f(CW\*(C`false\*(C'\fR تنظیم شده است. .IP "\fBallow_raw_vfw\fR \fIbool\fR" 4 .IX Item "allow_raw_vfw bool" اجازه دادن به حالت VFW خام. به طور پیش‌فرض روی \f(CW\*(C`false\*(C'\fR تنظیم شده است. .IP "\fBflipped_raw_rgb\fR \fIbool\fR" 4 .IX Item "flipped_raw_rgb bool" در صورت تنظیم روی \f(CW\*(C`true\*(C'\fR، ارتفاع مثبت را برای بیت‌مپ‌های RGB خام ذخیره می‌کند، که نشان می‌دهد بیت‌مپ از پایین به بالا ذخیره شده است. توجه داشته باشید که این گزینه بیت‌مپ را معکوس نمی‌کند و این کار باید از قبل به صورت دستی، مثلاً با استفاده از فیلتر \fBvflip\fR انجام شود. پیش‌فرض \f(CW\*(C`false\*(C'\fR است و نشان می‌دهد که بیت‌مپ از بالا به پایین ذخیره شده است. .IP "\fBwrite_crc32\fR \fIbool\fR" 4 .IX Item "write_crc32 bool" نوشتن یک عنصر CRC32 در داخل هر عنصر سطح ۱ (Level 1). به طور پیش‌فرض روی \f(CW\*(C`true\*(C'\fR تنظیم شده است. این گزینه برای WebM نادیده گرفته می‌شود. .IP "\fBdefault_mode\fR \fImode\fR" 4 .IX Item "default_mode mode" کنترل نحوه تنظیم FlagDefault تراک‌های خروجی. این گزینه تعیین می‌کند که پخش‌کننده‌ها کدام تراک‌ها را باید به صورت پیش‌فرض پخش کنند. حالت پیش‌فرض \fBpassthrough\fR است. .RS 4 .IP \fBinfer\fR 4 .IX Item "infer" هر تراک با حالت پیش‌فرض (disposition default)، پرچم FlagDefault آن تنظیم خواهد شد. علاوه بر این، برای هر نوع تراک (صدا، ویدیو یا زیرنویس)، اگر هیچ تراکی با حالت پیش‌فرض از این نوع وجود نداشته باشد، اولین تراک از این نوع به عنوان پیش‌فرض علامت‌گذاری می‌شود (در صورت وجود). این تضمین می‌کند که پرچم پیش‌فرض به شیوه‌ای معقول تنظیم شود حتی اگر ورودی از کانتینرهایی آمده باشد که فاقد مفهوم تراک‌های پیش‌فرض هستند. .IP \fBinfer_no_subs\fR 4 .IX Item "infer_no_subs" این حالت همانند infer است به جز اینکه اگر هیچ تراک زیرنویسی با حالت پیش‌فرض وجود نداشته باشد، هیچ تراک زیرنویسی به عنوان پیش‌فرض علامت‌گذاری نخواهد شد. .IP \fBpassthrough\fR 4 .IX Item "passthrough" در این حالت، FlagDefault تنظیم می‌شود اگر و تنها اگر پرچم AV_DISPOSITION_DEFAULT در مشخصه جریان متناظر تنظیم شده باشد. .RE .RS 4 .RE .SS md5 .IX Subsection "md5" فرمت آزمایشی MD5. .PP این فرمت گونه‌ای از مکسر \fBhash\fR است. بر خلاف آن مکسر، به طور پیش‌فرض از تابع هش MD5 استفاده می‌کند. .PP همچنین به مکسرهای \fBhash\fR و \fBframemd5\fR مراجعه کنید. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 برای محاسبه هش MD5 ورودی تبدیل‌شده به صدا و ویدیوی خام، و ذخیره آن در پرونده \fIout.md5\fR: .Sp .Vb 1 \& ffmpeg \-i INPUT \-f md5 out.md5 .Ve .IP \(bu 4 برای چاپ هش MD5 در خروجی استاندارد: .Sp .Vb 1 \& ffmpeg \-i INPUT \-f md5 \- .Ve .SS mcc .IX Subsection "mcc" مکسر برای پرونده‌های MacCaption MCC، این مکسر از نسخه‌های 1.0 و 2.0 فرمت MCC پشتیبانی می‌کند. پرونده‌های MCC داده‌های VANC را ذخیره می‌کنند، که می‌تواند شامل زیرنویس‌های بسته (EIA\-608 و CEA\-708)، کد زمانی کمکی، داده‌های pan\-scan و غیره باشد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP گزینه‌های مکسر عبارتند از: .IP \fBoverride_time_code_rate\fR 4 .IX Item "override_time_code_rate" بازنویسی مقدار \f(CW\*(C`Time Code Rate\*(C'\fR در خروجی. پیش‌فرض تلاش برای استنتاج از \f(CW\*(C`time_base\*(C'\fR جریان است که معمولاً کار نمی‌کند. .IP \fBuse_u_alias\fR 4 .IX Item "use_u_alias" استفاده از نام مستعار \f(CW\*(C`U\*(C'\fR برای دنباله بایتی \f(CW\*(C`E1h 00h 00h 00h\*(C'\fR. به طور پیش‌فرض غیرفعال است زیرا در برخی پرونده‌های \fI.mcc\fR اختلاف نظر وجود دارد که آیا ۲ یا ۳ بایت صفر دارد. .IP \fBmcc_version\fR 4 .IX Item "mcc_version" نسخه فرمت پرونده MCC. باید ۱ یا ۲ باشد، پیش‌فرض ۲ است. .IP \fBcreation_program\fR 4 .IX Item "creation_program" برنامه سازنده. پیش‌فرض این نسخه از FFmpeg است. .IP \fBcreation_time\fR 4 .IX Item "creation_time" زمان ایجاد. پیش‌فرض زمان کنونی است. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 استخراج یک جریان MXF \f(CW\*(C`SMPTE_436M_ANC\*(C'\fR از یک پرونده MXF و نوشتن آن در یک پرونده MCC با نرخ ۳۰ فریم بر ثانیه. .Sp .Vb 1 \& ffmpeg \-i input.mxf \-c copy \-map 0:d \-override_time_code_rate 30 out.mcc .Ve .IP \(bu 4 استخراج زیرنویس‌های بسته EIA\-608/CTA\-708 از یک پرونده \fI.mp4\fR و نوشتن آن‌ها در یک پرونده MCC با نرخ ۲۹.۹۷ فریم بر ثانیه. .Sp .Vb 1 \& ffmpeg \-f lavfi \-i "movie=input.mp4[out+subcc]" \-c:s copy \-map 0:s \-override_time_code_rate 30000/1001 out.mcc .Ve .SS microdvd .IX Subsection "microdvd" مکسر فرمت زیرنویس MicroDVD. .PP این مکسر یک جریان زیرنویس تکی \fBmicrodvd\fR را می‌پذیرد. .SS mmf .IX Subsection "mmf" مکسر فرمت پرونده صوتی مصنوعی همراه (SMAF). .PP فرمت SMAF یک قالب داده‌های موسیقی مشخص‌شده توسط یاماها برای دستگاه‌های الکترونیکی قابل حمل مانند تلفن‌های همراه و دستیارهای دیجیتال شخصی است. .PP این مکسر یک جریان صوتی تکی \fBadpcm_yamaha\fR را می‌پذیرد. .SS mp3 .IX Subsection "mp3" مکسر MP3 یک جریان خام MP3 را با ویژگی‌های اختیاری زیر می‌نویسد: .IP \(bu 4 یک هدر متاداده ID3v2 در ابتدا (به طور پیش‌فرض فعال است). نسخه‌های 2.3 و 2.4 پشتیبانی می‌شوند؛ گزینه اختصاصی \f(CW\*(C`id3v2_version\*(C'\fR کنترل می‌کند که کدام یک استفاده شود (3 یا 4). تنظیم \f(CW\*(C`id3v2_version\*(C'\fR روی 0 هدر ID3v2 را به طور کامل غیرفعال می‌کند. .Sp این مکسر از نوشتن تصاویر پیوست‌شده (فریم‌های APIC) در هدر ID3v2 پشتیبانی می‌کند. تصاویر در قالب یک جریان ویدیویی با یک بسته منفرد به مکسر ارائه می‌شوند. هر تعداد از این جریان‌ها می‌تواند وجود داشته باشد که هر یک با یک فریم منفرد APIC متناظر خواهد بود. تگ‌های متاداده جریان شامل \fItitle\fR و \fIcomment\fR به ترتیب به \fIdescription\fR و \fIpicture type\fR در APIC نگاشت می‌شوند. برای انواع مجاز تصویر، به <\fBhttp://id3.org/id3v2.4.0\-frames\fR> مراجعه کنید. .Sp توجه داشته باشید که فریم‌های APIC باید در ابتدا نوشته شوند، بنابراین مکسر فریم‌های صوتی را تا زمانی که تمامی تصاویر را دریافت کند در حافظه بافر خواهد کرد. به همین دلیل توصیه می‌شود که تصاویر در سریع‌ترین زمان ممکن ارائه شوند تا از بافر بیش از حد جلوگیری گردد. .IP \(bu 4 یک فریم Xing/LAME بلافاصله پس از هدر ID3v2 (در صورت وجود). به طور پیش‌فرض فعال است، اما تنها در صورتی نوشته می‌شود که خروجی قابلیت جستجو داشته باشد. گزینه اختصاصی \f(CW\*(C`write_xing\*(C'\fR می‌تواند برای غیرفعال کردن آن استفاده شود. این فریم حاوی اطلاعات مختلفی است که ممکن است برای دیکودر مفید باشد، مانند مدت زمان صدا یا تأخیر اینکودر. .IP \(bu 4 یک تگ قدیمی ID3v1 در انتهای پرونده (به طور پیش‌فرض غیرفعال است). می‌توان آن را با گزینه اختصاصی \f(CW\*(C`write_id3v1\*(C'\fR فعال کرد، اما از آنجا که قابلیت‌های آن بسیار محدود است، استفاده از آن توصیه نمی‌شود. .PP مثال‌ها: .PP نوشتن یک mp3 با هدر ID3v2.3 و پاورقی ID3v1: .PP .Vb 1 \& ffmpeg \-i INPUT \-id3v2_version 3 \-write_id3v1 1 out.mp3 .Ve .PP برای پیوست کردن یک تصویر به یک پرونده mp3، هر دو جریان صدا و تصویر را با \f(CW\*(C`map\*(C'\fR انتخاب کنید: .PP .Vb 2 \& ffmpeg \-i input.mp3 \-i cover.png \-c copy \-map 0 \-map 1 \& \-metadata:s:v title="Album cover" \-metadata:s:v comment="Cover (Front)" out.mp3 .Ve .PP نوشتن یک MP3 «تمیز» بدون هیچ ویژگی اضافی: .PP .Vb 1 \& ffmpeg \-i input.wav \-write_xing 0 \-id3v2_version 0 out.mp3 .Ve .SS mpegts .IX Subsection "mpegts" مکسر جریان انتقال ام‌پگ (MPEG transport stream). .PP این مکسر استاندارد ISO 13818\-1 و بخشی از ETSI EN 300 468 را پیاده‌سازی می‌کند. .PP تنظیمات متاداده شناخته‌شده در مکسر mpegts عبارتند از \f(CW\*(C`service_provider\*(C'\fR و \f(CW\*(C`service_name\*(C'\fR. اگر تنظیم نشده باشند، مقدار پیش‌فرض برای \f(CW\*(C`service_provider\*(C'\fR برابر \fBFFmpeg\fR و مقدار پیش‌فرض برای \f(CW\*(C`service_name\*(C'\fR برابر \fBService01\fR است. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP گزینه‌های مکسر عبارتند از: .IP "\fBmpegts_transport_stream_id\fR \fIinteger\fR" 4 .IX Item "mpegts_transport_stream_id integer" تنظیم \fBtransport_stream_id\fR. این شناسه یک ترانسپوندر را در DVB مشخص می‌کند. پیش‌فرض \f(CW0x0001\fR است. .IP "\fBmpegts_original_network_id\fR \fIinteger\fR" 4 .IX Item "mpegts_original_network_id integer" تنظیم \fBoriginal_network_id\fR. این یک شناسه منحصر‌به‌فرد از یک شبکه در DVB است. کاربرد اصلی آن در شناسایی منحصربه‌فرد یک سرویس از طریق مسیر \fBOriginal_Network_ID, Transport_Stream_ID\fR است. پیش‌فرض \f(CW0xff01\fR است. .IP "\fBmpegts_service_id\fR \fIinteger\fR" 4 .IX Item "mpegts_service_id integer" تنظیم \fBservice_id\fR، که در DVB با عنوان برنامه (program) نیز شناخته می‌شود. پیش‌فرض \f(CW0x0001\fR است. .IP "\fBmpegts_service_type\fR \fIinteger\fR" 4 .IX Item "mpegts_service_type integer" تنظیم \fBservice_type\fR برنامه. پیش‌فرض \f(CW\*(C`digital_tv\*(C'\fR است. گزینه‌های زیر را می‌پذیرد: .RS 4 .IP \fBhex_value\fR 4 .IX Item "hex_value" هر مقدار هگزادسیمال بین \f(CW0x01\fR و \f(CW0xff\fR همان‌طور که در ETSI 300 468 تعریف شده است. .IP \fBdigital_tv\fR 4 .IX Item "digital_tv" سرویس تلویزیون دیجیتال (Digital TV). .IP \fBdigital_radio\fR 4 .IX Item "digital_radio" سرویس رادیوی دیجیتال (Digital Radio). .IP \fBteletext\fR 4 .IX Item "teletext" سرویس تله‌تکست (Teletext). .IP \fBadvanced_codec_digital_radio\fR 4 .IX Item "advanced_codec_digital_radio" سرویس رادیوی دیجیتال با کدک پیشرفته. .IP \fBmpeg2_digital_hdtv\fR 4 .IX Item "mpeg2_digital_hdtv" سرویس تلویزیون دیجیتال با کیفیت بالا MPEG2. .IP \fBadvanced_codec_digital_sdtv\fR 4 .IX Item "advanced_codec_digital_sdtv" سرویس تلویزیون دیجیتال با کیفیت استاندارد با کدک پیشرفته. .IP \fBadvanced_codec_digital_hdtv\fR 4 .IX Item "advanced_codec_digital_hdtv" سرویس تلویزیون دیجیتال با کیفیت بالا با کدک پیشرفته. .IP \fBhevc_digital_hdtv\fR 4 .IX Item "hevc_digital_hdtv" سرویس تلویزیون دیجیتال HEVC. .RE .RS 4 .RE .IP "\fBmpegts_pmt_start_pid\fR \fIinteger\fR" 4 .IX Item "mpegts_pmt_start_pid integer" تنظیم اولین PID برای جدول‌های PMT. پیش‌فرض \f(CW0x1000\fR، حداقل \f(CW0x0020\fR، و حداکثر \f(CW0x1ffa\fR است. این گزینه در حالت m2ts که در آن PID جدول PMT روی \f(CW0x0100\fR ثابت است، هیچ اثری ندارد. .IP "\fBmpegts_start_pid\fR \fIinteger\fR" 4 .IX Item "mpegts_start_pid integer" تنظیم اولین PID برای جریان‌های بنیادی (elementary streams). پیش‌فرض \f(CW0x0100\fR، حداقل \f(CW0x0020\fR، و حداکثر \f(CW0x1ffa\fR است. این گزینه در حالت m2ts که در آن PIDهای جریان بنیادی ثابت هستند، هیچ اثری ندارد. .IP "\fBmpegts_m2ts_mode\fR \fIboolean\fR" 4 .IX Item "mpegts_m2ts_mode boolean" فعال کردن حالت m2ts در صورت تنظیم روی \f(CW1\fR. مقدار پیش‌فرض \f(CW\-1\fR است که حالت m2ts را غیرفعال می‌کند. .IP "\fBmuxrate\fR \fIinteger\fR" 4 .IX Item "muxrate integer" تنظیم یک نرخ مکس ثابت. پیش‌فرض VBR است. .IP "\fBpes_payload_size\fR \fIinteger\fR" 4 .IX Item "pes_payload_size integer" تنظیم حداقل بار مفید (payload) بسته PES بر حسب بایت. پیش‌فرض \f(CW2930\fR است. .IP "\fBmpegts_flags\fR \fIflags\fR" 4 .IX Item "mpegts_flags flags" تنظیم فلگ‌های mpegts. گزینه‌های زیر را می‌پذیرد: .RS 4 .IP \fBresend_headers\fR 4 .IX Item "resend_headers" ارسال مجدد PAT/PMT قبل از نوشتن بسته بعدی. .IP \fBlatm\fR 4 .IX Item "latm" استفاده از بسته‌بندی LATM برای AAC. .IP \fBpat_pmt_at_frames\fR 4 .IX Item "pat_pmt_at_frames" ارسال مجدد PAT و PMT در هر فریم ویدیویی. .IP \fBsystem_b\fR 4 .IX Item "system_b" انطباق با سامانه B (DVB) به جای سامانه A (ATSC). .IP \fBinitial_discontinuity\fR 4 .IX Item "initial_discontinuity" علامت‌گذاری بسته اولیه هر جریان به عنوان ناپیوستگی (discontinuity). .IP \fBnit\fR 4 .IX Item "nit" ارسال جدول NIT. .IP \fBomit_rai\fR 4 .IX Item "omit_rai" غیرفعال کردن نوشتن نشانگر دسترسی تصادفی (random access indicator). .RE .RS 4 .RE .IP "\fBmpegts_copyts\fR \fIboolean\fR" 4 .IX Item "mpegts_copyts boolean" حفظ برچسب‌های زمانی اصلی، اگر مقدار روی \f(CW1\fR تنظیم شود. مقدار پیش‌فرض \f(CW\-1\fR است، که منجر به جابجایی برچسب‌های زمانی می‌شود تا از 0 شروع شوند. .IP "\fBomit_video_pes_length\fR \fIboolean\fR" 4 .IX Item "omit_video_pes_length boolean" حذف طول بسته PES برای بسته‌های ویدیویی. پیش‌فرض \f(CW1\fR (true) است. .IP "\fBpcr_period\fR \fIinteger\fR" 4 .IX Item "pcr_period integer" بازنویسی زمان پیش‌فرض ارسال مجدد PCR بر حسب میلی‌ثانیه. پیش‌فرض \f(CW\-1\fR است که بدان معنی است که بازه PCR به طور خودکار تعیین می‌شود: 20 میلی‌ثانیه برای جریان‌های CBR استفاده می‌شود، و بالاترین مضرب مدت فریم که کمتر از 100 میلی‌ثانیه باشد برای جریان‌های VBR به کار می‌رود. .IP "\fBpat_period\fR \fIduration\fR" 4 .IX Item "pat_period duration" حداکثر زمان بر حسب ثانیه بین جداول PAT/PMT. پیش‌فرض \f(CW0.1\fR است. .IP "\fBsdt_period\fR \fIduration\fR" 4 .IX Item "sdt_period duration" حداکثر زمان بر حسب ثانیه بین جداول SDT. پیش‌فرض \f(CW0.5\fR است. .IP "\fBnit_period\fR \fIduration\fR" 4 .IX Item "nit_period duration" حداکثر زمان بر حسب ثانیه بین جداول NIT. پیش‌فرض \f(CW0.5\fR است. .IP "\fBtables_version\fR \fIinteger\fR" 4 .IX Item "tables_version integer" تنظیم نسخه PAT، PMT، SDT و NIT (پیش‌فرض \f(CW0\fR، مقادیر معتبر از 0 تا 31، به طور فراگیر). این گزینه امکان به‌روزرسانی ساختار جریان را فراهم می‌کند تا مصرف‌کننده استاندارد بتواند تغییر را تشخیص دهد. برای انجام این کار، \f(CW\*(C`AVFormatContext\*(C'\fR خروجی را بازگشایی کنید (در صورت استفاده از API) یا نمونه \fBffmpeg\fR را مجدداً راه‌اندازی نمایید، و مقدار \fBtables_version\fR را به صورت چرخه‌ای تغییر دهید: .Sp .Vb 7 \& ffmpeg \-i source1.ts \-codec copy \-f mpegts \-tables_version 0 udp://1.1.1.1:1111 \& ffmpeg \-i source2.ts \-codec copy \-f mpegts \-tables_version 1 udp://1.1.1.1:1111 \& ... \& ffmpeg \-i source3.ts \-codec copy \-f mpegts \-tables_version 31 udp://1.1.1.1:1111 \& ffmpeg \-i source1.ts \-codec copy \-f mpegts \-tables_version 0 udp://1.1.1.1:1111 \& ffmpeg \-i source2.ts \-codec copy \-f mpegts \-tables_version 1 udp://1.1.1.1:1111 \& ... .Ve .PP \fIمثال\fR .IX Subsection "Example" .PP .Vb 9 \& ffmpeg \-i file.mpg \-c copy \e \& \-mpegts_original_network_id 0x1122 \e \& \-mpegts_transport_stream_id 0x3344 \e \& \-mpegts_service_id 0x5566 \e \& \-mpegts_pmt_start_pid 0x1500 \e \& \-mpegts_start_pid 0x150 \e \& \-metadata service_provider="Some provider" \e \& \-metadata service_name="Some Channel" \e \& out.ts .Ve .SS "mxf, mxf_d10, mxf_opatom" .IX Subsection "mxf, mxf_d10, mxf_opatom" مکسر MXF. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP گزینه‌های مکسر عبارتند از: .IP "\fBstore_user_comments\fR \fIbool\fR" 4 .IX Item "store_user_comments bool" تنظیم اینکه آیا نظرات کاربر در صورت وجود ذخیره شوند یا هرگز. فرمت IRT D\-10 اجازه نظرات کاربر را نمی‌دهد. بنابراین پیش‌فرض این است که آن‌ها برای mxf و mxf_opatom نوشته شوند اما برای mxf_d10 نوشته نشوند. .SS null .IX Subsection "null" مکسر تهی (Null). .PP این مکسر هیچ پرونده خروجی تولید نمی‌کند، و اساساً برای مقاصد آزمایش یا بنچمارک مفید است. .PP برای مثال برای بنچمارک دیکود کردن با \fBffmpeg\fR می‌توانید از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-benchmark \-i INPUT \-f null out.null .Ve .PP توجه داشته باشید که دستور بالا پرونده \fIout.null\fR را نمی‌خواند یا نمی‌نویسد، اما تعیین پرونده خروجی طبق سینتکس \fBffmpeg\fR الزامی است. .PP به عنوان جایگزین می‌توانید دستور را به این شکل بنویسید: .PP .Vb 1 \& ffmpeg \-benchmark \-i INPUT \-f null \- .Ve .SS nut .IX Subsection "nut" .IP "\fB\-syncpoints\fR \fIflags\fR" 4 .IX Item "-syncpoints flags" تغییر نحوه استفاده از نقاط همگام‌سازی (syncpoint) در nut: .RS 4 .IP "\fIdefault\fR \fBاستفاده از راهنماهای عادی جستجو با سربار کم.\fR" 4 .IX Item "default use the normal low-overhead seeking aids." .PD 0 .IP "\fInone\fR \fBعدم استفاده از نقاط همگام‌سازی به طور کلی، که سربار را کاهش می‌دهد اما جریان را غیرقابل جستجو می‌سازد؛\fR" 4 .IX Item "none do not use the syncpoints at all, reducing the overhead but making the stream non-seekable;" .PD .Vb 5 \& Use of this option is not recommended, as the resulting files are very damage \& sensitive and seeking is not possible. Also in general the overhead from \& syncpoints is negligible. Note, \-C 0 can be used to disable \& all growing data tables, allowing to mux endless streams with limited memory \& and without these disadvantages. .Ve .IP "\fItimestamped\fR \fBگسترش نقطه همگام‌سازی با یک فیلد ساعت دیواری (wallclock).\fR" 4 .IX Item "timestamped extend the syncpoint with a wallclock field." .RE .RS 4 .Sp فلگ‌های \fInone\fR و \fItimestamped\fR آزمایشی هستند. .RE .IP "\fB\-write_index\fR \fIbool\fR" 4 .IX Item "-write_index bool" نوشتن ایندکس در انتها، پیش‌فرض نوشتن ایندکس است. .PP .Vb 1 \& ffmpeg \-i INPUT \-f_strict experimental \-syncpoints none \- | processor .Ve .SS ogg .IX Subsection "ogg" مکسر کانتینر Ogg. .IP "\fB\-page_duration\fR \fIduration\fR" 4 .IX Item "-page_duration duration" مدت زمان ترجیحی صفحه، بر حسب میکروثانیه. مکسر تلاش می‌کند صفحاتی بسازد که طول آن‌ها تقریباً \fIduration\fR میکروثانیه باشد. این به کاربر اجازه می‌دهد میان دقت جستجو و سربار کانتینر مصالحه برقرار کند. پیش‌فرض ۱ ثانیه است. مقدار 0 تمام بخش‌ها را پر کرده و صفحات را تا حد ممکن بزرگ می‌سازد. مقدار 1 عملاً در اکثر شرایط از ۱ بسته در هر صفحه استفاده می‌کند، که دقت جستجوی ریزی به بهای سربار بیشتر کانتینر فراهم می‌آورد. .IP "\fB\-serial_offset\fR \fIvalue\fR" 4 .IX Item "-serial_offset value" مقدار سریالی که شماره سریال جریان‌ها از آن تنظیم می‌شود. تنظیم آن روی مقادیر متفاوت و به اندازه کافی بزرگ تضمین می‌کند که پرونده‌های ogg تولیدشده می‌توانند با اطمینان زنجیربندی شوند. .SS pdv .IX Subsection "pdv" مکسر ویدیوی Playdate. .PP این مکسر کانتینر ویدیویی Playdate مورد استفاده در SDK پلی‌دیت شرکت Panic را می‌نویسد. به یک خروجی قابل جستجو و یک جریان ویدیویی تکی PDV نیاز دارد. .IP "\fBmax_frames\fR \fIframes\fR" 4 .IX Item "max_frames frames" رزرو فضا برای حداکثر \fIframes\fR فریم ویدیویی در هدر پرونده. این گزینه اجباری است. .SS rcwt .IX Subsection "rcwt" فرمت RCWT (مخفف Raw Captions With Time) یک فرمت بومی ابزار ccextractor است، ابزاری متن‌باز و پرکاربرد برای پردازش منابع زیرنویس‌های بسته (CC) 608/708. این فرمت می‌تواند برای بایگانی بیت‌استریم استخراج‌شده اصلی CC و تولید یک پرونده منبع برای پردازش یا تبدیل بعدی استفاده شود. این فرمت امکان تعامل‌پذیری بین ccextractor و FFmpeg را فراهم می‌کند، تجزیه آن ساده است و می‌تواند برای ایجاد یک نسخه پشتیبان از نمایش CC به کار رود. .PP این مکسر مشخصات فنی مارس ۲۰۲۴ را پیاده‌سازی می‌کند، که از آوریل ۲۰۱۴ پایدار و بدون تغییر بوده است. .PP این مکسر تفاوت‌های ظریفی با شیوه مکس کردن RCWT توسط ccextractor خواهد داشت. تاکنون هیچ مشکل سازگاری در هنگام پردازش خروجی با ccextractor به عنوان نتیجه این امر مشاهده نشده است، اما ممکن است نتایج متفاوت باشد و خروجی‌ها از نظر بیتی تطابق کامل نداشته باشند. .PP مشخصات رایگان RCWT را می‌توان در اینجا یافت: <\fBhttps://github.com/CCExtractor/ccextractor/blob/master/docs/BINARY_FILE_FORMAT.TXT\fR> .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 استخراج زیرنویس‌های بسته به RCWT با استفاده از lavfi: .Sp .Vb 1 \& ffmpeg \-f lavfi \-i "movie=INPUT.mkv[out+subcc]" \-map 0:s:0 \-c:s copy \-f rcwt CC.rcwt.bin .Ve .SS "segment, stream_segment, ssegment" .IX Subsection "segment, stream_segment, ssegment" بخش‌بندی‌کننده (سگمنتر) پایه جریان. .PP این مکسر جریان‌ها را در تعدادی پرونده جداگانه با مدت زمان تقریباً ثابت خروجی می‌دهد. الگوی نام پرونده خروجی می‌تواند به شیوه‌ای مشابه \fBimage2\fR، یا با استفاده از یک الگوی \f(CW\*(C`strftime\*(C'\fR در صورت فعال بودن گزینه \fBstrftime\fR تنظیم شود. .PP \f(CW\*(C`stream_segment\*(C'\fR گونه‌ای از مکسر است که برای نوشتن در فرمت‌های خروجی جریانی استفاده می‌شود، یعنی فرمت‌هایی که نیازی به هدرهای سراسری ندارند، و برای نمونه برای خروجی دادن به قطعات جریان انتقال MPEG توصیه می‌شود. \f(CW\*(C`ssegment\*(C'\fR یک نام مستعار کوتاه‌تر برای \f(CW\*(C`stream_segment\*(C'\fR است. .PP هر قطعه با یک فریم کلیدی از جریان مرجع انتخاب‌شده شروع می‌شود، که از طریق گزینه \fBreference_stream\fR تنظیم می‌گردد. .PP توجه داشته باشید که اگر می‌خواهید برای یک پرونده ویدیویی برش دقیقی داشته باشید، باید فریم‌های کلیدی ورودی را دقیقاً با زمان‌های برش مورد انتظار سگمنتر مطابقت دهید، در غیر این صورت مکسر بخش‌بندی، قطعه جدید را با فریم کلیدی بعدی که پس از زمان شروع مشخص‌شده یافت می‌شود، آغاز خواهد کرد. .PP مکسر بخش‌بندی با یک ویدیوی تکی با نرخ فریم ثابت بهترین عملکرد را دارد. .PP به صورت اختیاری می‌تواند با تنظیم گزینه \fIsegment_list\fR، فهرستی از قطعات ایجادشده تولید کند. نوع فهرست توسط گزینه \fIsegment_list_type\fR مشخص می‌شود. نام پرونده‌های ورودی در فهرست قطعات به طور پیش‌فرض روی نام پایه (basename) پرونده‌های قطعه متناظر تنظیم می‌شود. .PP همچنین به مکسر \fBhls\fR مراجعه کنید، که پیاده‌سازی خاص‌تری برای بخش‌بندی HLS ارائه می‌دهد. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP مکسر بخش‌بندی از گزینه‌های زیر پشتیبانی می‌کند: .IP "\fBincrement_tc\fR \fI1|0\fR" 4 .IX Item "increment_tc 1|0" اگر روی \f(CW1\fR تنظیم شود، کد زمانی بین هر قطعه افزایش می‌یابد. در صورت انتخاب این گزینه، ورودی باید دارای یک کد زمانی در اولین جریان ویدیویی باشد. مقدار پیش‌فرض \f(CW0\fR است. .IP "\fBreference_stream\fR \fIspecifier\fR" 4 .IX Item "reference_stream specifier" تنظیم جریان مرجع، همان‌طور که توسط رشته \fIspecifier\fR مشخص شده است. اگر \fIspecifier\fR روی \f(CW\*(C`auto\*(C'\fR تنظیم شود، مرجع به طور خودکار انتخاب می‌شود. در غیر این صورت باید یک مشخص‌کننده جریان باشد (به بخش «مشخص‌کننده‌های جریان» در راهنمای ffmpeg مراجعه کنید) که جریان مرجع را مشخص می‌کند. مقدار پیش‌فرض \f(CW\*(C`auto\*(C'\fR است. .IP "\fBsegment_format\fR \fIformat\fR" 4 .IX Item "segment_format format" بازنویسی فرمت کانتینر داخلی، به طور پیش‌فرض بر اساس پسوند نام پرونده حدس زده می‌شود. .IP "\fBsegment_format_options\fR \fIoptions_list\fR" 4 .IX Item "segment_format_options options_list" تنظیم گزینه‌های فرمت خروجی با استفاده از یک فهرست جداشده با «:» از پارامترهای key=value. مقادیری که حاوی نویسه خاص \f(CW\*(C`:\*(C'\fR هستند باید گریز داده شوند. .IP "\fBsegment_list\fR \fIname\fR" 4 .IX Item "segment_list name" همچنین تولید یک پرونده فهرست با نام \fIname\fR. در صورت عدم تعیین، هیچ پرونده فهرستی تولید نمی‌شود. .IP "\fBsegment_list_flags\fR \fIflags\fR" 4 .IX Item "segment_list_flags flags" تنظیم فلگ‌های مؤثر بر تولید فهرست قطعات. .Sp در حال حاضر از فلگ‌های زیر پشتیبانی می‌کند: .RS 4 .IP \fBcache\fR 4 .IX Item "cache" اجازه کش کردن (تنها بر پرونده‌های فهرست M3U8 اثر می‌گذارد). .IP \fBlive\fR 4 .IX Item "live" اجازه تولید پرونده سازگار با پخش زنده. .RE .RS 4 .RE .IP "\fBsegment_list_size\fR \fIsize\fR" 4 .IX Item "segment_list_size size" به‌روزرسانی پرونده فهرست به گونه‌ای که حداکثر شامل \fIsize\fR قطعه باشد. اگر 0 باشد پرونده فهرست شامل تمام قطعات خواهد بود. مقدار پیش‌فرض 0 است. .IP "\fBsegment_list_entry_prefix\fR \fIprefix\fR" 4 .IX Item "segment_list_entry_prefix prefix" افزودن \fIprefix\fR به ابتدای هر مدخل. برای تولید مسیرهای مطلق مفید است. به طور پیش‌فرض هیچ پیشوندی اعمال نمی‌شود. .IP "\fBsegment_list_type\fR \fItype\fR" 4 .IX Item "segment_list_type type" انتخاب فرمت فهرست‌بندی. .Sp مقادیر زیر شناخته می‌شوند: .RS 4 .IP \fBflat\fR 4 .IX Item "flat" تولید یک فهرست ساده برای قطعات ایجادشده، یک قطعه در هر خط. .IP "\fBcsv, ext\fR" 4 .IX Item "csv, ext" تولید یک فهرست برای قطعات ایجادشده، یک قطعه در هر خط، که هر خط با قالب (مقادیر جداشده با کاما) مطابقت دارد: .Sp .Vb 1 \& ,, .Ve .Sp \fIsegment_filename\fR نام پرونده خروجی تولیدشده توسط مکسر بر اساس الگوی ارائه‌شده است. فرار CSV (طبق RFC4180) در صورت نیاز اعمال می‌شود. .Sp \fIsegment_start_time\fR و \fIsegment_end_time\fR زمان شروع و پایان قطعه را بر حسب ثانیه مشخص می‌کنند. .Sp یک پرونده فهرست با پسوند \f(CW".csv"\fR یا \f(CW".ext"\fR این فرمت را به طور خودکار انتخاب می‌کند. .Sp \fBext\fR به نفع \fBcsv\fR منسوخ شده است. .IP \fBffconcat\fR 4 .IX Item "ffconcat" تولید یک پرونده ffconcat برای قطعات ایجادشده. پرونده حاصل را می‌توان با استفاده از دیمکسر \fBconcat\fR در FFmpeg خواند. .Sp یک پرونده فهرست با پسوند \f(CW".ffcat"\fR یا \f(CW".ffconcat"\fR این فرمت را به طور خودکار انتخاب خواهد کرد. .IP \fBm3u8\fR 4 .IX Item "m3u8" تولید یک پرونده M3U8 گسترش‌یافته، نسخه 3، منطبق با <\fBhttp://tools.ietf.org/id/draft\-pantos\-http\-live\-streaming\fR>. .Sp یک پرونده فهرست با پسوند \f(CW".m3u8"\fR این فرمت را به طور خودکار انتخاب خواهد کرد. .RE .RS 4 .Sp در صورت عدم تعیین، نوع فرمت از پسوند نام پرونده فهرست حدس زده می‌شود. .RE .IP "\fBsegment_time\fR \fItime\fR" 4 .IX Item "segment_time time" تنظیم مدت زمان قطعه به \fItime\fR، مقدار باید یک مشخصه مدت زمان باشد. مقدار پیش‌فرض "2" است. همچنین گزینه \fBsegment_times\fR را ببینید. .Sp توجه داشته باشید که بخش‌بندی ممکن است دقیق نباشد، مگر اینکه فریم‌های کلیدی جریان مرجع را در زمان مشخص‌شده اجبار کنید. یادداشت مقدماتی و مثال‌های زیر را ببینید. .IP "\fBmin_seg_duration\fR \fItime\fR" 4 .IX Item "min_seg_duration time" تنظیم حداقل مدت زمان قطعه به \fItime\fR، مقدار باید یک مشخصه مدت زمان باشد. این از پایان یافتن قطعات توسط مکسر در مدتی کمتر از این مقدار جلوگیری می‌کند. تنها همراه با \f(CW\*(C`segment_time\*(C'\fR مؤثر است. مقدار پیش‌فرض "0" است. .IP "\fBsegment_atclocktime\fR \fI1|0\fR" 4 .IX Item "segment_atclocktime 1|0" اگر روی "1" تنظیم شود، در بازه‌های زمانی منظم ساعت از ساعت 00:00 تقسیم می‌شود. مقدار \fItime\fR مشخص‌شده در \fBsegment_time\fR برای تنظیم طول بازه برش استفاده می‌شود. .Sp برای مثال با تنظیم \fBsegment_time\fR روی "900" امکان ایجاد پرونده‌ها در ساعت‌های 12:00، 12:15، 12:30 و غیره فراهم می‌شود. .Sp مقدار پیش‌فرض "0" است. .IP "\fBsegment_clocktime_offset\fR \fIduration\fR" 4 .IX Item "segment_clocktime_offset duration" به تأخیر انداختن زمان‌های برش قطعه با مدت زمان مشخص‌شده در هنگام استفاده از \fBsegment_atclocktime\fR. .Sp برای مثال با تنظیم \fBsegment_time\fR روی "900" و \fBsegment_clocktime_offset\fR روی "300" امکان ایجاد پرونده‌ها در ساعت‌های 12:05، 12:20، 12:35 و غیره ممکن می‌شود. .Sp مقدار پیش‌فرض "0" است. .IP "\fBsegment_clocktime_wrap_duration\fR \fIduration\fR" 4 .IX Item "segment_clocktime_wrap_duration duration" وادار کردن سگمنتر به اینکه فقط زمانی یک قطعه جدید را شروع کند که یک بسته در مدت زمان مشخص‌شده پس از زمان ساعتِ بخش‌بندی به مکسر برسد. از این طریق می‌توانید سگمنتر را در برابر پرش‌های به عقب در زمان محلی، مانند ثانیه‌های کبیسه یا انتقال از ساعت تابستانی به زمان استاندارد، پایدارتر سازید. .Sp پیش‌فرض حداکثر مدت زمان ممکن است، که به معنی شروع یک قطعه جدید بدون در نظر گرفتن زمان سپری‌شده از آخرین زمان ساعت است. .IP "\fBsegment_time_delta\fR \fIdelta\fR" 4 .IX Item "segment_time_delta delta" مشخص کردن زمان دقت هنگام انتخاب زمان شروع برای یک قطعه، که به صورت یک مشخصه مدت زمان بیان می‌شود. مقدار پیش‌فرض "0" است. .Sp هنگامی که delta مشخص شود، یک فریم کلیدی در صورتی یک قطعه جدید را آغاز خواهد کرد که PTS آن رابطه زیر را برآورده کند: .Sp .Vb 1 \& PTS >= start_time \- time_delta .Ve .Sp این گزینه هنگام برش محتوای ویدیویی، که همیشه در مرزهای GOP تقسیم می‌شود، در صورتی که یک فریم کلیدی درست قبل از زمان برش مشخص‌شده یافت شود، مفید است. .Sp به طور خاص ممکن است در ترکیب با گزینه \fIforce_key_frames\fR در \fIffmpeg\fR استفاده شود. زمان‌های فریم کلیدی مشخص‌شده توسط \fIforce_key_frames\fR ممکن است به دلیل مسائل گرد کردن دقیقاً تنظیم نشوند، که پیامد آن این است که ممکن است زمان یک فریم کلیدی درست قبل از زمان مشخص‌شده تنظیم شود. برای ویدیوهای با نرخ فریم ثابت، مقدار 1/(2*\fIframe_rate\fR) باید بدترین حالت عدم تطابق میان زمان تعیین‌شده و زمان تنظیم‌شده توسط \fIforce_key_frames\fR را پوشش دهد. .IP "\fBsegment_times\fR \fItimes\fR" 4 .IX Item "segment_times times" مشخص کردن فهرستی از نقاط برش. \fItimes\fR شامل فهرستی از مشخصه‌های مدت زمان جداشده با کاما به ترتیب صعودی است. همچنین گزینه \fBsegment_time\fR را ببینید. .IP "\fBsegment_frames\fR \fIframes\fR" 4 .IX Item "segment_frames frames" مشخص کردن فهرستی از شماره فریم‌های ویدیویی برای برش. \fIframes\fR شامل فهرستی از اعداد صحیح جداشده با کاما به ترتیب صعودی است. .Sp این گزینه مشخص می‌کند که هر زمان یک فریم کلیدی جریان مرجع پیدا شد و شماره متوالی فریم (با شروع از 0) بزرگتر یا مساوی مقدار بعدی در فهرست بود، یک قطعه جدید شروع شود. .IP "\fBsegment_wrap\fR \fIlimit\fR" 4 .IX Item "segment_wrap limit" چرخش مجدد نمایه قطعه زمانی که به \fIlimit\fR برسد. .IP "\fBsegment_start_number\fR \fInumber\fR" 4 .IX Item "segment_start_number number" تنظیم شماره توالی اولین قطعه. پیش‌فرض \f(CW0\fR است. .IP "\fBstrftime\fR \fI1|0\fR" 4 .IX Item "strftime 1|0" استفاده از تابع \f(CW\*(C`strftime\*(C'\fR برای تعریف نام قطعات جدید برای نوشتن. در صورت انتخاب این گزینه، نام قطعه خروجی باید شامل یک الگوی تابع \f(CW\*(C`strftime\*(C'\fR باشد. مقدار پیش‌فرض \f(CW0\fR است. .IP "\fBbreak_non_keyframes\fR \fI1|0\fR" 4 .IX Item "break_non_keyframes 1|0" در صورت فعال بودن، اجازه می‌دهد قطعات از فریم‌هایی غیر از فریم‌های کلیدی شروع شوند. این ویژگی رفتار برخی پخش‌کننده‌ها را در صورتی که زمان بین فریم‌های کلیدی نامنظم باشد بهبود می‌بخشد، اما ممکن است در برخی دیگر وضعیت را بدتر کند و باعث بروز رفتارهای نامتعارف در هنگام جستجو شود. پیش‌فرض \f(CW0\fR است. .IP "\fBreset_timestamps\fR \fI1|0\fR" 4 .IX Item "reset_timestamps 1|0" بازنشانی برچسب‌های زمانی در ابتدای هر قطعه، به طوری که هر قطعه با برچسب زمانی نزدیک به صفر آغاز شود. هدف از آن تسهیل پخش قطعات تولیدشده است. ممکن است با برخی ترکیب‌های مکسرها/کدک‌ها کار نکند. به طور پیش‌فرض روی \f(CW0\fR تنظیم شده است. .IP "\fBinitial_offset\fR \fIoffset\fR" 4 .IX Item "initial_offset offset" مشخص کردن آفست برچسب زمانی برای اعمال بر روی برچسب‌های زمانی بسته‌های خروجی. آرگومان باید یک مشخصه مدت زمان باشد، و پیش‌فرض آن 0 است. .IP "\fBwrite_empty_segments\fR \fI1|0\fR" 4 .IX Item "write_empty_segments 1|0" در صورت فعال بودن، اگر در دوره‌ای که معمولاً یک قطعه را در بر می‌گیرد هیچ بسته‌ای وجود نداشته باشد، یک قطعه خالی می‌نویسد. در غیر این صورت، قطعه با بسته بعدی که نوشته می‌شود پر خواهد شد. پیش‌فرض \f(CW0\fR است. .PP اطمینان حاصل کنید که هنگام کدگذاری، یک GOP بسته (closed GOP) درخواست نمایید و اندازه GOP را به گونه‌ای تنظیم کنید که با محدودیت زمانی قطعه شما متناسب باشد. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 مکس مجدد محتوای پرونده \fIin.mkv\fR به فهرستی از قطعات \fIout\-000.nut\fR، \fIout\-001.nut\fR و غیره، و نوشتن فهرست قطعات تولیدشده در \fIout.list\fR: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-codec hevc \-flags +cgop \-g 60 \-map 0 \-f segment \-segment_list out.list out%03d.nut .Ve .IP \(bu 4 بخش‌بندی ورودی و تنظیم گزینه‌های فرمت خروجی برای قطعات خروجی: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-f segment \-segment_time 10 \-segment_format_options movflags=+faststart out%03d.mp4 .Ve .IP \(bu 4 بخش‌بندی پرونده ورودی بر اساس نقاط برش مشخص‌شده توسط گزینه \fIsegment_times\fR: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list out.csv \-segment_times 1,2,3,5,8,13,21 out%03d.nut .Ve .IP \(bu 4 استفاده از گزینه \fBforce_key_frames\fR در \fBffmpeg\fR برای اجبار فریم‌های کلیدی در ورودی در مکان‌های مشخص‌شده، همراه با گزینه قطعه‌بندی \fBsegment_time_delta\fR به منظور در نظر گرفتن گرد کردن‌های احتمالی هنگام تنظیم زمان‌های فریم کلیدی. .Sp .Vb 2 \& ffmpeg \-i in.mkv \-force_key_frames 1,2,3,5,8,13,21 \-codec:v mpeg4 \-codec:a pcm_s16le \-map 0 \e \& \-f segment \-segment_list out.csv \-segment_times 1,2,3,5,8,13,21 \-segment_time_delta 0.05 out%03d.nut .Ve .Sp به منظور اجبار فریم‌های کلیدی روی پرونده ورودی، تبدیل کد (ترنسکد) الزامی است. .IP \(bu 4 بخش‌بندی پرونده ورودی با برش پرونده بر اساس دنباله شماره فریم‌های مشخص‌شده با گزینه \fBsegment_frames\fR: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list out.csv \-segment_frames 100,200,300,500,800 out%03d.nut .Ve .IP \(bu 4 تبدیل \fIin.mkv\fR به قطعات TS با استفاده از اینکودرهای \f(CW\*(C`libx264\*(C'\fR و \f(CW\*(C`aac\*(C'\fR: .Sp .Vb 1 \& ffmpeg \-i in.mkv \-map 0 \-codec:v libx264 \-codec:a aac \-f ssegment \-segment_list out.list out%03d.ts .Ve .IP \(bu 4 بخش‌بندی پرونده ورودی، و ایجاد یک لیست پخش زنده M3U8 (قابل استفاده به عنوان منبع HLS زنده): .Sp .Vb 2 \& ffmpeg \-re \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list playlist.m3u8 \e \& \-segment_list_flags +live \-segment_time 10 out%03d.mkv .Ve .SS smoothstreaming .IX Subsection "smoothstreaming" مکسر Smooth Streaming مجموعه‌ای از پرونده‌ها (Manifest، قطعات) را تولید می‌کند که برای ارائه با یک سرور وب سنتی مناسب هستند. .IP \fBwindow_size\fR 4 .IX Item "window_size" مشخص کردن تعداد قطعات نگه‌داری‌شده در manifest. پیش‌فرض 0 (نگه‌داری همه). .IP \fBextra_window_size\fR 4 .IX Item "extra_window_size" مشخص کردن تعداد قطعات نگه‌داری‌شده در خارج از manifest پیش از حذف از دیسک. پیش‌فرض 5. .IP \fBlookahead_count\fR 4 .IX Item "lookahead_count" مشخص کردن تعداد قطعات پیش‌نگر (lookahead). پیش‌فرض 2. .IP \fBmin_frag_duration\fR 4 .IX Item "min_frag_duration" مشخص کردن حداقل مدت زمان قطعه (بر حسب میکروثانیه). پیش‌فرض 5000000. .IP \fBremove_at_exit\fR 4 .IX Item "remove_at_exit" مشخص کردن اینکه آیا هنگام پایان کار تمام قطعات حذف شوند یا خیر. پیش‌فرض 0 (عدم حذف). .SS streamhash .IX Subsection "streamhash" فرمت آزمایشی هش به ازای هر جریان. .PP این مکسر یک هش رمزنگاری از تمامی فریم‌های ورودی را به ازای هر جریان محاسبه و چاپ می‌کند. این می‌تواند برای بررسی برابری بدون نیاز به انجام مقایسه باینری کامل استفاده شود. .PP به طور پیش‌فرض، فریم‌های صوتی پیش از محاسبه هش به صدای خام ۱۶ بیتی علامت‌دار و فریم‌های ویدیویی به ویدیوی خام تبدیل می‌شوند، اما خروجی تبدیل‌های صریح به سایر کدک‌ها نیز می‌تواند استفاده شود. برچسب‌های زمانی نادیده گرفته می‌شوند. این مکسر به طور پیش‌فرض از تابع هش رمزنگاری SHA\-256 استفاده می‌کند، اما از چندین الگوریتم دیگر نیز پشتیبانی می‌نماید. .PP خروجی مکسر شامل یک خط به ازای هر جریان به شکل زیر است: \fIstreamindex\fR,\fIstreamtype\fR,\fIalgo\fR=\fIhash\fR، که در آن \fIstreamindex\fR نمایه جریان نگاشت‌شده، \fIstreamtype\fR یک نویسه تکی نشان‌دهنده نوع جریان، \fIalgo\fR یک رشته کوتاه نشان‌دهنده تابع هش استفاده‌شده، و \fIhash\fR یک عدد هگزادسیمال نشان‌دهنده هش محاسبه‌شده است. .IP "\fBhash\fR \fIalgorithm\fR" 4 .IX Item "hash algorithm" استفاده از تابع هش رمزنگاری مشخص‌شده توسط رشته \fIalgorithm\fR. مقادیر پشتیبانی‌شده عبارتند از \f(CW\*(C`MD5\*(C'\fR، \f(CW\*(C`murmur3\*(C'\fR، \f(CW\*(C`RIPEMD128\*(C'\fR، \f(CW\*(C`RIPEMD160\*(C'\fR، \f(CW\*(C`RIPEMD256\*(C'\fR، \f(CW\*(C`RIPEMD320\*(C'\fR، \f(CW\*(C`SHA160\*(C'\fR، \f(CW\*(C`SHA224\*(C'\fR، \f(CW\*(C`SHA256\*(C'\fR (پیش‌فرض)، \f(CW\*(C`SHA512/224\*(C'\fR، \f(CW\*(C`SHA512/256\*(C'\fR، \f(CW\*(C`SHA384\*(C'\fR، \f(CW\*(C`SHA512\*(C'\fR، \f(CW\*(C`CRC32\*(C'\fR و \f(CW\*(C`adler32\*(C'\fR. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .PP برای محاسبه هش SHA\-256 ورودی تبدیل‌شده به صدا و ویدیوی خام، و ذخیره آن در پرونده \fIout.sha256\fR: .PP .Vb 1 \& ffmpeg \-i INPUT \-f streamhash out.sha256 .Ve .PP برای چاپ هش MD5 در خروجی استاندارد، از دستور زیر استفاده کنید: .PP .Vb 1 \& ffmpeg \-i INPUT \-f streamhash \-hash md5 \- .Ve .PP همچنین به مکسرهای \fBhash\fR و \fBframehash\fR مراجعه کنید. .SS tee .IX Subsection "tee" مکسر tee می‌تواند برای نوشتن داده‌های یکسان در چندین خروجی، مانند پرونده‌ها یا جریان‌ها، استفاده شود. برای نمونه می‌توان از آن برای پخش جریانی یک ویدیو بر روی شبکه و ذخیره همزمان آن روی دیسک استفاده کرد. .PP این مکسر با مشخص کردن چندین خروجی در ابزار خط فرمان \fBffmpeg\fR تفاوت دارد. با مکسر tee، داده‌های صوتی و ویدیویی فقط یک بار کدگذاری می‌شوند. با خروجی‌های چندگانه مرسوم، چندین عملیات کدگذاری به صورت موازی آغاز می‌شود، که می‌تواند فرآیندی بسیار پرهزینه باشد. مکسر tee در هنگام استفاده مستقیم از API کتابخانه libavformat کاربردی ندارد، زیرا در آن حالت می‌توان بسته‌های یکسان را مستقیماً به چندین مکسر تزریق کرد. .PP از آنجا که مکسر tee نمایانگر هیچ فرمت خروجی خاصی نیست، ffmpeg نمی‌تواند جریان‌های خروجی را به طور خودکار انتخاب کند. بنابراین تمامی جریان‌های مورد نظر برای خروجی باید با استفاده از \f(CW\*(C`\-map\*(C'\fR مشخص شوند. مثال‌های زیر را ببینید. .PP برخی اینکودرها ممکن است بسته به فرمت خروجی به گزینه‌های متفاوتی نیاز داشته باشند؛ تشخیص خودکار این موضوع با مکسر tee کار نمی‌کند، بنابراین باید به طور صریح مشخص شوند. نمونه اصلی آن فلگ \fBglobal_header\fR است. .PP خروجی‌های فرعی (اسلیو) در نام پرونده داده‌شده به مکسر مشخص می‌شوند و با \*(Aq|\*(Aq از هم جدا می‌گردند. اگر نام هر یک از خروجی‌های فرعی حاوی جداکننده \*(Aq|\*(Aq، فاصله‌های ابتدا یا انتها یا هر نویسه خاص دیگری باشد، باید گریز داده شوند (به \fBبخش "Quoting and escaping" در راهنمای ffmpeg\-utils\|(1)\fR مراجعه کنید). .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBuse_fifo\fR \fIbool\fR" 4 .IX Item "use_fifo bool" اگر روی 1 تنظیم شود، خروجی‌های فرعی در ریسه‌های (threads) جداگانه با استفاده از مکسر \fBfifo\fR پردازش خواهند شد. این امکان می‌دهد سرعت/تأخیر/قابلیت اطمینان متفاوت خروجی‌ها جبران شود و بازیابی شفاف پیاده‌سازی گردد. به طور پیش‌فرض این ویژگی خاموش است. .IP \fBfifo_options\fR 4 .IX Item "fifo_options" گزینه‌هایی که باید به نمونه‌های شبه‌مکسر fifo ارسال شوند. به \fBfifo\fR مراجعه کنید. .PP گزینه‌های مکسر را می‌توان برای هر خروجی فرعی با پیشوند قرار دادن آن‌ها به صورت فهرستی از جفت‌های \fIkey\fR=\fIvalue\fR جداشده با \*(Aq:\*(Aq، درون براکت‌ها مشخص کرد. اگر مقادیر گزینه‌ها شامل نویسه خاص یا جداکننده \*(Aq:\*(Aq باشند، باید گریز داده شوند؛ توجه داشته باشید که این یک گریز سطح دوم است. .PP گزینه‌های ویژه زیر نیز شناخته می‌شوند: .IP \fBf\fR 4 .IX Item "f" مشخص کردن نام فرمت. اگر نتوان آن را از URL خروجی حدس زد، الزامی است. .IP \fBbsfs[/\fR\fIspec\fR\fB]\fR 4 .IX Item "bsfs[/spec]" مشخص کردن فهرستی از فیلترهای جریان بیت برای اعمال بر روی خروجی مشخص‌شده. .Sp می‌توان با الصاق یک مشخص‌کننده جریان جداشده با \f(CW\*(C`/\*(C'\fR به گزینه، تعیین کرد که یک فیلتر جریان بیت معین بر روی کدام جریان‌ها اعمال شود. \fIspec\fR باید یک مشخص‌کننده جریان باشد (به \fBمشخص‌کننده‌های جریان فرمت\fR مراجعه کنید). .Sp اگر مشخص‌کننده جریان تعیین نشود، فیلترهای جریان بیت بر روی تمامی جریان‌های خروجی اعمال خواهند شد. این امر در صورتی که خروجی شامل جریان‌هایی باشد که فیلتر جریان بیت بر آن‌ها قابل اعمال نیست (مثلاً اعمال \f(CW\*(C`h264_mp4toannexb\*(C'\fR بر روی خروجی حاوی یک جریان صوتی)، باعث شکست عملیات خروجی خواهد شد. .Sp گزینه‌های یک فیلتر جریان بیت باید به فرم \f(CW\*(C`opt=value\*(C'\fR مشخص شوند. .Sp چندین فیلتر جریان بیت را می‌توان با جدا کردن توسط "," مشخص نمود. .IP "\fBuse_fifo\fR \fIbool\fR" 4 .IX Item "use_fifo bool" امکان بازنویسی گزینه use_fifo مکسر tee برای هر مکسر فرعی به صورت جداگانه. .IP \fBfifo_options\fR 4 .IX Item "fifo_options" امکان بازنویسی گزینه fifo_options مکسر tee برای هر مکسر فرعی به صورت جداگانه. به \fBfifo\fR مراجعه کنید. .IP \fBselect\fR 4 .IX Item "select" انتخاب جریان‌هایی که باید به خروجی فرعی نگاشت شوند، که توسط یک مشخص‌کننده جریان تعیین می‌شود. اگر مشخص نشود، پیش‌فرض تمام جریان‌های نگاشت‌شده است. این امر در صورتی که فرمت خروجی تمام جریان‌های نگاشت‌شده را نپذیرد، باعث شکست عملیات خروجی خواهد شد. .Sp می‌توانید از چندین مشخص‌کننده جریان جداشده با کاما (\f(CW\*(C`,\*(C'\fR) استفاده کنید، مثلاً: \f(CW\*(C`a:0,v\*(C'\fR .IP \fBonfail\fR 4 .IX Item "onfail" مشخص کردن رفتار در صورت بروز خطای خروجی. این گزینه می‌تواند روی \f(CW\*(C`abort\*(C'\fR (پیش‌فرض) یا \f(CW\*(C`ignore\*(C'\fR تنظیم شود. مقدار \f(CW\*(C`abort\*(C'\fR در صورت بروز خرابی در این خروجی فرعی، باعث شکست کل فرآیند می‌شود. مقدار \f(CW\*(C`ignore\*(C'\fR خرابی در این خروجی را نادیده می‌گیرد، بنابراین سایر خروجی‌ها بدون تأثیرپذیری ادامه خواهند یافت. .PP \fIمثال‌ها\fR .IX Subsection "Examples" .IP \(bu 4 اینکود کردن یک ورودی و ذخیره همزمان آن در یک پرونده WebM و پخش جریانی آن به صورت MPEG\-TS روی UDP: .Sp .Vb 2 \& ffmpeg \-i ... \-c:v libx264 \-c:a mp2 \-f tee \-map 0:v \-map 0:a \& "archive\-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/" .Ve .IP \(bu 4 مشابه بالا، اما ادامه پخش جریانی حتی در صورتی که خروجی به پرونده محلی با خطا مواجه شود (برای نمونه پر شدن دیسک محلی): .Sp .Vb 2 \& ffmpeg \-i ... \-c:v libx264 \-c:a mp2 \-f tee \-map 0:v \-map 0:a \& "[onfail=ignore]archive\-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/" .Ve .IP \(bu 4 استفاده از \fBffmpeg\fR برای کدگذاری ورودی، و ارسال خروجی به سه مقصد مختلف. فیلتر جریان بیت \f(CW\*(C`dump_extra\*(C'\fR برای افزودن اطلاعات extradata به تمامی بسته‌های فریم کلیدی ویدیوی خروجی، طبق نیاز فرمت MPEG\-TS استفاده می‌شود. گزینه select بر روی \fIout.aac\fR اعمال شده است تا تنها شامل بسته‌های صوتی باشد. .Sp .Vb 2 \& ffmpeg \-i ... \-map 0 \-flags +global_header \-c:v libx264 \-c:a aac \& \-f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac" .Ve .IP \(bu 4 مشابه بالا، اما فقط انتخاب جریان \f(CW\*(C`a:1\*(C'\fR برای خروجی صوتی. توجه داشته باشید که گریز سطح دوم باید انجام شود، زیرا ":" نویسه خاصی است که برای جداسازی گزینه‌ها استفاده می‌شود. .Sp .Vb 2 \& ffmpeg \-i ... \-map 0 \-flags +global_header \-c:v libx264 \-c:a aac \& \-f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\e\*(Aqa:1\e\*(Aq]out.aac" .Ve .SS wav .IX Subsection "wav" مکسر صوتی RIFF Wave. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .IP "\fBrf64\fR \fImode\fR" 4 .IX Item "rf64 mode" انتخاب اینکه آیا از فرمت پرونده RF64 به جای RIFF استفاده شود یا خیر. فرمت RF64 امکان ایجاد پرونده‌های بزرگتر از ۴ گیگابایت را فراهم می‌سازد، اما پشتیبانی از RF64 به اندازه RIFF فراگیر نیست. .Sp حالت‌های زیر شناخته می‌شوند: .RS 4 .IP \fBauto\fR 4 .IX Item "auto" شروع نوشتن یک پرونده استاندارد RIFF برای حفظ سازگاری با نرم‌افزارهای ناآشنا به RF64، اما در صورتی که حجم پرونده خروجی از ۴ گیگابایت بیشتر شود، به RF64 تغییر وضعیت می‌دهد. مقدار کمی فضای اضافی در هدر با استفاده از یک چانک \f(CW\*(C`JUNK\*(C'\fR رزرو می‌کند، که باید توسط تمامی خواننده‌های سازگار با RIFF نادیده گرفته شود، اما برخی از خواننده‌های بسیار ساده WAV ممکن است با این کار دچار سردرگمی شوند. .IP \fBalways\fR 4 .IX Item "always" همیشه از فرمت RF64 بدون توجه به اندازه پرونده استفاده می‌کند. پرونده خروجی تنها توسط نرم‌افزارهای سازگار با RF64 قابل خواندن خواهد بود و دیگر یک پرونده استاندارد RIFF WAVE محسوب نمی‌شود. .IP \fBnever\fR 4 .IX Item "never" همیشه از RIFF ساده استفاده می‌کند، هرگز از RF64 استفاده نمی‌کند. این حالت بیشترین سازگاری را با نرم‌افزارهای قدیمی دارد، اما اگر اندازه پرونده خروجی از ۴ گیگابایت فراتر رود، فیلد اندازه ۳۲ بیتی در چانک \f(CW\*(C`data\*(C'\fR دیگر قادر نخواهد بود اندازه را به درستی نمایش دهد، و بیشتر نرم‌افزارهای صوتی قادر به خواندن بخشی از داده‌ها یا تمام آن نخواهند بود. (گزینه \f(CW\*(C`ignore_length\*(C'\fR در دیمکسر \fBwav\fR می‌تواند برای بازیابی چنین پرونده‌ای استفاده شود.) این حالت پیش‌فرض است. .RE .RS 4 .RE .IP "\fBwrite_bext\fR \fIbool\fR" 4 .IX Item "write_bext bool" افزودن چانک \f(CW\*(C`BEXT\*(C'\fR از فرمت Broadcast Wave حاوی متاداده صوتی گسترش‌یافته در صورت فعال بودن. پیش‌فرض false است. .IP "\fBwrite_peak\fR \fImode\fR" 4 .IX Item "write_peak mode" افزودن چانک پوش اوج (Peak Envelope، استاندارد EBU Tech 3285 Supplement 3) در صورت فعال بودن. پیش‌فرض off است. .RS 4 .IP \fBoff\fR 4 .IX Item "off" چانک پوش اوج اضافه نشود. .IP \fBon\fR 4 .IX Item "on" افزودن چانک پوش اوج، با محاسبه مقادیر اوج بر اساس گزینه‌های \f(CW\*(C`peak_block_size\*(C'\fR، \f(CW\*(C`peak_format\*(C'\fR و \f(CW\*(C`peak_ppv\*(C'\fR. .IP \fBonly\fR 4 .IX Item "only" مانند \f(CW\*(C`on\*(C'\fR، اما از نوشتن داده‌های صوتی واقعی صرف‌نظر می‌کند (هیچ چانک \f(CW\*(C`data\*(C'\fR در پرونده نوشته نخواهد شد؛ تنها چانک‌های پوش اوج و سایر متاداده‌ها نوشته می‌شوند). .RE .RS 4 .RE .IP "\fBpeak_block_size\fR \fIint\fR" 4 .IX Item "peak_block_size int" تعداد نمونه‌های صوتی استفاده‌شده برای تولید هر فریم اوج، تا ۶۵۵۳۶. پیش‌فرض ۲۵۶ است. .IP "\fBpeak_format\fR \fIformat\fR" 4 .IX Item "peak_format format" فرمت داده‌های پوش اوج (1: uint8، 2: uint16). پیش‌فرض 2 (uint16) است. .IP "\fBpeak_ppv\fR \fIint\fR" 4 .IX Item "peak_ppv int" تعداد نقاط اوج به ازای هر مقدار اوج (1 یا 2). پیش‌فرض 2 است. .SS webm_chunk .IX Subsection "webm_chunk" مکسر قطعات پخش زنده WebM (WebM Live Chunk). .PP این مکسر هدرها و قطعات WebM را به صورت پرونده‌های جداگانه می‌نویسد که می‌توانند توسط کلاینت‌های پشتیبانی‌کننده از جریان‌های زنده WebM از طریق DASH استفاده شوند. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP این مکسر از گزینه‌های زیر پشتیبانی می‌کند: .IP \fBchunk_start_index\fR 4 .IX Item "chunk_start_index" نمایه اولین قطعه (پیش‌فرض 0). .IP \fBheader\fR 4 .IX Item "header" نام پرونده هدر که داده‌های مقداردهی اولیه در آن نوشته می‌شود. .IP \fBaudio_chunk_duration\fR 4 .IX Item "audio_chunk_duration" مدت زمان هر قطعه صوتی به میلی‌ثانیه (پیش‌فرض 5000). .PP \fIمثال\fR .IX Subsection "Example" .PP .Vb 10 \& ffmpeg \-f v4l2 \-i /dev/video0 \e \& \-f alsa \-i hw:0 \e \& \-map 0:0 \e \& \-c:v libvpx\-vp9 \e \& \-s 640x360 \-keyint_min 30 \-g 30 \e \& \-f webm_chunk \e \& \-header webm_live_video_360.hdr \e \& \-chunk_start_index 1 \e \& webm_live_video_360_%d.chk \e \& \-map 1:0 \e \& \-c:a libvorbis \e \& \-b:a 128k \e \& \-f webm_chunk \e \& \-header webm_live_audio_128.hdr \e \& \-chunk_start_index 1 \e \& \-audio_chunk_duration 1000 \e \& webm_live_audio_128_%d.chk .Ve .SS webm_dash_manifest .IX Subsection "webm_dash_manifest" مکسر مانیفست WebM DASH. .PP این مکسر مشخصات مانیفست WebM DASH را برای تولید XML مانیفست DASH پیاده‌سازی می‌کند. همچنین از تولید مانیفست برای جریان‌های زنده DASH پشتیبانی می‌نماید. .PP برای اطلاعات بیشتر ببینید: .IP \(bu 4 مشخصات فنی WebM DASH: <\fBhttps://sites.google.com/a/webmproject.org/wiki/adaptive\-streaming/webm\-dash\-specification\fR> .IP \(bu 4 مشخصات فنی ISO DASH: <\fBhttp://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009\-1_2014.zip\fR> .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP این مکسر از گزینه‌های زیر پشتیبانی می‌کند: .IP \fBadaptation_sets\fR 4 .IX Item "adaptation_sets" این گزینه دارای سینتکس زیر است: "id=x,streams=a,b,c id=y,streams=d,e" که در آن x و y شناسه‌های منحصربه‌فرد مجموعه‌های انطباق و a، b، c، d و e نمایه‌های جریان‌های صوتی و ویدیویی متناظر هستند. با استفاده از این گزینه می‌توان هر تعداد مجموعه انطباق را اضافه کرد. .IP \fBlive\fR 4 .IX Item "live" تنظیم این مقدار روی 1 برای ایجاد مانیفست DASH پخش زنده. پیش‌فرض: 0. .IP \fBchunk_start_index\fR 4 .IX Item "chunk_start_index" نمایه شروع اولین قطعه. این مقدار در ویژگی \fBstartNumber\fR عنصر \fBSegmentTemplate\fR در مانیفست قرار خواهد گرفت. پیش‌فرض: 0. .IP \fBchunk_duration_ms\fR 4 .IX Item "chunk_duration_ms" مدت زمان هر قطعه به میلی‌ثانیه. این مقدار در ویژگی \fBduration\fR عنصر \fBSegmentTemplate\fR در مانیفست قرار خواهد گرفت. پیش‌فرض: 1000. .IP \fButc_timing_url\fR 4 .IX Item "utc_timing_url" نشانی وب (URL) صفحه‌ای که برچسب زمانی UTC را در قالب ISO برمی‌گرداند. این مقدار در ویژگی \fBvalue\fR عنصر \fBUTCTiming\fR در مانیفست قرار خواهد گرفت. پیش‌فرض: None. .IP \fBtime_shift_buffer_depth\fR 4 .IX Item "time_shift_buffer_depth" کوچک‌ترین بافر تغییر زمانی (بر حسب ثانیه) که در آن تضمین می‌شود هر نمایشی در دسترس است. این مقدار در ویژگی \fBtimeShiftBufferDepth\fR عنصر \fBMPD\fR قرار می‌گیرد. پیش‌فرض: 60. .IP \fBminimum_update_period\fR 4 .IX Item "minimum_update_period" حداقل دوره به‌روزرسانی (بر حسب ثانیه) مانیفست. این مقدار در ویژگی \fBminimumUpdatePeriod\fR عنصر \fBMPD\fR قرار خواهد گرفت. پیش‌فرض: 0. .PP \fIمثال\fR .IX Subsection "Example" .PP .Vb 9 \& ffmpeg \-f webm_dash_manifest \-i video1.webm \e \& \-f webm_dash_manifest \-i video2.webm \e \& \-f webm_dash_manifest \-i audio1.webm \e \& \-f webm_dash_manifest \-i audio2.webm \e \& \-map 0 \-map 1 \-map 2 \-map 3 \e \& \-c copy \e \& \-f webm_dash_manifest \e \& \-adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \e \& manifest.xml .Ve .SS whip .IX Subsection "whip" مکسر WebRTC (ارتباطات بلادرنگ) که از پخش جریانی با تأخیر کمتر از یک ثانیه بر اساس مشخصات فنی WHIP (پروتکل دریافت WebRTC\-HTTP) پشتیبانی می‌کند. .PP این یک قابلیت آزمایشی است. .PP این مکسر از HTTP به عنوان یک پروتکل سیگنالینگ برای تبادل قابلیت‌های SDP و کاندیداهای ICE lite استفاده می‌کند. سپس، از درخواست‌ها و پاسخ‌های اتصال STUN برای برقراری یک نشست روی UDP بهره می‌گیرد. متعاقباً، دست‌دهی DTLS را برای تبادل کلیدهای رمزگذاری SRTP آغاز می‌نماید. در نهایت، فریم‌های ویدیویی و صوتی را به بسته‌های RTP تقسیم کرده و با استفاده از SRTP آن‌ها را رمزگذاری می‌کند. .PP اطمینان حاصل کنید که از H.264 بدون فریم‌های B و از کدک صوتی Opus استفاده می‌کنید. برای مثال، برای تبدیل یک پرونده ورودی با \fBffmpeg\fR به WebRTC: .PP .Vb 3 \& ffmpeg \-re \-i input.mp4 \-acodec libopus \-ar 48000 \-ac 2 \e \& \-vcodec libx264 \-profile:v baseline \-tune zerolatency \-threads 1 \-bf 0 \e \& \-f whip "http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream" .Ve .PP برای این مثال، ما از گزینه‌های تأخیر کم استفاده کرده‌ایم، که منجر به یک تأخیر سرتاسری حدوداً ۱۵۰ میلی‌ثانیه‌ای می‌شود. .PP \fIگزینه‌ها\fR .IX Subsection "Options" .PP این مکسر از گزینه‌های زیر پشتیبانی می‌کند: .IP "\fBhandshake_timeout\fR \fIinteger\fR" 4 .IX Item "handshake_timeout integer" تنظیم مهلت زمانی (timeout) بر حسب میلی‌ثانیه برای دست‌دهی ICE و DTLS. مقدار پیش‌فرض 5000 است. .IP "\fBtimeout\fR \fIinteger\fR" 4 .IX Item "timeout integer" تنظیم مهلت زمانی بر حسب ثانیه برای عملیات سوکت I/O. فقط برای خروجی HTTP قابل اعمال است. مقدار پیش‌فرض \-1 است. .IP "\fBpkt_size\fR \fIinteger\fR" 4 .IX Item "pkt_size integer" تنظیم حداکثر اندازه بسته‌های RTP ارسالی بر حسب بایت. مقدار پیش‌فرض 1200 است. .IP "\fBts_buffer_size\fR \fIinteger\fR" 4 .IX Item "ts_buffer_size integer" تنظیم اندازه بافر پروتکل زیرین بر حسب بایت. مقدار پیش‌فرض \-1 (خودکار) است. پروتکل UDP به طور خودکار مقدار مناسبی را انتخاب می‌کند. .IP "\fBwhip_flags\fR \fIflags\fR" 4 .IX Item "whip_flags flags" مقادیر ممکن: .RS 4 .IP \fBdtls_active\fR 4 .IX Item "dtls_active" مکسر تلاش خواهد کرد نقش فعال DTLS را تنظیم کرده و اولین Client Hello را ارسال کند. .RE .RS 4 .RE .IP "\fBrtp_history\fR \fIinteger\fR" 4 .IX Item "rtp_history integer" تنظیم تعداد موارد تاریخچه RTP برای ذخیره‌سازی. مقدار پیش‌فرض 512 است. .IP "\fBauthorization\fR \fIstring\fR" 4 .IX Item "authorization string" توکن اختیاری حامل (Bearer token) برای احراز هویت WHIP. .IP "\fBcert_file\fR \fIstring\fR" 4 .IX Item "cert_file string" مسیر اختیاری پرونده گواهی برای DTLS. .IP "\fBkey_file\fR \fIstring\fR" 4 .IX Item "key_file string" مسیر اختیاری پرونده کلید خصوصی برای DTLS. .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=