gpac(1) GPAC gpac(1)

gpac - مدیر نشست فیلتر خط فرمان GPAC

gpac [options]FILTER[LINK]FILTER[...]

این صفحه تمام فیلترهایی را که معمولاً در GPAC وجود دارند، توصیف می‌کند.

برای بررسی راهنمای فیلتری که در اینجا فهرست نشده است، از gpac -h myfilter استفاده کنید.

شرح: بازرس بسته (Packet inspector)

فیلتر inspect می‌تواند برای استخراج (dump) PID و بسته‌ها استفاده شود. همچنین می‌تواند برای بررسی بخش‌هایی از بار مفید (payload) بسته‌ها به کار رود.

گزینه‌های پیش‌فرض تنها تغییرات PID را بازرسی می‌کنند.
اگر .I full تنظیم نشده باشد، .I mode به frame اجبار می‌شود و مشخصه‌های PID به صورت خوانا برای انسان، یک PID در هر خط قالب‌بندی می‌شوند.
در غیر این صورت، تمام مشخصه‌ها استخراج می‌شوند.
نکته: تعیین .I xml، .I analyze، .I fmt یا استفاده از -for-test مقدار .I full را به true اجبار خواهد کرد.

بازرس بسته می‌تواند برای استخراج مشخصه‌های معینی از بسته‌ها با استفاده از .I fmt پیکربندی شود.
هنگامی که این گزینه ارائه نشده باشد، تمام مشخصه‌ها استخراج می‌شوند. در غیر این صورت، تنها مشخصه‌های تعیین‌شده با $TOKEN$ چاپ می‌شوند. می‌توانید از '$'، '@' یا '%' به عنوان جداکننده TOKEN استفاده کنید. مقدار TOKEN می‌تواند یکی از موارد زیر باشد:
* pn: شماره بسته (فریم در حالت framed)
* dts: برچسب زمانی رمزگشایی در مقیاس زمانی جریان، در صورت عدم دسترسی N/A
* ddts: اختلاف بین برچسب زمانی رمزگشایی بسته‌های فعلی و قبلی در مقیاس زمانی جریان، در صورت عدم دسترسی N/A
* cts: برچسب زمانی ترکیب در مقیاس زمانی جریان، در صورت عدم دسترسی N/A
* dcts: اختلاف بین برچسب زمانی ترکیب بسته‌های فعلی و قبلی در مقیاس زمانی جریان، در صورت عدم دسترسی N/A
* ctso: اختلاف بین برچسب زمانی ترکیب و برچسب زمانی رمزگشایی در مقیاس زمانی جریان، در صورت عدم دسترسی N/A
* tmcd: کد زمان به صورت ارائه‌شده در SEI، در صورت عدم دسترسی N/A (نیازمند reframer)
* dur: مدت‌زمان در مقیاس زمانی جریان
* frame: وضعیت فریم‌بندی
* interface: واحد دسترسی (AU) کامل، شیء واسط (بدون اطلاعات اندازه). معمولاً یک بافت GL
* frame_full: واحد دسترسی (AU) کامل
* frame_start: آغاز فریم
* frame_end: پایان فریم
* frame_cont: ادامه فریم (نه آغاز و نه پایان)
* sap یا rap: نوع SAP فریم
* ilace: پرچم درهم‌بافی (0: progressive، 1: top field، 2: bottom field)
* corr: پرچم بسته معیوب
* seek: پرچم جستجو (seek)
* bo: آفست بایتی در منبع، در صورت عدم دسترسی N/A
* roll: اطلاعات roll
* crypt: پرچم رمزگذاری (crypt)
* vers: شماره نسخه carousel
* size: اندازه بسته
* csize: اندازه کل بسته‌های دریافت شده تاکنون
* crc: مقدار ۳۲ بیتی CRC بسته
* lf یا n: درج خط جدید
* t: درج تب
* data: استخراج هگزادسیمال بسته (خروجی بسیار بزرگ!) یا به صورت رشته در صورت معتبر بودن UTF-8
* lp: پرچم تصویر پیشرو (leading picture)
* depo: پرچم وابستگی به بسته‌ای دیگر
* depf: پرچم مورد وابستگی قرار داشتن توسط بسته‌ای دیگر
* red: پرچم کدگذاری اضافی (redundant coding)
* start: زمان ترکیب بسته در قالب HH:MM:SS.ms
* startc: زمان ترکیب بسته در قالب HH:MM:SS,ms
* end: زمان پایان بسته در قالب HH:MM:SS.ms
* endc: زمان پایان بسته در قالب HH:MM:SS,ms
* ck: نوع ساعت مورداستفاده برای ناپیوستگی‌های PCR
* pcr: آخرین مقدار PCR در MPEG-2 TS، در صورت عدم دسترسی n/a
* pcrd: اختلاف بین آخرین PCR و زمان رمزگشایی، در صورت عدم وجود PCR برابر n/a
* pcrc: اختلاف بین آخرین PCR و زمان ترکیب، در صورت عدم وجود PCR برابر n/a
* P4CC: شناسه 4CC مشخصه بسته
* PropName: نام مشخصه بسته
* pid.P4CC: شناسه 4CC مشخصه PID
* pid.PropName: نام مشخصه PID
* fn: نام فیلتر

مثال
fmt="PID $pid.ID$ packet $pn$ DTS $dts$ CTS $cts$ $lf$"

این دستور شماره بسته، cts و dts را به این صورت استخراج می‌کند: PID 1 packet 10 DTS 100 CTS 108 \n

یک کلیدواژه ناشناخته یا مشخصه ناموجود به یک رشته خالی تبدیل می‌شود.

نکته: هنگام استخراج در حالت درهم‌تنیده (interleaved)، هیچ تضمینی وجود ندارد که بسته‌ها با ترتیب توالی اصلی خود استخراج شوند؛ زیرا بازرس در هر بار یک بسته را از هر PID واکشی می‌کند.

بافرسازی (Buffering) را می‌توان برای بررسی رفتار زنجیره فیلتر ورودی فعال کرد؛ به عنوان مثال، بررسی منطق تطبیق‌پذیری HAS.
گزینه‌های مختلف بافرسازی زمان مصرف بسته‌ها را کنترل می‌کنند. رویدادهای بافرسازی با استفاده از media@info برای تغییرات وضعیت و media@debug برای رویدادهای پر شدن رسانه ثبت می‌شوند.
گزینه .I speed تنها برای پیکربندی زنجیره فیلتر به کار می‌رود، اما هنگام مصرف بسته‌ها توسط فیلتر نادیده گرفته می‌شود.
اگر به مصرف بی‌درنگ (real-time) نیاز باشد، باید یک فیلتر reframer پیش از فیلتر inspect راه‌اندازی شود.
مثال
gpac -i SRC reframer:rt=on inspect:buffer=10000:rbuffer=1000:mbuffer=30000:speed=2

این دستور نشست را با سرعت 2x پخش خواهد کرد، از حداکثر ۳۰ ثانیه بافرسازی استفاده می‌کند، بسته‌ها را پس از آماده شدن ۱۰ ثانیه از رسانه به مصرف می‌رساند و در صورت وجود کمتر از ۱ ثانیه از رسانه، بافرسازی مجدد انجام می‌دهد.

log (str، پیش‌فرض: stdout، شمارشی: _any|stderr|stdout|GLOG|TL|null): تنظیم نام فایل گزارش probe
* _any: مسیر و نام فایل مقصد
* stderr: تخلیه به stderr
* stdout: تخلیه به stdout
* GLOG: استفاده از لاگ‌های GPAC در سطح app@info
* TL: استفاده از ابزار لاگ GPAC به نام TL در سطح info
* null: حالت بی‌صدا (silent)

mode (enum، پیش‌فرض: pck): حالت تخلیه (dump)
* pck: تخلیه کامل بسته
* blk: تخلیه بسته‌ها پیش از بازسازی
* frame: اجبار به استفاده از reframer
* raw: تخلیه بسته‌های منبع بدون تفکیک‌سازی (demultiplexing)

interleave (bool، پیش‌فرض: true): تخلیه بسته‌ها به محض دریافت در هر PID. در صورت false بودن، گزارش‌ها برای هر PID در انتهای نشست ثبت می‌شوند
deep (bool، پیش‌فرض: false، قابل به‌روزرسانی): تخلیه بسته‌ها همراه با تغییر وضعیت PID؛ در صورت تنظیم .I fmt به طور ضمنی فعال می‌شود
props (bool، پیش‌فرض: true، قابل به‌روزرسانی): تخلیه ویژگی‌های بسته؛ در صورت تنظیم .I fmt نادیده گرفته می‌شود
dump_data (bool، پیش‌فرض: false، قابل به‌روزرسانی): فعال‌سازی تخلیه کامل داده‌ها (خروجی بسیار حجیم)؛ در صورت تنظیم .I fmt نادیده گرفته می‌شود
fmt (str، قابل به‌روزرسانی): تنظیم قالب تخلیه بسته
hdr (bool، پیش‌فرض: true): چاپ سرآیند متناظر با رشته fmt بدون '$' یا "pid"
allp (bool، پیش‌فرض: false): تحلیل در کل مدت زمان، به جای متوقف شدن پس از یافتن تمامی PIDها
info (bool، پیش‌فرض: false، قابل به‌روزرسانی): پایش تغییرات اطلاعات PID
full (bool، پیش‌فرض: false، قابل به‌روزرسانی): تخلیه کامل ویژگی‌های PID (در صورت استفاده از XML همواره فعال است)
pcr (bool، پیش‌فرض: false، قابل به‌روزرسانی): تخلیه اطلاعات PCR در M2TS
speed (dbl، پیش‌فرض: 1.0): تنظیم سرعت دستور پخش. اگر منفی باشد و start برابر با 0 باشد، مقدار start روی -1 تنظیم می‌شود
start (dbl، پیش‌فرض: 0.0): تنظیم آفست آغاز پخش. مقدار منفی به معنای درصدی از مدت زمان رسانه است که در آن -1 برابر با کل مدت زمان خواهد بود
dur (frac، پیش‌فرض: 0/0): تنظیم مدت زمان بازرسی (inspect)
analyze (enum، پیش‌فرض: off، قابل به‌روزرسانی): تحلیل محتوای نمونه (NALU، OBU)، مشابه گزینه -bsdbg در فیلترهای reframer
* off: بدون تحلیل
* on: تحلیل ساده
* bs: ثبت نحو جریان بیتی (تمامی عناصر خوانده‌شده از bitstream)
* full: ثبت نحو جریان بیتی و اندازه‌های بیت که پس از مقدار فیلد با (N) مشخص می‌شوند، به جز فیلدهای تک‌بیتی (صرف‌نظر می‌شوند)

xml (bool، پیش‌فرض: false، قابل به‌روزرسانی): استفاده از قالب‌بندی xml (در صورت تنظیم (-analyze]() به طور ضمنی فعال می‌شود) و غیرفعال‌سازی .I fmt
crc (bool، پیش‌فرض: false، قابل به‌روزرسانی): تخلیه crc نمونه‌ها یا زیرنمونه‌ها (NALU یا OBU) هنگام تحلیل
fftmcd (bool، پیش‌فرض: false، قابل به‌روزرسانی): در نظر گرفتن کد زمانی با استفاده از نشانه‌گذاری سازگار با ffmpeg به جای سیگنال‌دهی منطبق با QT
dtype (bool، پیش‌فرض: false، قابل به‌روزرسانی): تخلیه نوع ویژگی
buffer (uint، پیش‌فرض: 0): تنظیم بافر پخش بر حسب میلی‌ثانیه
mbuffer (uint، پیش‌فرض: 0): تنظیم حداکثر اشغال بافر بر حسب میلی‌ثانیه. اگر کمتر از buffer باشد، از مقدار buffer استفاده می‌شود
rbuffer (uint، پیش‌فرض: 0، قابل به‌روزرسانی): محرک بافرسازی مجدد بر حسب میلی‌ثانیه. اگر 0 یا بیشتر از buffer باشد، بافرسازی مجدد غیرفعال می‌شود
stats (bool، پیش‌فرض: false): محاسبه آمار برای PIDها
timeout (uint، پیش‌فرض: 5000): مهلت زمانی (timeout) بر حسب میلی‌ثانیه هنگام بازرسی ساده در صورتی که هیچ بسته‌ای روی برخی PIDها دریافت نشود
test (enum، پیش‌فرض: no، قابل به‌روزرسانی): نادیده گرفتن مجموعه‌ای پیش‌تعریف‌شده از ویژگی‌ها، برای حالت آزمایشی استفاده می‌شود
* no: هیچ ویژگی نادیده گرفته نمی‌شود
* noprop: تمامی ویژگی‌ها/تغییرات اطلاعات روی PID نادیده گرفته شده و تنها بسته‌ها تخلیه می‌شوند
* network: تخلیه URL/مسیر، وضعیت حافظه پنهان (cache) و ویژگی‌های اندازه فایل نادیده گرفته می‌شوند (برای درهم‌سازی نتایج شبکه استفاده می‌شود)
* netx: مشابه network اما مدت زمان قطعه (track duration) و الگوها (templates) نادیده گرفته می‌شوند (برای درهم‌سازی بارگذاری تدریجی fmp4 استفاده می‌شود)
* encode: مشابه network به همراه نادیده گرفتن پیکربندی رمزگشا (برای درهم‌سازی نتایج رمزگذاری استفاده می‌شود)
* encx: مشابه encode به همراه نادیده گرفتن نرخ‌های بیت، اندازه داده‌های رسانه و موارد مشابه
* nocrc: غیرفعال کردن تخلیه CRC بسته
* nobr: نادیده گرفتن نرخ بیت (bitrate)

شرح: کاوشگر منبع

فیلتر Probe توسط برنامه‌ها (به‌ویژه MP4Box) برای پرس‌وجوی PIDهای چندگانه‌زدایی‌شده (صدا، ویدیو، ...) موجود در یک زنجیره منبع استفاده می‌شود.

این فیلتر تعداد PIDهای ورودی را در فایل مشخص‌شده توسط .I log خروجی می‌دهد.
پرس‌وجوی PIDهای ورودی کاوشگر و اتخاذ تصمیم‌های مناسب بر عهده توسعه‌دهنده برنامه است.

log (str, پیش‌فرض: stdout, Enum: _any|stderr|stdout|GLOG|null): تنظیم نام فایل گزارش probe برای چاپ تعداد جریان‌ها
* _any: مسیر و نام فایل مقصد
* stderr: ارسال به stderr
* stdout: ارسال به stdout
* GLOG: استفاده از گزارش‌های GPAC در سطح app@info
* null: حالت بی‌صدا

شرح: ترکیب‌کننده (Compositor)

ترکیب‌کننده GPAC امکان ترکیب صدا، ویدیو، متن و گرافیک را به صورت زمان‌بندی‌شده فراهم می‌کند.
ترکیب‌کننده در یکی از دو حالت media-client یا فقط فیلتر (filter-only) عمل می‌کند.

در این حالت، ترکیب‌کننده به عنوان یک شبه‌مقصد (pseudo-sink) برای بخش ویدیو عمل کرده و پنجره خروجی اختصاصی خود را ایجاد می‌کند.
فریم‌های ویدیویی در قالب اشاره‌گرهای فریم به PID ویدیوی خروجی ارسال می‌شوند که در صورت استفاده، بعداً نیازمند خوانده‌شدن توسط GPU خواهند بود.
بخش صوتی مانند یک فیلتر معمولی عمل کرده و برای تولید خروجی خود، احتمالاً ورودی‌های صوتی را ترکیب و بازنمونه‌برداری می‌کند.
در این حالت، رویدادهای کاربر مستقیماً توسط فیلتر پردازش می‌شوند.

در این حالت، ترکیب‌کننده به عنوان یک فیلتر معمولی عمل کرده و فریم‌ها را بر اساس صحنه بارگذاری‌شده تولید می‌کند.
این فیلتر خروجی‌های خود را بر اساس فریم‌های ویدیویی ورودی تولید کرده و رویدادهای کاربر ارسال‌شده توسط فیلتر(های) مصرف‌کننده را پردازش خواهد کرد.
در صورت نبود فریم‌های ویدیویی ورودی (مثلاً BIFS / SVG / VRML خالص)، فیلتر فریم‌ها را بر اساس .I fps با نرخ فریم ثابت یا متغیر تولید خواهد کرد.
تولید فریم‌ها به محض پایان یافتن تمام جریان‌های ورودی متوقف خواهد شد، مگر اینکه توسط .I dur افزایش یا کاهش یافته باشد.
در صورت بارگذاری جریان‌های صوتی، یک PID خروجی صوتی ایجاد می‌شود.

قالب پیش‌فرض پیکسل خروجی در حالت فیلتر عبارت است از:
- rgb هنگامی که فیلتر صراحتاً توسط برنامه بارگذاری شده باشد
- rgba هنگامی که فیلتر در حین تفکیک پیوند بارگذاری شود
این مقدار را می‌توان با مقداردهی به گزینه .I opfmt تغییر داد.
اگر .I opfmt کانال آلفا را مشخص کند یا .I bc برابر ۰ نبوده ولی دارای alpha=0 باشد، از ایجاد پس‌زمینه در صحنه پیش‌فرض صرف‌نظر خواهد شد.

در حالت filter-only، نشانی اینترنتی ویژه gpid:// برای تعیین موقعیت PIDها در توصیف صحنه استفاده می‌شود تا امکان طراحی صحنه‌ها مستقل از رسانه مبدا فراهم گردد.
هنگامی که چنین PIDای به یک گره Background2D در BIFS مرتبط شود (هنوز نگاشت SVG وجود ندارد)، ترکیب‌کننده در حالت pass-through عمل می‌کند.
در این حالت، تنها فریم‌های ورودی جدید روی PID عبوری (pass-through) فریم‌های جدید تولید می‌کنند و ساعت صحنه با زمان بسته ورودی مطابقت دارد.
اندازه و قالب پیکسل خروجی برابر با اندازه و قالب پیکسل ورودی تنظیم خواهد شد، مگر اینکه در گزینه‌های فیلتر خلاف آن مشخص شده باشد.

اگر فقط از گرافیک دوبعدی استفاده شود و درایور نمایشگر اجبار نشده باشد، شطرنجی‌سازی دوبعدی (2D rasterizer) در قالب پیکسل خروجی (شامل قالب‌های پیکسل YUV) انجام خواهد شد.
در این حالت، تا زمانی که داده‌های ورودی اجازه دهند، پردازش درجا (شطرنجی‌سازی روی داده‌های فریم ورودی) استفاده خواهد شد.

اگر گرافیک سه‌بعدی استفاده شود یا درایور نمایشگر اجبار شده باشد، OpenGL روی یک سطح بیرون از صفحه (offscreen surface) استفاده خواهد شد و بسته خروجی یک بافت OpenGL خواهد بود.

ترکیب‌کننده هر نوع URL پشتیبانی‌شده توسط GPAC را می‌پذیرد. همچنین طرحواره‌های زیر را برای URLها قبول می‌کند:
* views:// : یک صحنه خودکار-استریو (auto-stereo) از N نما از views://v1::.::vN ایجاد می‌کند
* mosaic:// : یک موزاییک از N نما از mosaic://v1::.::vN ایجاد می‌کند

برای هر دو نحو، vN می‌تواند هر نوع URL پشتیبانی‌شده توسط GPAC باشد.
برای نحو views://، تعداد نماهای رندرشده توسط .I nbviews تعیین می‌شود:
- اگر URL نماهای کمتری نسبت به نماهای رندرشده ارائه دهد، نماها تکرار خواهند شد
- اگر URL نماهای بیشتری نسبت به نماهای رندرشده ارائه دهد، نماهای اضافی نادیده گرفته خواهند شد

ترکیب‌کننده می‌تواند زمانی که گزینه .I src صراحتاً تنظیم شده باشد، مستقل از حالت عملیاتی به عنوان یک فیلتر منبع عمل کند:
gpac compositor:src=source.mp4 vout

ترکیب‌کننده می‌تواند زمانی که URL منبع از یکی از طرحواره‌های پروتکل داخلی ترکیب‌کننده استفاده می‌کند، به عنوان یک فیلتر منبع عمل کند:
gpac -i mosaic://URL1:URL2 vout

aa (enum، پیش‌فرض: all، قابل به‌روزرسانی): تنظیم حالت ضدپلگی (anti-aliasing) برای گرافیک‌های شطرنجی؛ اعمال شدن یا نشدن این تنظیم به ماژول گرافیکی یا کارت گرافیک بستگی دارد
* none: بدون ضدپلگی
* text: ضدپلگی فقط برای متن
* all: ضدپلگی کامل

hlfill (uint، پیش‌فرض: 0x0، قابل به‌روزرسانی): تنظیم رنگ پر کردن برجسته‌سازی (ARGB)
hlline (uint، پیش‌فرض: 0xFF000000، قابل به‌روزرسانی): تنظیم رنگ خط دور برجسته‌سازی (ARGB)
hllinew (flt، پیش‌فرض: 1.0، قابل به‌روزرسانی): تنظیم پهنای خط دور برجسته‌سازی
sz (bool، پیش‌فرض: true، قابل به‌روزرسانی): فعال‌سازی بزرگ‌نمایی مقیاس‌پذیر. هنگامی که بزرگ‌نمایی مقیاس‌پذیر فعال باشد، تغییر اندازه پنجره خروجی موجب محاسبه مجدد همه اشیاء برداری نیز می‌شود. در غیر این صورت تنها بافر نهایی کشیده می‌شود
bc (uint، پیش‌فرض: 0، قابل به‌روزرسانی): رنگ پس‌زمینه پیش‌فرض برای نمایش تصاویر شفاف یا ویدیوهای بدون دستورالعمل‌های ترکیب صحنه
yuvhw (bool، پیش‌فرض: true، قابل به‌روزرسانی): فعال‌سازی سخت‌افزار YUV برای blit دوبعدی
blitp (bool، پیش‌فرض: true، قابل به‌روزرسانی): انتقال جزئی سخت‌افزاری (hardware blit جزئی). در صورت عدم تنظیم، بازترسیم بیشتری را تحمیل می‌کند
softblt (bool، پیش‌فرض: true): فعال‌سازی blit/کشش نرم‌افزاری در 2D. در صورت غیرفعال بودن، همواره از شطرنجی‌ساز گرافیک برداری استفاده خواهد شد
stress (bool، پیش‌فرض: false، قابل به‌روزرسانی): فعال‌سازی حالت آزمون فشار (stress) ترکیب‌کننده (بازسازی تمام گرافیک‌های برداری و وضعیت‌های بافت در هر فریم)
fast (bool، پیش‌فرض: false، قابل به‌روزرسانی): فعال‌سازی بهینه‌سازی سرعت - اعمال شدن یا نشدن این تنظیم به ماژول گرافیکی / کارت گرافیک بستگی دارد
bvol (enum، پیش‌فرض: no، قابل به‌روزرسانی): رسم حجم محصورکننده (bounding volume) اشیاء
* no: غیرفعال‌سازی جعبه محصورکننده
* box: رسم یک مستطیل (2D) یا مکعب (3D)
* aabb: رسم درخت جعبه محصورکننده هم‌راستا با محور (3D) یا مستطیل (2D)

textxt (enum، پیش‌فرض: default، قابل به‌روزرسانی): تعیین اینکه آیا متن باید روی یک بافت (texture) رسم و سپس رندر شود یا مستقیماً رندر گردد. استفاده از متن بافت‌دار می‌تواند رندر متن در 3D و نیز محتواهای مشابه متن روی ویدیو را بهبود بخشد
* default: استفاده از بافت‌دهی برای رندر OpenGL، بدون بافت برای شطرنجی‌ساز 2D
* never: هرگز از بافت‌های متنی استفاده نمی‌کند
* always: همواره پیش از رسم، متن را روی بافت رندر می‌کند

out8b (bool، پیش‌فرض: false، قابل به‌روزرسانی): تبدیل ویدیوی ۱۰ بیتی به بافت ۸ بیتی قبل از بارگذاری روی GPU
drop (bool، پیش‌فرض: false، قابل به‌روزرسانی): انداختن فریم‌های با تاخیر هنگام رسم. در صورت عدم تنظیم، فریم‌ها تا زمانی که ناهمگامی ۱ ثانیه یا بیشتر مشاهده نشود، نادیده گرفته نمی‌شوند
sclock (bool، پیش‌فرض: false، قابل به‌روزرسانی): اجبار به همگام‌سازی همه جریان‌ها بر اساس یک ساعت واحد
sgaze (bool، پیش‌فرض: false، قابل به‌روزرسانی): شبیه‌سازی رویدادهای نگاه (gaze) با استفاده از ماوس
ckey (uint، پیش‌فرض: 0، قابل به‌روزرسانی): کلید رنگ (color key) برای استفاده در حالت بدون پنجره (0xFFRRGGBB). در حال حاضر GPAC به دلیل محدودیت‌های موجود در بیشتر تولکیت‌های پنجره‌بندی از blitting آلفای واقعی روی میزکار پشتیبانی نمی‌کند، بنابراین از سازوکار کلیدگذاری رنگی استفاده می‌کند. بخش آلفای کلید در صورت پشتیبانی، برای شفافیت کلی خروجی استفاده می‌شود
timeout (uint، پیش‌فرض: 10000، قابل به‌روزرسانی): زمان انقضا بر حسب میلی‌ثانیه که پس از آن یک منبع از دست رفته تلقی می‌شود (۰ زمان انقضا را غیرفعال می‌کند)
fps (frac، پیش‌فرض: 30/1، قابل به‌روزرسانی): نرخ فریم شبیه‌سازی در هنگام پخش منابع صرفاً انیمیشنی (در صورت وجود ویدیو نادیده گرفته می‌شود)
timescale (uint، پیش‌فرض: 0، قابل به‌روزرسانی): مقیاس زمانی مورد استفاده برای بسته‌های خروجی در صورت عدم وجود PID ویدیوی ورودی. مقدار ۰ به معنای صورت کسر fps است
autofps (bool، پیش‌فرض: true): استفاده از fps ورودی ویدیو برای خروجی، در حالت player نادیده گرفته می‌شود. در صورت نبود ویدیو یا تنظیم نشدن، از .I fps استفاده می‌کند
vfr (bool، پیش‌فرض: false): انتشار فریم‌ها تنها در صورت تشخیص تغییرات. (در حالت پخش‌کننده و زمانی که فیلتر به صورت پویا بارگذاری می‌شود همواره true است)
dur (dbl، پیش‌فرض: 0، قابل به‌روزرسانی): مدت زمان تولید. بیشتر زمانی که هیچ ویدیوی ورودی وجود ندارد استفاده می‌شود. مقادیر منفی به معنای تعداد فریم‌ها، مقادیر مثبت مدت زمان به ثانیه و ۰ به معنای توقف به محض پایان همه جریان‌ها است
fsize (bool، پیش‌فرض: false، قابل به‌روزرسانی): اجبار صحنه به تغییر اندازه به بزرگ‌ترین بیت‌مپ (bitmap) موجود در صورتی که اطلاعات اندازه‌ای در پیکربندی BIFS ارائه نشده باشد
mode2d (enum، پیش‌فرض: defer، قابل به‌روزرسانی): مشخص کردن اینکه آیا باید از رسم فوری (immediate) استفاده شود یا خیر
* immediate: صفحه در هر فریم کاملاً بازترسیم می‌شود (اگر حالت pass-through شناسایی شود همواره روشن است)
* defer: موقعیت اشیاء فریم به فریم دنبال می‌شود و اطلاعات مستطیل‌های تغییریافته (dirty rectangles) جمع‌آوری می‌گردد تا حداقل مقدار ممکن از بافر صفحه بازترسیم شود
* debug: فقط نواحی تغییریافته را رندر می‌کند و سایر نواحی را بازنشانی می‌نماید
اعمال شدن یا نشدن این تنظیم به ماژول گرافیکی و حالت پخش‌کننده بستگی دارد

amc (bool، پیش‌فرض: true): پشتیبانی از صدای چندکاناله؛ در صورت غیرفعال بودن همیشه به استریو ترکیب رو به پایین (down-mix) می‌شود. زمانی مفید است که خروجی چندکاناله به درستی کار نکند
asr (uint، پیش‌فرض: 0): اجبار نرخ نمونه‌برداری خروجی (۰ برای خودکار)
ach (uint، پیش‌فرض: 0): اجبار کانال‌های خروجی (۰ برای خودکار)
alayout (uint، پیش‌فرض: 0): اجبار چینش کانال‌های خروجی (۰ برای خودکار)
afmt (afmt، پیش‌فرض: s16، Enum: none|u8|s16|s16b|s24|s24b|s32|s32b|flt|fltb|dbl|dblb|u8p|s16p|s24p|s32p|fltp|dblp): اجبار قالب کانال خروجی (۰ برای خودکار)

asize (uint، پیش‌فرض: 1024): اندازه بسته خروجی صوتی بر حسب نمونه
abuf (uint، پیش‌فرض: 100): مدت‌زمان بافر خروجی صوتی بر حسب میلی‌ثانیه - رندرکننده صوتی PID خروجی را تا این مقدار پر می‌کند. مقدار بیش از حد کم تأخیر را کاهش می‌دهد اما ممکن است مشکلاتی در پخش بی‌درنگ (real-time) داشته باشد
avol (uint، پیش‌فرض: 100، قابل به‌روزرسانی): بلندی صدا به درصد
apan (uint، پیش‌فرض: 50، قابل به‌روزرسانی): تراز صدای صوتی (pan) به درصد، ۵۰ به معنای بدون تراز است
async (bool، پیش‌فرض: true، قابل به‌روزرسانی): همگام‌سازی مجدد صوت؛ در صورت غیرفعال بودن، داده‌های صوتی هرگز حذف نمی‌شوند اما ممکن است از همگام‌سازی خارج گردند
max_aspeed (dbl، پیش‌فرض: 2.0، قابل به‌روزرسانی): بی‌صدا کردن صوت در صورتی که سرعت پخش از مقدار تعیین‌شده بیشتر باشد
max_vspeed (dbl، پیش‌فرض: 4.0، قابل به‌روزرسانی): جابجایی به رمزگشایی صرفاً فریم‌های I در صورتی که سرعت پخش از مقدار تعیین‌شده بیشتر باشد
buffer (uint، پیش‌فرض: 3000، قابل به‌روزرسانی): بافر پخش بر حسب میلی‌ثانیه (توسط ویژگی BufferLength در PID ورودی بازنویسی می‌شود)
rbuffer (uint، پیش‌فرض: 1000، قابل به‌روزرسانی): راه‌انداز بافر مجدد بر حسب میلی‌ثانیه (توسط ویژگی RebufferLength در PID ورودی بازنویسی می‌شود)
mbuffer (uint، پیش‌فرض: 3000، قابل به‌روزرسانی): حداکثر بافر بر حسب میلی‌ثانیه، باید بیشتر از بافر پخش باشد (توسط ویژگی BufferMaxOccupancy در PID ورودی بازنویسی می‌شود)
ntpsync (uint، پیش‌فرض: 0، قابل به‌روزرسانی): آستانه همگام‌سازی مجدد NTP بر حسب میلی‌ثانیه (فریم‌ها را در صورتی که NTP آن‌ها بیش از آستانه تعیین‌شده بالاتر از NTP محلی باشد حذف می‌کند)، ۰ حذف بر اساس NTP را غیرفعال می‌سازد
nojs (bool، پیش‌فرض: false): غیرفعال‌سازی javascript
noback (bool، پیش‌فرض: false): نادیده گرفتن گره‌های پس‌زمینه و پر کردن درگاه نمایش (viewport) (هنگام ذخیره در PNG مفید است)
ogl (enum، پیش‌فرض: auto، قابل به‌روزرسانی): تعیین حالت رندر 2D
* auto: بر اساس محتوا به طور خودکار بین on، off و hybrid تصمیم می‌گیرد
* off: OpenGL را غیرفعال می‌کند؛ محتوای 3D رندر نخواهد شد
* on: استفاده از OpenGL برای همه گرافیک‌ها؛ این کار شامل موزاییک‌کاری چندضلعی‌ها (polygon tesselation) خواهد بود و گرافیک‌های 2D به زیبایی حالت 2D به نظر نخواهند رسید
* hybrid: ترکیب‌کننده، رسم نرم‌افزاری گرافیک‌های 2D بدون بافت را انجام می‌دهد (کیفیت بهتر) و از OpenGL برای همه اشیاء 2D دارای بافت و اشیاء 3D استفاده می‌کند

pbo (bool، پیش‌فرض: false، قابل به‌روزرسانی): فعال‌سازی PixelBufferObjects برای ارسال بافت‌های YUV به GPU در حالت OpenGL. این کار ممکن است کارایی پخش را اندکی بهبود بخشد
nav (enum، پیش‌فرض: none، قابل به‌روزرسانی): بازنویسی حالت ناوبری پیش‌فرض در MPEG-4/VRML (Walk) و X3D (Examine)
* none: ناوبری را غیرفعال می‌کند
* walk: راه رفتن در دنیای سه‌بعدی
* fly: پرواز در دنیای سه‌بعدی (بدون تشخیص سطح زمین)
* pan: بزرگ‌نمایی/پیمایش (zoom/pan) در دنیای 2D/3D
* game: حالت بازی در دنیای سه‌بعدی (ماوس جهت راه رفتن را تعیین می‌کند)
* slide: لغزش در دنیای 2D/3D
* exam: بررسی شیء 2D/3D
* orbit: چرخش مداری به دور شیء 3D
* vr: واقعیت مجازی در دنیای سه‌بعدی (yaw/pitch/roll)

linegl (bool، پیش‌فرض: false، قابل به‌روزرسانی): مشخص می‌کند که خط‌کشی پیرامونی به جای خط‌کشی برداری باید از طریق پهنای قلم OpenGL انجام گیرد
epow2 (bool، پیش‌فرض: true، قابل به‌روزرسانی): شبیه‌سازی بافت‌های با ابعاد توان دو برای OpenGL (سخت‌افزارهای قدیمی). در صورت فعال بودن افزونه بافت مستطیلی OpenGL نادیده گرفته می‌شود
* true: اندازه بافت ویدیو تغییر نمی‌کند اما با فاصله‌گذاری (padding) شبیه‌سازی می‌شود. این کار معمولاً نگاشت ویدیو روی اشکال را تسریع می‌کند اما تبدیلات بافت را غیرفعال می‌سازد
* false: هنگام نگاشت روی یک شکل، اندازه ویدیو به بافتی با بعد توان ۲ تغییر می‌یابد

paa (bool، پیش‌فرض: false، قابل به‌روزرسانی): مشخص می‌کند که آیا ضدپلگی چندضلعی باید در حالت ضدپلگی کامل استفاده شود یا خیر. در صورت عدم تنظیم، تنها ضدپلگی خطوط و نقاط به کار می‌رود
bcull (enum، پیش‌فرض: on، قابل به‌روزرسانی): مشخص می‌کند که آیا حذف سطوح پشتی (backface culling) باید غیرفعال شود یا خیر
* on: حذف سطوح پشتی را فعال می‌کند
* off: حذف سطوح پشتی را غیرفعال می‌کند
* alpha: تنها حذف سطوح پشتی را برای مش‌های شفاف فعال می‌سازد

wire (enum، پیش‌فرض: none، قابل به‌روزرسانی): حالت اسکلت‌سیمی (wireframe)
* none: اشیاء به صورت توپر کشیده می‌شوند
* only: اشیاء تنها به صورت اسکلت‌سیمی کشیده می‌شوند
* solid: اشیاء ابتدا به صورت توپر کشیده شده و سپس اسکلت‌سیمی رسم می‌شود

norms (enum، پیش‌فرض: none، قابل به‌روزرسانی): رسم بردار عمود (نرمال) برای اشکال‌زدایی
* none: هیچ بردار نرمالی رسم نمی‌شود
* face: یک بردار نرمال به ازای هر وجه رسم می‌شود
* vertex: یک بردار نرمال به ازای هر رأس رسم می‌شود

rext (bool، پیش‌فرض: true، قابل به‌روزرسانی): استفاده از افزونه GL بافت‌های غیر توان دو (مستطیلی)
cull (bool، پیش‌فرض: true، قابل به‌روزرسانی): استفاده از جداسازی aabb: اشیاء بزرگ در صورتی که کاملاً درون درگاه نمایش نباشند، در چند فراخوانی رندر می‌شوند
depth_gl_scale (flt، پیش‌فرض: 100، قابل به‌روزرسانی): تعیین مقیاس‌بند عمق
depth_gl_type (enum، پیش‌فرض: none، قابل به‌روزرسانی): تعیین نوع هندسه مورد استفاده برای رسم ویدیوی عمق
* none: بدون تبدیل هندسی
* point: محاسبه ابر نقاط از پیکسل+عمق
* strip: مشابه point اما مجموعه نقاط را خلوت‌تر می‌کند

nbviews (uint، پیش‌فرض: 0، قابل به‌روزرسانی): تعداد نماها برای استفاده در حالت برجسته‌بینی (stereo)
stereo (enum، پیش‌فرض: none، قابل به‌روزرسانی): نوع خروجی استریو (برجسته‌بین). اگر کارت گرافیک شما از شیدرهای OpenGL پشتیبانی نکند، تنها حالت‌های top و side در دسترس خواهند بود
* none: بدون استریو
* side: تصاویر در کنار هم از چپ به راست نمایش داده می‌شوند
* top: تصاویر از بالا (نمای چپ) تا پایین (نمای راست) نمایش داده می‌شوند
* hmd: مشابه side، جز اینکه نسبت تصویر نما تغییر نمی‌کند
* ana: از آناگلیف رنگی استاندارد (قرمز برای نمای چپ، سبز و آبی برای نمای راست) استفاده می‌شود (اجبار views=2)
* cols: تصاویر بر اساس ستون‌ها در هم آمیخته می‌شوند؛ نمای چپ در ستون‌های زوج و نمای راست در ستون‌های فرد (اجبار views=2)
* rows: تصاویر بر اساس سطرها در هم آمیخته می‌شوند؛ نمای چپ در سطرهای زوج و نمای راست در سطرهای فرد (اجبار views=2)
* spv5: تصاویر برای نمایشگر ۵ نمایی SpatialView در حالت تمام‌صفحه در هم آمیخته می‌شوند (اجبار views=5)
* alio8: تصاویر برای نمایشگرهای ۸ نمایی Alioscopy در حالت تمام‌صفحه در هم آمیخته می‌شوند (اجبار views=8)
* custom: تصاویر بر اساس فایل شیدر مشخص‌شده در .I mvshader در هم آمیخته می‌شوند. شیدر هر نما را به عنوان uniform sampler2D gfViewX در معرض دسترسی قرار می‌دهد، که در آن X شماره نما از سمت چپ است

mvshader (str، قابل به‌روزرسانی): مسیر فایل به شیدر سفارشی درهم‌آمیزی چندنمایی
fpack (enum، پیش‌فرض: none، قابل به‌روزرسانی): بسته‌بندی فریم پیش‌فرض ویدیوی ورودی
* none: بدون بسته‌بندی فریم
* top: بسته‌بندی فریم بالا و پایین
* side: بسته‌بندی در کنار هم

camlay (enum، پیش‌فرض: offaxis، قابل به‌روزرسانی): چینش دوربین در حالت‌های چندنمایی
* straight: دوربین در امتداد یک خط مستقیم و بدون چرخش حرکت می‌کند
* offaxis: از پروجکشن خارج از محور (off-axis) استفاده می‌شود
* linear: دوربین در امتداد یک خط مستقیم همراه با چرخش حرکت می‌کند
* circular: دوربین در امتداد یک دایره همراه با چرخش حرکت می‌کند

iod (flt، پیش‌فرض: 6.4، قابل به‌روزرسانی): فاصله میان‌چشمی (فاصله بین چشم‌ها) بر حسب سانتی‌متر (فاصله بین دوربین‌ها).
rview (bool، پیش‌فرض: false، قابل به‌روزرسانی): معکوس کردن ترتیب نماها
dbgpack (bool، پیش‌فرض: false، قابل به‌روزرسانی): مشاهده ویدیوی استریوی بسته‌بندی‌شده به صورت یک تصویر منفرد (نمایش همه)
tvtn (uint، پیش‌فرض: 30، قابل به‌روزرسانی): تعداد نمونه‌برداری نقطه برای الگوریتم دیدپذیری کاشی‌ها
tvtt (uint، پیش‌فرض: 8، قابل به‌روزرسانی): تعداد نقاطی که اگر بالاتر از آن باشد، کاشی دیدپذیر در نظر گرفته می‌شود
tvtd (enum، پیش‌فرض: off، قابل به‌روزرسانی): اشکال‌زدایی کاشی‌ها و SRD پوشش کامل
* off: رسم عادی
* partial: فقط کاشی‌های جزئی نمایش داده می‌شوند، نه ویدیوی کروی کامل
* full: فقط نمایش ویدیوی کروی کامل

tvtf (bool، پیش‌فرض: false، قابل به‌روزرسانی): اجبار به دیدپذیر تلقی شدن تمام کاشی‌ها، صرف‌نظر از دیدگاه (viewpoint)
fov (flt، پیش‌فرض: 1.570796326794897، قابل به‌روزرسانی): میدان دید پیش‌فرض برای VR
vertshader (str): مسیر فایل شیدر رأس (vertex shader)
fragshader (str): مسیر فایل شیدر قطعه (fragment shader)
autocal (bool، پیش‌فرض: false، قابل به‌روزرسانی): کالیبراسیون خودکار znear/zfar در حالت رندر عمق
dispdepth (sint، پیش‌فرض: -1، قابل به‌روزرسانی): عمق نمایش، مقدار منفی از ارتفاع پیش‌فرض صفحه استفاده می‌کند
dispdist (flt، پیش‌فرض: 50، قابل به‌روزرسانی): فاصله بر حسب سانتی‌متر بین دوربین و صفحه با عدم‌انطباق صفر (zero-disparity plane). در حال حاضر هیچ کالیبراسیون خودکاری برای عمق در GPAC وجود ندارد
focdist (flt، پیش‌فرض: 0، قابل به‌روزرسانی): فاصله نقطه کانونی
osize (v2di، پیش‌فرض: 0x0، قابل به‌روزرسانی): اجبار اندازه خروجی. در صورت عدم تنظیم، اندازه از ورودی‌ها به دست می‌آید
dpi (v2di، پیش‌فرض: 96x96، قابل به‌روزرسانی): مقدار dpi پیش‌فرض در صورتی که توسط خروجی ویدیو مشخص نشده باشد
dbgpvr (flt، پیش‌فرض: 0، قابل به‌روزرسانی): صحنه اشکال‌زدایی مورد استفاده توسط افزونه PVR
player (enum، پیش‌فرض: no): قرار دادن ترکیب‌کننده در حالت پخش‌کننده (player)
* no: حالت عادی
* base: حالت پخش‌کننده
* gui: حالت پخش‌کننده با شروع خودکار رابط گرافیکی (GUI)

noaudio (bool، پیش‌فرض: false): غیرفعال‌سازی خروجی صوتی
opfmt (pfmt، پیش‌فرض: none، Enum: none|yuv420|yvu420|yuv420_10|yuv422|yuv422_10|yuv444|yuv444_10|uyvy|vyuy|yuyv|yvyu|uyvl|vyul|yuyl|yvyl|nv12|nv21|nv1l|nv2l|yuva|yuvd|yuv444a|yuv444p|v308|yuv444ap|v408|v410|v210|grey|algr|gral|rgb8|rgb4|rgb5|rgb6|rgba|argb|bgra|abgr|rgb|bgr|xrgb|rgbx|xbgr|bgrx|rgbd|rgbds|uncv): قالب پیکسلی مورد استفاده برای خروجی. در حالت .I player نادیده گرفته می‌شود

drv (enum، پیش‌فرض: auto): مشخص می‌کند که آیا درایور گرافیک باید استفاده شود یا خیر
* no: هرگز درایور گرافیک بارگذاری نمی‌شود، از blit نرم‌افزاری استفاده می‌شود، 3D ممکن نیست (در حالت پخش‌کننده، OpenGL را غیرفعال می‌کند)
* yes: همواره درایور گرافیک بارگذاری می‌شود، قالب پیکسلی خروجی RGB خواهد بود (در حالت پخش‌کننده، مشابه auto)
* auto: بر اساس محتوای بارگذاری‌شده تصمیم می‌گیرد

src (cstr): نشانی (URL) محتوای منبع
gaze_x (sint، پیش‌فرض: 0، قابل به‌روزرسانی): مختصات افقی نگاه (0=چپ، width=راست)
gaze_y (sint، پیش‌فرض: 0، قابل به‌روزرسانی): مختصات عمودی نگاه (0=بالا، height=پایین)
gazer_enabled (bool، پیش‌فرض: false، قابل به‌روزرسانی): فعال‌سازی ارسال رویدادهای نگاه
subtx (sint، پیش‌فرض: 0، قابل به‌روزرسانی): انتقال افقی بر حسب پیکسل به سمت راست برای رندرکننده‌های زیرنویس
subty (sint، پیش‌فرض: 0، قابل به‌روزرسانی): انتقال عمودی بر حسب پیکسل به سمت بالا برای رندرکننده‌های زیرنویس
subfs (uint، پیش‌فرض: 0، قابل به‌روزرسانی): اندازه قلم برای رندرکننده‌های زیرنویس (۰ به معنای خودکار است)
subd (sint، پیش‌فرض: 0، قابل به‌روزرسانی): تاخیر زیرنویس بر حسب میلی‌ثانیه برای رندرکننده‌های زیرنویس
audd (sint، پیش‌فرض: 0، قابل به‌روزرسانی): تاخیر صدا بر حسب میلی‌ثانیه
clipframe (bool، پیش‌فرض: false): خروجی دیداری به مستطیل محصورکننده برش می‌خورد

توضیحات: تفکیک‌کننده (demultiplexer) برای ISOBMFF/QT

این فیلتر فایل‌های ISOBMF و QT را دیمولتی‌پلکس می‌کند.
ورودی ISOBMFF/QT می‌تواند عادی یا تکه‌تکه (fragmented) بوده و به صورت فایل یا به عنوان جریان بایت خام (raw bytestream) در دسترس باشد.

فیلتر می‌تواند از شناسه‌های قطعه (fragment identifiers) منبع برای انتخاب یک ترک واحد جهت پخش استفاده کند. قطعه‌های مجاز عبارتند از:
* #audio: فقط از نخستین ترک صوتی استفاده می‌کند
* #video: فقط از نخستین ترک ویدیویی استفاده می‌کند
* #auxv: فقط از نخستین ترک ویدیویی کمکی (auxiliary) استفاده می‌کند
* #pict: فقط از نخستین ترک تصویر استفاده می‌کند
* #text: فقط از نخستین ترک متنی استفاده می‌کند
* #trackID=VAL: فقط از ترک با شناسه (ID) داده‌شده استفاده می‌کند
* #itemID=VAL: فقط از آیتم با شناسه داده‌شده استفاده می‌کند
* #ID=VAL: فقط از ترک/آیتم با شناسه داده‌شده استفاده می‌کند
* #VAL: فقط از ترک/آیتم با شناسه داده‌شده استفاده می‌کند

هنگامی که ترک‌های مقیاس‌پذیر در یک فایل وجود دارند، خواننده می‌تواند با استفاده از گزینه .I smode در ۳ حالت عمل کند:
* smode=single: تمام استخراج‌کننده‌ها (extractors) را برای استخراج یک جریان بیتی واحد از یک مجموعه مقیاس‌پذیر حل می‌کند. بالاترین سطح استفاده می‌شود
در این حالت، هیچ پیکربندی رمزگشای بهبوددهنده‌ای وجود ندارد، بلکه تنها یک پیکربندی پایه حاصل از ادغام پیکربندی‌های لایه‌ها وجود دارد
* smode=split: تمام استخراج‌کننده‌ها حذف شده و تمام ترک‌های مجموعه مقیاس‌پذیر اعلان می‌شوند. در این حالت، هر ترک بهبوددهنده فاقد پیکربندی رمزگشای پایه
و دارای یک پیکربندی رمزگشای بهبوددهنده است.
* smode=splitx: استخراج‌کننده‌ها در جریان بیتی نگه داشته می‌شوند و تمام ترک‌های مجموعه مقیاس‌پذیر اعلان می‌شوند. در این حالت، هر ترک بهبوددهنده دارای یک پیکربندی رمزگشای پایه
(کپی‌شده از پایه) و یک پیکربندی رمزگشای بهبوددهنده است. این حالت بیشتر برای تولید محتوای DASH استفاده می‌شود.
هشدار: smode=splitx منجر به باقی ماندن واحدهای NAL استخراج‌کننده در جریان بیتی خروجی می‌شود، که این تنها در صورتی مجاز است که خروجی مبتنی بر ISOBMFF باشد

src (cstr): نام فایل محلی محتوای منبع (تنها هنگام بارگذاری صریح فیلتر استفاده می‌شود)
allt (bool, default: false): بارگذاری تمام ترک‌ها حتی در صورت ناشناخته بودن نوع رسانه
edits (enum, default: auto): عدم استفاده از edit listها (فهرست‌های ویرایش)
* auto: تأخیر ترک و در صورت امکان عدم استفاده از edit list
* no: نادیده گرفتن edit list
* strict: استفاده از edit list حتی اگر تنها نشان‌دهنده یک تأخیر باشد

itt (bool, default: false): تبدیل تمام آیتم‌های root meta به یک PID واحد
itemid (bool, default: true): حفظ شناسه‌های آیتم در مشخصه‌های PID
smode (enum, default: split): حالت بارگذاری برای ترک‌های مقیاس‌پذیر/کاشی (scalable/tile)
* split: هر ترک اعلان می‌شود، استخراج‌کننده‌ها حذف می‌شوند
* splitx: هر ترک اعلان می‌شود، استخراج‌کننده‌ها حفظ می‌شوند
* single: یک ترک واحد اعلان می‌شود (بالاترین سطح برای مقیاس‌پذیر، پایه کاشی برای کاشی‌کاری)

alltk (bool, default: false): اعلان ترک‌های غیرفعال‌شده
frame_size (uint, default: 1024): اندازه فریم برای نمونه‌های صوتی خام (ارسال frame_size نمونه در هر بسته)
expart (bool, default: false): نمایش تصویر روی جلد (cover art) به عنوان یک PID ویدیویی اختصاصی
sigfrag (bool, default: false): مشخص کردن مرزهای قطعه (fragment) و سگمنت منبع روی بسته‌های خروجی؛ در صورت تکه‌تکه نبودن منبع با شکست مواجه می‌شود
tkid (str): اعلان تنها ترک بر اساس پارامتر داده‌شده
* integer value: ترک با شناسه داده‌شده را اعلان می‌کند
* audio: نخستین ترک صوتی را اعلان می‌کند
* video: نخستین ترک ویدیویی را اعلان می‌کند
* 4CC: نخستین ترک با 4CC منطبق برای نوع گرداننده (handler type) را اعلان می‌کند

stsd (uint, default: 0): تنها نمونه‌های نگاشت‌شده به نمایه توصیف نمونه (sample description index) داده‌شده را استخراج می‌کند (۰ به معنای استخراج همه است)
nocrypt (bool): اعلام ترک‌های رمزنگاری‌شده به عنوان رمزنگاری‌نشده (بیشتر برای صادرات/export استفاده می‌شود)
mstore_size (uint, default: 10000000): اندازه بافر هدف بر حسب بایت هنگام خواندن از جریان حافظه (pipe و غیره)
mstore_purge (uint, default: 50000): حداقل اندازه بر حسب بایت میان پاکسازی‌های حافظه هنگام خواندن از جریان حافظه؛ ۰ به معنای پاکسازی در سریع‌ترین زمان ممکن است
mstore_samples (uint, default: 50): حداقل تعداد نمونه‌های موجود پیش از پاکسازی جدول‌های نمونه هنگام خواندن از جریان حافظه (pipe و غیره)؛ ۰ به معنای پاکسازی در سریع‌ترین زمان ممکن است
strtxt (bool, default: false): بارگذاری ترک‌های متنی (apple/tx3g) به عنوان ترک‌های متنی جریانی MPEG-4
xps_check (enum, default: auto): حالت استخراج مجموعه‌های پارامتر (parameter sets) از نمونه‌های AVC/HEVC/VVC
* keep: عدم بررسی نمونه (هنگام تولید DASH/HLS/CMAF فرض را بر سازگار بودن فایل ورودی می‌گذارد)
* rem: حذف تمام xPSهای درون‌باندی (inband) و اطلاع‌رسانی تغییرات پیکربندی بر این اساس
* auto: برای smode=splitx (حالت dasher) روی keep و در غیر این صورت روی rem تنظیم می‌شود

nodata (enum, default: no): کنترل بارگذاری داده‌های نمونه
* no: بارگذاری عادی
* yes: صرف‌نظر از بارگذاری داده‌ها
* fake: تخصیص نمونه بدون کپی داده‌ها

lightp (bool, default: false): بارگذاری حداقل مجموعه‌ای از مشخصه‌ها
initseg (str): نام قطعه مقداردهی اولیه (init segment) محلی هنگامی که ورودی یک تک‌سگمنت ISOBMFF است
extk (bool, default: true): اجازه بارگذاری ترک خارجی
ctso (sint): مقداری که باید به افست CTS برای ترک‌هایی با ctts منفی اضافه شود
- تنظیم روی -1 برای استفاده از اطلاعات جعبه cslg یا حداقل افست cts موجود در ترک
- تنظیم روی -2 برای استفاده از حداقل افست cts موجود در ترک (cslg نادیده گرفته می‌شود)

norw (bool, default: false): صرف‌نظر از قالب‌بندی مجدد نمونه‌ها - فقط هنگام بازنویسی قطعه‌ها (fragments) باید استفاده شود
keepc (bool, default: true): نگه‌داشتن نمونه‌های خراب (تنها برای منابع چندپخشی/multicast)
sigfo (bool, default: false): مشخص کردن مرزهای سگمنت روی بسته‌های خروجی برای منابع DASH یا HLS (مشابه sigfrag اما مستقل از گزینه‌های dasher)
drefu (str): جایگزینی نشانی اینترنتی (URL) جعبه dref در فایل منبع با مقدار داده‌شده

توضیحات: رمزگشای MPEG-4 BIFS

این فیلتر فریم‌های دودویی MPEG-4 BIFS را مستقیماً در گراف صحنه (scene graph) ترکیب‌کننده (compositor) رمزگشایی می‌کند.
نکته: از این فیلتر نمی‌توان برای استخراج محتوای BIFS به متن یا xml استفاده کرد؛ برای این منظور از MP4Box استفاده کنید.

بدون گزینه

توضیحات: رمزگشای MPEG-4 OD

این فیلتر فریم‌های دودویی MPEG-4 OD را مستقیماً در مدیر صحنه (scene manager) ترکیب‌کننده (compositor) رمزگشایی می‌کند.
نکته: از این فیلتر نمی‌توان برای استخراج محتوای OD به متن یا xml استفاده کرد؛ برای این منظور از MP4Box استفاده کنید.

بدون گزینه

توضیحات: ورودی فایل

این فیلتر بلوک‌های خام را از فایل ورودی به درون یک زنجیره فیلتر توزیع می‌کند.
اندازه بلوک با استفاده از .I block_size قابل تنظیم است.
قالب محتوا می‌تواند از طریق .I mime اجباری شود و پسوند فایل می‌تواند از طریق .I ext تغییر یابد.
نکته: مگر اینکه در سطح نشست غیرفعال شده باشد (به .I -no-probe مراجعه کنید)، پسوندهای فایل معمولاً نادیده گرفته می‌شوند و کاوش قالب روی اولین بلوک داده انجام می‌گیرد.
نام فایل ویژه null برای ایجاد فایلی بدون داده استفاده می‌شود، که توسط برخی فیلترها مانند dasher مورد نیاز است.
نام فایل ویژه rand برای تولید داده‌های تصادفی به کار می‌رود.
نام فایل ویژه randsc برای تولید داده‌های تصادفی با پیشوند کد آغازین 0x000001 استفاده می‌شود.

این فیلتر هم از فایل‌ها و هم از اشیاء GF_FileIO به عنوان URL ورودی پشتیبانی می‌کند.

این فیلتر می‌تواند برای تزریق یک بسته منفرد به جای یک فایل با استفاده از گزینه .I pck استفاده شود.
هیچ ویژگی خاصی ضمیمه نمی‌شود، مگر یک مقیاس زمانی (timescale) در صورتی که .I ptime تنظیم شده باشد.
مثال
gpac fin:pck=str@"My Sample Text":ptime=2500/100:#CodecID=stxt:#StreamType=text

این دستور PID را به عنوان WebVTT اعلام کرده و یک بسته منفرد با بار داده (payload) «My Sample Text» و مقدار برچسب زمانی (timestamp) ۲۵ ثانیه ارسال می‌کند.

src (cstr): مکان فایل منبع
block_size (uint, default: 0): اندازه بلوک مورد استفاده برای خواندن فایل. 0 به معنای 5000 در صورت کمتر بودن فایل از 500m است، و در غیر این صورت 1M
range (lfrac, default: 0-0): محدوده بایتی
ext (cstr): بازنویسی و نادیده‌گرفتن پسوند فایل
mime (cstr): تنظیم نوع mime فایل
pck (mem): داده برای استفاده به جای فایل
ptime (frac, default: 0/0): زمان‌بندی برای بسته داده؛ اگر den برابر 0 باشد نادیده گرفته می‌شود

توضیحات: رمزگشای BT/XMT/X3D

این فیلتر فایل‌های MPEG-4 BIFS (شامل BT و XMT)، VRML97 و X3D (شامل wrl و XML) را مستقیماً در گراف صحنه ترکیب‌کننده تجزیه می‌کند.

هنگامی که .I sax_dur روی N تنظیم شده باشد، فیلتر بارگیری تدریجی منبع را انجام می‌دهد و در صورتی که زمان پردازش بیشتر از N باشد، بارگیری فعلی را لغو می‌کند.

sax_dur (uint, default: 0): مدت زمان برای تجزیه SAX (در XMT)؛ مقدار 0 تجزیه SAX را غیرفعال می‌کند

توضیحات: ورودی HTTP

این فیلتر بلوک‌های خام را از یک منبع دوردست HTTP به درون یک زنجیره فیلتر توزیع می‌کند.
اندازه بلوک با استفاده از .I block_size قابل تنظیم است و همچنین سیاست‌های ذخیره‌سازی موقت (caching) دیسک می‌توانند تنظیم شوند.
قالب محتوا می‌تواند از طریق .I mime اجباری شود و پسوند فایل می‌تواند از طریق .I ext تغییر یابد.

این فیلتر از هر دو طرحواره http و https پشتیبانی می‌کند و در صورت شکست اتصال TCP، تلاش می‌کند تا مجدداً به عنوان TLS متصل شود.

نکته: مگر اینکه در سطح نشست غیرفعال شده باشد (به .I -no-probe مراجعه کنید)، پسوندهای فایل معمولاً نادیده گرفته می‌شوند و کاوش قالب روی اولین بلوک داده انجام می‌گیرد.

src (cstr): نشانی (URL) محتوای منبع
block_size (uint, default: 100000): اندازه بلوک مورد استفاده برای خواندن فایل
cache (enum, default: none): تنظیم حالت حافظه موقت (کَش)
* auto: ذخیره موقت روی دیسک در صورت مشخص بودن طول محتوا، در غیر این صورت بدون کَش
* disk: ذخیره موقت روی دیسک، حذف پس از پایان استفاده از نشست
* keep: ذخیره موقت روی دیسک و نگه‌داری آن
* mem: ذخیره در حافظه، حذف پس از پایان استفاده از نشست
* mem_keep: ذخیره در حافظه، نگه‌داری پس از تخصیص مجدد نشست اما انتقال به mem پس از اولین بارگیری
* none: بدون کَش
* none_keep: ذخیره در حافظه، نگه‌داری پس از تخصیص مجدد نشست اما انتقال به none پس از اولین بارگیری

range (lfrac, default: 0-0): تنظیم محدوده بایتی، به‌صورت کسر
ext (cstr): جایگزینی پسوند فایل
mime (cstr): تنظیم نوع mime فایل
blockio (bool, default: false): استفاده از ورودی/خروجی مسدودکننده (blocking IO)
idelay (uint, default: 0): به تأخیر انداختن اولین درخواست به میزان میلی‌ثانیه داده‌شده

توضیحات: رمزگشای SVG

این فیلتر فایل‌های SVG را مستقیماً در نمودار صحنه صفحه‌بند (compositor) تجزیه می‌کند.

هنگامی که .I sax_dur بر روی N تنظیم شود، فیلتر بارگیری تدریجی منبع را انجام می‌دهد و در صورتی که زمان پردازش بیشتر از N باشد، بارگیری فعلی را لغو می‌کند.

sax_dur (uint, default: 0): مدت‌زمان بارگیری برای تجزیه SAX، مقدار 0 تجزیه SAX را غیرفعال می‌کند

توضیحات: بازقاب‌بند (reframer) پرونده‌های JPG/J2K/PNG/BMP

این فیلتر فایل‌ها/داده‌های JPG/J2K/PNG/BMP را تجزیه کرده و PID تصویری و فریم‌های متناظر را در خروجی تولید می‌کند.

پسوندهای زیر برای PNG قالب پیکسلی را برای تصاویر RGBA تغییر می‌دهند:
* pngd: استفاده از قالب پیکسلی RGB+depth map
* pngds: استفاده از قالب پیکسلی RGB+depth(7bits)+shape(MSB of alpha channel)

بدون گزینه

توضیحات: رمزگشای PNG/JPG

این فیلتر تصاویر JPEG و PNG را رمزگشایی می‌کند.

بدون گزینه

توضیحات: بازقاب‌بند (reframer) ADTS

این فیلتر فایل‌ها/داده‌های AAC را تجزیه کرده و PID صوتی و فریم‌های متناظر را در خروجی تولید می‌کند.

frame_size (uint, default: 1024): اندازه فریم AAC بر حسب نمونه‌های صوتی
index (dbl, default: 1.0): طول پنجره نمایه‌گذاری
ovsbr (bool, default: false): اجبار به بیش‌نمونه‌برداری SBR (مقیاس‌های زمانی را در ۲ ضرب نمی‌کند)
sbr (enum, default: no): تنظیم سیگنال‌دهی SBR
* no: بدون هیچ‌گونه سیگنال‌دهی SBR
* imp: سیگنال‌دهی SBR سازگار با گذشته (صدا به‌صورت AAC-LC اعلام می‌شود)
* exp: سیگنال‌دهی صریح SBR (صدا به‌صورت AAC-SBR اعلام می‌شود)

ps (enum, default: no): تنظیم سیگنال‌دهی PS
* no: بدون هیچ‌گونه سیگنال‌دهی PS
* imp: سیگنال‌دهی PS سازگار با گذشته (صدا به‌صورت AAC-LC اعلام می‌شود)
* exp: سیگنال‌دهی صریح PS (صدا به‌صورت AAC-PS اعلام می‌شود)

expart (bool, default: false): ارائه تصاویر به‌صورت یک PID ویدیویی اختصاصی
aacchcfg (sint, default: 0): تنظیم پیکربندی کانال AAC به این مقدار در صورت مفقود بودن در سرایند ADTS؛ از مقدار منفی برای جایگزینی همیشگی استفاده کنید

توضیحات: بازفریم‌ساز LATM

این فیلتر AAC را در فایل‌ها/داده‌های LATM تجزیه کرده و PID و فریم‌های صوتی متناظر را در خروجی ارائه می‌دهد.

frame_size (uint, default: 1024): اندازه فریم AAC بر حسب نمونه‌های صوتی
index (dbl, default: 1.0): طول پنجره نمایه‌سازی

توضیحات: بازفریم‌ساز MP3

این فیلتر فایل‌ها/داده‌های صوتی MPEG-1/2 را تجزیه کرده و PID و فریم‌های صوتی متناظر را در خروجی ارائه می‌دهد.

index (dbl, default: 1.0): طول پنجره نمایه‌سازی
expart (bool, default: false): ارائه تصاویر به عنوان یک PID ویدیویی اختصاصی
forcemp3 (bool, default: true): اجبار سیگنال‌دهی mp3 برای MPEG-2 Audio layer 3

توضیحات: رمزگشای FAAD

این فیلتر جریان‌های AAC را از طریق کتابخانه faad رمزگشایی می‌کند.

بدون گزینه

توضیحات: رمزگشای MAD

این فیلتر جریان‌های صوتی MPEG 1/2 را از طریق کتابخانه libmad رمزگشایی می‌کند.

بدون گزینه

توضیحات: رمزگشای OpenJPEG2000
نسخه: 2.x

این فیلتر جریان‌های JPEG2000 را از طریق کتابخانه OpenJPEG2000 رمزگشایی می‌کند.

بدون گزینه

توضیحات: بازفریم‌ساز AC3

این فیلتر فایل‌ها/داده‌های AC3 و E-AC3 را تجزیه کرده و PID و فریم‌های صوتی متناظر را در خروجی ارائه می‌دهد.

index (dbl, default: 1.0): طول پنجره نمایه‌سازی

توضیحات: بازفریم‌ساز AC4

این فیلتر فایل‌ها/داده‌های AC4 را تجزیه کرده و PID و فریم‌های صوتی متناظر را در خروجی ارائه می‌دهد.

بدون گزینه

توضیحات: نویسندهٔ AC4

این فیلتر جریان‌های MPEG-H Audio را به داده‌های کپسوله‌شدهٔ AC4 تبدیل می‌کند.

rcfg (bool، پیش‌فرض: true): اجبار به تکرار پیکربندی رمزگشا در هر I-frame

توضیحات: بازفریم‌بند AMR/EVRC

این فیلتر فایل‌ها/داده‌های AMR، AMR Wideband، EVRC و SMV را تجزیه کرده و فریم‌ها و PID صوتی متناظر را در خروجی تولید می‌کند.

index (dbl، پیش‌فرض: 1.0): طول پنجرهٔ نمایه‌سازی

توضیحات: تفکیک‌کنندهٔ OGG

این فیلتر فایل‌ها/داده‌های OGG را به مجموعه‌ای از فریم‌ها و PIDهای رسانه‌ای تفکیک می‌کند.

index (dbl، پیش‌فرض: 1.0): طول پنجرهٔ نمایه‌سازی (پیاده‌سازی نشده است؛ برای غیرفعال کردن بررسی جریان جهت تعیین مدت‌زمان از 0 استفاده کنید)،
expart (bool، پیش‌فرض: false): ارائهٔ تصاویر به‌عنوان یک PID ویدیویی اختصاصی

توضیحات: رمزگشای Vorbis

این فیلتر جریان‌های Vorbis را از طریق کتابخانهٔ libvorbis رمزگشایی می‌کند.

بدون گزینه

توضیحات: رمزگشای Theora

این فیلتر جریان‌های Theora را از طریق کتابخانهٔ libtheora رمزگشایی می‌کند.

بدون گزینه

توضیحات: تفکیک‌کنندهٔ MPEG-2 TS

این فیلتر فایل‌ها/داده‌های MPEG-2 Transport Stream را به مجموعه‌ای از فریم‌ها و PIDهای رسانه‌ای تفکیک می‌کند.

temi_url (cstr): تحمیل نشانی اینترنتی (URL) مربوط به TEMI
dsmcc (bool، پیش‌فرض: no): فعال‌سازی گیرندهٔ DSMCC
seeksrc (bool، پیش‌فرض: true): پرش مجدد فایل منبع محلی به مبدا پس از راه‌اندازی تمام برنامه‌ها
sigfrag (bool، پیش‌فرض: false): اعلان مرزهای بخش (segment) در بسته‌های خروجی برای منابع DASH یا HLS
dvbtxt (bool، پیش‌فرض: false): صادر کردن جریان‌های تله‌تکست DVB
upes (enum، پیش‌فرض: no): نگه‌داشتن جریان‌های ناشناختهٔ PES
* no: نادیده گرفتن جریان‌ها
* info: اعلان جریان به‌صورت صوری (عدم ارسال داده‌ها به جلو)، dvbtxt را فعال می‌کند
* full: اعلان جریان و ارسال داده‌ها

mappcr (bool، پیش‌فرض: true): نگاشت مجدد PCR و برچسب‌های زمانی به یک خط زمانی پیوسته
sigfo (bool، پیش‌فرض: false): اعلان مرزهای بخش در بسته‌های خروجی برای منابع DASH یا HLS (مشابه sigfrag، اما مستقل از گزینه‌های dasher)

توضیحات: ورودی UDP/TCP

این فیلتر سوکت‌های ورودی عمومی TCP و UDP را مدیریت می‌کند. همچنین می‌تواند ورودی MPEG-2 TS بر روی RTP را شناسایی کند. شناسایی خودکار MPEG-2 TS بر روی UDP/RTP به‌طور پیش‌فرض فعال است، اما می‌توان آن را غیرفعال کرد.

قالب داده را می‌توان با تنظیم گزینه‌های .I ext یا .I mime مشخص کرد. در صورت عدم تنظیم، قالب با بررسی نخستین بستهٔ داده حدس زده خواهد شد.

- سوکت‌های UDP برای URLهای مبدأ با قالب udp://NAME استفاده می‌شوند
- سوکت‌های TCP برای URLهای مبدأ با قالب tcp://NAME استفاده می‌شوند
- سوکت‌های دامنه یونیکس UDP برای URLهای مبدأ با قالب udpu://NAME استفاده می‌شوند
- سوکت‌های دامنه یونیکس TCP برای URLهای مبدأ با قالب tcpu://NAME استفاده می‌شوند

هنگامی که درگاه‌ها در URL مشخص شده باشند و از جداکننده‌های پیش‌فرض گزینه‌ها استفاده شود (رجوع کنید به gpac -h doc)، URL باید یکی از موارد زیر را رعایت کند:
- یک '/' در انتها داشته باشد، مانند udp://localhost:1234/[:opts]
- از جداکنندهٔ gpac استفاده کند، مانند udp://localhost:1234[:gpac:opts]

هنگامی که سوکت در حالت نگه‌داشت اتصال (keep-alive) .I ka گوش می‌دهد:
- تنها یک اتصال مجاز است و یک PID خروجی واحد تولید خواهد شد
- هر رویداد بسته‌شدن اتصال باعث تخلیهٔ خط‌لوله (pipeline flush) خواهد شد

در OSX با بازپخش بسته در ماشین مجازی (VM packet replay)، باید مسیریابی چندپخشی را اجبار کنید، برای نمونه: route add -net 239.255.1.4/32 -interface vboxnet0

این فیلتر از زمان میان دو بستهٔ آخر دریافت‌شده برای برآورد این‌که هر چند وقت یک‌بار باید ورودی‌ها را بررسی کند، استفاده می‌کند. حداقل و حداکثر زمان انتظار میان دو فراخوانی با گزینهٔ .I mwait تعیین می‌شود. ممکن است لازم باشد حداکثر زمان برای منابع با نرخ بیت بسیار بالا کاهش یابد.

src (cstr): نشانی محتوای مبدأ
block_size (uint، پیش‌فرض: 0x60000): اندازهٔ بلوک مورد استفاده برای خواندن سوکت
port (uint، پیش‌فرض: 1234): درگاه پیش‌فرض در صورت مشخص نشدن
ifce (cstr): رابط چندپخشی پیش‌فرض
listen (bool، پیش‌فرض: false): مشخص می‌کند که سوکت ورودی در حالت سرور کار کند
ka (bool، پیش‌فرض: false): زنده نگه‌داشتن سوکت در صورت نبود اتصال‌های بیشتر
maxc (uint، پیش‌فرض: +I): حداکثر تعداد اتصال‌های هم‌زمان
tsprobe (bool، پیش‌فرض: true): پویش برای داده‌های MPEG-2 TS، به‌صورت RTP یا UDP خام. در صورت مشخص شدن mime یا ext و عدم تطابق آن‌ها با mimeها/پسوندهای MPEG-2 TS غیرفعال می‌شود
ext (str): مشخص کردن پسوند فایل داده‌های udp
mime (str): مشخص کردن نوع mime داده‌های udp
block (bool، پیش‌فرض: false): تنظیم حالت مسدودکننده (blocking) برای سوکت(ها)
timeout (uint، پیش‌فرض: 10000): تنظیم مهلت زمانی بر حسب میلی‌ثانیه برای سوکت(های) UDP؛ مقدار 0 برای غیرفعال کردن مهلت زمانی
mwait (v2di، پیش‌فرض: 1x30): تنظیم حداقل و حداکثر زمان انتظار بر حسب میلی‌ثانیه برای جلوگیری از سرکشی بیش از حد (polling)
reorder_pck (uint، پیش‌فرض: 100): تأخیر بر حسب تعداد بسته برای بازآرایی RTP (داده‌های M2TS بر روی RTP)
reorder_delay (uint، پیش‌فرض: 10): میزان تأخیر بر حسب میلی‌ثانیه برای بازآرایی RTP (داده‌های M2TS بر روی RTP)
ssm (strl): فهرست IPها جهت گنجاندن در چندپخشی مبدأ-خاص (SSM)
ssmx (strl): فهرست IPها جهت مستثنی کردن از چندپخشی مبدأ-خاص (SSM)

توضیحات: DVB برای لینوکس

این فیلتر داده‌های خام MPEG-2 TS را از کارت‌های DVB-T/T2 و DVB-S/S2 در لینوکس می‌خواند.

طرح‌وارهٔ URL مورد استفاده dvb:// است که نحوهای زیر را دارد:
* `dvb://CHAN`: روی کانال CHAN در فایل پیکربندی کانال‌ها تنظیم می‌شود (tune می‌کند).
* `dvb://+CHAN`: روی مالتی‌پلکس حاوی کانال CHAN تنظیم می‌شود و همهٔ برنامه‌ها را ارائه می‌دهد.
* `dvb://=N`: روی کانال N-اُم در فایل پیکربندی کانال‌ها تنظیم می‌شود.
* `dvb://@FREQ`: روی فرکانس FREQ تنظیم می‌شود و تمام کانال‌های موجود در مالتی‌پلکس را ارائه می‌دهد.
* `dvb://@=N`: روی فرکانس N-اُم تنظیم می‌شود و تمام کانال‌های موجود در مالتی‌پلکس را ارائه می‌دهد.
* `dvb://@chlist`: گزینهٔ .I chans را با کانال‌های موجود در فایل پیکربندی مقداردهی می‌کند و کار دیگری انجام نمی‌دهد.

هنگام تنظیم بر پایهٔ نام کانال CHAN، نخستین مدخل در فایل پیکربندی کانال‌ها که با CHAN آغاز شود استفاده خواهد شد.

فایل پیکربندی کانال‌ها از طریق .I chcfg تعیین می‌شود. قالب مورد انتظار VDR به همان صورت تولیدشده توسط w_scan است، با نحوی گسترش‌یافته برای خطوط توضیح که با # آغاز می‌شوند.
در یک خط توضیح، کلیدواژه‌های زیر می‌توانند برای بازنویسی مقادیر پیش‌فرض استفاده شوند:
* `dev=N`: تنظیم نمایهٔ آداپتور (N عدد صحیح) یا مسیر کامل (N رشته).
* `idx=K`: تنظیم نمایهٔ فرانت‌اند K.
* `csidx=S`: تنظیم نمایهٔ سوییچ تثبیت‌شده (committed switch) برای DiSEqC.

برای مشاهدهٔ کانال‌های پیش‌فرض، از دستور gpac -hx dvbin استفاده کنید.

src (cstr): نشانی اینترنتی (URL) محتوای منبع
block_size (uint، پیش‌فرض: 65536): اندازه بلوک مورد استفاده برای خواندن دستگاه
chcfg (cstr، پیش‌فرض: $GCFG/channels.conf): مسیر فایل پیکربندی کانال‌ها
dev (str، پیش‌فرض: 0): مسیر آداپتور DVB - اگر نویسه نخست یک عدد باشد، این اندیس دستگاه است
idx (uint، پیش‌فرض: 0): اندیس frontend
timeout (uint، پیش‌فرض: 5000): زمان انتظار (timeout) به میلی‌ثانیه پیش از شکست تنظیم فرکانس (tune)
csleep (uint، پیش‌فرض: 15): زمان خواب پیکربندی به میلی‌ثانیه میان دستورهای DiSEqC
csidx (uint، پیش‌فرض: 0): اندیس سوئیچ اختصاصی (committed switch index) برای DiSEqC
chans (strl): فهرست همه کانال‌ها؛ تنها برای نشانی dvb://@chlist مقداردهی می‌شود

توضیحات: رمزگشای OpenSVC

این فیلتر جریان‌های مقیاس‌پذیر AVC|H264 را از طریق کتابخانه OpenSVC رمزگشایی می‌کند.

بدون گزینه

توضیحات: رمزگشای VideoToolBox

این فیلتر جریان‌های ویدیویی را از طریق VideoToolBox در OSX/iOS (فرمت‌های MPEG-2، H263، AVC|H264، HEVC، ProRes) رمزگشایی می‌کند. این فیلتر امکان ارسال فریم به GPU یا کپی مستقیم فریم را فراهم می‌کند.

reorder (uint، پیش‌فرض: 6): تعداد فریم‌ها برای انتظار جهت بازآرایی زمانی (temporal re-ordering)
no_copy (bool، پیش‌فرض: true): ارسال فریم‌های رمزگشایی‌شده به‌صورت بافت‌های OpenGL (مقدار true) یا بسته‌های کپی‌شده (مقدار false)
ofmt (pfmt، پیش‌فرض: nv12): تنظیم فرمت پیش‌فرض پیکسل برای ویدیوی رمزگشایی‌شده؛ در صورت یافت نشدن، به nv12 برگردانده می‌شود
disable_hw (bool، پیش‌فرض: false): غیرفعال‌سازی رمزگشایی سخت‌افزاری
wait_sync (bool، پیش‌فرض: false، قابل به‌روزرسانی): انتظار برای فریم همگام‌سازی (sync frame) پیش از رمزگشایی

توضیحات: رمزگشای MediaCodec

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

disable_gl (bool، پیش‌فرض: false): غیرفعال‌سازی انتقال بافت OpenGL

توضیحات: رمزگشای MPEG-4 LASeR

این فیلتر فریم‌های باینری MPEG-4 LASeR را مستقیماً درون گراف صحنه (scene graph) ترکیب‌کننده (compositor) رمزگشایی می‌کند.
نکته: از این فیلتر نمی‌توان برای استخراج (dump) محتوای LASeR به متن یا xml استفاده کرد؛ برای این منظور از MP4Box استفاده کنید.

بدون گزینه

توضیحات: دی‌مالتی‌پلکسر SAF

این فیلتر فایل‌ها/داده‌های SAF (قالب MPEG-4 Simple Aggregation Format for LASeR) را به مجموعه‌ای از PIDها و فریم‌های رسانه‌ای دی‌مالتی‌پلکس می‌کند.

بدون گزینه

توضیحات: کلاینت DASH و HLS

این فیلتر مانیفست‌های MPEG-DASH، HLS و MS Smooth را می‌خواند.

این حالت پیش‌فرض است که در آن، فیلتر شناسه‌های رسانه (PIDها) و فریم‌ها را از منابع مشخص‌شده در manifest تولید می‌کند.
رفتار پیش‌فرض، انجام انطباق بر اساس .I algo است، اما فیلتر می‌تواند:
- بدون انطباق اجرا شود تا بیشترین کیفیت را دریافت کند.
مثال
gpac -i MANIFEST_URL:algo=none:start_with=max_bw -o dest.mp4

- بدون انطباق اجرا شود و تمام کیفیت‌ها را دریافت کند.
مثال
gpac -i MANIFEST_URL:split_as -o dst=$File$.mp4

هنگامی که .I forward روی file تنظیم شود، کلاینت فایل‌های رسانه را بدون demultiplex کردن فوروارد می‌کند.
این حالت بیشتر برای ارائهٔ نشست DASH به یک کارساز فایل مانند ROUTE یا HTTP استفاده می‌شود.
در این حالت، manifest به‌صورت یک PID خروجی فوروارد می‌شود.
هشدار: این حالت نمی‌تواند از طریق ارث‌بری تنظیم شود، زیرا قابلیت‌های پیوند فیلتر را تغییر می‌دهد. فیلتر حتماً باید به‌صورت صریح تعریف شود.

برای ارائهٔ یک نشست زندهٔ DASH به route:
gpac -i MANIFEST_URL dashin:forward=file -o route://225.0.0.1:8000/

اگر منبع دارای جریان‌های رسانه‌ای وابسته (scalability) باشد و نیاز به ارسال تمام کیفیت‌ها و سگمنت‌های مقداردهی اولیه باشد، .I split_as را اضافه کنید.

هنگامی که .I forward روی segb یا mani تنظیم شود، کلاینت فریم‌های رسانه را (پس از demultiplex کردن) به همراه مرزهای سگمنت و فرگمنت فایل‌های منبع فوروارد می‌کند.

این حالت می‌تواند برای پردازش داده‌های رسانه و تولید مجدد همان manifest یا قطعه‌بندی (segmentation) به کار رود.

مثال
gpac -i MANIFEST_URL:forward=mani cecrypt:cfile=DRM.xml -o encrypted/live.mpd:pssh=mv

این دستور یک نشست DASH موجود را رمزنگاری کرده و PSSH را به درون manifest و سگمنت‌ها تزریق می‌کند.

مثال
gpac -i MANIFEST_URL:forward=segb cecrypt:cfile=DRM.xml -o encrypted/live.m3u8

این دستور یک نشست DASH موجود را رمزنگاری کرده و با استفاده از همان نام‌ها و مرزهای سگمنت، آن را مجدداً به‌صورت HLS منتشر می‌کند.

این حالت برای اطمینان از کامل بودن اولین سگمنت دریافت‌شده، مقدار .I noseek=true و برای دریافت تمام کیفیت‌ها، مقدار .I split_as=true را تحمیل می‌کند.

به هر بستهٔ نخست از یک سگمنت، ویژگی‌های زیر پیوست خواهد شد:
* `CueStart`: نشان‌دهندهٔ شروع یک سگمنت است
* `FileNumber`: شمارهٔ سگمنت فعلی
* `FileName`: نام فایل سگمنت فعلی بدون نشانی پایهٔ (base URL) manifest (شامل MPD یا مستر HLS)
* `DFPStart`: اگر این نخستین بسته در دوره (period) باشد با مقدار 0 تنظیم می‌شود؛ در غیر این صورت وجود ندارد

اگر .I forward روی mani تنظیم شده باشد، نخستین بسته از سگمنتی که پس از به‌روزرسانی manifest ارسال می‌شود نیز بار دادهٔ (payload) manifest را به‌عنوان یک ویژگی به همراه خواهد داشت:
* `DFManifest`: شامل manifest اصلی (MPD، مستر M3U8) است
* `DFVariant`: شامل فهرستی از لیست‌های پخش فرزند HLS به‌صورت رشته برای کیفیت داده‌شده است
* `DFVariantName`: شامل فهرستی از نام‌های لیست‌های پخش فرزند مرتبط HLS، با همان ترتیب manifestها در DFVariant است

به هر PID خروجی، ویژگی‌های زیر اختصاص داده خواهد شد:
* `DFMode`: برای segb روی 1 و برای mani روی 2 تنظیم می‌شود
* `DCue`: روی inband تنظیم می‌شود
* `DFPStart`: روی مقدار شروع دورهٔ (period) فعلی تنظیم می‌شود
* `FileName`: روی سگمنت مقداردهی اولیهٔ (init segment) مرتبط، در صورت وجود، تنظیم می‌شود
* `Representation`: روی شناسهٔ representation مرتبط در manifest تنظیم می‌شود
* `DashDur`: روی میانگین مدت‌زمان سگمنت طبق آنچه در manifest آمده است تنظیم می‌شود
* `source_template`: روی true تنظیم می‌شود تا نشان دهد الگوی منبع شناخته‌شده است
* `stl_timescale`: مقیاس زمانی استفاده‌شده توسط SegmentTimeline، یا 0 در صورت نبود SegmentTimeline
* `init_url`: نشانی اینترنتی مقداردهی اولیهٔ حل‌نشده (همان‌طور که در MPD یا در لیست پخش variant آمده است)
* `manifest_url`: نشانی URL فایل manifest
* `hls_variant_name`: نام لیست پخش variant در HLS (همان‌طور که در لیست پخش مستر HLS آمده است)

هنگامی که dasher به همراه این حالت استفاده شود، تمام سگمنت‌های تولیدشده مجبور خواهند بود دقیقاً همان نام، مدت‌زمان و ویژگی‌های قطعه‌بندی (fragmentation) سگمنت‌های ورودی را داشته باشند. بنابراین برای نشست‌هایی که روی فضای ذخیره‌سازی محلی ذخیره یا تولید می‌شوند، توصیه نمی‌شود که خروجی در همان دایرکتوری ایجاد شود.

auto_switch (sint، پیش‌فرض: 0): تعویض کیفیت در هر N قطعه
* positive: رفتن به کیفیت بالاتر یا چرخش به پایین‌ترین کیفیت
* negative: رفتن به کیفیت پایین‌تر یا چرخش به بالاترین کیفیت
* 0: غیرفعال

segstore (enum، پیش‌فرض: mem): فعال‌سازی حافظهٔ پنهان فایل
* mem: تمام فایل‌ها در حافظه ذخیره می‌شوند، بدون ورودی/خروجی دیسک
* disk: فایل‌ها روی دیسک ذخیره می‌شوند اما پس از پخش دور ریخته می‌شوند
* cache: تمام فایل‌ها روی دیسک ذخیره و نگهداری می‌شوند

algo (str، پیش‌فرض: gbuf، Enum: none|grate|gbuf|bba0|bolaf|bolab|bolau|bolao|JS): الگوریتم انطباق مورد استفاده
* none: بدون منطق انطباق
* grate: الگوریتم قدیمی GPAC بر اساس نرخ در دسترس
* gbuf: الگوریتم قدیمی GPAC بر اساس میزان پر بودن بافر
* bba0: BBA-0
* bolaf: BOLA Finite
* bolab: BOLA Basic
* bolau: BOLA-U
* bolao: BOLA-O
* JS: استفاده از فایل JS (با مسیر مشخص‌شده یا در $GSHARE/scripts/) برای الگوریتم (پسوند ‎.js می‌تواند حذف شود)

start_with (enum، پیش‌فرض: max_bw): معیارهای انتخاب اولیه
* min_q: شروع با پایین‌ترین کیفیت
* max_q: شروع با بالاترین کیفیت
* min_bw: شروع با پایین‌ترین نرخ بیت
* max_bw: شروع با بالاترین نرخ بیت؛ اگر از تایل‌ها استفاده شود، برای تمام تایل‌های با اولویت پایین پهنای باند کمتر (زیر حداکثر) انتخاب می‌شود
* max_bw_tiles: شروع با بالاترین نرخ بیت؛ اگر از تایل‌ها استفاده شود، برای تمام تایل‌های با اولویت پایین کمترین پهنای باند انتخاب خواهد شد

max_res (bool، پیش‌فرض: true): استفاده از بیشترین تفکیک‌پذیری رسانه برای پیکربندی نمایشگر
abort (bool، پیش‌فرض: false): اجازهٔ لغو در حین بارگیری قطعه
use_bmin (enum، پیش‌فرض: auto): مدیریت بافر پخش
* no: استفاده از تنظیمات پیش‌فرض پخش‌کننده
* auto: اطلاع‌رسانی مدت‌زمان قطعه به پخش‌کننده در صورتی که حالت تأخیر کم نباشد
* mpd: استفاده از کمترین زمان بافر مشخص‌شده در MPD

shift_utc (sint، پیش‌فرض: 0): جابه‌جایی ساعت UTC در DASH به میلی‌ثانیه
spd (sint، پیش‌فرض: -I): تأخیر نمایش پیشنهادی به میلی‌ثانیه
mcast_shift (sint، پیش‌فرض: 0): جابه‌جایی زمان درخواست‌ها به میلی‌ثانیه داده‌شده برای منابع چندپخشی
server_utc (bool، پیش‌فرض: yes): استفاده از سرآیندهای HTTP با نام ServerUTC یا Date به‌جای UTC محلی
screen_res (bool، پیش‌فرض: yes): استفاده از تفکیک‌پذیری صفحه در مرحلهٔ انتخاب
init_timeshift (sint، پیش‌فرض: 0): تنظیم timeshift اولیه به میلی‌ثانیه (اگر >0) یا بر حسب درصد بافر timeshift (اگر <0)
tile_mode (enum، پیش‌فرض: none): حالت انطباق تایل
* none: نرخ بیت به‌طور برابر میان تمام تایل‌ها تقسیم می‌شود
* rows: نرخ بیت برای هر سطر از تایل‌ها با شروع از بالا کاهش می‌یابد؛ نرخ یکسان برای هر تایل در آن سطر
* rrows: نرخ بیت برای هر سطر از تایل‌ها با شروع از پایین کاهش می‌یابد؛ نرخ یکسان برای هر تایل در آن سطر
* mrows: نرخ بیت فقط برای سطرهای بالا و پایین کاهش می‌یابد؛ نرخ یکسان برای هر تایل در آن سطر
* cols: نرخ بیت برای هر ستون از تایل‌ها با شروع از چپ کاهش می‌یابد؛ نرخ یکسان برای هر تایل در آن ستون
* rcols: نرخ بیت برای هر ستون از تایل‌ها با شروع از راست کاهش می‌یابد؛ نرخ یکسان برای هر تایل در آن ستون
* mcols: نرخ بیت فقط برای ستون‌های چپ و راست کاهش می‌یابد؛ نرخ یکسان برای هر تایل در آن ستون
* center: کاهش نرخ بیت برای تمام تایل‌های واقع در لبهٔ تصویر
* edges: کاهش نرخ بیت برای تمام تایل‌های واقع در مرکز تصویر

tiles_rate (uint، پیش‌فرض: 100): مقدار پهنای باند برای استفاده در هر سطح کیفیت را مشخص می‌کند. نرخ به‌صورت بازگشتی در هر سطح اعمال می‌شود، مثلاً اگر 50% باشد، سطح ۱ مقدار 50%، سطح ۲ مقدار 25% و... دریافت می‌کند. اگر 100 باشد، تخصیص خودکار نرخ با بیشینه‌سازی کیفیت به ترتیب اولویت انجام خواهد شد. اگر 0 باشد، جریان بیت میان تایل‌ها/کیفیت‌ها هموارسازی نمی‌شود و ممکن است هم‌زمانی میان رسانه‌های مختلف رخ دهد
delay40X (uint، پیش‌فرض: 500): تأخیر بر حسب میلی‌ثانیه برای انتظار میان دو خطای 40X روی همان قطعه
exp_threshold (uint، پیش‌فرض: 100): تأخیر بر حسب میلی‌ثانیه برای انتظار پس از AvailabilityEndDate قطعه پیش از آنکه قطعه مفقود تلقی شود
switch_count (uint، پیش‌فرض: 1): مشخص می‌کند که کلاینت پیش از افزایش پهنای باند باید چند قطعه منتظر بماند. اگر 0 باشد، تعویض به محض کافی بودن پهنای باند رخ می‌دهد، اما این حالت در برابر تغییرات شبکه آسیب‌پذیرتر است
aggressive (bool، پیش‌فرض: no): در صورت فعال بودن، الگوریتم تعویض نزدیک‌ترین پهنای باند متناسب با نرخ بارگیری موجود را هدف قرار می‌دهد. در صورت no، الگوریتم تعویض بازنمایی با کمترین نرخ بیتی را که بالاتر از مورد در حال پخش فعلی است هدف قرار می‌دهد (مثلاً تلاش نمی‌کند به حداکثر پهنای باند جهش کند)
debug_as (uintl): تنها مجموعه‌های انطباق مشخص‌شده با نمایه‌هایشان (مبتنی بر 0) در MPD را پخش می‌کند
speedadapt (bool، پیش‌فرض: no): فعال‌سازی انطباق بر اساس سرعت پخش
noxlink (bool، پیش‌فرض: no): غیرفعال‌سازی xlink در صورتی که period هم دارای xlink و هم مجموعه‌های انطباق باشد
query (str): تنظیم رشتهٔ پرس‌وجو (بدون علامت '?' ابتدایی) جهت الحاق به xlink دوره‌ها (periods)
split_as (bool، پیش‌فرض: no): جداسازی تمام کیفیت‌ها در مجموعه‌های انطباق مختلف و جاری‌سازی تمام کیفیت‌ها. بازنمایی‌های وابسته (مقیاس‌پذیر) به‌صورت مستقل در نظر گرفته می‌شوند
noseek (bool، پیش‌فرض: no): غیرفعال‌سازی پرش (seeking) به قطعه(های) اولیه در حالت پویا (کاربردی در زمان عدم تطابق ساعت‌های UTC)
bwcheck (uint، پیش‌فرض: 5): حداقل زمان بر حسب میلی‌ثانیه بین دو بررسی پهنای باند هنگام مجاز بودن لغو بارگیری قطعه
lowlat (enum، پیش‌فرض: early): سیاست زمان‌بندی قطعه در حالت تأخیر کم
* no: غیرفعال‌سازی تأخیر کم
* strict: رعایت دقیق آفست AST در حالت تأخیر کم
* early: اجازهٔ واکشی قطعات زودتر از AST آن‌ها در حالت تأخیر کم هنگامی که PID ورودی خالی است

forward (enum، پیش‌فرض: none): حالت بازفرستادن قطعه
* none: خواندن عادی DASH
* file: فایل‌ها تفکیک (demultiplex) نمی‌شوند و به‌صورت PIDهای فایل بازفرستاده می‌شوند (مستلزم segstore=mem)
* segb: فعال‌سازی .I split_as، سیگنال‌دهی مرزهای قطعه و فرگمنت (sigfrag) در منابع و درج نشانه‌های DASH
* mani: مشابه segb و همچنین بازفرستادن مانیفست‌ها

fmodefwd (bool، پیش‌فرض: yes): بازفرستادن بسته‌ها به‌جای رونوشت گرفتن از آن‌ها در حالت بازفرستادن فایل. رونوشت بسته ممکن است عملکرد را در حالت تأخیر کم بهبود بخشد
skip_lqt (bool، پیش‌فرض: no): غیرفعال‌سازی رمزگشایی تایل‌های با بیشترین نشانه‌های افت کیفیت (غیرقابل‌مشاهده، خارج از میدان دید) برای اهداف اشکال‌زدایی
llhls_merge (bool، پیش‌فرض: yes): ادغام بخش‌های محدودهٔ بایتی LL-HLS در یک درخواست محدودهٔ بایتی بازِ واحد
groupsel (bool، پیش‌فرض: no): انتخاب گروه‌ها بر اساس زبان (به‌طور پیش‌فرض تمام گروه‌های قابل پخش نشان داده می‌شوند)
xas (enum، پیش‌فرض: codec): فعال‌سازی تعویض بین مجموعه‌های انطباق (در صورت تنظیم .I split_as غیرفعال است)
* no: غیرفعال
* codec: تعویض بین مجموعه‌ها تنها برای همان codec مجاز است
* all: تعویض بین مجموعه‌ها برای انواع مختلف بازنمایی مجاز است

chain_mode (enum، پیش‌فرض: on): حالت زنجیره‌سازی MPD
* off: عدم استفاده از زنجیره‌سازی MPD
* on: استفاده از زنجیره‌سازی MPD پس از پایان، بازگشت به حالت قبلی در صورت شکست در بارگیری MPD
* error: استفاده از زنجیره‌سازی MPD پس از پایان یا در صورت بروز خطا (در بارگیری MPD یا قطعه)

asloop (bool، پیش‌فرض: false): هنگامی که تعویض خودکار فعال است، به‌صورت رفت و برگشتی بین بالاترین و پایین‌ترین کیفیت‌ها پیمایش می‌کند
bsmerge (bool، پیش‌فرض: true): مجاز بودن ادغام جریان‌های بیت ویدیو (در حال حاضر تنها HEVC)
keep_burl (enum، پیش‌فرض: strip): واپایش BaseURL در مانیفست
* strip: حذف BaseURL (پیش‌فرض)
* keep: نگه‌داشتن BaseURL
* inject: تزریق URL نسبی محلی پیش از مقدار BaseURL مشخص‌شده با گزینهٔ relative_url

relative_url (str، پیش‌فرض: ./): رشتهٔ نسبی برای تزریق پیش از BaseURL وقتی که keep_base_url روی inject تنظیم شده است

توضیحات: رمزگشای CENC

رمزگشای CENC از رمزگشایی جریان‌های CENC، ISMA، HLS Sample-AES (MPEG2 ts) و Adobe پشتیبانی می‌کند.

برای HLS، کلید بر اساس URI کلید در مانیفست بازیابی می‌شود.
در غیر این صورت، فیلتر از یک فایل پیکربندی استفاده می‌کند.
نحو نگارش در https://wiki.gpac.io/xmlformats/Common-Encryption در دسترس است.
فایل پیکربندی DRM می‌تواند به ازای هر PID با استفاده از ویژگی DecryptInfo (بالاترین اولویت)، CryptInfo (اولویت پایین‌تر) یا در سطح فیلتر با استفاده از .I cfile (پایین‌ترین اولویت) تنظیم شود.
هنگامی که فایل به ازای هر PID تنظیم شود، نخستین CryptInfo با همان شناسه (ID) استفاده می‌شود، در غیر این صورت نخستین CryptInfo به کار می‌رود. هنگامی که فایل به‌طور سراسری (نه به ازای هر PID) تنظیم شود، نخستین CrypTrack در فایل پیکربندی DRM با همان شناسه به کار می‌رود، در غیر این صورت نخستین CrypTrack با شناسه 0 یا مشخص‌نشده استفاده می‌شود.

cfile (str): مکان فایل crypt
decrypt (enum، پیش‌فرض: full): حالت رمزگشایی (تنها CENC)
* full: رمزگشایی همه‌چیز، با صدور خطا در صورت پیدا نشدن کلیدها
* nokey: رمزگشایی هر آنچه که کلید برایش پیدا شود، در غیر این صورت صرف‌نظر از رمزگشایی
* skip: عدم رمزگشایی هیچ‌چیز
* pad0: عدم رمزگشایی هیچ‌چیز و جایگزینی تمام بیت‌های رمزگذاری‌شده با 0
* pad1: عدم رمزگشایی هیچ‌چیز و جایگزینی تمام بیت‌های رمزگذاری‌شده با 1
* padsc: عدم رمزگشایی هیچ‌چیز و جایگزینی تمام بایت‌های رمزگذاری‌شده با کدهای شروع (start codes)

drop_keys (uintl): کلیدهای دارای اندیس‌های مبتنی بر ۱ (1-based) مشخص‌شده ناموجود در نظر گرفته شوند (اشکال‌زدایی چندکلیدی)
kids (strl): تعریف KIDها. اگر keys خالی باشد، کلیدهای دارای KID مشخص‌شده (به صورت رشته هگز) ناموجود در نظر گرفته شوند (اشکال‌زدایی)
keys (strl): تعریف مقادیر کلید برای هر یک از KIDهای مشخص‌شده
hls_cenc_patch_iv (bool، پیش‌فرض: false): نادیده گرفتن به‌روزرسانی‌های IV در برخی جریان‌های خراب HLS+CENC

توضیحات: رمزنگار CENC

رمزنگار CENC از رمزنگاری CENC، ISMA و Adobe پشتیبانی می‌کند. این فیلتر از یک فایل پیکربندی DRM برای اعلان کلیدها استفاده می‌کند.
نحو نگارش در https://wiki.gpac.io/xmlformats/Common-Encryption در دسترس است.
فایل پیکربندی DRM می‌تواند به ازای هر PID با استفاده از ویژگی CryptInfo، یا در سطح فیلتر با استفاده از .I cfile تنظیم شود.
هنگامی که فایل پیکربندی DRM به ازای هر PID تنظیم شود، نخستین CrypTrack در فایل پیکربندی DRM با همان شناسه (ID) استفاده می‌شود، در غیر این صورت نخستین CrypTrack استفاده می‌شود (بدون در نظر گرفتن شناسه CrypTrack).
هنگامی که فایل پیکربندی DRM به‌طور سراسری (نه به ازای هر PID) تنظیم شود، نخستین CrypTrack در فایل پیکربندی DRM با همان شناسه به کار می‌رود، در غیر این صورت نخستین CrypTrack با شناسه 0 یا مشخص‌نشده استفاده می‌شود.
اگر هیچ فایل پیکربندی DRM برای یک PID مشخص تعریف نشده باشد، این PID رمزنگاری نخواهد شد، یا در صورت مشخص شدن .I allc یک خطا صادر می‌شود.

cfile (str): مکان فایل crypt
allc (bool): صدور خطا در صورتی که هیچ فایل پیکربندی DRM برای یک PID پیدا نشود
bk_stats (bool): چاپ تعداد بلوک‌های رمزنگاری‌شده در stdout هنگام خروج
bk_skip (bool): صرف‌نظر از رمزنگاری اما انجام تمام وظایف دیگر (حالت آزمایشی)

توضیحات: مالتی‌پلکسر ISOBMFF/QT

این فیلتر جریان‌ها را به ISOBMFF (استاندارد 14496-12 و مشخصات مشتق‌شده) یا QuickTime مالتی‌پلکس می‌کند

به‌طور پیش‌فرض تمام PIDهای ورودی که ویژگی ItemID برای آن‌ها تنظیم شده باشد، به عنوان آیتم مالتی‌پلکس می‌شوند، در غیر این صورت به عنوان تراک مالتی‌پلکس می‌شوند.
برای جلوگیری از مالتی‌پلکس شدن آیتم‌های منبع به عنوان آیتم، از گزینه .I -itemid در دی‌مالتی‌پلکسر ISOBMFF استفاده کنید.
مثال
gpac -i source.mp4:itemid=false -o file.mp4

برای اجبار جریان‌های غیرآیتمی به مالتی‌پلکس شدن به عنوان آیتم، از گزینه #ItemID روی آن PID استفاده کنید:
gpac -i source.jpg:#ItemID=1 -o file.mp4

گزینه .I store امکان کنترل قطعه‌بندی بودن فایل (frag) یا نبودن آن، و در صورت عدم قطعه‌بندی، نحوه انجام درهم‌بافی (inter) را فراهم می‌کند.
برای مواردی که محدودیت‌های فضای دیسک شدید است و امکان استفاده از قطعه‌بندی وجود ندارد، توصیه می‌شود از حالت‌های flat یا fstart (شروع سریع یا fast-start) استفاده شود.
حالت sfrag مشابه حالت frag است اما قطعه‌ها را با نمونه‌های SAP تراز می‌کند. این حالت هنگام استفاده از sfrag_tolerance به‌طور ضمنی فعال می‌شود.
مقدار sfrag_tolerance به‌صورت درصدی از مدت‌زمان قطعه (cdur) بیان می‌شود. این پارامتر امکان تعدیل مدت‌زمان قطعه‌ها را ضمن حفظ تعداد یکسان قطعه‌ها در هر سگمنت فراهم می‌کند. این ویژگی برای تراز کردن قطعه‌ها با نمونه‌های SAP که در نقاط تصادفی قرار دارند (معمولاً برش‌های صحنه یا رویدادها) مفید است.

گزینه .I vodcache امکان کنترل نحوه تولید سگمنت‌های DASH onDemand را فراهم می‌کند:
- اگر روی on تنظیم شود، داده‌های فایل در یک فایل موقت روی دیسک ذخیره شده و پس از تکمیل تخلیه (flush) می‌شوند؛ هیچ پدینگی (padding) وجود نخواهد داشت.
- اگر روی insert تنظیم شود، SIDX/SSIX پس از تکمیل فایل از طریق جابه‌جایی بایت‌ها در فایل تزریق می‌شود. در این حالت نیازی به پدینگ نیست اما ممکن است با تمام مقصدهای خروجی (output sinks) سازگار نباشد و نوشتن فایل زمان بیشتری ببرد.
- اگر روی replace تنظیم شود، اندازه SIDX/SSIX بر اساس مدت‌زمان و طول سگمنت DASH تخمین زده می‌شود و پیش از SIDX نهایی، از پدینگ در فایل استفاده خواهد شد. اگر PIDهای ورودی ویژگی DSegs را تنظیم کرده باشند، این مقدار به‌عنوان تعداد سگمنت‌ها استفاده خواهد شد.
حالت‌های on و insert دقیقاً فایل یکسانی تولید می‌کنند، در حالی که حالت replace ممکن است یک باکس free پیش از sidx تزریق کند.

باکس‌های سفارشی را می‌توان به‌صورت وصله‌های باکس (box patches) تعیین کرد:
برای وصله در سطح movie، باید از گزینه .I boxpatch فیلتر استفاده شود.
وصله باکس به ازای هر PID را می‌توان از طریق ویژگی boxpatch مربوط به PID تعیین کرد.
مثال
gpac -i source:#boxpatch=myfile.xml -o mux.mp4

وصله باکس به ازای هر Item را می‌توان از طریق ویژگی boxpatch مربوط به PID تعیین کرد.
مثال
gpac -i source:1ItemID=1:#boxpatch=myfile.xml -o mux.mp4

وصله باکس در حالت قطعه‌بندی‌شده پیش از نوشتن باکس آغازین moov، یا در غیر این صورت هنگام نوشتن کامل فایل اعمال می‌شود.
وصله باکس می‌تواند نام یک فایل یا یک رشته کامل XML باشد.

هنگامی که برچسب‌گذاری فعال باشد، فیلتر ویژگی CoverArt و تمام ویژگی‌های سفارشی روی PID ورودی را زیر نظر می‌گیرد.
نام برچسب‌های توکار با دستور MP4Box -h tags مشخص شده‌اند.
برچسب‌های QT را می‌توان با استفاده از نام‌های ویژگی qtt_NAME مشخص کرد، و با قالب‌بندی تعیین‌شده در MP4Box -h tags اضافه خواهند شد.
سایر کلاس‌های برچسب را می‌توان با استفاده از نام‌های ویژگی tag_NAME مشخص کرد، و در صورتی که .I itags روی all تنظیم شده باشد بر اساس قواعد زیر اضافه خواهند شد:
- مقدار NAME به‌عنوان یک 4CC باکس، در صورتی که طول NAME چهار نویسه باشد
- مقدار NAME به‌عنوان یک 4CC باکس، در صورتی که طول NAME ۳ نویسه باشد، و پیشوند 0xA9 به آن اضافه خواهد شد
- مقدار CRC32 مربوط به NAME به‌عنوان یک 4CC باکس، در صورتی که طول NAME چهار نویسه نباشد

نام‌های ویژگی با قالب cust_NAME@MEAN به‌عنوان یک برچسب سفارشی با نام NAME و مفهوم MEAN اضافه می‌شوند. هر دوی NAME و MEAN می‌توانند خالی باشند.

فیلتر برای ایجاد مدخل‌های داده کاربر (user data)، ویژگی‌های PID زیر را بررسی می‌کند:
* `udtab`: تنظیم باکس user-data ترک روی مقدار ویژگی که باید یک blob آرایه باکس سریال‌شده باشد
* `mudtab`: تنظیم باکس user-data مربوط به movie روی مقدار ویژگی که باید یک blob آرایه باکس سریال‌شده باشد
* `udta_U4CC`: تنظیم مدخل باکس user-data ترک از نوع U4CC روی مقدار ویژگی
* `mudta_U4CC`: تنظیم مدخل باکس user-data مربوط به movie از نوع U4CC روی مقدار ویژگی
* `tkgp_T4CC`: تنظیم/حذف عضویت در گروه ترک با نوع T4CC و شناسه مشخص‌شده با مقدار ویژگی. مقدار منفی N عضویت را از گروه ترک با شناسه -N حذف می‌کند

مثال
gpac -i src.mp4:#udta_tagc='My Awesome Tag' -o tag.mp4
gpac -i src.mp4:#mudtab=data@box.bin -o tag.mp4

فیلتر ویژگی‌های داده سفارشی زیر را روی بسته‌های ورودی زیر نظر می‌گیرد:
* `grp_A4CC`: نگاشت بسته به شرح گروه نمونه از نوع A4CC و تنظیم مدخل روی بار داده (payload) ویژگی
* `grp_A4CC_param`: همانند بالا و تنظیم grouping_type_parameter نمونه به گروه روی param
* `sai_A4CC`: اضافه کردن بار داده (payload) ویژگی به‌عنوان اطلاعات کمکی نمونه از نوع A4CC
* `sai_A4CC_param`: همانند بالا و تنظیم aux_info_type_parameter روی param

ویژگی grp_EMSG شامل یک یا چند EventMessageBox است، همان‌طور که در MPEG-DASH تعریف شده است.
- در حالت قطعه‌بندی‌شده، وجود این ویژگی در یک بسته باعث شروع یک قطعه جدید می‌شود که در آن، باکس‌ها پیش از moof نوشته می‌شوند
- در حالت عادی، در حال حاضر از یک گروه نمونه داخلی از نوع EMSG برای ذخیره‌سازی باکس emsg استفاده می‌شود

فیلتر ویژگی FileNumber را روی بسته‌های ورودی زیر نظر می‌گیرد تا فایل‌های جدید (حالت عادی) یا بخش‌های جدید (حالت DASH) ایجاد کند.

فیلتر ویژگی DSIWrap (به‌صورت 4CC در قالب int یا string) را روی PID ورودی زیر نظر می‌گیرد تا پیکربندی رمزگشا را در باکسی از نوع داده‌شده قرار دهد (بسته‌بندی ناشناخته).
مثال
-i unkn.mkv:#ISOMSubtype=VIUK:#DSIWrap=cfgv -o t.mp4

این کار جریان ناشناخته را با استفاده از نقطه کد VIUK در stsd بسته‌بندی کرده و تمام داده‌های پیکربندی رمزگشا را در یک باکس cfgv قرار می‌دهد.

اگر .I pad_sparse تنظیم شده باشد، فیلتر ویژگی Sparse را روی PID ورودی زیر نظر می‌گیرد تا تصمیم بگیرد آیا بسته‌های خالی برای حفظ اطلاعات مدت‌زمان بسته تزریق شوند یا خیر.
چنین بسته‌هایی تنها زمانی تزریق می‌شوند که وقفه‌ای در خط زمانی شناسایی شود.
- اگر Sparse وجود نداشته باشد، بسته خالی برای جریان‌های متنی و فراداده ناشناخته درج می‌شود
- اگر Sparse برابر true باشد، بسته خالی برای تمام انواع جریان درج می‌شود
- اگر Sparse برابر false باشد، بسته خالی هرگز تزریق نمی‌شود

نوع رسانه پیش‌فرض استفاده‌شده برای یک PID را می‌توان با استفاده از ویژگی StreamSubtype بازنویسی کرد.
مثال
-i src.srt:#StreamSubtype=sbtl [-i ...] -o test.mp4

این کار جریان متنی را وادار می‌کند تا به‌جای نوع پیش‌فرض text، از نوع گرداننده sbtl استفاده کند.
جریان‌های زیرنویس می‌توانند با تنظیم ویژگی IsChap روی PID دلخواه، به‌عنوان فصل‌ها استفاده شوند.
مثال
-i src.srt:#IsChap [-i ...] -o test.mp4

این کار جریان متنی را وادار می‌کند تا به‌عنوان یک قطعه فصل QT استفاده شود.

m4sys (bool، پیش‌فرض: false): اجبار قطعه‌ها به سیگنال‌دهی MPEG-4 Systems
dref (bool، پیش‌فرض: false): تنها ارجاع داده‌ها از فایل منبع - با تمام منابع رسانه‌ای سازگار نیست
ctmode (enum، پیش‌فرض: auto): تنظیم حالت آفست ترکیب (composition offset) برای قطعه‌های ویدیویی
* auto: در صورت تکه‌تکه کردن یک منبع ISOBMFF، از تنظیمات منبع استفاده می‌کند در غیر این صورت به edit تبدیل می‌شود
* edit: استفاده از فهرست‌های ویرایش (edit lists) برای انتقال فریم اول به زمان ارائه 0
* noedit: نادیده‌گرفتن فهرست‌های ویرایش و عدم انتقال خط زمانی
* negctts: استفاده از ctts نسخه 1 با آفست‌های احتمالاً منفی و بدون فهرست‌های ویرایش

dur (frac، پیش‌فرض: 0): تنها مدت‌زمان مشخص‌شده را وارد می‌کند. در صورت منفی بودن، تعداد فریم‌های کدگذاری‌شده برای وارد کردن را مشخص می‌کند
pack3gp (uint، پیش‌فرض: 1): بسته‌بندی تعداد مشخصی از فریم‌های صوتی 3GPP در یک نمونه (sample)
importer (bool، پیش‌فرض: false): سازگاری با واردکننده قدیمی، پیشرفت وارد کردن را نمایش می‌دهد
pack_nal (bool، پیش‌فرض: false): بسته‌بندی مجدد طول اندازه NALU به حداقل اندازه ممکن برای ویدیوهای مبتنی بر NALU (مانند AVC/HEVC/...)
xps_inband (enum، پیش‌فرض: no): استفاده از مجموعه پارامترهای درون‌باندی (درون داده‌های نمونه) برای ویدیوهای مبتنی بر NALU (مانند AVC/HEVC/...)
* no: مجموعه‌های پارامتر درون‌باندی نیستند، ممکن است چندین شرح نمونه ایجاد شود
* pps: مجموعه‌های پارامتر تصویر به‌صورت درون‌باندی هستند، سایر مجموعه‌های پارامتر در شرح نمونه قرار دارند
* all: مجموعه‌های پارامتر درون‌باندی هستند، هیچ مجموعه پارامتری در شرح نمونه وجود ندارد
* both: مجموعه‌های پارامتر درون‌باندی هستند، به‌عنوان درون‌باندی اعلام شده‌اند و همچنین اولین مجموعه در شرح نمونه نگه داشته می‌شود
* mix: ایجاد فایل‌های غیر استاندارد با استفاده از یک مدخل نمونه تکی با اولین PSهای یافت‌شده، و انتقال سایر PSها به‌صورت درون‌باندی
* auto: حفظ پیکربندی منبع، یا پیش‌فرض no اگر منبع ISOBMFF نباشد

store (enum، پیش‌فرض: inter): حالت ذخیره‌سازی فایل
* inter: انجام درهم‌بافی (interleave) دقیق فایل با استفاده از .I cdur (نیازمند ذخیره‌سازی موقت همه رسانه‌ها)
* flat: نوشتن نمونه‌ها به‌محض رسیدن و قرار دادن moov در انتها (سریع‌ترین حالت)
* fstart: نوشتن نمونه‌ها به‌محض رسیدن و قرار دادن moov قبل از mdat
* tight: استفاده از درهم‌بافی نمونه‌به‌نمونه برای همه قطعه‌ها (نیازمند ذخیره‌سازی موقت همه رسانه‌ها)
* frag: تکه‌تکه کردن فایل با استفاده از مدت‌زمان cdur
* sfrag: تکه‌تکه کردن فایل با استفاده از مدت‌زمان cdur اما با تنظیم برای شروع با SAP1/3

cdur (frac، پیش‌فرض: -1/1): مدت‌زمان قطعه داده (chunk) برای حالت‌های flat و درهم‌بافی یا مدت‌زمان قطعه (fragment) برای حالت‌های تکه‌تکه‌سازی
* 0: بدون درهم‌بافی خاص اما moov در ابتدا
* negative: پیش‌فرض 1.0 مگر اینکه توسط نمایه ذخیره‌سازی بازنویسی شود

moovts (sint، پیش‌فرض: 600): مقیاس زمانی (timescale) برای فیلم. مقدار منفی مقیاس زمانی رسانه اولین قطعه اضافه‌شده را انتخاب می‌کند
moof_first (bool، پیش‌فرض: true): تولید قطعات با شروع از moof و سپس mdat
abs_offset (bool، پیش‌فرض: false): استفاده از آفست مطلق فایل در قطعات به‌جای آفست‌ها از moof
fsap (bool، پیش‌فرض: true): تقسیم trunها در قطعات ویدیویی در SAPها جهت کاهش اندازه فایل
subs_sidx (sint، پیش‌فرض: -1): تعداد زیربخش‌ها در هر sidx
* 0: یک sidx تکی
* >0: به‌صورت sidx سلسله‌مراتبی یا زنجیره‌ای (daisy-chained)
* <0: غیرفعال‌سازی sidx
* -2: حذف sidx در صورت وجود در PID منبع

m4cc (str): کد ۴ نویسه‌ای (4CC) از باکس خالی برای الحاق به انتهای یک بخش (حالت DASH) یا یک قطعه (حالت غیر DASH)
chain_sidx (bool، پیش‌فرض: false): استفاده از اتصال زنجیره‌ای SIDX
msn (uint، پیش‌فرض: 1): شماره توالی اولین moof به N
msninc (uint، پیش‌فرض: 1): افزایش شماره توالی بین باکس‌های moof
tfdt (lfrac، پیش‌فرض: 0): تنظیم زمان اولیه رمزگشایی (tfdt) برای اولین traf
tfdt_traf (bool، پیش‌فرض: false): اجبار به وجود باکس tfdt در هر traf
nofragdef (bool، پیش‌فرض: false): غیرفعال‌سازی پرچم‌های پیش‌فرض قطعه در moov اولیه
straf (bool، پیش‌فرض: false): استفاده از یک traf تکی در هر moof (برای Smooth Streaming و موارد مشابه)
strun (bool، پیش‌فرض: false): استفاده از یک trun تکی در هر traf (برای Smooth Streaming و موارد مشابه)
prft (enum، پیش‌فرض: sender): تنظیم حالت باکس prft، در حالت غیر تکه‌تکه غیرفعال است
* off: غیرفعال‌سازی باکس prft
* sender: قرار دادن زمان ntp پیش از رمزگذار
* both: قرار دادن زمان فرستنده (در صورت وجود) و زمان ntp هنگام نوشتن moof

psshs (enum، پیش‌فرض: moov): تنظیم حالت ذخیره‌سازی باکس‌های pssh
* moof: در اولین moof از هر بخش
* moov: در باکس movie
* both: در باکس movie و در اولین moof از هر بخش
* none: باکس pssh نادیده گرفته می‌شود

force_seig (bool، پیش‌فرض: false): اجبار به نوشتن گروه نمونه seig برای نمونه‌های رمزگذاری‌شده، حتی زمانی که همه نمونه‌ها از پیکربندی تک‌کلیدی پیش‌فرض CENC استفاده می‌کنند
sgpd_traf (bool، پیش‌فرض: false): ذخیره شرح‌های گروه نمونه در traf (تکرارشده برای هر traf). در صورت عدم استفاده، شرح‌های گروه نمونه در باکس movie ذخیره می‌شوند
vodcache (enum، پیش‌فرض: replace): فعال‌سازی حافظه موقت برای حالت‌های VoD DASH
* on: استفاده از حافظه موقت کل فایل برای تزریق sidx و ssix
* insert: درج sidx و ssix با جابه‌جا کردن بایت‌ها در فایل خروجی
* replace: محاسبه پیش‌دستانه الزامات فضا برای sidx و ssix و بازنویسی محدوده فایل در انتها

noinit (bool، پیش‌فرض: false): عدم تولید moov اولیه، برای حالت سوئیچینگ جریان بیت DASH استفاده می‌شود
tktpl (enum، پیش‌فرض: yes): استفاده از باکس track از ورودی در صورت وجود به‌عنوان الگو برای ایجاد قطعه جدید
* no: غیرفعال‌سازی الگو
* yes: همتاسازی قطعه (به‌جز ویرایش‌ها و پیکربندی رمزگشا)
* udta: فقط بارگذاری udta

mudta (enum، پیش‌فرض: yes): استفاده از udta و سایر باکس‌های افزونه moov از ورودی در صورت وجود
* no: غیرفعال‌سازی وارد کردن
* yes: همتاسازی تمام باکس‌های افزونه
* udta: فقط بارگذاری udta

mvex (bool، پیش‌فرض: false): قرار دادن باکس‌های mvex پس از باکس‌های trak
sdtp_traf (enum، پیش‌فرض: no): استفاده از باکس sdtp در باکس traf به‌جای استفاده از پرچم‌ها در مدخل‌های نمونه trun
* no: از sdtp استفاده نشود
* sdtp: استفاده از باکس sdtp برای نشان دادن وابستگی‌های نمونه و عدم نوشتن اطلاعات در پرچم‌های نمونه trun
* both: استفاده از باکس sdtp برای نشان دادن وابستگی‌های نمونه و همچنین نوشتن اطلاعات در پرچم‌های نمونه trun

trackid (uint، پیش‌فرض: 0): شناسه قطعه (track ID) ایجادشده برای تک‌قطعه. مقدار پیش‌فرض 0 از شناسه در دسترس بعدی استفاده می‌کند
fragdur (bool، پیش‌فرض: false): تکه‌تکه‌سازی بر اساس مدت‌زمان قطعه به‌جای CTS. بیشتر برای گزینه -frag در MP4Box استفاده می‌شود
btrt (bool، پیش‌فرض: true): تنظیم باکس btrt در شرح نمونه
styp (str): تنظیم برند اصلی styp بخش (و اختیاری نسخه) به 4CC[.version] داده‌شده
lmsg (bool، پیش‌فرض: false): تنظیم برند lmsg برای آخرین بخش یا قطعه
mediats (sint، پیش‌فرض: 0): تنظیم مقیاس زمانی رسانه. مقدار 0 به معنای ارث‌بری از PID است، مقدار -1 به معنای استخراج از نرخ نمونه‌برداری یا نرخ فریم است
ase (enum، پیش‌فرض: v0): تنظیم حالت مدخل نمونه صوتی برای چیدمان‌های فراتر از استریو
* v0: استفاده از سیگنال‌دهی v0 با تعداد کانال از جریان (به‌جز (e)AC3/4)، برای سازگاری عقب‌رو توصیه می‌شود
* v0s: استفاده از سیگنال‌دهی v0 و اجبار تعداد کانال به 2 (استریو) در صورت وجود بیش از 2 کانال
* v0bs: استفاده از سیگنال‌دهی v0 فقط از طریق جریان بیت
* v1: استفاده از سیگنال‌دهی v1، به سبک ISOBMFF (میکس PCM خام به سبک ISOBMFF)
* v1qt: استفاده از سیگنال‌دهی v1، به سبک QTFF
* v2qt: استفاده از سیگنال‌دهی v2، به سبک QTFF (نوع مدخل lpcm)

ssix (bool، پیش‌فرض: false): ایجاد باکس ssix در صورت حضور باکس sidx؛ سطح 1 محدوده‌های بایتی فریم‌های I و سطح 0xFF بقیه را نگاشت می‌کند
ccst (bool، پیش‌فرض: false): درج باکس محدودیت کدگذاری برای قطعه‌های ویدیویی
maxchunk (uint، پیش‌فرض: 0): تنظیم حداکثر اندازه چانک به بایت برای runها (فقط در حالت غیر تکه‌تکه‌شده استفاده می‌شود). 0 یعنی بدون محدودیت
noroll (bool، پیش‌فرض: false): غیرفعال‌سازی گروه‌بندی نمونه roll
norap (bool، پیش‌فرض: false): غیرفعال‌سازی گروه‌بندی نمونه rap
saio32 (bool، پیش‌فرض: false): استفاده از آفست ۳۲ بیتی برای مکان داده‌های جانبی (side data) به‌جای آفست ۶۴ بیتی
tfdt64 (bool، پیش‌فرض: false): استفاده از tfdt و sidx ۶۴ بیتی حتی برای برچسب‌های زمانی ۳۲ بیتی
compress (enum، پیش‌فرض: no): تنظیم حالت فشرده‌سازی باکس سطح بالا
* no: غیرفعال‌سازی فشرده‌سازی باکس
* moov: فقط فشرده‌سازی باکس moov (استفاده از cmov برای QT)
* moof: فقط فشرده‌سازی باکس‌های moof
* sidx: فشرده‌سازی باکس‌های moof و sidx
* ssix: فشرده‌سازی باکس‌های moof، sidx و ssix
* all: فشرده‌سازی باکس‌های moov، moof، sidx و ssix

fcomp (bool، پیش‌فرض: false): اجبار به استفاده از باکس فشرده حتی زمانی که اندازه فشرده بزرگ‌تر از غیرفشرده باشد
otyp (bool، پیش‌فرض: false): تزریق نوع فایل اصلی هنگام استفاده از باکس‌های فشرده
trun_inter (bool، پیش‌فرض: false): درهم‌بافی نمونه‌ها در trun بر اساس سطح زمانی، پایین‌ترین سطوح ابتدا ذخیره می‌شوند (این کار به تعداد مورد نیاز باکس trun ایجاد می‌کند)
truns_first (bool، پیش‌فرض: false): ذخیره track runها قبل از شرح گروه نمونه و اطلاعات رمزگذاری نمونه
block_size (uint، پیش‌فرض: 10000): اندازه بلوک خروجی هدف، 0 برای مقدار پیش‌فرض داخلی (10k)
boxpatch (str): اعمال وصله باکس پیش از نوشتن
deps (bool، پیش‌فرض: true): افزودن اطلاعات وابستگی‌های نمونه‌ها
mfra (bool، پیش‌فرض: false): فعال‌سازی دسترسی تصادفی قطعه فیلم (MFRA) هنگام تکه‌تکه‌سازی (هنگام DASH نادیده گرفته می‌شود)
forcesync (bool، پیش‌فرض: false): اجبار به همگام در نظر گرفتن تمام انواع SAP به‌عنوان نمونه‌های همگام (ممکن است فایل‌های ناسازگار با استاندارد تولید کند)
refrag (bool، پیش‌فرض: false): استفاده از پیش‌فرض‌های قطعه قطعه از فایل اولیه در صورت وجود به‌جای محاسبه آن‌ها از ویژگی‌های PID (هنگام پردازش بخش‌ها/قطعات مستقل استفاده می‌شود)
itags (enum، پیش‌فرض: strict): حالت تزریق برچسب
* none: هیچ برچسبی تزریق نشود
* strict: فقط تزریق برچسب‌های شناخته‌شده itunes
* all: تزریق تمام برچسب‌های ممکن

keep_utc (bool، پیش‌فرض: false): اجبار تمام فایل‌ها و قطعه‌های جدید به نگه‌داشتن زمان‌های ایجاد و تغییر UTC منبع
pps_inband (bool، پیش‌فرض: no): هنگامی که .I xps_inband تنظیم شده باشد، تزریق PPS در هر نمونه غیر از SAP 1/2/3
moovpad (uint، پیش‌فرض: 0): درج باکس free با اندازه مشخص پس از moov برای ویرایش درجا در آینده
cmaf (enum، پیش‌فرض: no): استفاده از رهنمودهای CMAF (فعال کردن mvex،‏ truns_first،‏ strun،‏ straf،‏ tfdt_traf،‏ chain_sidx و محدود کردن subs_sidx به -1 یا 0)
* no: عدم اعمال CMAF
* cmfc: استفاده از دستورالعمل‌های CMAF cmfc
* cmf2: استفاده از دستورالعمل‌های CMAF cmf2 (فعال‌سازی nofragdef)

pad_sparse (bool، پیش‌فرض: true): تزریق نمونه بدون داده (اندازه 0) جهت حفظ مدت‌زمان در قطعه‌های متنی پراکنده و فراداده نامشخص
force_dv (bool، پیش‌فرض: false): اجبار به انواع مدخل نمونه DV حتی زمانی که سازگاری با AVC/HEVC سیگنال‌دهی شده باشد
dvsingle (bool، پیش‌فرض: false): نادیده‌گرفتن نمایه 8 مربوط به DolbyVision در حالت xps inband اگر نمایه 5 از پیش تنظیم شده باشد
tsalign (bool، پیش‌فرض: true): فعال‌سازی تراز مجدد خط زمانی به 0 برای نمونه اول - در صورت false، زمان‌بندی اصلی با یک ویرایش خالی (احتمالاً طولانی) در ابتدا حفظ می‌شود
chapm (enum، پیش‌فرض: both): حالت ذخیره‌سازی فصل
* off: غیرفعال‌سازی فصل‌ها
* tk: استفاده از قطعه فصل (به سبک QT)
* udta: استفاده از فصل‌های باکس داده‌های کاربر (user-data)
* both: استفاده از هر دو قطعه فصل و udta

patch_dts (bool، پیش‌فرض: false): اصلاح مدت‌زمان نمونه‌های قبلی زمانی که dts به‌صورت یکنواخت افزایش نمی‌یابد
uncv (enum، پیش‌فرض: prof): استفاده از uncv (استاندارد ISO 23001-17) برای ویدیوی خام
* off: غیرفعال (همواره در هنگام میکس به QT چنین است)
* gen: فعال، عدم نوشتن نمایه
* prof: فعال و نوشتن نمایه در صورت مشخص بودن
* tiny: فعال و نوشتن نسخه کاهش‌یافته در صورت مشخص بودن و سازگار بودن نمایه

trunv1 (bool، پیش‌فرض: false): اجبار به استفاده از نسخه 1 در trun بدون در نظر گرفتن نوع رسانه یا برند CMAF
rsot (bool، پیش‌فرض: false): تزریق اطلاعات مازاد زمان‌بندی نمونه در صورت وجود
sfrag_tolerance (uint، پیش‌فرض: 0): شروع قطعه روی SAP در صورتی که قطعه قبلی کوتاه‌تر از درصد تعیین‌شده از cdur نباشد
scte35 (enum، پیش‌فرض: auto): سیگنال‌دهی SCTE-35
* auto: مقدار 'xmlbin' یا 'evte' بسته به ورودی
* xmlbin: جریان رویداد برون‌باندی (MPD) به همراه xml+bin (توصیه‌شده)
* inband: باکس‌های درون‌باندی emsg
* all: سیگنال‌دهی در تمام مکان‌های شناسایی‌شده
* none: بدون EventStream یا باکس‌های emsg

auto_reorder (bool، پیش‌فرض: false): مرتب‌سازی مجدد قطعه‌ها در moov (ابتدا ویدیو، سپس صدا، سپس متن و در نهایت سایر موارد)

توضیحات: بازفریم‌ساز QCP

این فیلتر فایل‌ها/داده‌های QCP را تجزیه کرده و فریم‌ها و PID صوتی متناظر را خروجی می‌دهد.

index (dbl، پیش‌فرض: 1.0): طول پنجره نمایه‌سازی

توضیحات: بازفریم‌ساز H263

این فیلتر فایل‌ها/داده‌های H263 را تجزیه کرده و فریم‌ها و PID تصویری متناظر را خروجی می‌دهد.

fps (frac، پیش‌فرض: 15000/1000): نرخ فریم واردسازی
index (dbl، پیش‌فرض: 1.0): طول پنجره نمایه‌سازی
notime (bool، پیش‌فرض: false): نادیده گرفتن برچسب‌های زمان ورودی، بازسازی از 0

توضیحات: بازفریم‌ساز M1V/M2V/M4V

این فیلتر فایل‌ها/داده‌های ویدیویی MPEG-1/2 و MPEG-4 part 2 را تجزیه کرده و فریم‌ها و PID ویدیویی متناظر را خروجی می‌دهد.
نکته: این فیلتر از آفست‌های منفی CTS استفاده می‌کند: CTS صحیح است، اما ممکن است DTS در برخی فریم‌ها بزرگ‌تر از CTS باشد.

fps (frac، پیش‌فرض: 0/1000): نرخ فریم واردسازی (مقدار 0 به‌طور پیش‌فرض از FPS جریان بیت یا 25 هرتز استفاده می‌کند)
index (dbl، پیش‌فرض: -1.0): طول پنجره نمایه‌سازی. اگر 0 باشد، جریان بیت برای مدت‌زمان بررسی (probe) نمی‌شود. یک مقدار منفی در صورتی که فایل منبع بزرگ‌تر از 20M باشد از نمایه‌سازی صرف‌نظر می‌کند (سرعت واردکننده‌ها را کاهش می‌دهد)، مگر اینکه دستوری برای پخش با محدوده شروع > 0 صادر شود
vfr (bool، پیش‌فرض: false): تنظیم واردسازی با نرخ فریم متغیر
importer (bool، پیش‌فرض: false): سازگاری با واردکننده قدیمی، نمایش نتایج واردسازی
notime (bool، پیش‌فرض: false): نادیده گرفتن برچسب‌های زمان ورودی، بازسازی از 0

توضیحات: خواننده NHNT

این فیلتر فایل‌ها/داده‌های NHNT را می‌خواند تا فریم‌ها و PID رسانه تولید کند.
مستندات NHNT در نشانی https://wiki.gpac.io/xmlformats/NHNT-Format در دسترس است

reframe (bool، پیش‌فرض: false): اجبار به تجزیه مجدد محتوای ارجاع‌شده
index (dbl، پیش‌فرض: 1.0): طول پنجره نمایه‌سازی

توضیحات: خواننده NHML

این فیلتر فایل‌ها/داده‌های NHML را می‌خواند تا فریم‌ها و PID رسانه تولید کند.
مستندات NHML در نشانی https://wiki.gpac.io/xmlformats/NHML-Format در دسترس است

reframe (bool، پیش‌فرض: false): اجبار به تجزیه مجدد محتوای ارجاع‌شده
index (dbl، پیش‌فرض: 1.0): طول پنجره نمایه‌سازی

توضیحات: بازفریم‌ساز AVC/HEVC

این فیلتر فایل‌ها/داده‌های AVC|H264 و HEVC را تجزیه کرده و فریم‌ها و PID ویدیویی متناظر را خروجی می‌دهد.
این فیلتر خروجی سازگار با ISOBMFF تولید می‌کند: کدهای شروع (start codes) حذف می‌شوند، فیلد طول NALU اضافه شده و پیکربندی avcC/hvcC ایجاد می‌شود.
نکته: این فیلتر از آفست‌های منفی CTS استفاده می‌کند: CTS صحیح است، اما ممکن است DTS در برخی فریم‌ها بزرگ‌تر از CTS باشد.

fps (frac، پیش‌فرض: 0/1000): نرخ فریم واردسازی (0 پیش‌فرض نرخ فریم برگرفته از bitstream یا 25 Hz است)
index (dbl، پیش‌فرض: -1.0): طول پنجره نمایه‌سازی (indexing). اگر 0 باشد، bitstream برای بررسی مدت‌زمان کاوش نمی‌شود. مقادیر منفی در صورتی که فایل مبدأ بزرگ‌تر از 20M باشد از نمایه‌سازی صرف‌نظر می‌کنند (سرعت واردکننده‌ها را کاهش می‌دهد)، مگر اینکه پخش با محدوده شروع > 0 صادر شود
explicit (bool، پیش‌فرض: false): استفاده از واردسازی لایه‌ای صریح (SVC/LHVC)
force_sync (bool، پیش‌فرض: false): اجبار به ایجاد نقاط همگام‌سازی روی نمونه‌های غیر IDR با برش‌های I (غیرمنطبق با استاندارد)
strict_poc (enum، پیش‌فرض: off): به تاخیر انداختن خروجی فریم یک GOP کامل به منظور اطمینان از صحت اطلاعات CTS هنگام تغییر ناگهانی POC
* off: غیرفعال‌سازی بافرینگ GOP
* on: فعال‌سازی بافرینگ GOP، با فرض عدم وجود خطا در POC
* error: فعال‌سازی بافرینگ GOP و تلاش برای شناسایی فریم‌های مفقودشده

nosei (bool، پیش‌فرض: false): حذف تمام پیام‌های sei
nosvc (bool، پیش‌فرض: false): حذف تمام داده‌های SVC/MVC/LHVC
novpsext (bool، پیش‌فرض: false): حذف تمام افزونه‌های VPS
importer (bool، پیش‌فرض: false): سازگاری با واردکننده قدیمی، نمایش نتایج واردسازی
nal_length (uint، پیش‌فرض: 4): تنظیم تعداد بایت‌های مورد استفاده برای کدگذاری فیلد طول: 1، 2 یا 4
subsamples (bool، پیش‌فرض: false): واردسازی اطلاعات زیرنمونه‌ها (subsamples)
deps (bool، پیش‌فرض: false): واردسازی اطلاعات وابستگی نمونه‌ها
refs (bool، پیش‌فرض: false): واردسازی فهرست تصویر مرجع نمونه (در حال حاضر تنها برای HEVC و VVC)
seirw (bool، پیش‌فرض: true): بازنویسی پیام‌های sei در AVC برای محدودیت‌های ISOBMFF
audelim (bool، پیش‌فرض: false): نگه‌داشتن جداکننده Access Unit در بار مفید (payload)
keepfiller (bool، پیش‌فرض: false): نگه‌داشتن واحدهای پُرکننده NAL در خروجی
notime (bool، پیش‌فرض: false): نادیده‌گرفتن برچسب‌های زمانی ورودی، بازسازی از 0
dv_mode (enum، پیش‌فرض: auto): سیگنال‌دهی برای DolbyVision
* none: هرگز پروفایل DV سیگنال‌دهی نشود
* auto: سیگنال‌دهی پروفایل DV در صورت یافتن RPU یا EL
* clean: عدم سیگنال‌دهی و حذف واحدهای NAL مربوط به RPU و EL
* single: سیگنال‌دهی پروفایل DV در صورت یافتن RPU و حذف واحدهای NAL مربوط به EL

dv_profile (uint، پیش‌فرض: 0): پروفایل برای DolbyVision (پروفایل‌های تعریف‌شده در حال حاضر 4، 5، 7، 8، 9 هستند)، مقدار 0 برای تشخیص خودکار
dv_compatid (enum، پیش‌فرض: auto): شناسه سازگاری متقابل برای DolbyVision
* auto: تشخیص خودکار
* none: بدون سازگاری متقابل
* hdr10: استاندارد CTA HDR10، مطابق با مشخصات EBU TR 03
* bt709: استاندارد SDR BT.709
* hlg709: گاموت رنگی HLG BT.709 در ITU-R BT.2020
* hlg2100: گاموت رنگی HLG BT.2100 در ITU-R BT.2020
* bt2020: استاندارد SDR BT.2020
* brd: دیسک بلوری اولترا اچ‌دی HDR (Ultra HD Blu-ray Disc HDR)

bsdbg (enum، پیش‌فرض: off): اشکال‌زدایی تحلیل NAL در لاگ‌های media@debug
* off: غیرفعال
* on: فعال
* full: فعال به همراه تخلیه تعداد بیت‌ها

توضیحات: تفکیک‌کننده (demultiplexer) MPEG PS

این فیلتر جریان‌های برنامه MPEG-2 را برای تولید PIDها و فریم‌های رسانه‌ای تفکیک می‌کند.

بدون گزینه

توضیحات: تفکیک‌کننده (demultiplexer) AVI

این فیلتر فایل‌های AVI را برای تولید PIDها و فریم‌های رسانه‌ای تفکیک می‌کند.

fps (frac، پیش‌فرض: 1/0): نرخ فریم واردسازی، مقدار پیش‌فرض همان نرخ فریم AVI است
importer (bool، پیش‌فرض: false): سازگاری با واردکننده قدیمی، نمایش نتایج واردسازی
noreframe (bool، پیش‌فرض: false): نادیده‌گرفتن بازقاب‌بندی‌کننده رسانه (media reframer)

توضیحات: بارگذار زیرنویس

این فیلتر داده‌های زیرنویس را از PID ورودی خوانده تا فریم‌های زیرنویس را روی یک PID واحد تولید کند.
این فیلتر از قالب‌های زیر پشتیبانی می‌کند:
* SRT: https://en.wikipedia.org/wiki/SubRip
* WebVTT: https://www.w3.org/TR/webvtt1
* TTXT: https://wiki.gpac.io/xmlformats/TTXT-Format-Documentation
* QT 3GPP Text XML (TexML): برای Apple QT6، احتمالاً منسوخ‌شده
* TTML: https://www.w3.org/TR/ttml2
* SUB: یک زیرنویس در هر خط با قالب‌بندی {start_frame}{end_frame}text
* SSA (Substation Alpha): پشتیبانی اولیه از تجزیه برای فایل‌های رایج

فایل‌های ورودی باید در قالب UTF-8 یا UTF-16، همراه با یا بدون BOM باشند. قالب فریم داخلی عبارت است از:
* WebVTT (و srt در صورت تمایل): ISO/IEC 14496-30 VTT cues
* TTML: زیرنویس‌های ISO/IEC 14496-30 XML
* stxt و sbtt: جریان متنی و زیرنویس‌های متنی ISO/IEC 14496-30
* سایر موارد: 3GPP/QT Timed Text

اگر گزینهٔ .I ttml_split تنظیم شده باشد، سند TTML با بررسی تمام زیرنویس‌های دارای همپوشانی در body، به بخش‌های زمانی مستقل تقسیم می‌شود.
دوره‌های خالی در TTML منجر به اسناد TTML خالی می‌شوند، یا اگر گزینهٔ .I no_empty تنظیم شده باشد، نادیده گرفته خواهند شد.

اولین نمونه دارای یک CTS تخصیص‌یافته است که توسط .I ttml_cts مشخص می‌شود:
- صورت کسر برابر با -2 نشان می‌دهد که نخستین CTS برابر با 0 است
- صورت کسر برابر با -1 نشان می‌دهد که نخستین CTS برابر با اولین زمان فعال در سند است
- صورت کسر >= 0 نشان‌دهندهٔ CTS مورد استفاده برای نمونهٔ نخست است

هنگامی که تقسیم‌بندی TTML غیرفعال باشد، مدت‌زمان نمونهٔ TTML توسط .I ttml_dur (در صورتی که 0 نباشد) مشخص می‌شود، یا برابر با مدت‌زمان سند تنظیم می‌گردد

به‌طور پیش‌فرض، منابع رسانه‌ای همان‌گونه که در اسناد TTML2 تعریف شده‌اند حفظ می‌شوند.

می‌توان از .I ttml_embed برای جاسازی منابع موجود در <head> یا <body> درون نمونهٔ TTML استفاده کرد:
- برای <source>، <image>، <audio> و <font>، نشانه‌های محلی URI مشخص‌شده در src بارگذاری شده و src بازنویسی می‌شود.
- برای <data> با کدگذاری base64، داده رمزگشایی شده، عنصر <data> حذف شده و عنصر والد <source> با درج صفت src بازنویسی می‌شود.

داده‌های جاسازی‌شده به‌صورت یک زیرنمونه (subsample) به فریم TTML اضافه می‌شوند و عناصر ارجاع‌دهنده از src=urn:mpeg:14496-30:N استفاده خواهند کرد که در آن N نمایانگر اندیس زیرنمونه است.

یک زیرنویس مبدأ (subtitle zero) می‌تواند با استفاده از .I ttml_zero مشخص شود. این کار تمام زیرنویس‌های پیش از زمان داده‌شدهٔ T0 را حذف کرده و زمان آغاز/پایان T هر زیرنویس را با دقت میلی‌ثانیه به T-T0 بازنویسی می‌کند.
هشدار: قالب‌بندی زمان اصلی (tick، frames/subframe و ...) هنگام استفاده از این گزینه از دست خواهد رفت و به HH:MM:SS.ms تبدیل می‌شود.

زمان زیرنویس مبدأ در صورتی که این گزینه به‌عنوان یک آرگومان سراسری تنظیم نشده باشد، باید دارای پیشوند T باشد:
gpac -i test.ttml:ttml_zero=T10:00:00 [...]
MP4Box -add test.ttml:sopt:ttml_zero=T10:00:00 [...]
gpac -i test.ttml --ttml_zero=10:00:00 [...]
gpac -i test.ttml --ttml_zero=T10:00:00 [...]
MP4Box -add test.ttml --ttml_zero=10:00:00 [...]

بارگذار متن می‌تواند فایل‌های ورودی را با اجبار نوع کدک در ورودی، به جریان‌های متنی ساده متشکل از یک بستهٔ واحد تبدیل کند:
gpac -i test.txt:#CodecID=stxt [...]
gpac fin:pck="Text Data":#CodecID=stxt [...]

محتوای فایل مبدأ، بار دادهٔ (payload) نمونهٔ متنی خواهد بود. گزینهٔ .I stxtmod امکان مشخص کردن حالت‌های WebVTT، TX3G یا متن ساده را برای قالب خروجی فراهم می‌سازد.
در این حالت، گزینهٔ .I stxtdur برای کنترل مدت‌زمان زیرنویس تولیدشده به کار می‌رود:
- یک مقدار مثبت همواره مدت‌زمان را تحمیل می‌کند
- یک مقدار منفی در صورتی که مدت‌زمان بستهٔ ورودی مشخص نباشد، مدت‌زمان را تحمیل می‌کند

هنگام فریم‌بندی مجدد (reframing) جریان‌های متنی ساده از دی‌ماکسرها (مانند زیرنویس‌های MKV)، قالب خروجی این جریان‌ها را می‌توان با استفاده از .I stxtmod تعیین کرد.

هنگام وارد کردن فایل‌های SRT، SUB یا SSA، قالب خروجی PID را می‌توان با استفاده از .I stxtmod تعیین کرد.

nodefbox (bool، پیش‌فرض: false): نادیده گرفتن کادر متنی پیش‌فرض
noflush (bool، پیش‌فرض: false): نادیده گرفتن تخلیه نمونه نهایی (flush) برای srt
fontname (str): قلم پیش‌فرض
fontsize (uint، پیش‌فرض: 18): اندازه قلم پیش‌فرض
lang (str): زبان پیش‌فرض
width (uint، پیش‌فرض: 0): عرض پیش‌فرض ناحیه متن
height (uint، پیش‌فرض: 0): ارتفاع پیش‌فرض ناحیه متن
txtx (uint، پیش‌فرض: 0): انحراف افقی پیش‌فرض ناحیه متن: -1 (چپ)، 0 (مرکز) یا 1 (راست)
txty (uint، پیش‌فرض: 0): انحراف عمودی پیش‌فرض ناحیه متن: -1 (پایین)، 0 (مرکز) یا 1 (بالا)
zorder (sint، پیش‌فرض: 0): ترتیب z پیش‌فرض برای PID
timescale (uint، پیش‌فرض: 1000): مقیاس زمانی پیش‌فرض برای PID
ttml_split (bool، پیش‌فرض: true): تقسیم سند ttml به نمونه‌های بدون هم‌پوشانی
ttml_cts (lfrac، پیش‌فرض: -1/1): مقدار cts اولین نمونه - راهنمای فیلتر را ببینید
ttml_dur (frac، پیش‌فرض: 0/1): مدت‌زمان نمونه در صورت عدم تقسیم‌بندی - راهنمای فیلتر را ببینید
ttml_embed (bool، پیش‌فرض: false): اجبار به جاسازی منابع TTML
ttml_zero (str): تنظیم مبدا زمانی (زمان صفر) زیرنویس برای TTML
no_empty (bool، پیش‌فرض: false): عدم ارسال نمونه‌های خالی
stxtdur (frac، پیش‌فرض: 1): مدت‌زمان برای متن ساده
stxtmod (enum، پیش‌فرض: tx3g): حالت جریان متنی برای جریان‌های متنی ساده و ورودی‌های SRT
* stxt: قالب‌بندی PID خروجی به صورت جریان متنی ساده (حذف نشانه‌گذاری‌ها در داده‌های VTT/SRT)
* sbtt: قالب‌بندی PID خروجی به صورت جریان متنی زیرنویس (حفظ نشانه‌گذاری‌ها در داده‌های VTT/SRT)
* tx3g: قالب‌بندی PID خروجی به صورت جریان TX3G/Apple
* vtt: قالب‌بندی PID خروجی به صورت جریان WebVTT
* webvtt: مانند vtt (برای سازگاری رو به عقب)

توضیحات: رمزگشای TTXT/TX3G

این فیلتر جریان‌های TTXT/TX3G را به یک نمودار صحنه (scene graph) BIFS از فیلتر compositor رمزگشایی می‌کند.
مستندات TTXT در https://wiki.gpac.io/xmlformats/TTXT-Format-Documentation در دسترس است.

در رندرینگ مستقل (بدون ویدیوی مرتبط)، فیلتر از موارد زیر استفاده خواهد کرد:
- ویژگی‌های Width و Height در pid ورودی (در صورت وجود)
- در غیر این صورت، گزینه osize فیلتر compositor (در صورت تنظیم شدن)
- در غیر این صورت، .I txtw و .I txth

texture (bool، پیش‌فرض: false): استفاده از بافت‌دهی (texturing) برای متن خروجی
outline (bool، پیش‌فرض: false): رسم خط دور متن (outline)
txtw (uint، پیش‌فرض: 400): عرض پیش‌فرض در رندرینگ مستقل
txth (uint، پیش‌فرض: 200): ارتفاع پیش‌فرض در رندرینگ مستقل

توضیحات: رمزگشای WebVTT

این فیلتر جریان‌های WebVTT را به یک نمودار صحنه (scene graph) SVG از فیلتر compositor رمزگشایی می‌کند.
ایجاد نمودار صحنه از طریق JavaScript انجام می‌شود.
گزینه‌های فیلتر برای بازنویسی متغیرهای سراسری JS رندرکننده WebVTT استفاده می‌شوند.
در رندرینگ مستقل (بدون ویدیوی مرتبط)، فیلتر از موارد زیر استفاده خواهد کرد:
- ویژگی‌های Width و Height در pid ورودی (در صورت وجود)
- در غیر این صورت، گزینه osize فیلتر compositor (در صورت تنظیم شدن)
- در غیر این صورت، .I txtw و .I txth

script (str، پیش‌فرض: $GSHARE/scripts/webvtt-renderer.js): مکان رندرکننده WebVTT SVG JS
font (str، پیش‌فرض: SANS، قابل‌به‌روزرسانی): قلم
fontSize (flt، پیش‌فرض: 20، قابل‌به‌روزرسانی): اندازه قلم
color (str، پیش‌فرض: white، قابل‌به‌روزرسانی): رنگ متن
lineSpacing (flt، پیش‌فرض: 1.0، قابل‌به‌روزرسانی): فاصله خطوط به‌عنوان ضریب مقیاس نسبت به اندازه قلم
txtw (uint، پیش‌فرض: 400): عرض پیش‌فرض در رندرینگ مستقل
txth (uint، پیش‌فرض: 200): ارتفاع پیش‌فرض در رندرینگ مستقل

شرح: رمزگشای TTML

این فیلتر جریان‌های TTML را به یک گراف صحنه SVG فیلتر compositor رمزگشایی می‌کند.
ایجاد گراف صحنه از طریق JavaScript انجام می‌شود.
گزینه‌های فیلتر برای بازنویسی متغیرهای سراسری JS رندرکننده TTML استفاده می‌شوند.

در رندرینگ مستقل (بدون ویدیوی مرتبط)، فیلتر از موارد زیر استفاده خواهد کرد:
- ویژگی‌های Width و Height در pid ورودی در صورت وجود
- در غیر این صورت، گزینه osize فیلتر compositor در صورت تنظیم شدن
- در غیر این صورت، .I txtw و .I txth

script (str، پیش‌فرض: $GSHARE/scripts/ttml-renderer.js): مکان رندرکننده TTML SVG JS
font (str، پیش‌فرض: SANS، قابل‌به‌روزرسانی): قلم
fontSize (flt، پیش‌فرض: 20، قابل‌به‌روزرسانی): اندازه قلم
color (str، پیش‌فرض: white، قابل‌به‌روزرسانی): رنگ متن
valign (enum، پیش‌فرض: bottom، قابل‌به‌روزرسانی): تراز عمودی
* bottom: تراز کردن متن در پایین ناحیه متنی
* center: تراز کردن متن در مرکز ناحیه متنی
* top: تراز کردن متن در بالای ناحیه متنی

lineSpacing (flt، پیش‌فرض: 1.0، قابل‌به‌روزرسانی): فاصله خطوط به‌عنوان ضریب مقیاس نسبت به اندازه قلم
txtw (uint، پیش‌فرض: 400): عرض پیش‌فرض در رندرینگ مستقل
txth (uint، پیش‌فرض: 200): ارتفاع پیش‌فرض در رندرینگ مستقل

شرح: ورودی RTP/RTSP/SDP

این فیلتر خواندن ورودی SDP/RTSP/RTP را مدیریت می‌کند. این فیلتر موارد زیر را پشتیبانی می‌کند:
- خواندن فایل SDP
- نشانی مستقیم (URL) پروتکل RTP از طریق طرح پروتکل rtp://
- پردازش نشست RTSP از طریق طرح‌های پروتکل rtsp:// و satip://

این فیلتر یا PIDهایی با فریم‌های رسانه‌ای تولید می‌کند، یا PIDهای فایلی با داده‌های مالتی‌پلکس‌شده (مانند MPEG-2 TS).
این فیلتر موارد زیر را استفاده خواهد کرد:
- پروتکل RTSP بر بستر تونل HTTP اگر درگاه سرور 80 یا 8080 باشد یا اگر طرح پروتکل rtsph:// باشد.
- پروتکل RTSP بر بستر TLS اگر درگاه سرور 322 باشد یا اگر طرح پروتکل rtsps:// باشد.
- پروتکل RTSP بر بستر تونل HTTPS اگر درگاه سرور 443 باشد و اگر طرح پروتکل rtsph:// باشد.

این فیلتر پس از دو شکست متوالی در اتصال اولیه، تلاش خواهد کرد در حالت TLS مجدداً متصل شود.

src (cstr): مکان محتوای منبع (URL مربوط به SDP، RTP یا RTSP)
firstport (uint، پیش‌فرض: 0): شماره اولین درگاه پیش‌فرض مورد استفاده (0 تصمیم‌گیری را به فیلتر واگذار می‌کند)
ifce (str): آدرس IP رابط پیش‌فرض برای چندپخشی (multicast). اگر NULL باشد، از رابط پیش‌فرض سیستم استفاده خواهد شد
ttl (uint، پیش‌فرض: 127، بازه: 0-127): مقدار TTL چندپخشی
reorder_len (uint، پیش‌فرض: 1000): طول بازآرایی بر حسب بسته
reorder_delay (uint، پیش‌فرض: 50): حداکثر تاخیر در بازآراینده RTP؛ بسته‌ها پس از آن ارسال خواهند شد
block_size (uint، پیش‌فرض: 0x100000): اندازه بافر برای RTP/UDP یا RTSP در حالت درهم‌تنیده (interleaved)
disable_rtcp (bool، پیش‌فرض: false): غیرفعال‌سازی گزارش‌دهی RTCP
nat_keepalive (uint، پیش‌فرض: 0): تاخیر نگه‌داری زنده NAT بر حسب میلی‌ثانیه، به‌طور پیش‌فرض غیرفعال است (به‌جز برای SatIP که به‌طور پیش‌فرض روی 30 ثانیه تنظیم شده است)
force_mcast (str): اجبار به چندپخشی بر روی IP تعیین‌شده در راه‌اندازی RTSP
use_client_ports (bool، پیش‌فرض: false): اجبار به استفاده از درگاه‌های کلاینت (ترفندی برای برخی سرورهای RTSP که درگاه‌های کلاینت را نادیده می‌گیرند)
bandwidth (uint، پیش‌فرض: 0): تنظیم پارامتر پهنای باند برای درخواست‌های RTSP
default_port (uint، پیش‌فرض: 554، بازه: 0-65535): تنظیم درگاه پیش‌فرض RTSP
satip_port (uint، پیش‌فرض: 1400، بازه: 0-65535): تنظیم درگاه پیش‌فرض برای SATIP
transport (enum، پیش‌فرض: auto): تنظیم RTP روی RTSP
* auto: فعال کردن درهم‌تنیدگی در صورت استفاده از تونل HTTP، در غیر این صورت غیرفعال کردن آن، و تلاش مجدد در حالت درهم‌تنیده در صورت انقضای مهلت زمانی UDP
* tcp: فعال‌سازی RTP روی RTSP
* udp: غیرفعال‌سازی RTP روی RTSP

udp_timeout (uint، پیش‌فرض: 10000): مهلت زمانی پیش‌فرض قبل از غیرفعال فرض کردن UDP
rtcp_timeout (uint، پیش‌فرض: 5000): مهلت زمانی پیش‌فرض برای ترافیک RTCP بر حسب میلی‌ثانیه. پس از این زمان، پخش بدون همگام‌سازی آغاز خواهد شد. اگر 0 باشد همیشه منتظر RTCP می‌ماند
first_packet_drop (uint، پیش‌فرض: 0، قابل‌به‌روزرسانی): تعیین تعداد اولین بسته‌های RTP برای دور انداختن (0 در صورت عدم حذف)
frequency_drop (uint، پیش‌فرض: 0، قابل‌به‌روزرسانی): دور انداختن ۱ بسته از هر N بسته (0 دور انداختن را غیرفعال می‌کند)
loss_rate (sint، پیش‌فرض: -1، قابل‌به‌روزرسانی): نرخ اتلاف برای اعلان در RTCP؛ مقدار -1 به معنای نرخ اتلاف واقعی است، در غیر این صورت نسبتی در هزار از بسته‌های از دست‌رفته است
user_agent (str، پیش‌فرض: $GUA): رشته شناسه کاربر (user agent)، به‌طور پیش‌فرض بر اساس تنظیمات GPAC تعیین می‌شود
languages (str، پیش‌فرض: $GLANG): زبان‌های کاربر، به‌طور پیش‌فرض بر اساس تنظیمات GPAC تعیین می‌شود
stats (uint، پیش‌فرض: 500): به‌روزرسانی آمار به کاربر در هر میلی‌ثانیه مشخص‌شده (0 گزارش‌دهی را غیرفعال می‌کند)
max_sleep (sint، پیش‌فرض: 1000): تنظیم حداکثر زمان توقف بر حسب میلی‌ثانیه:
- مقدار منفی -N به این معناست که همیشه به میزان N میلی‌ثانیه متوقف شود
- مقدار مثبت N به این معناست که حداکثر N میلی‌ثانیه متوقف شود اما اگر مدت‌زمان فریم کوتاه‌تر باشد کمتر توقف خواهد کرد

rtcpsync (bool، پیش‌فرض: true): استفاده از RTCP برای تنظیم همگام‌سازی
forceagg (bool، پیش‌فرض: false): اجبار به تجمیع کنترل RTSP (وصله‌ای برای سرورهای معیوب)
ssm (strl): فهرست IPها برای گنجاندن در چندپخشی مبدأ-خاص (SSM)
ssmx (strl): فهرست IPها برای مستثنی کردن از چندپخشی مبدأ-خاص (SSM)

توضیحات: خروجی فایل

این فیلتر برای نوشتن داده‌ها بر روی دیسک استفاده می‌شود و هیچ PID خروجی تولید نمی‌کند.
در حالت عادی، این فیلتر تنها PID از نوع file را می‌پذیرد. فیلتر بسته‌های ورودی (جریان از نوع file) را در فایل ذخیره می‌کند (dump)، و برای هر بسته‌ای که پرچم frame_start آن فعال باشد یک فایل جدید آغاز می‌نماید، مگر اینکه در حالت .I cat کار کند.
اگر نام فایل خروجی std یا stdout باشد، در stdout می‌نویسد.
نام فایل خروجی می‌تواند از سازوکار الگوسازی gpac استفاده کند، به gpac -h doc مراجعه کنید. فیلتر ویژگی FileNumber را روی بسته‌های ورودی برای ایجاد فایل‌های جدید رصد می‌کند.

به‌طور پیش‌فرض، فایل‌های خروجی مستقیماً ایجاد می‌شوند که در صورت تلاش برنامه‌های هم‌روند برای دسترسی به آن‌ها ممکن است منجر به بروز مشکلاتی گردد.
با فعال‌سازی .I atomic، فایل‌ها در پوشه مقصد نهایی با پسوند .gftmp ایجاد شده و پس از بسته شدن، به نام نهایی خود منتقل می‌شوند.

هنگامی که مقصد null باشد، فیلتر به عنوان یک سینک (sink) عمل کرده و تمام بسته‌های ورودی را دور می‌ریزد.
در این حالت، فیلتر هر نوع PID ورودی را می‌پذیرد، نه فقط نوع file.

هنگام ضبط یک نشست DASH یا HLS، تعداد قطعه‌ها برای نگهداری در هر کیفیت را می‌توان با استفاده از .I max_cache_segs تنظیم کرد.
- مقدار 0 همه چیز را نگه می‌دارد (رفتار پیش‌فرض)
- یک مقدار منفی N، صرف‌نظر از مقدار بافر time-shift، تعداد -N فایل را نگه می‌دارد
- یک مقدار مثبت N، تعداد MAX(N, time-shift buffer) فایل را نگه خواهد داشت

مثال
gpac -i LIVE_MPD dashin:forward=file -o rec/$File$:max_cache_segs=3

این دستور نگهداری حداکثر ۳ قطعهٔ رسانه‌ای را هنگام ضبط نشست DASH اجبار می‌کند.

dst (cstr): مکان فایل مقصد
append (bool، پیش‌فرض: false): باز کردن در حالت الحاق (append)
dynext (bool، پیش‌فرض: false): مشخص می‌کند که پسوند فایل توسط زنجیره فیلتر تعیین می‌شود، نه dst
start (dbl، پیش‌فرض: 0.0): تنظیم آفست شروع پخش. یک مقدار منفی به معنای درصدی از مدت‌زمان رسانه است که در آن -1 برابر با کل مدت‌زمان است
speed (dbl، پیش‌فرض: 1.0): تنظیم سرعت پخش زمانی که vsync روشن است. اگر منفی باشد و start برابر با 0 باشد، مقدار start روی -1 تنظیم می‌شود
ext (cstr): تنظیم پسوند برای تفکیک گراف (graph resolution)، صرف‌نظر از پسوند فایل
mime (cstr): تنظیم mime type برای تفکیک گراف
cat (enum، پیش‌فرض: none): الحاق (cat) کردن هر فایل از PID ورودی به جای ایجاد یک فایل به ازای هر نام فایل
* none: هرگز فایل‌ها الحاق نشوند
* auto: تنها در صورت یکسان بودن نام فایل‌ها الحاق شوند
* all: همیشه و صرف‌نظر از نام فایل‌ها الحاق شوند

ow (enum، پیش‌فرض: yes): حالت رونویسی خروجی زمانی که از الحاق استفاده نمی‌شود
* yes: بازنویسی فایل در صورت وجود
* no: صادر کردن خطا در صورت وجود فایل
* ask: اعلان تعاملی و پرسش از کاربر

mvbk (uint، پیش‌فرض: 8192): اندازه بلوک مورد استفاده هنگام جابه‌جایی بخش‌هایی از فایل در حالت وصله (patch mode)
redund (bool، پیش‌فرض: false): نگهداری بسته‌های زائد (redundant) در فایل خروجی
max_cache_segs (sint، پیش‌فرض: 0): حداکثر تعداد قطعه‌های کش‌شده به ازای هر کیفیت HAS هنگام ضبط نشست‌های زنده (0 به معنای نامحدود است)
force_null (bool، پیش‌فرض: false): اجبار به عدم تولید خروجی صرف‌نظر از نام فایل
atomic (bool، پیش‌فرض: false): استفاده از نوشتن اتمیک (atomic) فایل برای حالت‌های غیرالحاقی

توضیحات: بازنویس LATM

این فیلتر جریان‌های AAC را به داده‌های کپسوله‌شدهٔ LATM تبدیل می‌کند.

fdsi (frac، پیش‌فرض: 0): تنظیم تاخیر بین دو پیکربندی صوتی LATM (LATM Audio Config)

توضیحات: بازنویس ADTS

این فیلتر جریان‌های AAC را به داده‌های کپسوله‌شدهٔ ADTS تبدیل می‌کند.

mpeg2 (enum، پیش‌فرض: auto): ارسال سیگنال به‌صورت MPEG2 AAC
* auto: انتخاب بر اساس پروفایل AAC
* no: همواره به‌صورت MPEG-4 AAC سیگنال می‌دهد
* yes: همواره به‌صورت MPEG-2 AAC سیگنال می‌دهد

توضیحات: بازنویس MHAS

این فیلتر جریان‌های صوتی MPEG-H Audio را به داده‌های کپسوله‌شدهٔ MHAS تبدیل می‌کند.

syncp (bool، پیش‌فرض: false): در صورت تنظیم، بستهٔ همگام‌سازی (sync packet) در هر فریم درج می‌شود، در غیر این صورت فقط در SAP درج خواهد شد

توضیحات: بازفریم‌بند رسانه (Media reframer)

این فیلتر ابزارهای گوناگونی را روی ورودی‌ها ارائه می‌دهد:
- اطمینان از فریم‌بندی مجدد (۱ بسته = ۱ Access Unit)
- اجبار اختیاری به رمزگشایی
- تنظیم بی‌درنگ (real-time regulation)
- فیلترکردن بسته‌ها بر اساس انواع SAP یا شماره‌های فریم
- استخراج و تقسیم بازهٔ زمانی

این فیلتر PIDهای ورودی را مجبور می‌کند تا به‌درستی فریم‌بندی شوند (۱ بسته = ۱ Access Unit).
این کار معمولاً برای اجبار به بازمالتی‌پلکس‌کردن (remultiplexing) در عملیات فایل به فایل، هنگامی که فایل‌های مبدأ و مقصد از فرمت یکسانی استفاده می‌کنند، مورد نیاز است.

این فیلتر می‌تواند با استفاده از گزینهٔ .I saps بسته‌ها را بر اساس انواع SAP آن‌ها حذف کند.
برای نمونه، این قابلیت می‌تواند برای استخراج تنها فریم‌های کلیدی (SAP 1,2,3) یک ویدیو جهت ایجاد یک نسخهٔ trick mode استفاده شود.

این فیلتر می‌تواند با استفاده از گزینهٔ .I frames تنها Access Unitهای مشخصی از مبدأ را نگه دارد.
برای نمونه، این قابلیت می‌تواند برای استخراج تنها تصاویر کلیدی خاصی از یک ویدیو جهت ایجاد یک مجموعهٔ HEIF استفاده شود.

این فیلتر می‌تواند با استفاده از گزینهٔ .I raw جریان‌های رسانه‌ای ورودی را وادار به رمزگشایی کند.
مثال
gpac -i m.mp4 reframer:raw=av [dst]

این فیلتر می‌تواند تنظیم بی‌درنگ بسته‌های ورودی را بر اساس مقیاس زمانی (timescale) و برچسب‌های زمانی (timestamps) آن‌ها انجام دهد.
برای نمونه جهت شبیه‌سازی یک پخش زندهٔ DASH:
gpac -i m.mp4 reframer:rt=on -o live.mpd:dynamic

این فیلتر می‌تواند با استفاده از گزینه‌های .I xs و .I xe استخراج بازهٔ زمانی از مبدأ را انجام دهد.
فرمت‌های مجاز برای مشخص‌کننده‌های زمان عبارتند از:
* 'TC'HH:MM:SS:FF: تعیین زمان در قالب timecode
* 'T'H:M:S، 'T'M:S: تعیین زمان بر حسب ساعت، دقیقه، ثانیه
* 'T'H:M:S.MS، 'T'M:S.MS، 'T'S.MS: تعیین زمان بر حسب ساعت، دقیقه، ثانیه و میلی‌ثانیه
* INT، FLOAT، NUM/DEN: تعیین زمان بر حسب ثانیه (عدد یا کسر)
* 'D'INT، 'D'FLOAT، 'D'NUM/DEN: تعیین زمان پایان به‌عنوان آفست نسبت به زمان شروع بر حسب ثانیه (عدد یا کسر) - فقط برای .I xe معتبر است
* 'F'NUM: تعیین زمان به‌صورت شمارهٔ فریم، که ۱ اولین فریم است
* XML DateTime: تعیین زمان مطلق UTC

در این حالت، برچسب‌های زمانی بازنویسی می‌شوند تا یک خط زمانی پیوسته را تشکیل دهند، مگر اینکه .I xots تنظیم شده باشد.
هنگامی که چندین بازه مشخص شده باشد، فیلتر در صورت نیاز و پشتیبانی توسط مبدأ، تلاش می‌کند تا پرش (seek) انجام دهد.

مثال
gpac -i m.mp4 reframer:xs=T00:00:10,T00:01:10,T00:02:00:xe=T00:00:20,T00:01:20 [dst]

این دستور بازه‌های زمانی [10s,20s]، [1m10s,1m20s] و تمامی رسانه از دقیقهٔ ۲ به بعد را استخراج می‌کند

اگر برای یک بازهٔ شروع مشخص هیچ بازهٔ پایانی یافت نشود:
- اگر بازهٔ شروع بعدی تنظیم شده باشد، بازهٔ پایان برابر با این شروع بعدی در نظر گرفته می‌شود
- در غیر این صورت، بازهٔ پایان باز خواهد ماند

مثال
gpac -i m.mp4 reframer:xs=0,10,25:xe=5,20 [dst]

این دستور بازه‌های زمانی [0s,5s]، [10s,20s] و تمامی رسانه از ثانیهٔ ۲۵ به بعد را استخراج می‌کند
مثال
gpac -i m.mp4 reframer:xs=0,10,25 [dst]

این دستور بازه‌های زمانی [0s,10s]، [10s,25s] و تمامی رسانه از ثانیهٔ ۲۵ به بعد را استخراج می‌کند

می‌توان مرزهای بازه را در بسته‌های خروجی با استفاده از .I splitrange نشانه‌گذاری کرد.
این کار ویژگی‌های زیر را روی نخستین بسته از هر بازه در هر PID در دسترس قرار می‌دهد:
* `FileNumber`: شروع از ۱ برای نخستین بازه، جهت استفاده به‌جای $num$ در الگوها
* `FileSuffix`: متناظر با StartRange_EndRange یا StartRange برای بازه‌های باز، جهت استفاده به‌جای $FS$ در الگوها

مثال
gpac -i m.mp4 reframer:xs=T00:00:10,T00:01:10:xe=T00:00:20:splitrange -o dump_$FS$.264 [dst]

این دستور دو فایل خروجی dump_T00.00.10_T00.02.00.264 و dump_T00.01.10.264 را ایجاد خواهد کرد.
نکته: نویسه‌های : و / در ویژگی FileSuffix با . جایگزین می‌شوند.

می‌توان ویژگی‌های PID را به ازای هر بازه با استفاده از .I props تغییر داد. هر مجموعه از ویژگی‌ها باید با استفاده از مجموعه جداکننده‌های فعال مشخص شود.
هشدار: این گزینه باید با جداکننده‌های دوگانه گریزدهی (escape) شود تا به‌درستی تجزیه گردد.
مثال
gpac -i m.mp4 reframer:xs=0,30::props=#Period=P1,#Period=P2:#foo=bar [dst]

این دستور به PIDهای خروجی اختصاص می‌دهد:
* در طول بازهٔ [0,30]: ویژگی Period به P1
* در طول بازهٔ [30, end]: ویژگی Period به P2 و ویژگی foo به bar

برای PIDهای صوتی فشرده‌نشده، فریم ورودی به نزدیک‌ترین شمارهٔ نمونهٔ صوتی تقسیم خواهد شد.

هنگامی که .I xround روی seek تنظیم شده باشد، موارد زیر اعمال می‌شود:
- باید تنها یک بازه مشخص شود
- اولین I-frame قبل از شروع بازه یا منطبق با آن به‌عنوان نقطهٔ برش استفاده می‌شود
- تمامی بسته‌های قبل از شروع بازه به‌عنوان نقاط پرش (seek points) علامت‌گذاری می‌شوند
- بسته‌هایی که با شروع بازه همپوشانی دارند، همراه با ویژگی SkipBegin که مقدار رسانه برای نادیده‌گرفتن را مشخص می‌کند، ارسال می‌شوند
- بسته‌هایی که با پایان بازه همپوشانی دارند، با مدت‌زمان تنظیم‌شده جهت تطابق با پایان بازه ارسال می‌شوند
این حالت معمولاً برای استخراج بازه با دقت در حد فریم/نمونه، به‌جای هم‌ترازی با GOP استفاده می‌شود.

هنگامی که .I xround روی seek تنظیم نشده باشد، جریان‌های صوتی فشرده‌شده همچنان از حالت seek استفاده خواهند کرد.
در نتیجه، این جریان‌ها در ISOBMFF دارای edit listهای تغییریافته خواهند بود که ممکن است توسط پخش‌کننده‌ها به‌درستی پشتیبانی نشوند.
با استفاده از .I no_audio_seek می‌توان از این موضوع جلوگیری کرد، اما این کار باعث ایجاد تاخیر صوتی خواهد شد.

فیلتر می‌تواند استخراج بازه را به جای زمان رسانه، بر اساس زمان UTC انجام دهد. در این حالت، زمان پایان باید یکی از موارد زیر باشد:
* یک تاریخ UTC: استخراج بازه پس از این تاریخ متوقف خواهد شد
* یک زمان بر حسب ثانیه: استخراج بازه پس از مدت‌زمان مشخص‌شده متوقف خواهد شد

مرجع UTC با استفاده از .I utc_ref مشخص می‌شود.
اگر از سیگنال UTC منبع رسانه استفاده شود، فیلتر پیش از این‌که منبع را فاقد سیگنال UTC در نظر بگیرد، به مدت .I utc_probe به کاوش (probe) می‌پردازد.

ویژگی‌های SenderNTP و در صورت عدم وجود، UTC مربوط به بسته‌های منبع برای برقراری مرجع UTC بررسی می‌شوند.

فیلتر می‌تواند تقسیم منبع را با استفاده از گزینهٔ .I xs انجام دهد.
قالب‌های اضافی مجاز برای گزینهٔ .I xs عبارتند از:
* `SAP`: تقسیم منبع در هر SAP/RAP
* `D`VAL: تقسیم منبع به تکه‌های VAL ثانیه‌ای
* `D`NUM/DEN: تقسیم منبع به تکه‌های NUM/DEN ثانیه‌ای
* `S`VAL: تقسیم منبع به تکه‌هایی با اندازهٔ تخمینی VAL بایت (امکان استفاده از ضریب‌های ویژگی، مانند m)

نکته: در این حالت‌ها، .I splitrange و .I xadjust به‌طور ضمنی تنظیم می‌شوند.

ناپیوستگی‌ها ممکن است در نشست‌های پخش جاری (streaming) به دلیل تغییر تفکیک‌پذیری، تغییر کدک و غیره به کرات رخ دهند...
اگرچه GPAC این ناپیوستگی‌ها را در درون خود مدیریت می‌کند، ممکن است نادیده گرفتن آن‌ها مطلوب باشد؛ به عنوان مثال زمانی که مشخص است منبع ناپیوستگی ندارد، اما GPAC مواردی را به دلیل خطاهای شبکه یا سایر ویژگی‌های متغیر که باید نادیده گرفته شوند، تشخیص می‌دهد.
مقدار منفی برای گزینهٔ .I chkdisc امکان حذف تمامی ناپیوستگی‌ها را پس از راه‌اندازی جریان فراهم می‌کند.
هشدار: مطمئن شوید که می‌دانید چه کاری انجام می‌دهید، زیرا استفاده از این گزینه می‌تواند جریان را غیرقابل پخش کند (چشم‌پوشی از تغییر پیکربندی کدک).
مثال
gpac -i SOMEURL reframer:chkdisc=-1 -o DASH_ORIGIN

در این مثال، فیلتر dasher هرگز یک تغییر دوره (period switch) را به دلیل ناپیوستگی جریان ورودی فعال نمی‌کند.

مقدار 0 برای گزینهٔ .I chkdisc رفتار فیلتر را تغییر نمی‌دهد.

یک مقدار مثبت برای گزینهٔ .I chkdisc پیوستگی مهرزمانی (timestamp) را در جریان ورودی بررسی می‌کند.
یک ناپیوستگی (Discontinuity) زمانی برانگیخته می‌شود که:
- زمان رمزگشایی بستهٔ فعلی اکیداً کمتر از زمان رمزگشایی بستهٔ قبلی باشد
- زمان رمزگشایی بستهٔ فعلی اکیداً بیشتر از زمان رمزگشایی بستهٔ قبلی به‌علاوهٔ .I chkdisc باشد

هنگام برانگیخته شدن، ویژگی PID با نام Discontinuity به‌روزرسانی می‌شود که به فیلترهای بعدی اجازه می‌دهد دربارهٔ نحوهٔ اقدام تصمیم بگیرند.

exporter (bool، پیش‌فرض: false): سازگاری با exporter قدیمی، نمایش نتایج خروجی گرفتن
rt (enum، پیش‌فرض: off، قابل‌به‌روزرسانی): حالت تنظیم بلادرنگ ورودی
* off: غیرفعال‌سازی تنظیم بلادرنگ
* on: فعال‌سازی تنظیم بلادرنگ، یک ساعت (clock) به ازای هر PID
* sync: فعال‌سازی تنظیم بلادرنگ، یک ساعت مشترک برای تمام PIDها
* align: ارسال بسته‌ها با ترتیب DTS پیرو یک ساعت مشترک برای تمام PIDها (خنثی‌سازی فوران بسته‌های ورودی)، بدون تنظیم بلادرنگ

saps (uintl، نوع شمارشی: 0|1|2|3|4، قابل‌به‌روزرسانی): فهرست انواع SAP (0,1,2,3,4) برای فوروارد، بسته‌های دیگر دور ریخته می‌شوند (فوروارد کردن تنها sap 0 فرایند رمزگشایی را مختل می‌کند)

refs (bool، پیش‌فرض: false، قابل‌به‌روزرسانی): فوروارد کردن تنها فریم‌هایی که به عنوان فریم مرجع استفاده می‌شوند، در صورت قید شدن در جریان ورودی
speed (dbl، پیش‌فرض: 0.0، قابل‌به‌روزرسانی): سرعت برای حالت تنظیم بلادرنگ، مقدار 0 از سرعت دستورهای پخش استفاده می‌کند
raw (enum، پیش‌فرض: no): اجبار جریان‌های AV ورودی به قرارگیری در قالب خام (raw)
* no: عدم اجبار به رمزگشایی ورودی‌ها
* av: اجبار به رمزگشایی ورودی‌های صوتی و ویدئویی
* a: اجبار به رمزگشایی ورودی‌های صوتی
* v: اجبار به رمزگشایی ورودی‌های ویدئویی

frames (sintl، قابل‌به‌روزرسانی): دور ریختن تمامی فریم‌ها به جز فریم‌های فهرست‌شده (نخستین فریم 1 است). یک مقدار منفی -V تنها اولین فریم از هر V فریم را نگه می‌دارد
xs (strl): زمان(های) شروع استخراج. اگر تنظیم نشود و زمان پایان استخراج مشخص شده باشد، مقدار 0 استفاده می‌شود
xe (strl): زمان(های) پایان استخراج. اگر تعداد مقادیر کمتر از زمان‌های شروع باشد، آخرین بازهٔ زمانی استخراج‌شده یک بازهٔ باز خواهد بود
xround (enum، پیش‌فرض: before): تنظیم زمان شروع بازهٔ استخراج به فریم I
* before: استفاده از نخستین فریم I پیش از یا منطبق با شروع بازه
* seek: به راهنمای فیلتر مراجعه کنید
* after: استفاده از نخستین فریم I (در صورت وجود) پس از یا منطبق با شروع بازه
* closest: استفاده از نزدیک‌ترین فریم I به شروع بازه

xadjust (bool، پیش‌فرض: false): تنظیم زمان پایان بازهٔ استخراج به گونه‌ای که پیش از فریم I بعدی باشد
xots (bool، پیش‌فرض: false): حفظ مهرهای زمانی اصلی پس از استخراج
xdts (bool، پیش‌فرض: false): محاسبهٔ زمان‌های شروع بر اساس DTS و نه CTS
nosap (bool، پیش‌فرض: false): برش نزدن در SAP هنگام استخراج بازه (ممکن است منجر به جریان‌های آسیب‌دیده شود)
splitrange (bool، پیش‌فرض: false): اعلان مرز فایل در نخستین بستهٔ هر استخراج جهت تولید فایل مبتنی بر الگو
seeksafe (dbl، پیش‌فرض: 10.0): بازپیچی درخواست‌های پخش به میزان ثانیه‌های مشخص‌شده (برای اطمینان از دریافت فریم I پیش از شروع)
tcmdrw (bool، پیش‌فرض: true): بازنویسی نمونه‌های TCMD هنگام تقسیم
props (strl): ویژگی‌های اضافی PID خروجی به ازای هر بازهٔ استخراج
no_audio_seek (bool، پیش‌فرض: false): غیرفعال‌سازی حالت پرش (seek) در جریان‌های صوتی (عدم تغییر مدت‌زمان priming)
probe_ref (bool، پیش‌فرض: false): مجاز دانستن طولانی‌تر شدن بازهٔ استخراج در صورت وجود فریم‌های B با فریم‌های مرجعی که خارج از بازه ارائه شده‌اند
utc_ref (enum، پیش‌فرض: any): تعیین حالت مرجع برای استخراج بازه بر اساس UTC
* local: استفاده از UTC میزبان محلی
* any: استفاده از UTC رسانه، یا UTC میزبان محلی در صورت یافت نشدن در رسانه پس از زمان کاوش
* media: استفاده از UTC رسانه (در صورت عدم یافتن، لغو می‌شود)
* tc: استفاده از timecode رسانه (احتیاط: روز مدنظر، امروز در نظر گرفته خواهد شد)

utc_probe (uint، پیش‌فرض: 5000): مهلت زمانی بر حسب میلی‌ثانیه برای تلاش جهت کسب مرجع UTC از رسانه
copy (bool، پیش‌فرض: false، قابل‌به‌روزرسانی): تلاش برای کپی کردن رابط فریم در بسته‌ها
cues (enum، پیش‌فرض: no، قابل‌به‌روزرسانی): حالت فیلترسازی cue
* no: عدم فیلتر فریم‌ها بر اساس داده‌های cue
* segs: فقط فوروارد کردن فریم‌های علامت‌گذاری‌شده به عنوان شروع قطعه (segment)
* frags: فقط فوروارد کردن فریم‌های علامت‌گذاری‌شده به عنوان شروع بخش (fragment)

sapcue (uint، پیش‌فرض: 0): تلقی کردن SAPهای کوچک‌تر یا مساوی این مقدار به عنوان نقاط cue
rmseek (bool، پیش‌فرض: false، قابل‌به‌روزرسانی): حذف پرچم seek از تمامی بسته‌های ارسال‌شده
chkdisc (frac، پیش‌فرض: 0/1، قابل‌به‌روزرسانی): تشخیص ناپیوستگی بر حسب میلی‌ثانیه - به راهنمای فیلتر مراجعه کنید

توضیحات: مبدل جریان به فایل

مبدل عمومی تک‌جریان به فایل، مورد استفاده در زمان استخراج یا تبدیل PIDها.
فیلتر writegen معمولاً نباید بدون مشخص کردن شناسه منبع (source ID) به‌صورت صریح بارگذاری شود، چرا که این فیلتر به احتمال زیاد با هر اتصال PID تطبیق خواهد یافت.

exporter (bool، پیش‌فرض: false): سازگاری با exporter قدیمی، نتایج خروجی را نمایش می‌دهد
pfmt (pfmt، پیش‌فرض: none، Enum: none|yuv420|yvu420|yuv420_10|yuv422|yuv422_10|yuv444|yuv444_10|uyvy|vyuy|yuyv|yvyu|uyvl|vyul|yuyl|yvyl|nv12|nv21|nv1l|nv2l|yuva|yuvd|yuv444a|yuv444p|v308|yuv444ap|v408|v410|v210|grey|algr|gral|rgb8|rgb4|rgb5|rgb6|rgba|argb|bgra|abgr|rgb|bgr|xrgb|rgbx|xbgr|bgrx|rgbd|rgbds|uncv): قالب پیکسل برای استخراج خام. در صورت تنظیم نشدن، از پسوند فایل گرفته می‌شود

afmt (afmt، پیش‌فرض: none، Enum: none|u8|s16|s16b|s24|s24b|s32|s32b|flt|fltb|dbl|dblb|u8p|s16p|s24p|s32p|fltp|dblp): قالب صوتی برای استخراج خام. در صورت تنظیم نشدن، از پسوند فایل گرفته می‌شود

decinfo (enum، پیش‌فرض: auto): حالت درج پیکربندی دیکدر (decoder config)
* no: هرگز درج نمی‌شود
* first: روی نخستین بسته درج می‌شود
* sap: در هر SAP درج می‌شود
* auto: بر اساس نوع رسانه بین no و first انتخاب می‌کند

split (bool، پیش‌فرض: false): اجبار به ایجاد یک فایل به ازای هر فریم
frame (bool، پیش‌فرض: false): اجبار به تخلیه تک‌فریم بدون بازنویسی. در این حالت، تمام انواع کُدک‌ها پشتیبانی می‌شوند
sstart (uint، پیش‌فرض: 0): شماره فریم شروع برای هدایت به جلو. اگر 0 باشد، تمام نمونه‌ها هدایت می‌شوند
send (uint، پیش‌فرض: 0): شماره فریم پایان برای هدایت به جلو. اگر کمتر از فریم شروع باشد، تمام نمونه‌های پس از فریم شروع هدایت می‌شوند
dur (frac، پیش‌فرض: 0): مدت‌زمان رسانه برای هدایت به جلو پس از نخستین نمونه. اگر 0 باشد، تمام نمونه‌ها هدایت می‌شوند
merge_region (bool، پیش‌فرض: false): ادغام نواحی TTML با شناسه یکسان هنگام بازترکیب سند TTML
vtth (enum، پیش‌فرض: seg): حالت تزریق هدر vtt
* single: تزریق فقط در نخستین فریم جریان
* seg: تزریق در هر بخش غیرخالی
* all: تزریق در هر بخش، حتی بخش‌های خالی

add_nl (bool، پیش‌فرض: false): افزودن خط جدید پس از هر بسته هنگام تخلیه جریان‌های متنی
rawb (bool، پیش‌فرض: false): اجبار به تخلیه مستقیم ورودی بدون بازنویسی فریم‌بندی. در این حالت، تمام انواع کُدک‌ها پشتیبانی می‌شوند

توضیحات: بازنویسنده AVC/HEVC به AnnexB

این فیلتر جریان‌های AVC|H264 و HEVC را با مجموعه‌پارامترهای درون‌باندی (inband) و کدهای شروع به قالب AnnexB تبدیل می‌کند.

rcfg (bool، پیش‌فرض: true): اجبار به تکرار پیکربندی دیکدر در هر فریم I
extract (enum، پیش‌فرض: all): حالت استخراج لایه
* all: تمام لایه‌ها را استخراج می‌کند
* base: فقط لایه پایه را استخراج می‌کند
* layer: فقط لایه(های) غیرپایه را استخراج می‌کند

delim (bool، پیش‌فرض: true): درج AU Delimiter NAL
pps_inband (bool، پیش‌فرض: false): تزریق PPS در هر فریم غیر SAP، در صورت تنظیم نشدن rcfg نادیده گرفته می‌شود

توضیحات: نویسنده QCP

این فیلتر یک جریان واحد QCELP، EVRC یا MSV را به یک فایل خروجی QCP تبدیل می‌کند.

exporter (bool، پیش‌فرض: false): سازگاری با exporter قدیمی، نتایج خروجی را نمایش می‌دهد

توضیحات: بازنویسنده WebVTT

این فیلتر یک جریان واحد ISOBMFF WebVTT را به قالب بدون فریم (unframed) آن تبدیل می‌کند.

exporter (bool، پیش‌فرض: false): سازگاری با صادرکننده قدیمی، نمایش نتایج صدور
merge_cues (bool، پیش‌فرض: true): ادغام نشانه‌های VTT (لغو تقسیم‌بندی نشانه‌های ISOBMFF)
noempty (bool، پیش‌فرض: false): در صورت نبود نشانه‌های VTT، فایل خالی ایجاد نشود

توضیحات: نویسنده NHNT

این فیلتر یک جریان تک را به یک فایل خروجی NHNT تبدیل می‌کند.
مستندات NHNT در نشانی https://wiki.gpac.io/xmlformats/NHNT-Format در دسترس است.

exporter (bool، پیش‌فرض: false): سازگاری با صادرکننده قدیمی، نمایش نتایج صدور
large (bool، پیش‌فرض: false): استفاده از حالت فایل بزرگ

توضیحات: نویسنده NHML

این فیلتر یک جریان تک را به یک فایل خروجی NHML تبدیل می‌کند.
مستندات NHML در نشانی https://wiki.gpac.io/xmlformats/NHML-Format در دسترس است.

exporter (bool، پیش‌فرض: false): سازگاری با صادرکننده قدیمی، نمایش نتایج صدور
dims (bool، پیش‌فرض: false): استفاده از حالت DIMS
name (str): تنظیم نام خروجی فایل‌های رسانه و اطلاعات تولیدشده
nhmlonly (bool، پیش‌فرض: false): فقط استخراج اطلاعات NHML، نه داده‌های رسانه
pckp (bool، پیش‌فرض: false): استخراج کامل NHML
payload (bool، پیش‌فرض: false): استخراج بار داده (payload) (در حال حاضر فقط scte35)، باید با nhmlonly ترکیب شود
chksum (enum، پیش‌فرض: none): درج مجموع مقابله‌ای (checksum) فریم
* none: بدون مجموع مقابله‌ای
* crc: مجموع مقابله‌ای CRC32
* sha1: مجموع مقابله‌ای SHA1

توضیحات: تفکیک‌کننده VobSub

این فیلتر فایل‌ها/داده‌های VobSub را برای تولید PIDها و فریم‌های رسانه‌ای تجزیه می‌کند.

blankframe (bool، پیش‌فرض: true): اجبار به درج یک فریم خالی در صورتی که نخستین subpic در 0 نباشد
keepempty (bool، پیش‌فرض: false): اعلان قطعه‌های VobSub فاقد فریم

توضیحات: چندگانه‌ساز AVI

این فیلتر صدا و تصویر خام یا فشرده‌شده را برای تولید یک خروجی AVI چندگانه‌سازی می‌کند.

برخلاف سایر فیلترهای چندگانه‌سازی در GPAC، این یک فیلتر مقصد (sink) است و هیچ PIDای برای هدایت مجدد در گراف تولید نمی‌کند.
با این حال، فیلتر می‌تواند از نام‌های الگویی برای خروجی خود استفاده کند و از نخستین PID ورودی برای حل نام نهایی بهره ببرد.
این فیلتر مشخصه FileNumber روی بسته‌های ورودی را برای ایجاد فایل‌های جدید بررسی می‌کند.

این فیلتر به دنبال مشخصه AVIType تنظیم‌شده روی جریان ورودی می‌گردد.
این مقدار می‌تواند یک 4CC یا یک رشته باشد که قالب چندگانه‌سازی (mux) را برای PID نشان می‌دهد.
اگر این رشته دارای پیشوند + باشد و پیکربندی رمزگشا موجود بوده و به صورت یک جعبه (box) ISOBMFF قالب‌بندی شده باشد، سرایند جعبه حذف خواهد شد.

dst (cstr): مکان فایل مقصد
fps (frac, default: 25/1): نرخ فریم پیش‌فرض در صورت عدم تعیین در جریان
noraw (bool, default: false): غیرفعال‌سازی خروجی خام در AVI، فقط موارد فشرده مجاز است
opendml_size (luint, default: 0): اجبار به قالب opendml هنگامی که تکه‌ها بزرگ‌تر از این مقدار باشند (۰ به معنای بیشینه اندازه ۱٫۹ گیگابایت در هر riff chunk است)

توضیحات: خروجی صوتی

این فیلتر یک PID ورودی صوتی PCM (فشرده‌نشده) منفرد را در کارت صدا یا دستگاه خروجی صوتی دیگری می‌نویسد.

هر چه بافر صوتی bdur طولانی‌تر باشد، تاخیر صوتی (مکث/ادامه) بیشتر خواهد بود. همچنین کیفیت پخش سریع صدا (fast forward) هنگام استفاده از بافرهای صوتی بزرگ کاهش خواهد یافت.

اگر clock تنظیم شده باشد، فیلتر زمان سیستم (بر حسب میکروثانیه - us) و CTS بستهٔ متناظر را برای استفادهٔ سایر فیلترها جهت همگام‌سازی صوت و تصویر (AV sync) گزارش می‌کند.

drv (cstr): نام درایور صوتی
bnum (uint, default: 2): تعداد بافرهای صوتی (۰ برای خودکار)
bdur (uint, default: 100): مدت‌زمان کل همهٔ بافرها بر حسب میلی‌ثانیه (۰ برای خودکار)
threaded (bool, default: true): اجبار به ایجاد نخ (thread) اختصاصی در صورتی که درایور کارت صدا چندنخی (threaded) نباشد
dur (frac, default: 0): تنها پخش مدت‌زمان مشخص‌شده
clock (bool, default: true): پیشنهاد ساعت صوتی (audio clock) برای این جریان
speed (dbl, default: 1.0, updatable): تنظیم سرعت پخش. اگر سرعت منفی باشد و start برابر با ۰ باشد، start روی ۱- تنظیم می‌شود
start (dbl, default: 0.0, updatable): تنظیم آفست شروع پخش. مقدار منفی به معنای درصدی از مدت‌زمان رسانه است که در آن ۱- برابر با کل مدت‌زمان است
vol (uint, default: 100, minmax: 0-100, updatable): تنظیم بلندی صدای پیش‌فرض، به صورت درصدی بین ۰ تا ۱۰۰
pan (uint, default: 50, minmax: 0-100, updatable): تنظیم تراز استریو (pan)، به صورت درصدی بین ۰ تا ۱۰۰ که ۵۰ در مرکز قرار دارد
buffer (uint, default: 100): تنظیم بافر بازپخش بر حسب میلی‌ثانیه
mbuffer (uint, default: 0): تنظیم بیشینه ظرفیت اشغال بافر بر حسب میلی‌ثانیه. اگر کمتر از buffer باشد، از مقدار buffer استفاده می‌شود
rbuffer (uint, default: 0, updatable): محرک بافرسازی مجدد (rebuffer) بر حسب میلی‌ثانیه. اگر ۰ یا بیشتر از buffer باشد، بافرسازی مجدد غیرفعال می‌شود
adelay (frac, default: 0, updatable): تنظیم تاخیر صوتی بر حسب ثانیه
buffer_done (bool): نشانگر اتمام بافر (فقط‌خواندنی، برای برنامهٔ کاربر)
rebuffer (luint): زمان سیستم بر حسب میکروثانیه (us) در هنگام شروع آخرین بافرسازی مجدد، ۰ در صورت عدم بافرسازی مجدد (فقط‌خواندنی، برای برنامهٔ کاربر)
media_offset (dbl, default: 0): آفست رسانه (کسر این مقدار از CTS برای به‌دست آوردن زمان رسانه - فقط‌خواندنی)

توضیحات: بازنویس M4V

این فیلتر جریان‌های تصویری MPEG-4 part 2 را به قالبی قابل‌نوشتن تبدیل می‌کند (درج مجدد پیکربندی رمزگشا).

rcfg (bool, default: true): اجبار به تکرار پیکربندی رمزگشا در هر I-frame

توضیحات: بازنویس VC1

این فیلتر جریان‌های تصویری VC1 را به قالبی قابل‌نوشتن تبدیل می‌کند (درج مجدد پیکربندی رمزگشا و کدهای شروع در صورت نیاز).

rcfg (bool, default: true): اجبار به تکرار پیکربندی رمزگشا در هر I-frame

توضیحات: بازنمونه‌بردار صوتی

این فیلتر صدای خام را به نرخ نمونه‌برداری، تعداد کانال‌ها یا قالب صوتی هدف بازنمونه‌برداری می‌کند.

och (uint, default: 0): تعداد کانال‌های صوتی خروجی مورد نظر (۰ برای خودکار)
osr (uint, default: 0): نرخ نمونه‌برداری صوتی خروجی مورد نظر (۰ برای خودکار)
osfmt (afmt, default: none): قالب نمونه‌برداری صوتی خروجی مورد نظر (none برای خودکار)
olayout (alay, Enum: mono|stereo|3/0.0|3/1.0|3/2.0|3/2.1|5/2.1|1+1|2/1.0|2/2.0|3/3.1|3/4.1|11/11.2|5/2.1|5/5.2|5/4.1|6/5.1|6/7.1|5/6.1|7/6.1): چیدمان CICP مورد نظر برای صوت خروجی (null برای خودکار)

توضیحات: خروجی ویدیو

این فیلتر یک PID ورودی تصویری منفرد را در یک پنجره نمایش می‌دهد.
پنجره ایجاد می‌شود مگر اینکه یک دستگیره پنجره (HWND، xWindow و غیره) در فایل پیکربندی مشخص شده باشد ( [Temp]OSWnd=ptr).
خروجی از ماژول خروجی ویدیوی GPAC که در گزینه .I drv یا در فایل پیکربندی مشخص شده است استفاده می‌کند (راهنمای هسته GPAC را ببینید).
ماژول خروجی ویدیو می‌تواند بیشتر پیکربندی شود (راهنمای هسته GPAC را ببینید).
این فیلتر بسته به پشتیبانی سیستم‌عامل، می‌تواند از OpenGL یا blit دوبعدی کارت گرافیک استفاده کند.
این فیلتر می‌تواند برای تخلیه (dump) فریم‌ها به همان صورتی که توسط کارت گرافیک نوشته شده‌اند (GPU read-back) با استفاده از .I dumpframes به کار رود.
در این حالت، پنجره قابل مشاهده نیست و تنها فریم‌های فهرست‌شده بر روی GPU رسم می‌شوند.
قالب پیکسلی فریم تخلیه‌شده در OpenGL همواره RGB است و در حالت دوبعدی با قالب بافر پشتی (backbuffer) ویدیو مطابقت دارد.

drv (cstr): نام درایور ویدیو
vsync (bool، پیش‌فرض: true): فعال‌سازی همگام‌سازی صفحه ویدیو (vsync)
drop (bool، پیش‌فرض: false، قابل به‌روزرسانی): فعال‌سازی دور انداختن فریم‌های دیرهنگام
disp (enum، پیش‌فرض: gl): حالت نمایش
* gl: OpenGL
* pbo: OpenGL همراه با PBO
* blit: انتقال دوبعدی سخت‌افزاری (2D hardware blit)
* soft: انتقال نرم‌افزاری (software blit)

start (dbl، پیش‌فرض: 0.0، قابل به‌روزرسانی): تنظیم آفست شروع پخش. مقدار منفی به معنای درصدی از مدت‌زمان رسانه است که در آن -1 برابر با کل مدت‌زمان است
dur (lfrac، پیش‌فرض: 0): فقط مدت‌زمان مشخص‌شده را پخش می‌کند
speed (dbl، پیش‌فرض: 1.0، قابل به‌روزرسانی): تنظیم سرعت پخش هنگامی که vsync روشن است. اگر speed منفی باشد و start برابر با 0 باشد، start روی -1 تنظیم می‌شود
hold (dbl، پیش‌فرض: 1.0): تعداد ثانیه‌ها برای نگه‌داشتن تصویر برای جریان‌های تک‌فریم (مقدار منفی، نگه‌داشتن روی آخرین فریم را برای جریان‌های تک‌فریم یا چندفریم اجباری می‌کند)
linear (bool، پیش‌فرض: false): استفاده از فیلتر خطی به جای نزدیک‌ترین پیکسل برای حالت GL
back (uint، پیش‌فرض: 0x808080): رنگ پس‌زمینه برای تصاویر شفاف
wsize (v2di، پیش‌فرض: -1x-1): اندازه اولیه پیش‌فرض پنجره
- مقدار 0x0 اندازه پنجره فریم نخست را حفظ می‌کند
- مقادیر منفی نشان‌دهنده اندازه رسانه ویدیویی هستند

wpos (v2di، پیش‌فرض: -1x-1): موقعیت پیش‌فرض (0,0 بالا-چپ)
vdelay (frac، پیش‌فرض: 0، قابل به‌روزرسانی): تنظیم تأخیر به ثانیه، مقدار مثبت پس از ساعت صوتی (audio clock) نمایش داده می‌شود
hide (bool، پیش‌فرض: false): مخفی کردن پنجره خروجی
fullscreen (bool، پیش‌فرض: false، قابل به‌روزرسانی): استفاده از حالت تمام‌صفحه
buffer (uint، پیش‌فرض: 100): تنظیم بافر بازپخش بر حسب میلی‌ثانیه
mbuffer (uint، پیش‌فرض: 0): تنظیم حداکثر اشغال بافر بر حسب میلی‌ثانیه. اگر کمتر از buffer باشد، از مقدار buffer استفاده می‌شود
rbuffer (uint، پیش‌فرض: 0، قابل به‌روزرسانی): محرک بافرسازی مجدد بر حسب میلی‌ثانیه. اگر 0 یا بیشتر از buffer باشد، بافرسازی مجدد غیرفعال می‌شود
dumpframes (uintl): فهرست مرتب فریم‌ها برای تخلیه، که 1 فریم اول است. مقدار ویژه 0 به معنای تخلیه همه فریم‌ها است
out (str، پیش‌فرض: dump): ریشه نام فایل‌های فریم تخلیه‌شده. اگر پسوندی ارائه نشود، فریم‌ها به صورت $OUT_%d.PFMT صادر می‌شوند
async (bool، پیش‌فرض: true): همگام‌سازی ویدیو با خروجی صوتی (در صورت وجود)
owsize (v2di): اندازه پنجره خروجی (فقط‌خواندنی)
buffer_done (bool): نشانگر اتمام بافر (فقط‌خواندنی)
rebuffer (luint): زمان سیستم بر حسب میکروثانیه (us) که در آن آخرین بافرسازی مجدد آغاز شد، 0 در صورت عدم بافرسازی مجدد (فقط‌خواندنی)
vjs (bool، پیش‌فرض: true): استفاده از اسکریپت JS پیش‌فرض برای کنترل vout
media_offset (dbl، پیش‌فرض: 0): آفست رسانه (برای دریافت زمان رسانه، این مقدار را از CTS کم کنید - فقط‌خواندنی)
wid (uint، پیش‌فرض: 0): شناسه پنجره (فقط‌خواندنی)
vflip (enum، پیش‌فرض: no، قابل به‌روزرسانی): وارونه کردن تصویر ویدیو (فقط در GL)
* no: بدون وارونگی
* v: وارونگی عمودی
* h: وارونگی افقی
* vh: افقی و عمودی
* hv: همانند vh

vrot (enum، پیش‌فرض: 0، قابل به‌روزرسانی): چرخش ویدیو با زاویه داده‌شده
* 0: بدون چرخش
* 90: چرخش 90 درجه پادساعت‌گرد
* 180: چرخش 180 درجه
* 270: چرخش 90 درجه ساعت‌گرد

توضیحات: برش‌دهنده ویدیو

این فیلتر برای برش دادن داده‌های خام ویدیو استفاده می‌شود.

wnd (str): اندازه خروجی جهت برش، مشخص‌شده به صورت TxLxWxH. اگر % پس از یک عدد درج شود، مقدار بر حسب درصد پهنای منبع (برای L و W) یا ارتفاع آن (برای T و H) محاسبه می‌شود. یک آفست مطلق (+x، -x) می‌تواند پس از درصد اضافه شود
copy (bool، پیش‌فرض: false): کپی کردن پیکسل‌های منبع. به‌طور پیش‌فرض در صورت امکان (قرارگیری پنجره درون فریم)، فیلتر با تنظیم آفست‌ها و strideهای منبع، تلاش می‌کند فریم‌های برش‌خورده را فوروارد کند
round (enum، پیش‌فرض: up): تنظیم ابعاد به گونه‌ای که مضربی از ۲ باشد
* up: گرد کردن رو به بالا
* down: گرد کردن رو به پایین
* allup: گرد کردن رو به بالا برای فرمت‌هایی که نیازی به آن ندارند (RGB، YUV444)
* alldown: گرد کردن رو به پایین برای فرمت‌هایی که نیازی به آن ندارند (RGB، YUV444)

توضیحات: برگرداننده ویدیو

این فیلتر فریم‌های ویدیویی فشرده‌نشده را به صورت عمودی، افقی، در هر دو جهت برمی‌گرداند یا بدون تغییر عبور می‌دهد

mode (enum، پیش‌فرض: vert، قابل به‌روزرسانی): حالت برگرداندن
* off: بدون برگرداندن (عبور مستقیم / passthrough)
* vert: برگرداندن عمودی
* horiz: برگرداندن افقی
* both: برگرداندن افقی و عمودی

توضیحات: فریم‌بندی مجدد ویدیوی خام (RAW)

این فیلتر فایل‌ها/داده‌های خام YUV و RGB را تجزیه کرده و PID و فریم‌های متناظر ویدیوی خام را در خروجی تولید می‌کند.

این فیلتر همچنین فرمت YUV4MPEG را تجزیه می‌کند.

size (v2di، پیش‌فرض: 0x0): تفکیک‌پذیری (رزولوشن) ویدیوی منبع
spfmt (pfmt، پیش‌فرض: none، Enum: none|yuv420|yvu420|yuv420_10|yuv422|yuv422_10|yuv444|yuv444_10|uyvy|vyuy|yuyv|yvyu|uyvl|vyul|yuyl|yvyl|nv12|nv21|nv1l|nv2l|yuva|yuvd|yuv444a|yuv444p|v308|yuv444ap|v408|v410|v210|grey|algr|gral|rgb8|rgb4|rgb5|rgb6|rgba|argb|bgra|abgr|rgb|bgr|xrgb|rgbx|xbgr|bgrx|rgbd|rgbds|uncv): فرمت پیکسل منبع. در صورت تعیین نشدن، از پسوند فایل استخراج می‌شود

fps (frac، پیش‌فرض: 25/1): تعداد فریم‌ها در هر ثانیه
copy (bool، پیش‌فرض: false): کپی بایت‌های منبع در فریم خروجی. در صورت تنظیم نشدن، بایت‌های منبع تنها ارجاع داده می‌شوند

توضیحات: فریم‌بندی مجدد PCM

این فیلتر فایل‌ها/داده‌های خام PCM یا فایل‌های WAVE را تجزیه کرده و PID و فریم‌های صوتی خام متناظر را تولید می‌کند.

sr (uint، پیش‌فرض: 44100): نرخ نمونه‌برداری (sample rate)
safmt (afmt، پیش‌فرض: none، Enum: none|u8|s16|s16b|s24|s24b|s32|s32b|flt|fltb|dbl|dblb|u8p|s16p|s24p|s32p|fltp|dblp): فرمت صوتی

ch (uint، پیش‌فرض: 2): تعداد کانال‌ها
framelen (uint، پیش‌فرض: 1024): تعداد نمونه‌ها برای قرارگیری در یک فریم صوتی. برای فرمت‌های صفحه‌ای (planar)، اندازه صفحه (plane) بر حسب نمونه مشخص می‌شود

توضیحات: رمزگذار JPG

این فیلتر یک PID ویدیویی فشرده‌نشده منفرد را با استفاده از libjpeg به JPEG رمزگذاری می‌کند.

dctmode (enum, default: fast): نوع DCT مورد استفاده
* slow: تبدیل DCT عدد صحیح دقیق اما کُند
* fast: تبدیل DCT عدد صحیح با دقت کمتر اما سریع‌تر
* float: تبدیل DCT ممیز شناور

quality (uint, default: 100, minmax: 0-100, updatable): کیفیت فشرده‌سازی

توضیحات: رمزگذار PNG

این فیلتر یک تک PID ویدیویی فشرده‌نشده را با استفاده از libpng به PNG رمزگذاری می‌کند.

بدون گزینه

توضیحات: بازگرداننده صوت/ویدیو

این فیلتر فریم‌های صوتی و ویدیویی را در سرعت پخش منفی معکوس می‌کند.
اگر سرعت مثبت باشد، فیلتر در حالت عبور مستقیم (passthrough) عمل می‌کند. در غیر این صورت، GOPهای رمزگشایی‌شده را برای ویدیو معکوس می‌کند، یا نمونه‌ها را در فریم رمزگشایی‌شده برای صوت معکوس می‌سازد (که برای اکثر کدک‌ها چندان مناسب نیست).

rbuffer (uint, default: 100): اندازه بافر بازگردانی ویدیو بر حسب فریم. اگر تعداد فریم‌ها بیشتر از این مقدار باشد، تخلیه (flush) انجام می‌شود

توضیحات: الحاق‌کننده منابع

از این فیلتر می‌توان برای پخش فایل‌های فهرست پخش یا فهرستی از منابع استفاده کرد.

این فیلتر هر منبع پشتیبانی‌شده توسط GPAC را بارگذاری می‌کند: فایل‌های راه دور یا محلی، یا نشست‌های جاری‌سازی (TS، RTP، DASH یا غیره).
فیلتر ورودی‌ها را دی‌مالتی‌پلکس کرده و برچسب‌های زمانی ورودی را در یک خط زمانی پیوسته بازحساب می‌کند.
در هر منبع جدید، فیلتر تلاش می‌کند PIDهای ورودی را به PIDهای خروجی از قبل اعلان‌شده از همان نوع (در صورت وجود) مجدداً نگاشت کند، در غیر این صورت PIDهای خروجی جدیدی اعلان می‌کند. اگر هیچ PID ورودی با نوع خروجی مطابقت نداشته باشد، هیچ بسته‌ای برای آن PID ارسال نمی‌شود.

حالت فهرست منبع با استفاده از flist:srcs=f1[,f2] فعال می‌شود، که در آن f1 می‌تواند یک فایل یا یک دایرکتوری برای پیمایش باشد.
نحو شمارش دایرکتوری به این صورت است:
* dir، dir/ یا dir/*: همه چیز را در دایرکتوری dir برمی‌شمارد
* foo/*.png: همه فایل‌های با پسوند png در دایرکتوری foo را برمی‌شمارد
* foo/*.png;*.jpg: همه فایل‌های با پسوند png یا jpg در دایرکتوری foo را برمی‌شمارد

فهرست فایل حاصل را می‌توان با استفاده از .I fsort مرتب کرد.
اگر حالت مرتب‌سازی datex باشد و فایل‌های منبع، تصویر یا فایل‌های تک‌فریم باشند، موارد زیر اعمال می‌شود:
- گزینه‌های .I floop ، .I revert و .I fdur نادیده گرفته می‌شوند
- فایل‌ها بر اساس زمان تغییر مرتب می‌شوند
- به اولین فریم برچسب زمانی 0 اختصاص داده می‌شود
- به هر فریم (حاصل از هر فایل) مدت زمانی برابر با اختلاف زمان تغییر بین آن فایل و فایل بعدی اختصاص می‌یابد
- به آخرین فریم همان مدت زمان فریم قبلی اختصاص می‌یابد

هنگام مرتب‌سازی بر اساس نام:
- نام‌های فایل کوتاه‌تر پیش از نام‌های فایل طولانی‌تر درج می‌شوند
- در صورت یکسان بودن طول نام فایل، مرتب‌سازی الفبایی اعمال می‌شود

حالت فهرست پخش هنگام باز کردن یک فایل فهرست پخش فعال می‌شود (قالب m3u، کدگذاری utf-8، بدون BOM، پسوندهای پیش‌فرض m3u، txt یا pl).
در این حالت، دستورالعمل‌ها را می‌توان در یک خط توضیح، یعنی خطی که با # قبل از خط حاوی نام فایل شروع می‌شود، مشخص کرد.
خطوطی که با ## شروع می‌شوند نادیده گرفته می‌شوند.

فایل فهرست پخش هر بار که منبع بعدی باید دوباره بارگذاری شود تازه‌سازی می‌شود تا امکان درج پویای منابع در فهرست پخش فراهم باشد.
اگر آخرین URL پخش‌شده در فهرست پخش یافت نشود، اولین URL در فایل فهرست پخش بارگذاری خواهد شد.

هنگامی که از .I ka برای استمرار در تازه‌سازی منظم فهرست پخش استفاده می‌شود، فهرست پخش باید با یک خط جدید پایان یابد.
تازه‌سازی فهرست پخش متوقف خواهد شد:
- اگر فهرست پخش ورودی خطی داشته باشد که به نویسه LF (0 ختم نمی‌شود، تا از مشکلات ناهمگامی هنگام خواندن فهرست پخش اجتناب شود.
- اگر فهرست پخش ورودی به مدت مقدار گزینه .I timeout (به‌طور پیش‌فرض بی‌نهایت) تغییری نکرده باشد.

از خط ویژه ##GPACPL می‌توان برای شناسایی فایل به عنوان یک فهرست پخش GPAC استفاده کرد، که در صورت نبود محتوای اولیه در حالت keep-alive سودمند است.

نکته: هنگامی که فهرست پخش منبع یک شیء GFIO است، URLهای درون فهرست پخش به اشیاء GFIO تبدیل نمی‌شوند.

یک سطر دستورالعمل فهرست پخش می‌تواند شامل صفر یا چند دستورالعمل باشد که با فاصله (space) از هم جدا شده‌اند. دستورالعمل‌های زیر پشتیبانی می‌شوند:
* repeat=N: محتوا را N بار تکرار می‌کند (در نتیجه N+1 بار پخش می‌شود)، در صورت منفی بودن حلقه بی‌نهایت خواهد بود.
* start=T: تلاش می‌کند فایل را از زمان شروع T ثانیه پخش کند (تنها قالب double). این قابلیت ممکن است با برخی فایل‌ها/قالب‌هایی که از جستجو (seeking) پشتیبانی نمی‌کنند کار نکند.
* stop=T: پخش منبع را پس از T ثانیه متوقف می‌کند (تنها قالب double). این قابلیت روی هر منبعی کار می‌کند (مستقل از پشتیبانی جستجو پیاده‌سازی شده است).
* cat: مشخص می‌کند که مدخل بعدی باید به جای باز کردن یک منبع جدید، به منبع قبلی الحاق (concatenate) شود. در صورت تمایل می‌توان به‌صورت اختیاری یک محدوده بایت (byte range) را مشخص کرد، در غیر این صورت کل فایل الحاق می‌شود.
نکته: هنگامی که منابع، فایل‌ها یا قطعه‌های (segments) ISOBMFF روی حافظه محلی یا اشیاء GF_FileIO باشند، الحاق به‌طور خودکار تشخیص داده خواهد شد.
* srange=T: زمانی که cat تنظیم شده باشد، نقطه شروع T (ده‌دهی ۶۴ بیتی، پیش‌فرض 0) از محدوده بایت مدخل بعدی را برای الحاق مشخص می‌کند.
* send=T: زمانی که cat تنظیم شده باشد، نقطه پایان T (ده‌دهی ۶۴ بیتی، پیش‌فرض 0) از محدوده بایت مدخل بعدی را برای الحاق مشخص می‌کند.
* props=STR: ویژگی‌های شرح داده‌شده در STR را به تمام PIDهای حاصل از منابع فهرست‌شده در سطر بعدی اختصاص می‌دهد. STR طبق gpac -h doc با استفاده از مجموعه پارامترهای پیش‌فرض قالب‌بندی می‌شود.
* del: مشخص می‌کند که فایل(های) منبع باید پس از پردازش حذف شوند؛ در صورتی که .I fdel تنظیم شده باشد، به‌طور پیش‌فرض true است.
* out=V: زمان شروع برش/پیوند (splicing) را مشخص می‌کند (به زیر مراجعه کنید).
* in=V: زمان پایان برش/پیوند (splicing) را مشخص می‌کند (به زیر مراجعه کنید).
* nosync: از تنظیم برچسب‌های زمانی (timestamp) هنگام پیوستن منابع جلوگیری می‌کند (در صورت تنظیم بودن cat، به‌صورت ضمنی اعمال می‌شود).
* keep: دوره برش/پیوند داده‌شده (spliced period) را در خروجی نگه می‌دارد (به زیر مراجعه کنید).
* mark: تنها نشانگر را برای دوره برش/پیوند تزریق می‌کند و هیچ محتوای جایگزینی را بارگیری نمی‌کند (به زیر مراجعه کنید).
* sprops=STR: در طول یک برش/پیوند، ویژگی‌های شرح داده‌شده در STR را به تمام PIDهای محتوای اصلی اختصاص می‌دهد (به زیر مراجعه کنید). STR طبق gpac -h doc با استفاده از مجموعه پارامترهای پیش‌فرض قالب‌بندی می‌شود.
* chap=NAME: نام فصل (chapter) را در ابتدای URL بعدی اختصاص می‌دهد (فیلتر همواره نام‌های فصل منبع را حذف می‌کند).
* base_url=PATH: نشانی وب پایه (base URL) را برای تمام مدخل‌های بعدی در فهرست پخش بازنویسی (override) می‌کند. برای بازنشانی، از یک رشته خالی استفاده کنید.

هنگامی که فهرست پخش به‌صورت بسته‌ها (pipes، sockets و...) منتقل می‌شود، دستورالعمل‌های زیر نیز اعمال می‌شوند:
* replace: کل محتوای فهرست پخش را با بار مفید (payload) بسته جدید جایگزین می‌کند، در غیر این صورت الحاق می‌کند (بار مفید باید با #replace آغاز شود).
* purge: با حذف تمام محتوای غیرفعال پیش از دستورالعمل قبلی #purge، از رشد مداوم فهرست پخش جلوگیری می‌کند؛ این دستورالعمل تنها در هر بسته جدید ارزیابی می‌شود (بار مفید باید با #purge آغاز شود).

گزینه‌های عمومی زیر (که بر فیلتر اعمال می‌شوند، نه منابع) نیز می‌توانند در فهرست پخش تنظیم شوند:
* ka=N: گزینه .I ka را به نوسازی در N میلی‌ثانیه مجبور می‌کند.
* floop=N: گزینه .I floop را از داخل فهرست پخش تنظیم می‌کند.
* raw: گزینه .I raw را از داخل فهرست پخش تنظیم می‌کند.

رفتار پیش‌فرض هنگام پیوستن منابع، هم‌تراز کردن مجدد مبدأ خط زمانی (timeline) منبع جدید با حداکثر زمان در تمامی PIDهای منابع قبلی است.
این امر در صورتی که مدت‌زمان PIDهای منبع قبلی برابر نباشد، ممکن است شکاف‌هایی در خط زمانی ایجاد کند (امری که در اکثر کدک‌های صوتی بسیار رایج است).
استفاده از دستورالعمل nosync این هم‌ترازی مجدد را غیرفعال کرده و یک خط زمانی پیوسته فراهم می‌کند، اما بسته به کدگذاری منبع ممکن است خطاهای همگام‌سازی ایجاد کند (با احتیاط استفاده شود).

سطرهای منبع از نحو معمول منبع پیروی می‌کنند، gpac -h را ببینید.
ویژگی‌های اضافی PID را می‌توان به ازای هر منبع اضافه کرد (به gpac -h doc مراجعه کنید)، اما تنها برای منبع فعلی معتبر هستند و در منبع بعدی بازنشانی می‌شوند.
منابع بارگیری‌شده، آرگومان‌ها را از فیلتر فهرست پخش والد به ارث نمی‌برند.

URL ارائه‌شده می‌تواند یک URL منفرد یا فهرستی از URLها باشد که با " && " از هم جدا شده‌اند تا چند منبع را برای مدخل فعال بارگیری کنند.
هشدار: نباید هیچ نویسه فاصله/تب دیگری بین منابع وجود داشته باشد.
مثال
audio.mp4 && video.mp4

هر URL می‌تواند با زنجیره‌ای از یک یا چند فیلتر دنبال شود، با استفاده از دستورالعمل پیوند @ همان‌طور که در gpac استفاده می‌شود (به gpac -h doc مراجعه کنید).
از یک نمایه پیوند منفی (به عنوان مثال @-1) می‌توان برای راه‌اندازی یک زنجیره فیلتر جدید با شروع از آخرین منبع مشخص‌شده در سطر استفاده کرد.
هشدار: قبل و بعد از هر دستورالعمل پیوند باید تنها یک نویسه با مقدار فاصله (' ') وجود داشته باشد.

مثال
src.mp4 @ reframer:rt=on

این دستور یک reframer با تنظیم بلادرنگ بین منبع و فیلتر flist تزریق خواهد کرد.
مثال
src.mp4 @ reframer:saps=1 @1 reframer:saps=0,2,3
src.mp4 @ reframer:saps=1 @-1 reframer:saps=0,2,3

این دستور یک reframer که فقط فریم‌های SAP1 را فیلتر می‌کند و یک reframer که فقط فریم‌های غیر SAP1 را فیلتر می‌کند بین منبع و فیلتر flist تزریق خواهد کرد.

گزینه‌های پیوند را می‌توان مشخص کرد (به gpac -h doc مراجعه کنید).
مثال
src.mp4 @#video reframer:rt=on

این دستور یک reframer با تنظیم بلادرنگ بین PID ویدیویی منبع و فیلتر flist تزریق خواهد کرد.

هنگام استفاده از زنجیره‌های فیلتر، فیلتر flist تنها PIDها را از آخرین فیلتر اعلان‌شده در زنجیره می‌پذیرد.
به منظور پذیرش سایر PIDها از منبع، باید یک دستورالعمل پیوند نهایی بدون فیلتر بعدی مشخص کنید.
مثال
src.mp4 @#video reframer:rt=on @-1#audio

این دستور یک reframer با تنظیم بلادرنگ بین PID ویدیویی منبع و فیلتر flist تزریق خواهد کرد و همچنین به PIDهای صوتی منبع اجازه می‌دهد تا به فیلتر flist متصل شوند.

دستورالعمل پیوند خالی را می‌توان روی آخرین فیلتر اعلان‌شده نیز استفاده کرد.
مثال
src.mp4 @ reframer:rt=on @#audio

این دستور یک reframer با تنظیم بلادرنگ بین منبع و فیلتر flist تزریق خواهد کرد و تنها PIDهای صوتی را به فیلتر flist متصل می‌کند.
از فهرست پخش می‌توان برای پیوند زدن محتوا با محتوای دیگری که پس از یک رسانه در فهرست پخش می‌آید، استفاده کرد.
یک مورد منبع تنها و تنها در صورتی در یک عملیات پیوند به عنوان رسانه اصلی شناخته می‌شود که دستورالعمل out برای آن تعیین شده باشد (که می‌تواند خالی باشد).
می‌توان از دستورالعمل‌ها برای رسانه اصلی استفاده کرد، به جز دستورالعمل‌های الحاق (concatenation).

عملیات پیوند فریم‌های رسانه را دستکاری نمی‌کند و عملیات در دامنه فشرده‌نشده نظیر محو تدریجی متقابل (cross-fade) یا میکس (mixing) را انجام نمی‌دهد.

دستورالعمل out (و به همین ترتیب in) زمان شروع (و به همین ترتیب پایان) پیوند رسانه را مشخص می‌کند. این مقدار می‌تواند به صورت‌های زیر قالب‌بندی شود:
* empty: زمان هنوز اختصاص نیافته است
* `now`: زمان به نقطه SAP بعدی در رسانه نگاشت می‌شود
* integer، float یا fraction: تنظیم زمان بر حسب ثانیه
* `+VAL`: فقط برای in استفاده می‌شود، نقطه پایان را به صورت یک دلتا بر حسب ثانیه از نقطه شروع مشخص می‌کند (VAL می‌تواند integer، float یا fraction باشد)
* DATE: تنظیم زمان پیوند بر اساس DATE ساعت واقعی (wall clock)، قالب‌بندی‌شده به صورت یک XSD dateTime
زمان‌های پیوند (به جز ساعت دیواری) بر اساس زمان‌بندی منبع (رسانه اصلی) بیان می‌شوند، نه محور زمان بازسازی‌شده خروجی.

هنگامی که یک پیوند آغاز می‌شود (زمان out فرا می‌رسد)، موارد منبع پس از رسانه اصلی تا پایان پیوند یا پایان رسانه اصلی پخش می‌شوند.
منابع مورد استفاده در طول دوره پیوند می‌توانند از دستورالعمل‌هایی مانند start، dur یا repeat استفاده کنند.

هنگامی که یک پیوند انجام شد (زمان in فرا رسید)، زمان پیوند out رسانه اصلی به مقدار تعریف‌نشده (undefined) بازنشانی می‌شود.

هنگامی که رسانه اصلی زمان‌های پیوند out یا in تعریف‌نشده دارد، فهرست پخش در هر بسته جدید رسانه اصلی بازخوانی می‌شود تا مقادیر حل‌شده را بررسی کند.
- مقدار out تنها زمانی می‌تواند تغییر یابد که هیچ پیوندی فعال نباشد، در غیر این صورت نادیده گرفته می‌شود. در صورت تغییر، منبع بعدی برای پخش را به منبع پس از رسانه اصلی تغییریافته بازنشانی می‌کند.
- مقدار in تنها زمانی می‌تواند تغییر یابد که یک پیوند با زمان پایان تعریف‌نشده فعال باشد، در غیر این صورت نادیده گرفته می‌شود.

هنگامی که رسانه اصلی تمام می‌شود:
- اگر دستورالعمل repeat تنظیم شده باشد، رسانه اصلی تکرار می‌شود، in و out به مقادیر اولیه خود برمی‌گردند و محتوای پیوند بعدی همان محتوای پس از محتوای اصلی خواهد بود،
- در غیر این صورت، منبع بعدی که در صف قرار می‌گیرد، منبع پس از آخرین منبع پخش‌شده در طول آخرین دوره پیوند خواهد بود.

تعریف چندین رسانه اصلی در فهرست پخش مجاز است، اما یک رسانه اصلی مجاز نیست به عنوان رسانه برای یک دوره پیوند استفاده شود.

فیلتر برای DASH چنددوره‌ای (multi-period)، به دنبال ویژگی Period روی PIDهای خروجی رسانه اصلی می‌گردد.
در صورت یافت شدن، N_ به شناسه دوره (period ID) اضافه می‌شود، به طوری که N از 1 شروع شده و با هر بار ازسرگیری رسانه اصلی افزایش می‌یابد.
اگر هیچ ویژگی Period روی رسانه اصلی یا رسانه پیوندزده‌شده تنظیم نشده باشد، تعویض دوره (period switch) همچنان می‌تواند با استفاده از گزینه DASH به صورت .I -pswitch اجبار شود.

اگر دستورالعمل mark برای یک رسانه اصلی تنظیم شده باشد، هیچ جایگزینی محتوایی انجام نمی‌شود و مرزهای پیوند در رسانه اصلی سیگنال‌دهی خواهند شد.
اگر دستورالعمل keep برای یک رسانه اصلی تنظیم شده باشد، رسانه اصلی همراه با محتوای جایگزین ارسال می‌شود.
هنگامی که دستورالعمل‌های mark یا keep تنظیم شده باشند، تغییر ویژگی‌های PID رسانه اصلی با استفاده از دستورالعمل sprops امکان‌پذیر است.

مثال:
#out=2 in=4 mark sprops=#xlink=http://foo.bar
src:#Period=main

این کار ویژگی xlink را روی PIDهای خروجی در ناحیه پیوند (متناظر با دوره main_2) تزریق می‌کند، اما در بقیه بخش‌های رسانه اصلی اعمال نمی‌شود.

دستورالعمل‌های mark، keep و sprops در پایان دوره پیوند بازنشانی می‌شوند.

floop (sint, default: 0): تکرار حلقه‌ای فهرست پخش/فهرست فایل‌ها، 0 برای یک بار، n برای 1+n بار، -1 برای نامحدود
srcs (strl): فهرست فایل‌ها برای پخش
fdur (frac, default: 1/25): مدت‌زمان فریم برای فایل‌های منبع با یک تک‌فریم (کسر 0/NaN به معنی استفاده مجدد از زمان‌بندی منبع است که معمولاً تنظیم نشده است!)
revert (bool, default: false): معکوس کردن فهرست فایل‌ها (.I srcs، نه فهرست پخش)
timescale (uint, default: 0): اجبار مقیاس زمانی (timescale) خروجی روی همه PIDها (0 از مقیاس زمانی اولین PID یافت‌شده استفاده می‌کند)
ka (uint, default: 0): زنده نگه‌داشتن فهرست پخش (غیرفعال کردن حلقه)، در انتظار برای اضافه شدن یک ورودی جدید یا دستورالعمل #end برای پایان فهرست پخش. این مقدار نرخ نوسازی را بر حسب میلی‌ثانیه مشخص می‌کند
timeout (luint, default: -1): مهلت زمانی بر حسب میلی‌ثانیه که پس از آن فهرست پخش مرده در نظر گرفته می‌شود (-1 به معنی نامحدود است)
fsort (enum, default: no): مرتب‌سازی فهرست فایل‌ها
* no: بدون مرتب‌سازی، استفاده از شمارش پیش‌فرض دایرکتوری در سیستم‌عامل
* name: مرتب‌سازی بر اساس نام الفبایی
* size: مرتب‌سازی بر اساس اندازه صعودی
* date: مرتب‌سازی بر اساس زمان تغییر صعودی
* datex: مرتب‌سازی بر اساس زمان تغییر صعودی

sigcues (bool, default: false): تزریق ویژگی CueStart در آغاز هر منبع (جدید یا تکراری) برای DASHing
sigperiods (bool, default: false): درخواست یک Period جدید DASH در آغاز هر منبع؛ مفید هنگامی که زمان‌بندی رسانه باید در حلقه‌ها بازنشانی شود (TTML و ...)
fdel (bool, default: false): حذف فایل‌های منبع پس از پردازش در حالت فهرست پخش (فهرست پخش را حذف نمی‌کند)
keepts (bool, default: false): حفظ برچسب‌های زمانی (timestamps) اولیه بدون تغییر (بدون بازنشانی به 0)
raw (enum, default: no): اجبار جریان‌های صوتی/تصویری (AV) ورودی به قالب خام (raw)
* no: عدم اجبار در رمزگشایی ورودی‌ها
* av: اجبار در رمزگشایی ورودی‌های صوتی و ویدئویی
* a: اجبار در رمزگشایی ورودی‌های صوتی
* v: اجبار در رمزگشایی ورودی‌های ویدئویی

flush (bool, default: false): ارسال سیگنال تخلیه (flush) پس از اتمام فهرست پخش پیش از ورود به keepalive

توضیحات: مالتی‌پلکسر MPEG-2 TS

این فیلتر یک یا چند PID ورودی را در یک مالتی‌پلکس MPEG-2 Transport Stream تسهیم می‌کند.

مالتی‌پلکسر MPEG-2 TS برای جریان‌های رسانه‌ای، PID مربوط به M2TS را با استفاده از PID جدول PMT به‌علاوه نمایه جریان تخصیص می‌دهد.
برای مثال، در پیکربندی پیش‌فرض، نخستین برنامه با PMT PID 100 ایجاد می‌شود و نخستین جریان دارای PID برابر با 101 خواهد بود.
جریان‌ها در صورت وجود، بر پایه ویژگی ServiceID در PID ورودی در برنامه‌ها گروه‌بندی می‌شوند. در صورت عدم وجود، جریان به برنامه‌ای با شناسه سرویس مشخص‌شده توسط گزینه .I sid خواهد رفت.
- گزینه .I name توسط ویژگی ServiceName در PID ورودی بازنویسی می‌شود.
- گزینه .I provider توسط ویژگی ServiceProvider در PID ورودی بازنویسی می‌شود.
- گزینه .I pcr_offset توسط ویژگی "tsmux:pcr_offset" در PID ورودی بازنویسی می‌شود.
- گزینه .I first_pts توسط ویژگی "tsmux:force_pts" در PID ورودی بازنویسی می‌شود.
- گزینه .I temi توسط ویژگی "tsmux:temi" در PID ورودی بازنویسی می‌شود.

گزینه .I temi امکان تعیین فهرستی از URLها یا شناسه‌های خط زمانی را برای درج در جریان‌های یک برنامه فراهم می‌کند.
می‌توان یک یا چند خط زمانی TEMI را به ازای هر PID مشخص کرد.
نحو دستور، فهرستی جداشده با کاما از یک یا چند توصیف TEMI است.
هر توصیف TEMI به قالب ID_OR_URL یا #OPT1[#OPT2]#ID_OR_URL قالب‌بندی می‌شود. گزینه‌ها عبارتند از:
* S`N`: سرویس هدف با شناسه N را مشخص می‌کند
* T`N`: مقیاس زمانی (timescale) مورد استفاده را تنظیم می‌کند (پیش‌فرض: مقیاس زمانی PID)
* D`N`: تاخیر بر حسب میلی‌ثانیه بین دو توصیف‌گر نشانی TEMI url را تعیین می‌کند (پیش‌فرض 1000)
* O`N`: افست (حداکثر ۶۴ بیت) برای افزودن به کدهای زمانی TEMI را تعیین می‌کند (پیش‌فرض 0). اگر مقیاس زمانی مشخص نشده باشد، مقدار افست بر حسب میلی‌ثانیه است، در غیر این صورت بر حسب واحدهای مقیاس زمانی خواهد بود.
* I`N`: مقدار اولیه (حداکثر ۶۴ بیت) کدهای زمانی TEMI را تعیین می‌کند. در صورت عدم تنظیم، مقدار اولیه با CTS اولین بسته مطابقت خواهد داشت. اگر مقیاس زمانی مشخص نشده باشد، مقدار بر حسب واحدهای مقیاس زمانی PID است، در غیر این صورت بر حسب واحدهای مقیاس زمانی مشخص‌شده خواهد بود.
* P`N`: نشان‌دهنده PID هدف در برنامه است. مقادیر ممکن عبارتند از:
* `V`: درج فقط برای جریان‌های ویدیویی.
* `A`: درج فقط برای جریان‌های صوتی.
* `T`: درج فقط برای جریان‌های متنی.
* N: درج فقط برای جریان با نمایه N (مبتنی بر صفر) در برنامه.
* L`C`: سیگنال‌دهی کد زمانی ۶۴ بیتی را تنظیم می‌کند. مقادیر ممکن برای C عبارتند از:
* `A`: جابه‌جایی خودکار بین ۳۲ و ۶۴ بیت بسته به مقدار کد زمانی (پیش‌فرض در صورت عدم تعیین).
* `Y`: استفاده فقط از سیگنال‌دهی ۶۴ بیتی.
* `N`: استفاده فقط از سیگنال‌دهی ۳۲ بیتی و بازگشت به ابتدا (wrap around) مقدار کد زمانی.
* N: درج برچسب زمانی NTP در توصیف‌گر خط زمانی TEMI
* n: درج برچسب زمانی NTP با استفاده از NTP برای نخستین بسته و سپس افزایش بر اساس برچسب زمانی رسانه (برای غیربی‌درنگ)
* ID_OR_URL: اگر عدد باشد، نشان‌دهنده شناسه TEMI ID مورد استفاده برای خط زمانی خارجی است؛ در غیر این صورت، نشانی URL برای درج را مشخص می‌کند

مثال
temi="url"

یک URL+timecode مربوط به TEMI را در هر جریان از هر برنامه درج می‌کند.
مثال
temi="#P0#url,#P1#4"

یک URL+timecode مربوط به TEMI را در نخستین جریان همه برنامه‌ها و یک TEMI خارجی با شناسه 4 را در دومین جریان همه برنامه‌ها درج می‌کند.
مثال
temi="#P0#2,#P0#url,#P1#4"

یک TEMI با شناسه 2 و یک URL+timecode مربوط به TEMI را در نخستین جریان همه برنامه‌ها، و یک TEMI خارجی با شناسه 4 را در دومین جریان همه برنامه‌ها درج می‌کند.
مثال
temi="#S20#4,#S10#URL"

یک TEMI خارجی با شناسه 4 را در هر جریان برنامه با ServiceID برابر با 20 و یک TEMI URL را در هر جریان برنامه با ServiceID برابر با 10 درج می‌کند.
مثال
temi="#N#D500#PV#T30000#4"

یک TEMI خارجی با شناسه 4، مقیاس زمانی 30000، تزریق NTP و چرخه (carousel) ۵۰۰ میلی‌ثانیه‌ای را در جریان ویدیویی تمام برنامه‌ها درج می‌کند.

هشدار: ضریب‌ها (k,m,g) در گزینه‌های TEMI پشتیبانی نمی‌شوند.

هنگامی که ویژگی‌های TEMI ورودی یافت شوند، می‌توان آن‌ها را با استفاده از گزینه .I temi_fwd حذف کرد. هنگام بازنویسی، هرگونه اطلاعات NTP موجود به NTP فعلی بازنویسی می‌شود.

در حالت DASH و HLS:
- مقدار PCR همیشه روی 0 مقداردهی اولیه می‌شود، و .I flush_rap به‌طور خودکار تنظیم می‌گردد.
- مگر اینکه nb_pack مشخص شده باشد، از 200 بستهٔ TS به عنوان خروجی بسته در حالت DASH استفاده خواهد شد.
- مقدار pes_pack=none اجباری است زیرا برخی از دی‌مالتی‌پلکسرها با ADTS PES غیرهم‌تراز مشکل دارند.

فیلتر مشخصهٔ FileNumber را در بسته‌های ورودی زیر نظر می‌گیرد تا فایل‌های جدید، یا در حالت DASH قطعه‌های (segments) جدید ایجاد کند.

فیلتر به دنبال مشخصهٔ M2TSRA تنظیم‌شده روی جریان ورودی خواهد گشت.
این مقدار می‌تواند یک 4CC یا یک رشته باشد که برچسب ثبت MP2G-2 TS را برای انواع رسانهٔ ناشناخته مشخص می‌کند.
مقدار SRT (نام‌های مستعار: srt، SRT) یک هدر SRT را با شماره فریمی که در هر بسته افزایش می‌یابد و زمان شروع 0 تزریق خواهد کرد.
مثال
gpac -i source.srt:#M2TSRA='SRT ' -o mux.ts

این دستور محتوای SRT مبدأ را به عنوان یک جریان دادهٔ PES تزریق کرده و تمامی نشانه‌گذاری‌ها را حذف می‌کند.
مثال
gpac -i source.srt:stxtmod=sbtt:#M2TSRA='SRT ' -o mux.ts

این دستور محتوای SRT مبدأ را به عنوان یک جریان دادهٔ PES تزریق کرده و نشانه‌گذاری‌ها را حفظ می‌کند.

در حالت مالتی‌پلکس LATM، پیکربندی رمزگشا در .I repeat_rate داده‌شده یا مشخصهٔ CarouselRate PID (در صورت تعریف) درج می‌شود.

به‌طور پیش‌فرض جریان‌های متنی با استفاده از طرح‌واره‌های HLS ID3 تعبیه می‌شوند؛ برای استفاده از PES اختصاصی خام، از مشخصهٔ M2TSRA استفاده کنید.
هدر WebVTT و قالب‌بندی TX3G حذف شده و تنها داده‌های متنی تزریق می‌شوند.

breq (uint، پیش‌فرض: 100): نیازمندی‌های بافر بر حسب میلی‌ثانیه برای PIDهای ورودی
pmt_id (uint، پیش‌فرض: 100): تعریف شناسهٔ اولین PMT برای استفاده در مالتی‌پلکس
rate (uint، پیش‌فرض: 0): نرخ بیت هدف بر حسب bps برای مالتی‌پلکس. در صورت عدم تنظیم، از نرخ متغیر استفاده می‌شود
pmt_rate (uint، پیش‌فرض: 200): فاصله زمانی بین PMT بر حسب میلی‌ثانیه
pat_rate (uint، پیش‌فرض: 200): فاصله زمانی بین PAT بر حسب میلی‌ثانیه
first_pts (luint، پیش‌فرض: 0): تحمیل مقدار PTS اولین بسته، در مقیاس 90kHz
pcr_offset (luint، پیش‌فرض: -1): آفست دادن تمام برچسب‌های زمانی از PCR به مقدار V، در مقیاس 90kHz (مقدار پیش‌فرض بر اساس رسانه ورودی محاسبه می‌شود)
mpeg4 (enum، پیش‌فرض: none): اجبار در استفاده از سیگنالینگ MPEG-4 (پیکربندی IOD و SL)
* none: غیرفعال‌سازی 4on2
* full: ارسال AUها به عنوان بسته‌های SL روی section برای OD، و section/pes برای scene (رجوع شود به bifs_pes)
* scene: ارسال تنها جریان‌های scene به صورت 4on2، اما استفاده از PES معمولی بدون SL برای صدا و ویدیو

pmt_version (uint، پیش‌فرض: 200): تنظیم شماره نسخهٔ PMT
disc (bool، پیش‌فرض: false): تنظیم نشانگر ناپیوستگی (discontinuity marker) برای اولین بسته از هر جریان
repeat_rate (uint، پیش‌فرض: 0): فاصله زمانی بر حسب میلی‌ثانیه بین دو ارسال carousel برای سیستم‌های MPEG-4 (در صورت تعریف، توسط مشخصهٔ CarouselRate PID بازنویسی می‌شود)
repeat_img (uint، پیش‌فرض: 0): فاصله زمانی بر حسب میلی‌ثانیه بین ارسال‌های مجدد (به صورت PES) برای جریان‌های تک‌تصویر (اگر 0 باشد، داده‌های تصویر فقط یک بار ارسال می‌شوند)
max_pcr (uint، پیش‌فرض: 100): تنظیم حداکثر فاصله زمانی بر حسب میلی‌ثانیه بین ۲ PCR
nb_pack (uint، پیش‌فرض: 4): بسته‌بندی N بستهٔ TS در بسته‌های خروجی
pes_pack (enum، پیش‌فرض: audio): تنظیم حالت بسته‌بندی AU در PES
* audio: تنها چندین AU صوتی را در یک PES بسته‌بندی می‌کند
* none: دقیقاً یک AU به ازای هر PES ایجاد می‌کند
* all: چندین AU را در هر PES برای تمامی جریان‌ها بسته‌بندی می‌کند

realtime (bool، پیش‌فرض: false): استفاده از خروجی بی‌درنگ (real-time)
bifs_pes (enum، پیش‌فرض: off): انتخاب نحوهٔ بسته‌بندی جریان‌های BIFS (روش PES در مقابل sections)
* on: از BIFS PES استفاده می‌کند
* off: از BIFS sections استفاده می‌کند
* copy: از BIFS PES استفاده می‌کند اما برچسب‌های زمانی را در BIFS SL حذف کرده و تنها برچسب‌های زمانی PES را منتقل می‌کند

flush_rap (bool، پیش‌فرض: false): تخلیه اجباری برنامهٔ مالتی‌پلکس هنگام یافتن RAP روی ویدیو، و تزریق PAT و PMT قبل از شروع PES ویدیویی بعدی
pcr_only (bool، پیش‌فرض: false): فعال‌سازی بسته‌های TS که فقط حاوی PCR هستند
pcr_init (lsint، پیش‌فرض: -1): تنظیم مقدار اولیهٔ PCR برای برنامه‌ها. مقدار -1 یعنی یک مقدار تصادفی انتخاب می‌شود، سایر مقادیر منفی به عنوان آفست نسبت به حداکثر مقدار PCR عمل می‌کنند
sid (uint، پیش‌فرض: 0): تنظیم شناسه سرویس (service ID) برای برنامه
name (str): تنظیم نام سرویس برای برنامه
provider (str): تنظیم نام ارائه‌دهنده سرویس برای برنامه
sdt_rate (uint، پیش‌فرض: 0): فاصله زمانی بر حسب میلی‌ثانیه بین دو جدول DVB SDT (اگر 0 باشد، SDT غیرفعال است)
temi (str): درج کدهای زمانی TEMI در adaptation field
log_freq (uint، پیش‌فرض: 500): تاخیر بین لاگ‌ها برای مالتی‌پلکس بی‌درنگ
latm (bool، پیش‌فرض: false): استفاده از کپسوله‌سازی LATM AAC به جای ADTS معمولی
subs_sidx (sint، پیش‌فرض: -1): تعداد زیرقطعه‌ها به ازای هر sidx (مقدار منفی sidx را غیرفعال می‌کند)
keepts (bool، پیش‌فرض: false): دست‌نخورده نگه داشتن cts/dts و تنظیم PCR بر همان اساس، برای حفظ بدون تغییر TS هنگام dash کردن استفاده می‌شود
temi_fwd (enum، پیش‌فرض: fwd): مشخصات ورودی TEMI هنگام مالتی‌پلکس مجدد
* drop: حذف توصیف‌گرهای ورودی
* fwd: بازفرستادن توصیف‌گرهای ورودی
* ntp: بازفرستادن توصیف‌گرهای ورودی پس از بازنویسی NTP

توضیحات: قطعه‌بندی‌کننده DASH و HLS

این فیلتر قابلیت قطعه‌بندی و تولید مانیفست را برای قالب‌های MPEG-DASH و HLS فراهم می‌کند.
این قطعه‌بندی‌کننده در حال حاضر از موارد زیر پشتیبانی می‌کند:
- تولید MPD و m3u8 (احتمالاً به‌صورت هم‌زمان)
- قالب‌های قطعه ISOBMFF، MPEG-2 TS، MKV و جریان بیت خام (raw bitstream)
- بازنویسی پروفایل‌ها و سطح‌ها در مانیفست برای کدک‌ها
- اکثر پروفایل‌های MPEG-DASH
- ارائه مانیفست ایستا (static) و پویا/زنده (dynamic/live)
- ذخیره و بارگذاری مجدد زمینه (context) برای پردازش دسته‌ای نشست‌های زنده/پویا

این فیلتر تنظیم بلادرنگ را برای هر قطعه با استفاده از sreg انجام می‌دهد.
اگر برای ورودی‌های غیربلادرنگ به تنظیم بلادرنگ برای هر فریم نیاز دارید، یک reframer قبل از آن اضافه کنید تا تنظیم بلادرنگ انجام شود.
مثال
gpac -i file.mp4 reframer:rt=on -o live.mpd:dmode=dynamic

قطعه‌بندی‌کننده صرف‌نظر از حالت DASH (حتی زمانی که از الگوها استفاده نمی‌شود)، از الگوها برای تعیین نام فایل‌ها و پوشه خروجی استفاده می‌کند. الگوی پیش‌فرض برای حالت‌های ondemand و تک‌فایلی $File$_dash و برای فایل‌های قطعه مجزا $File$_$Number$ است.
مثال
template=Great_$File$_$Width$_$Number$

اگر ورودی foo.mp4 با وضوح تصویر 640x360 باشد، این الگو در DASH به صورت Great_foo_640_$Number$ اعمال خواهد شد.
مثال
template=Great_$File$_$Width$

اگر ورودی foo.mp4 با وضوح تصویر 640x360 باشد، برای حالت onDemand به Great_foo_640.mp4 تبدیل خواهد شد.

رشته‌های جایگزین استاندارد DASH:
* $Number[%%0Nd]$: با شماره قطعه جایگزین می‌شود، احتمالاً همراه با پیشوند 0
* $RepresentationID$: با نام representation جایگزین می‌شود
* $Time$: با زمان شروع قطعه جایگزین می‌شود
* $Bandwidth$: با پهنای باند representation جایگزین می‌شود.
* $SubNumber[%%0Nd]$: با شماره قطعه در توالی قطعات جایگزین می‌شود، احتمالاً همراه با پیشوند 0
نکته: این رشته‌ها در عناصر الگوی مانیفست جایگزین نمی‌شوند.

رشته‌های جایگزین اضافی (مختص DASH نبوده و جایگزین عمومی GPAC نیز نیستند، اما ممکن است چندین بار در الگو ظاهر شوند):
* $Init=NAME$: برای قطعه مقداردهی اولیه (init segment) با NAME جایگزین می‌شود، در غیر این صورت نادیده گرفته می‌شود
* $XInit=NAME$: جایگزینی کامل با NAME برای قطعه مقداردهی اولیه، در غیر این صورت نادیده گرفته می‌شود
* $InitExt=EXT$: با EXT برای پسوندهای فایل قطعه مقداردهی اولیه جایگزین می‌شود، در غیر این صورت نادیده گرفته می‌شود
* $Index=NAME$: با NAME برای قطعات فهرست (index segments) جایگزین می‌شود، در غیر این صورت نادیده گرفته می‌شود
* $Path=PATH$: هنگام ایجاد قطعات با PATH جایگزین می‌شود، در غیر این صورت نادیده گرفته می‌شود
* $Segment=NAME$: برای قطعات رسانه با NAME جایگزین می‌شود، برای قطعات مقداردهی اولیه نادیده گرفته می‌شود
* $SegExt=EXT$: با EXT برای پسوند فایل قطعات رسانه جایگزین می‌شود، برای قطعات مقداردهی اولیه نادیده گرفته می‌شود
* $FS$ (FileSuffix): در صورتی که ورودی یک چندپخشی صوتی/تصویری (AV multiplex) باشد با _trackN جایگزین می‌شود، در غیر این صورت خالی می‌ماند
نکته: این رشته‌ها در عناصر الگوی مانیفست جایگزین می‌شوند.

سایر ویژگی‌ها نیز قابل تنظیم هستند، بخش زیر را ببینید.

برای تخصیص PIDها به periodها و adaptation setها و همچنین پیکربندی نشست، قطعه‌بندی‌کننده ویژگی‌های زیر را در هر PID ورودی بررسی می‌کند:
* `Representation`: شناسه representation را به PID ورودی اختصاص می‌دهد. در صورت عدم تنظیم، رفتار پیش‌فرض این است که هر جزء رسانه در adaptation setهای متفاوتی قرار گیرد. تنظیم Representation امکان مالتی‌پپلکس‌سازی صریح منبع(ها) را فراهم می‌آورد
* `Period`: شناسه period را به PID ورودی اختصاص می‌دهد. اگر تنظیم نشود، رفتار پیش‌فرض قرار گرفتن تمام رسانه‌ها در یک period با زمان شروع یکسان است
* `PStart`: زمان شروع period را تعیین می‌کند. در صورت عدم تنظیم، مقدار 0 در نظر گرفته می‌شود و periodها به ترتیب اعلان شناسه Period نمایش داده می‌شوند. در صورت منفی بودن، این مقدار ترتیب period را تعیین می‌کند (-1 اول، سپس -2 و ...). در صورت مثبت بودن، زمان شروع واقعی را تعیین کرده و فرآیند DASHing در پایان period متوقف می‌شود
نکته: هنگامی که مقادیر مثبت و منفی هر دو وجود داشته باشند، periodهای ترتیبی (منفی) بعد از period دارای زمان‌بندی (مثبت) درج خواهند شد
* `ASID`: شناسه adaptation set والد را مشخص می‌کند. اگر مقداری غیر از 0 باشد، فقط منابعی با شناسه AS یکسان در یک adaptation set قرار می‌گیرند
نکته: اگر چند استریم در منبع وجود داشته باشد، فقط به استریم اول شناسه AS اختصاص داده می‌شود
* `xlink`: برای periodهای راه دور، تنها برای PID خالی (null) بررسی می‌شود
* `Role`, `PDesc`, `ASDesc`, `ASCDesc`, `RDesc`: توصیف‌کننده‌های مختلف برای تنظیم برای period، AS یا representation
* `BUrl`: گزینه [-base] در قطعه‌بندی‌کننده را با مجموعه‌ای از BaseURLها برای استفاده در PID (به ازای هر representation) بازنویسی می‌کند
* `Template`: مقدار template قطعه‌بندی‌کننده را برای این PID بازنویسی می‌کند
* `DashDur`: مدت‌زمان قطعه در قطعه‌بندی‌کننده را برای این PID بازنویسی می‌کند
* `StartNumber`: شماره شروع اولین قطعه را در PID تنظیم می‌کند، مقدار پیش‌فرض 1 است
* `IntraOnly`: نشان می‌دهد که PID ورودی از رهنمودهای HLS EXT-X-I-FRAMES-ONLY پیروی می‌کند
* `CropOrigin`: مختصات x و y ویدیو را برای SRD مشخص می‌کند (اندازه، همان اندازه ویدیو است)
* `SRD`: موقعیت و اندازه ویدیو را برای SRD مشخص می‌کند؛ در صورت تنظیم بودن CropOrigin نادیده گرفته می‌شود
* `SRDRef`: عرض و ارتفاع سراسری SRD را مشخص می‌کند؛ در صورت تنظیم بودن CropOrigin نادیده گرفته می‌شود
* `HLSPL`: نام فهرست پخش گونه (variant playlist)، امکان استفاده از الگوها وجود دارد
* `HLSMExt`: فهرستی از افزونه‌ها برای اضافه شدن به ورودی‌های فهرست پخش اصلی، مقادیر ['foo','bar=val'] به صورت ,foo,bar=val اضافه می‌شوند
* `HLSVExt`: فهرستی از افزونه‌ها برای اضافه شدن به فهرست پخش گونه، مقادیر ['#foo','#bar=val'] به صورت #foo 0#bar=val اضافه می‌شوند
* `Discontinuity`: یک ناپیوستگی زمانی در منبع را نشان می‌دهد که باعث شروع یک دوره (period) جدید می‌شود
* ویژگی‌های غیر DASH: مقادیر Bitrate، SAR، Language، Width، Height، SampleRate، NumChannels، Language، ID، DependencyID، FPS، Interlaced، Codec. این ویژگی‌ها برای راه‌اندازی هر representation استفاده می‌شوند و می‌توان آن‌ها را روی PIDهای ورودی با استفاده از تنظیمات عمومی مشخصه‌های PID بازنویسی کرد (به راهنمای سراسری مراجعه کنید).

مثال
gpac -i test.mp4:#Bitrate=1M -o test.mpd

این دستور صرف‌نظر از نرخ بیت واقعی ورودی، نرخ بیت 1M را برای representation اجباری می‌کند.
مثال
gpac -i muxav.mp4 -o test.mpd

این دستور قطعات غیرمالتی‌پپلکس DASH ایجاد می‌کند.
مثال
gpac -i muxav.mp4:#Representation=1 -o test.mpd

این دستور قطعات مالتی‌پپلکس DASH ایجاد می‌کند.
مثال
gpac -i m1.mp4 -i m2.mp4:#Period=Yep -o test.mpd

این دستور منبع m1.mp4 را در period اول و m2.mp4 را در period دوم قرار می‌دهد.
مثال
gpac -i m1.mp4:#BUrl=http://foo/bar -o test.mpd

این دستور یک baseURL به منبع m1.mp4 اختصاص می‌دهد.
مثال
gpac -i m1.mp4:#ASCDesc=<ElemName val="attval">text</ElemName> -o test.mpd

این دستور توصیف‌کننده XML مشخص‌شده را به adaptation set اختصاص می‌دهد.
نکته: از این روش می‌توان برای تزریق اکثر توصیف‌کننده‌های DASH که به طور بومی توسط قطعه‌بندی‌کننده پشتیبانی نمی‌شوند استفاده کرد.
قطعه‌بندی‌کننده با توصیف‌کننده XML مانند یک رشته رفتار می‌کند و تلاشی برای اعتبارسنجی آن انجام نمی‌دهد. توصیف‌کننده‌ها، همانند برخی از آرگومان‌های فیلتر قطعه‌بندی‌کننده، فهرست‌هایی از رشته‌ها (به‌طور پیش‌فرض جداشده با ویرگول) هستند، بنابراین می‌توان چندین توصیف‌کننده اضافه کرد:
gpac -i m1.mp4:#RDesc=<Elem attribute="1"/>,<Elem2>text</Elem2> -o test.mpd

این دستور دو توصیف‌کننده را در representation(های) m1.mp4 درج می‌کند.
مثال
gpac -i video.mp4:#Template=foo$Number$ -i audio.mp4:#Template=bar$Number$ -o test.mpd

این دستور الگوهای متفاوتی را به منابع صوتی و تصویری اختصاص می‌دهد.
مثال
gpac -i null:#xlink=http://foo/bar.xml:#PDur=4 -i m.mp4:#PStart=-1 -o test.mpd

این دستور یک MPD ایجاد می‌کند که ابتدا شامل یک period راه دور و سپس یک period استاندارد است.
مثال
gpac -i null:#xlink=http://foo/bar.xml:#PStart=6 -i m.mp4 -o test.mpd

این دستور یک MPD با یک period عادی می‌سازد (که تنها ۶ ثانیه از محتوا را به DASH تبدیل می‌کند) و سپس یک period راه دور قرار می‌دهد.
مثال
gpac -i v1:#SRD=0x0x1280x360:#SRDRef=1280x720 -i v2:#SRD=0x360x1280x360 -o test.mpd

این دستور v2 را با استفاده از اندازه کلی SRD معادل 1280x720، در زیر v1 قرار می‌دهد.

قطعه‌بندی‌کننده زنجیره‌های فیلتر مالتی‌پپلکس‌سازی را برای هر representation ایجاد کرده و شناسه‌های PID را مجدداً اختصاص می‌دهد تا هر جزء رسانه‌ای (تصویر، صدا و...) در یک adaptation set شناسه یکسانی داشته باشد.

برای HLS، مانیفست خروجی PID فهرست پخش اصلی (master playlist) و فهرست‌های پخش گونه (variant playlists) را ارائه می‌دهد.
فهرست‌های پخش گونه پیش‌فرض به‌صورت $NAME_$N.m3u8 هستند که در آن $NAME ریشه نام فایل خروجی و $N نمایه مبتنی بر ۱ برای گونه موردنظر است.

هنگامی که حالت HLS فعال باشد، الگوی قطعه ( template ) نسبت به فایل فهرست پخش گونه سنجیده می‌شود که آن هم می‌تواند بر اساس الگو باشد.
مثال
gpac -i av.mp4:#HLSPL=$Type$/index.m3u8 -o dash/live.m3u8:dual:template='$Number$'

این دستور قطعات ویدیو و فهرست پخش را در dash/video/ و قطعات صدا و فهرست پخش را در dash/audio/ قرار می‌دهد.
رفتار پیش‌فرض قطعه‌بند (segmenter) برآورد زمان شروع نظری هر قطعه بر اساس مدت‌زمان هدف قطعه است، و هنگامی که بسته‌ای با SAP نوع 1، 2، 3 یا 4 با زمانی بزرگ‌تر از زمان نظری یافت شود، قطعهٔ جدیدی آغاز می‌شود.
این رفتار را می‌توان با استفاده از .I sbound تغییر داد تا بهترین بستهٔ SAP پیرامون مرز نظری قطعه پیدا شود:
* حالت `closest`: قطعه در نزدیک‌ترین SAP به مرز نظری آغاز خواهد شد
* حالت `in`: قطعه در مرز نظری یا پیش از آن آغاز خواهد شد
هشدار: این حالت‌ها باعث ایجاد تاخیر در قطعه‌بند می‌شوند (معمولاً بافر کردن یک GOP) و نباید برای حالت‌های با تاخیر کم (low-latency) استفاده شوند.
قطعه‌بند را همچنین می‌توان طوری پیکربندی کرد که:
- هنگام قطعه‌بندی با استفاده از .I sap به‌طور کامل SAP را نادیده بگیرد.
- هنگام قطعه‌بندی با استفاده از .I strict_sap بسته‌های SAP را در جریان‌های غیرویدئویی نادیده بگیرد.

هنگامی که .I seg_sync غیرفعال است، قطعه‌بند به‌طور پیش‌فرض به محض مشخص شدن اندازه/آفست یا نام قطعه، قطعهٔ جدید را در مانیفست(ها) اعلام می‌کند، اما ممکن است قطعه (یا بخش در LL-HLS) هنوز به‌طور کامل نوشته/ارسال نشده باشد.
این امر ممکن است منجر به ناهمخوانی موقت میان اندازهٔ قطعه/بخشِ دریافتی فعلی در مقایسه با اندازهٔ اعلام‌شده در مانیفست شود.
هنگامی که .I seg_sync فعال است، قطعه‌بند پیش از اعلام قطعهٔ جدید در مانیفست(ها)، منتظر می‌ماند تا آخرین بایت فرگمنت/قطعه ارسال شود. با این حال، این کار می‌تواند تاخیر را در MPEG-DASH با تاخیر کم اندکی افزایش دهد.

هنگامی که .I sflush روی single تنظیم شده باشد، از قطعه‌بندی صرف‌نظر می‌شود و به ازای هر ورودی یک قطعهٔ منفرد تولید می‌گردد.

ابزار dasher به‌طور پیش‌فرض تنظیم بلادرنگ را انجام نمی‌دهد.
برای قطعه‌بندی معمولی، اگر منابع شما بلادرنگ نیستند، باید تنظیم قطعه .I sreg را فعال کنید.
مثال
gpac -i source.mp4 -o live.mpd:segdur=2:profile=live:dmode=dynamic:sreg

برای قطعه‌بندی با تاخیر کم با fMP4، باید گزینه‌های زیر را مشخص کنید:
* cdur: تنظیم مدت‌زمان فرگمنت fMP4
* asto: تنظیم آفست زمان در دسترس بودن (availability time offset) برای DASH. این مقدار باید برابر یا کمی بیشتر از مدت‌زمان قطعه منهای cdur باشد
* llhls: فعال‌سازی تاخیر کم برای HLS

نکته: .I llhls برای امکان‌پذیر ساختن رسانه‌های مالتی‌پکس‌شده در قطعات، حالت cmaf را اجباری نمی‌کند، اما tfdt_traf را در muxer اجباری می‌کند.

اگر منابع شما بلادرنگ نیستند، یک فیلتر reframer با تنظیم بلادرنگ درج کنید
مثال
gpac -i source.mp4 reframer:rt=on -o live.mpd:segdur=2:cdur=0.2:asto=1.8:profile=live:dmode=dynamic

این دستور قطعات DASH دو ثانیه‌ای تشکیل‌شده از فرگمنت‌های 200 میلی‌ثانیه‌ای می‌سازد و به کلاینت نشان می‌دهد که درخواست‌ها می‌توانند 1.8 ثانیه پیش از در دسترس بودن کامل قطعه روی سرور ارسال شوند.
مثال
gpac -i source.mp4 reframer:rt=on -o live.m3u8:segdur=2:cdur=0.2:llhls=br:dmode=dynamic

این دستور قطعات DASH دو ثانیه‌ای تشکیل‌شده از فرگمنت‌های 200 میلی‌ثانیه‌ای می‌سازد و بخش‌های با تاخیر کم HLS را با استفاده از محدوده‌های بایتی (byte ranges) در قطعهٔ نهایی تولید می‌کند.
مثال
gpac -i source.mp4 reframer:rt=on -o live.m3u8:segdur=2:cdur=0.2:llhls=sf:dmode=dynamic

این دستور قطعات DASH دو ثانیه‌ای تشکیل‌شده از فرگمنت‌های 200 میلی‌ثانیه‌ای می‌سازد و بخش‌های با تاخیر کم HLS را با استفاده از فایل‌های اختصاصی تولید می‌کند.

می‌توانید تولید LL-HLS و DASH-LL را ترکیب کنید:
gpac -i source.mp4 reframer:rt=on -o live.mpd:dual:segdur=2:cdur=0.2:asto=1.8:llhls=br:profile=live:dmode=dynamic

برای DASH، فیلتر از ساعت محلی برای نقاط لنگر UTC در DASH استفاده خواهد کرد.
فیلتر می‌تواند ساعت را از روش‌های دیگر با استفاده از .I utcs دریافت و اعلام کند.
مثال
[opts]:utcs=inband

این دستور از ساعت محلی استفاده کرده و یک توصیف‌گر UTCTiming حاوی ساعت محلی را در MPD درج می‌کند.
مثال
[opts]::utcs=http://time.akamai.com[::opts]

این دستور زمان را از http://time.akamai.com دریافت کرده، از آن به عنوان مرجع UTC برای تولید قطعه استفاده می‌کند و یک توصیف‌گر UTCTiming حاوی URL سرور زمان را در MPD درج می‌نماید.
نکته: اگر به عنوان یک گزینهٔ سراسری با استفاده از --utcs= تنظیم نشده باشد، باید URL را با استفاده از :: دوگانه گریز دهید (escape کنید) یا از سایر جداکننده‌ها استفاده نمایید.

قطعه‌ساز (segmenter) می‌تواند فهرستی از دستورالعمل‌ها، یا نشانه‌ها (Cues) را برای فرایند بخش‌بندی دریافت کند، که در این حالت فقط از آن‌ها برای استخراج مرزهای قطعات استفاده می‌شود. نشانه‌های Cue را می‌توان از طریق فایل‌های XML تنظیم کرد یا در بسته‌های ورودی تزریق نمود.

فایل‌های Cue را می‌توان برای کل قطعه‌ساز یا به ازای هر PID با استفاده از ویژگی DashCue مشخص کرد.
نشانه‌های Cue در یک فایل XML با عنصر ریشه‌ای به نام <DASHCues> ارائه می‌شوند که در حال حاضر هیچ مشخصه‌ای برای آن تعیین نشده است. عناصر فرزند آن یک یا چند عنصر <Stream> با مشخصه‌های زیر هستند:
* id: عدد صحیح برای شناسه جریان/ترک/PID
* timescale: عدد صحیح مشخص‌کننده واحدهای برچسب‌های زمانیِ پس از آن
* mode: در صورت وجود و اگر مقدار آن edit باشد، برچسب‌های زمانی بر اساس زمان نمایش (با اعمال edit list) هستند؛ در غیر این صورت بر اساس زمان رسانه (media time) خواهند بود
* ts_offset: عدد صحیح مشخص‌کننده مقداری (بر حسب timescale) برای کسر شدن از مقادیر DTS/CTS فهرست‌شده

فرزندان عنصر <Stream> یک یا چند عنصر <Cue> با مشخصه‌های زیر هستند:
* sample: عدد صحیح مشخص‌کننده شماره نمونه/فریم (sample/frame) که باید تقسیم در آن رخ دهد
* dts: عدد صحیح بزرگ (long integer) مشخص‌کننده برچسب زمانی رمزگشایی نمونه‌ای که باید تقسیم در آن رخ دهد
* cts: عدد صحیح بزرگ (long integer) مشخص‌کننده برچسب زمانی ترکیب / نمایش نمونه‌ای که باید تقسیم در آن رخ دهد
هشدار: نشانه‌های Cue باید بر اساس ترتیب رمزگشایی فهرست شوند.

اگر ویژگی DashCue یک PID برابر با inband باشد، آن PID بر اساس ویژگی CueStart بسته‌های ورودی بخش‌بندی خواهد شد.
این قابلیت معمولاً با فهرستی از فایل‌ها به عنوان ورودی ترکیب می‌شود:
gpac -i list.m3u:sigcues -o res/live.mpd

این کار فیلتر flist را در حالت cue بارگذاری می‌کند، خطوط زمانی پیوسته‌ای از منابع ایجاد کرده و در هر فایل جدید یک ویژگی CueStart تزریق می‌نماید.

اگر گزینه .I cues برابر با none باشد، ویژگی DashCue مربوط به PIDهای ورودی نادیده گرفته خواهد شد.

قطعه‌ساز می‌تواند با استفاده از .I sigfrag برای تولید مانیفست‌ها از ورودی‌های از پیش قطعه‌بندی‌شده‌ی ISOBMFF به کار رود.
در این حالت، مرزهای قطعات به هر بسته‌ای که یک قطعه را آغاز می‌کند پیوست شده و برای هدایت فرایند بخش‌بندی استفاده می‌شوند.
این حالت می‌تواند با منابع تک‌ترک ISOBMFF، چه تک‌فایل یا چندفایل استفاده شود.
برای منبع تک‌فایل:
- اگر نمایه .I profile از نوع onDemand درخواست شود، منابع باید به عنوان یک قطعه رسانه‌ای خود-مقداردهی‌کننده (self-initializing) در DASH به همراه sidx مناسب قالب‌بندی شده باشند.
- الگوها (templates) غیرفعال هستند.
- گزینه .I sseg برای همه نمایه‌ها به جز نمایه‌های onDemand اجباری است.
برای منبع چندفایلی:
- ورودی باید یک لیست پخش شامل فایل آغازین و به دنبال آن فهرست مرتب‌شده‌ی قطعات باشد.
- اگر هیچ .I template مشخص نشده باشد، نمایه کامل یا .I profile اصلی (main) استفاده خواهد شد
* در صورت ارائه [-template]()، باید صحیح باشد: فیلتر تلاشی برای حدس زدن آن از روی نام فایل‌های ورودی نخواهد کرد و آن را اعتبارسنجی نیز نمی‌کند.

حالت صرفاً تولید مانیفست، از تولید هر دو مانیفست MPD و HLS پشتیبانی می‌کند.

مثال
gpac -i ondemand_src.mp4 -o dash.mpd:sigfrag:profile=onDemand

این دستور بر اساس فایل ورودی، یک مانیفست DASH برای نمایه onDemand تولید می‌کند.
مثال
gpac -i ondemand_src.mp4 -o dash.m3u8:sigfrag

این دستور بر اساس فایل ورودی، یک مانیفست HLS تولید می‌کند.
مثال
gpac -i seglist.txt -o dash.mpd:sigfrag

این دستور بر اساس فایل‌های ورودی، یک مانیفست DASH در نمایه Main تولید می‌کند.
مثال
gpac -i seglist.txt:Template=$XInit=init$$q1/$Number$ -o dash.mpd:sigfrag:profile=live

این دستور بر اساس فایل‌های ورودی، یک مانیفست DASH در نمایه live تولید می‌کند. فایل ورودی شامل init.mp4، q1/1.m4s، q1/2.m4s... خواهد بود.

قطعه‌ساز را می‌توان با استفاده از .I gencues صرفاً برای تولید مرزهای قطعات از مجموعه‌ای از ورودی‌ها، بدون تولید مانیفست‌ها یا فایل‌های خروجی استفاده کرد.
در این حالت، PIDهای خروجی مستقیماً اعلان می‌شوند به جای اینکه به فایل‌های قطعات رسانه هدایت شوند.
منطق بخش‌بندی تغییر نمی‌کند، و بسته‌ها با همان اطلاعات و زمان‌بندی حالت عادی فوروارد می‌شوند.

PIDهای خروجی با ویژگی DashCue=inband فوروارد می‌شوند تا هر dasher بعدی همان فرایند بخش‌بندی را دنبال کند (به بالا مراجعه کنید).

نخستین بسته در یک قطعه دارای موارد زیر است:
- ویژگی FileNumber (و در صورت وجود چند فایل، FileName) طبق روال همیشگی تنظیم شده است
- ویژگی CueStart تنظیم شده است
- ویژگی DFPStart=0 تنظیم شده است اگر این نخستین بسته در یک دوره (period) باشد

این حالت می‌تواند برای پیش‌بخش‌بندی جریان‌ها جهت پردازش‌های بعدی که باید پیش از dashing نهایی رخ دهند، استفاده شود.
مثال
gpac -i source.mp4 dasher:gencues cecrypt:cfile=roll_seg.xml -o live.mpd

این دستور به رمزگذار امکان می‌دهد مرزهای dash را شناسایی کرده و کلیدها را در مرزهای قطعات تعویض (roll) کند.
مثال
gpac -i s1.mp4 -i s2.mp4:#CryptInfo=clear:#Period=2 -i s3.mp4:#Period=3 dasher:gencues cecrypt:cfile=roll_period.xml -o live.mpd

اگر فایل DRM از keyRoll=period استفاده کند، این پیکربندی موارد زیر را تولید می‌کند:
- دوره اول رمزگذاری‌شده با یک کلید
- دوره دوم به صورت شفاف (واضح یا غیررمزنگاری‌شده / clear)
- دوره سوم رمزگذاری‌شده با کلیدی دیگر
هنگامی که سیگنال‌دهی دوره (period signaling) صریح نباشد، می‌توان از .I kpswitch برای اجبار به ایجاد یک دوره جدید در زمان تغییر اطلاعات کلید CENC استفاده کرد.

هنگامی که .I tpl_force تنظیم شده باشد، رشته‌ی .I template برای عناصر مفقود نه تحلیل می‌شود و نه تغییر می‌یابد.
این ویژگی معمولاً برای هدایت سگمنت‌ها به یک مقصد معین صرف‌نظر از پروفایل dash استفاده می‌شود.
مثال
gpac -i SRC -o null:ext=mpd:tpl_force --template=pipe://mypipe

این دستور مانیفست را دور ریخته و mypipe را به عنوان مقصد نتیجه‌ی muxer باز می‌کند.
هشدار: گزینه‌های مربوط به مقصد سگمنت از طریق .I template قابل تنظیم نیستند؛ باید از گزینه‌های سراسری استفاده شود.

نحو رویدادهای inband فهرستی از سه‌گانه‌های {scheme_id_uri,value,stream_type} است که با '@' از هم جدا شده‌اند.
مثال
gpac -i SRC -o dash.mpd::inband_event=https://aomedia.org/emsg/ID3@https://aomedia.org/emsg/ID3@audio,https://aomedia.org/emsg/ID3@www.nielsen.com:id3:v1@audio

از دونقطه‌ی مضاعف (::) برای بی‌نیازی از escape کردن دونقطه‌ها در مقدار nielsen.com استفاده می‌شود.

سگمنت‌بندی را می‌توان در چندین فراخوانی با استفاده از یک زمینه‌ی (context) DASH تنظیم‌شده با .I state انجام داد.
بین فراخوانی‌ها، PIDها با بررسی تطابق شناسه‌ی PID بین فراخوانی‌ها و یکی از موارد زیر مجدداً تخصیص می‌یابند:
- تطابق نام فایل‌های ورودی بین فراخوانی‌ها
- یا تطابق representation ID (و در صورت مشخص بودن، period ID) بین فراخوانی‌ها

اگر یک PID تطبیق داده نشود، به یک period جدید تخصیص خواهد یافت.

رفتار پیش‌فرض فرض می‌کند که همان ورودی‌ها برای سگمنت‌بندی استفاده می‌شوند و در شروع هر فایل جدید، یک خط زمانی پیوسته را بازسازی می‌کند.
اگر ورودی‌ها تغییر کنند اما یک خط زمانی پیوسته تشکیل دهند، باید از [-keep_ts])() برای صرف‌نظر کردن از بازسازی خط زمانی استفاده شود.

ورودی‌ها در صورت تنظیم .I subdur به اندازه‌ی مدت‌زمان آن، و در غیر این صورت به مدت‌زمان رسانه‌ی ورودی سگمنت‌بندی می‌شوند.
هنگامی که ورودی‌ها به پایان می‌رسند، در صورت تنظیم بودن .I loop مجدداً راه‌اندازی می‌شوند، در غیر این صورت یک period جدید ایجاد می‌شود.
برای جلوگیری از این رفتار، گزینه‌ی .I sflush باید بر روی end یا single تنظیم شود که نشان می‌دهد منابع بیشتری برای همان representationها در فراخوانی‌های بعدی اضافه خواهند شد. هنگامی که .I sflush روی off نباشد، گزینه‌ی .I loop نادیده گرفته می‌شود.

مثال
gpac -i SRC -o dash.mpd:segdur=2:state=CTX && gpac -i SRC -o dash.mpd:segdur=2:state=CTX

این دستور همه‌ی سگمنت‌های dash را برای SRC تولید می‌کند (آخرین سگمنت احتمالاً کوتاه‌تر خواهد بود) و در پایان ورودی یک period جدید ایجاد می‌نماید.
مثال
gpac -i SRC -o dash.mpd:segdur=2:state=CTX:loop && gpac -i SRC -o dash.mpd:segdur=2:state=CTX:loop

این دستور همه‌ی سگمنت‌های dash را برای SRC تولید کرده و SRC را مجدداً راه‌اندازی می‌کند تا آخرین سگمنت را پر کند.
مثال
gpac -i SRC -o dash.mpd:segdur=2:state=CTX:sflush=end && gpac -i SRC -o dash.mpd:segdur=2:state=CTX:sflush=end

این دستور همه‌ی سگمنت‌های dash را برای SRC بدون تکرار حلقه/بستن period در پایان ورودی تولید می‌کند. برچسب‌های زمانی در فراخوانی دوم بازنویسی می‌شوند تا با برچسب زمانی انتهای فراخوانی اول پیوسته باشند.
مثال
gpac -i SRC1 -o dash.mpd:segdur=2:state=CTX:sflush=end:keep_ts && gpac -i SRC2 -o dash.mpd:segdur=2:state=CTX:sflush=end:keep_ts

این دستور همه‌ی سگمنت‌های dash را برای SRC1 بدون تکرار حلقه/بستن period در پایان ورودی و سپس برای SRC2 تولید می‌کند. برچسب‌های زمانی منابع بازنویسی نخواهند شد.

نکته: رفتار پیش‌فرض گزینه‌ی -dash-ctx در MP4Box این است که .I loop را بر روی true تنظیم کند.

هنگامی که dasher به‌صورت ضمنی در حین تفکیک پیوند بارگذاری شود، خروجی‌های خود را فقط به مقصد (sink) هدف پیوند می‌دهد
مثال
gpac -i SRC -o URL1:OPTS1 -o URL2:OPTS1

این دستور یک dasher (با گزینه‌های OPTS1) برای URL1 و یک dasher (با گزینه‌های OPTS1) برای URL2 ایجاد می‌کند.
این امکان اجازه می‌دهد عملیات dash روی چندین خروجی با قالب‌ها، مدت‌زمان‌های dash و غیره متفاوت انجام شود.

تغییر مسیر همه‌ی خروجی‌های فیلتر به چندین سینک (sink) می‌تواند مفید باشد، برای مثال جهت ارسال همان سگمنت‌ها به‌صورت هم‌زمان از طریق ROUTE و HTTP.
برای این کار، فیلتر باید به‌طور صریح بارگذاری شود و همه‌ی گزینه‌های مربوط به dash و MP4 باید یا به‌صورت سراسری یا روی فیلتر dasher تعیین شوند.
مثال
gpac -i SRC dasher:cmfc:segdur=2 -o URL1 -o URL2

این دستور یک dasher منفرد ایجاد می‌کند که خروجی‌های آن (مانیفست‌ها و سگمنت‌ها) به URLهای مشخص‌شده هدایت خواهند شد.
هنگام بارگذاری صریح فیلتر، گزینه‌ی .I dual غیرفعال خواهد بود مگر اینکه .I mname به نام خروجی جایگزین تنظیم شده باشد.

مالتی‌پلکسرهای خروجی که خروجی قطعه‌بندی‌شده را مجاز می‌دانند باید موارد زیر را رعایت کنند:
- بررسی ویژگی‌های بسته (packet properties)
* FileNumber: در صورت تنظیم، نشان‌دهنده شروع یک قطعه DASH جدید است
* FileName: در صورت تنظیم، نام فایل را نشان می‌دهد. در صورت عدم وجود، خروجی باید یک فایل واحد باشد. این ویژگی فقط برای بسته‌های دارای ویژگی FileNumber و تنها روی یک PID (معمولاً اولین) برای خروجی‌های مالتی‌پلکس‌شده تنظیم می‌شود
* IDXName: نام اختیاری ایندکس را مشخص می‌کند. در صورت عدم وجود، ایندکس باید در همان فایل قطعه dash باشد. در حال حاضر فقط برای MPEG-2 TS استفاده می‌شود
* EODS: این ویژگی روی بسته‌های فاقد payload و برچسب زمانی تنظیم می‌شود تا پایان یک قطعه DASH را اعلام کند. این ویژگی تنها هنگام توقف/ازسرگیری فرآیند قطعه‌بندی استفاده می‌شود تا قطعات بدون ارسال EOS تخلیه (flush) شوند (رجوع کنید به .I subdur )
- برای هر قطعه تکمیل‌شده، یک رویداد پائین‌دستی (downstream event) روی اولین PID متصل ارسال شود که اندازه قطعه و اندازه ایندکس آن (در صورت وجود) را اعلام کند
- برای مالتی‌پلکسرهای دارای داده‌های راه‌اندازی (init data)، یک رویداد پائین‌دستی ارسال شود که اندازه init و اندازه ایندکس سراسری (در صورت وجود) را اعلام کند
- گزینه‌های فیلتر زیر به مالتی‌پلکسرها ارسال می‌شوند و آن‌ها باید این گزینه‌ها را به عنوان آرگومان اعلام کنند:
* noinit: خروجی قطعه init را برای مالتی‌پلکسر غیرفعال می‌کند (برای مدیریت تعویض بیت‌استریم با یک init منفرد در DASH استفاده می‌شود)
* frag: نشان می‌دهد که مالتی‌پلکسر باید از قالب قطعه‌بندی‌شده (fragmented) استفاده کند (عمدتاً برای ISOBMFF استفاده می‌شود)
* subs_sidx=0: نشان می‌دهد که یک SIDX باید تولید شود - تنها در صورتی اضافه می‌شود که از قبل توسط کاربر مشخص نشده باشد
* xps_inband=all|no|both: نشان می‌دهد که مجموعه‌های پارامتر AVC/HEVC/... باید به‌صورت درون‌باندی (inband)، خارج از باند (out of band) یا هر دو ارسال شوند
* nofragdef: نشان می‌دهد که مقادیر پیش‌فرض فرگمنت باید در هر قطعه تنظیم شوند نه در قطعه init

قطعه‌بند ویژگی‌های زیر را به PIDهای خروجی اضافه می‌کند:
* DashMode: حالت VoD (تک فایل با ایندکس سراسری) یا حالت معمولی DASH مورد استفاده توسط قطعه‌بند را مشخص می‌کند
* DashDur: مدت‌زمان هدف قطعه DASH را مشخص می‌کند - برای مثال می‌توان از این برای تخمین اندازه SIDX استفاده کرد
* LLHLS: مشخص می‌کند که از LLHLS استفاده می‌شود؛ مالتی‌پلکسر باید رویدادهای اندازه فرگمنت را به dasher بازگرداند و LLHLSFragNum را روی اولین بسته از هر فرگمنت تنظیم کند
* SegSync: نشان می‌دهد که فرگمنت‌ها/قطعات باید پیش از بازگرداندن رویدادهای اندازه، به‌طور کامل تخلیه (flush) شوند
* InitBase64: نشان می‌دهد که قطعه init کدگذاری‌شده با base64 باید در رویداد اندازه قطعه init قرار گیرد

segdur (frac، پیش‌فرض: 0/0): مدت‌زمان هدف قطعه به ثانیه. مقدار کمتر یا مساوی با 0 به‌طور پیش‌فرض به 1.0 ثانیه تغییر می‌یابد
tpl (bool، پیش‌فرض: true): استفاده از حالت قالب (چند قطعه، URLهای قالب)
stl (bool، پیش‌فرض: false): استفاده از خط زمانی قطعه (در حالت on_demand نادیده گرفته می‌شود)
dmode (enum، پیش‌فرض: static، قابل به‌روزرسانی): حالت محتوای dash
* static: محتوای ایستا
* dynamic: تولید زنده
* dynlast: آخرین فراخوانی برای زنده، MPD را به ایستا تبدیل می‌کند
* dynauto: تولید زنده و انتقال به مانیفست ایستا پس از پایان جریان

sseg (bool، پیش‌فرض: false): یک قطعه تکی استفاده می‌شود
sfile (bool، پیش‌فرض: false): استفاده از یک فایل واحد برای تمام قطعات (پیش‌فرض در on_demand)
align (bool، پیش‌فرض: true): فعال‌سازی هم‌ترازی زمانی قطعات بین representationها
sap (bool، پیش‌فرض: true): فعال‌سازی تقسیم قطعات در مرزهای SAP
mix_codecs (bool، پیش‌فرض: false): فعال‌سازی ترکیب کدک‌های مختلف در یک مجموعه انطباق (adaptation set)
ntp (enum، پیش‌فرض: rem): درج/بازنویسی ساعت NTP در ابتدای هر قطعه
* rem: ساعت NTP را از تمام بسته‌های ورودی حذف می‌کند
* yes: ساعت NTP را در ابتدای هر قطعه درج می‌کند
* keep: ساعت NTP بسته ورودی را دست‌نخورده باقی می‌گذارد

no_sar (bool، پیش‌فرض: false): بررسی نسبت ابعاد نمونه یکسان برای مجموعه‌های انطباق را انجام نده
bs_switch (enum، پیش‌فرض: def): حالت تعویض بیت‌استریم (قطعه init تکی)
* def: برای onDemand به off و برای live به inband تبدیل می‌شود
* off: تعویض بیت‌استریم را غیرفعال می‌کند
* on: در صورت امکان‌پذیر بودن پیکربندی رمزگشای یکسان، آن را فعال می‌کند
* inband: پیکربندی رمزگشا را در صورت امکان به درون‌باندی منتقل می‌کند
* both: مجموعه‌های پارامتر درون‌باندی و برون‌باندی
* pps: پارامترهای PPS و APS را به درون‌باند منتقل می‌کند، VPS، SPS و DCI را خارج از باند نگه می‌دارد (برای VVC RPR استفاده می‌شود)
* force: حتی در صورت وجود تنها یک representation آن را فعال می‌کند
* multi: از چندین مدخل stsd در ISOBMFF استفاده می‌کند

template (str): رشته قالب مورد استفاده برای تولید نام قطعه
segext (str): پسوند فایل مورد استفاده برای قطعات
initext (str): پسوند فایل مورد استفاده برای قطعه init
muxtype (enum، پیش‌فرض: auto): نوع مالتی‌پلکس مورد استفاده برای قطعات
* mp4: از قالب ISOBMFF استفاده می‌کند
* ts: از قالب MPEG-2 TS استفاده می‌کند
* mkv: از قالب Matroska استفاده می‌کند
* webm: از قالب WebM استفاده می‌کند
* ogg: از قالب OGG استفاده می‌کند
* raw: از قالب رسانه خام استفاده می‌کند (representationهای مالتی‌پلکس‌شده را غیرفعال می‌کند)
* auto: قالب را بر اساس پسوند حدس می‌زند، در صورت عدم ارائه پسوند، پیش‌فرض mp4 است

rawsub (bool، پیش‌فرض: no): استفاده از قالب زیرنویس خام به‌جای کپسوله‌سازی در کانتینر
asto (dbl، پیش‌فرض: 0): مقدار availabilityTimeOffset مورد استفاده به ثانیه. مقدار منفی صرفاً AST را افزایش می‌دهد، مقدار مثبت ASToffset را برای representationها تنظیم می‌کند
profile (enum، پیش‌فرض: auto): نمایه هدف DASH. این گزینه مقادیر پیش‌فرض را برای اطمینان از مطابقت با نمایه موردنظر تنظیم می‌کند. برای MPEG-2 TS، فقط main و live استفاده می‌شوند و سایر موارد به‌طور پیش‌فرض main هستند
* auto: نمایه را برای dynamic به live و برای غیر-dynamic به full تبدیل می‌کند
* live: نمایه DASH live با استفاده از قالب قطعه
* onDemand: نمایه MPEG-DASH live
* main: نمایه MPEG-DASH main با استفاده از لیست قطعات
* full: نمایه MPEG-DASH full
* hbbtv1.5.live: نمایه HBBTV 1.5 DASH
* dashavc264.live: نمایه DASH-IF live
* dashavc264.onDemand: نمایه DASH-IF onDemand
* dashif.ll: نمایه تاخیر کم DASH IF (در صورت عدم تنظیم سرور UTC، آن را روی time.akamai.com تنظیم می‌کند)- dashif.ingest: نمایه DASH-IF CMAF ingest (از dashif.ll ارث‌بری کرده و CMAF، template و segcts را اعمال می‌کند)

profX (str): فهرست افزونه‌های نمایه، همان‌طور که توسط DASH-IF و DVB استفاده می‌شود. رشته با دو‌نقطه با نمایه مورد استفاده ادغام می‌شود. در صورت شروع با +، رشته نمایه پیش‌فرض پاک شده و از + صرف‌نظر می‌شود
query (str): پارامترهای query برای پیوست به درخواست‌های قطعه (Annex I)
cp (enum، پیش‌فرض: set): مکان عنصر حفاظت از محتوا
* set: در عنصر adaptation set
* rep: در عنصر representation
* both: در هر دو عنصر adaptation set و representation

pssh (enum، پیش‌فرض: v): حالت ذخیره‌سازی برای جعبه PSSH
* f: فقط در movie fragment ذخیره می‌کند
* v: فقط در movie ذخیره می‌کند، یا در صورت تشخیص key roll در movie و فرگمنت‌ها ذخیره می‌کند
* m: فقط در mpd ذخیره می‌کند
* mf: در mpd و movie fragment ذخیره می‌کند
* mv: در mpd و movie ذخیره می‌کند
* n: جعبه pssh را از mpd و قطعات دور می‌اندازد

buf (sint، پیش‌فرض: -100): حداقل مدت‌زمان بافر بر حسب میلی‌ثانیه. مقدار منفی به معنای درصدی از مدت‌زمان قطعه است (مثلاً -150 = 1.5*seg_dur)
spd (sint، پیش‌فرض: 0): تاخیر پیشنهادی ارائه بر حسب میلی‌ثانیه
timescale (sint، پیش‌فرض: 0): تنظیم مقیاس زمانی برای خط زمانی و لیست/قالب قطعه. مقدار 0 اولین timescale از اولین جریان در یک مجموعه انطباق را برمی‌گزیند. مقدار منفی، استفاده از مقیاس‌های زمانی جریان را برای هر عنصر زمان‌دار اجبار می‌کند (تکثیر لیست/قالب/خط‌های زمانی قطعه). مقدار مثبت مقیاس زمانی MPD را اعمال می‌کند
check_dur (bool، پیش‌فرض: true): بررسی مدت‌زمان منابع در دوره برای تلاش جهت داشتن مدت‌زمان‌های تقریباً برابر. هر زمان که زمان‌های شروع دوره استفاده شوند، اعمال می‌شود
skip_seg (bool، پیش‌فرض: false): افزایش شماره قطعه در هر زمان که یک قطعه خالی تولید شود - غیرمنطبق با DASH (NOT DASH COMPLIANT)
title (str): عنوان MPD
source (str): منبع MPD
info (str): نشانی URL اطلاعات MPD
cprt (str): رشته کپی‌رایت MPD
lang (str): زبان اطلاعات MPD
location (strl): تنظیم مکان‌های MPD روی URL داده‌شده
base (strl): تنظیم URLهای پایه برای MPD
refresh (dbl، پیش‌فرض: 0): نرخ نوسازی برای مانیفست‌های پویا بر حسب ثانیه (مقدار منفی مدت‌زمان MPD را تنظیم می‌کند، مقدار 0 از مدت‌زمان dash استفاده می‌کند)
tsb (dbl، پیش‌فرض: 30): عمق بافر تغییر زمان بر حسب ثانیه (مقدار منفی به معنای بی‌نهایت است)
keep_segs (bool، پیش‌فرض: false): قطعاتی که دیگر در بافر تغییر زمان نیستند حذف نشوند
ast (str): تنظیم تاریخ شروع (به‌صورت xs:date، مثلاً YYYY-MM-DDTHH:MM:SSZ) برای حالت زنده. پیش‌فرض زمان حال است. !! با چندین دوره و همچنین زمانی که مدت‌زمان DASH مضربی از اندازه GOP نیست استفاده نشود !!
state (str): مسیر فایلی که برای ذخیره/بارگذاری مجدد اطلاعات وضعیت هنگام شبیه‌سازی زنده استفاده می‌شود. این اطلاعات به‌عنوان یک MPD معتبر با افزونه‌های GPAC XML ذخیره می‌شود
keep_ts (bool، پیش‌فرض: false): هنگام بارگذاری مجدد یک زمینه (context)، برچسب زمانی جابه‌جا نشود
loop (bool، پیش‌فرض: false): تکرار حلقه‌ای منابع هنگام اجرای dash با subdur و state. در صورت عدم تنظیم، پس از پایان منابع یک دوره جدید ایجاد می‌شود
subdur (dbl، پیش‌فرض: 0): حداکثر مدت‌زمان فایل ورودی برای قطعه‌بندی. این گزینه مدت‌زمان قطعه را تغییر نمی‌دهد، بلکه قطعه‌بندی زمانی متوقف می‌شود که قطعات تولیدشده از این مدت‌زمان فراتر روند
split (bool، پیش‌فرض: true): فعال‌سازی شبیه‌سازی نمونه‌ها برای جریان‌های متن/متاداده/توصیف صحنه، و علامت‌گذاری نمونه‌های بعدی به‌عنوان زائد
hlsc (bool، پیش‌فرض: false): درج مرجع ساعت در لیست پخش متغیر در HLS زنده
cues (str): تنظیم فایل cue
strict_cues (bool، پیش‌فرض: false): حالت سخت‌گیرانه برای cueها؛ اگر تقسیم‌بندی روی نوع SAP شماره 1/2/3 نباشد یا cue استفاده‌نشده‌ای یافت شود، هشدار می‌دهد
strict_sap (enum، پیش‌فرض: off): حالت سخت‌گیرانه برای sap
* off: نادیده گرفتن انواع SAP برای PIDهای غیر از ویدیو، و اجبار AdaptationSet@startsWithSAP=1
* sig: همانند off- اما AdaptationSet@startsWithSAP را روی مقدار واقعی SAP نگه می‌دارد
* on: در صورت استفاده هر PID از SAP 3 یا 4 هشدار داده و به نمایه FULL تغییر وضعیت می‌دهد
* intra: انواع SAP بزرگ‌تر از 3 را در تمام انواع رسانه نادیده می‌گیرد

subs_sidx (sint، پیش‌فرض: -1): تعداد زیرقطعات در هر sidx. مقدار منفی sidx را غیرفعال می‌کند. تنها برای به ارث بردن گزینه sidx مقصد استفاده می‌شود
cmpd (bool، پیش‌فرض: false): صرف‌نظر از شکست خط و فاصله‌ها در MPD XML برای فشرده‌سازی
styp (str): نشان دادن 4CC مورد استفاده برای جعبه‌های styp هنگام استفاده از خروجی ISOBMFF
dual (bool): تولید هر دو فایل MPD و M3U را مشخص می‌کند
segcts (bool): محاسبه شماره قطعه با تقسیم اولین CTS بر .I segdur
sigfrag (bool): استفاده از حالت صرفاً تولید مانیفست
sbound (enum، پیش‌فرض: out): نشان می‌دهد چگونه باید با TSS شروع قطعه نظری (= segment_number * duration) برخورد شود
* out: تقسیم قطعه به‌محض فراتر رفتن از TSS انجام می‌شود (TSS <= segment_start)
* closest: تقسیم قطعه در نزدیک‌ترین SAP به مرز نظری
* in: مقدار TSS همیشه درون قطعه است (TSS >= segment_start)

reschedule (bool، پیش‌فرض: false): زمان‌بندی مجدد منابع بدون period ID اختصاص‌یافته پس از پایان (فقط حالت پویا)
sreg (bool، پیش‌فرض: false): تنظیم نشست
- هنگام استفاده از subdur و زمینه، فقط قطعات از گذشته تا لبه زنده تولید شوند
- در غیر این صورت در حالت پویا بدون زمینه، قطعات زودتر از موعد تولید نشوند

scope_deps (bool، پیش‌فرض: true): محدود کردن وابستگی‌های PID به درون منبع. در صورت غیرفعال بودن، وابستگی‌های PID در میان تمام PIDهای ورودی بدون در نظر گرفتن منبع آن‌ها بررسی می‌شوند
utcs (str): نشانی URL برای استفاده به‌عنوان سرور زمان / منبع UTCTiming. مقدار ویژه inband حالت UTC درون‌باندی را فعال می‌کند (مشابه publishTime)، پیشوند ویژه xsd@ به‌جای ISO از schemeURI مربوط به xsDateTime استفاده می‌کند
sflush (enum، پیش‌فرض: off): حالت تخلیه قطعه - راهنمای فیلتر را ببینید:
* off: اقدام خاصی انجام نمی‌شود
* single: اجبار به تولید یک قطعه تکی برای هر ورودی
* end: صرف‌نظر از تشخیص حلقه و مهار تنظیم مدت‌زمان در انتهای ورودی، مورد استفاده برای حالت state

last_seg_merge (bool، پیش‌فرض: false): اجبار به ادغام آخرین قطعه در صورتی که کمتر از نصف مدت‌زمان هدف باشد
mha_compat (enum، پیش‌فرض: no): حالت تولید مجموعه انطباق برای نمایه سازگار MPEG-H Audio
* no: فقط مجموعه انطباق را برای نمایه اصلی تولید می‌کند
* comp: فقط مجموعه‌های انطباق را برای تمام نمایه‌های سازگار تولید می‌کند
* all: مجموعه انطباق را برای نمایه اصلی و تمام نمایه‌های سازگار تولید می‌کند

mname (str): نام مانیفست خروجی برای مالتی‌پلکس ATSC3 (استفاده از 'm3u8' فقط تولید HLS را فعال می‌کند)
llhls (enum، پیش‌فرض: off): نوع تاخیر کم HLS
* off: از LL-HLS استفاده نکن
* br: استفاده از LL-HLS با محدوده بایت برای بخش‌های قطعه، با اشاره به قطعه کامل (سازگار با DASH-LL)
* sf: استفاده از فایل‌های مجزا برای بخش‌های قطعه (با پسوند 1.، 2. و غیره)
* brsf: تولید دو مجموعه مانیفست، یکی برای محدوده بایت و یکی برای فایل‌ها (_IF قبل از پسوند مانیفست اضافه می‌شود)

hlsdrm (str): اطلاعات فایل cryp برای رمزگذاری کامل قطعه HLS
hlsx (strl): فهرستی از رشته‌ها برای پیوست به سرآیند اصلی HLS قبل از variantها با ['#foo','#bar=val'] که به‌صورت #foo 0#bar=val افزوده می‌شود
hlsiv (bool، پیش‌فرض: true): تزریق IV در لیست پخش متغیر HLS
ll_preload_hint (bool، پیش‌فرض: true): تزریق preload hint برای LL-HLS
ll_rend_rep (bool، پیش‌فرض: true): تزریق rendition reportها برای LL-HLS
ll_part_hb (dbl، پیش‌فرض: -1): مقدار part hold-back تعریف‌شده توسط کاربر برای LLHLS، مقدار منفی به معنای ۳ برابر حداکثر مدت‌زمان بخش در نشست است
ckurl (str): تنظیم نشانی URL مشترک ClearKey برای تمام جریان‌های رمزگذاری‌شده (توسط ویژگی PID با نام CKUrl بازنویسی می‌شود)
hls_absu (enum، پیش‌فرض: no): استفاده از URL مطلق در تولید HLS با استفاده از اولین URL در base
* no: از URL مطلق استفاده نکن
* var: استفاده از URL مطلق فقط در لیست‌های پخش متغیر
* mas: استفاده از URL مطلق فقط در لیست پخش اصلی
* both: استفاده از URL مطلق در همه‌جا

hls_ap (bool، پیش‌فرض: false): استفاده از صدا به‌عنوان رسانه اصلی به‌جای ویدیو هنگام تولید لیست‌های پخش
seg_sync (enum، پیش‌فرض: auto): کنترل چگونگی تاثیر انتظار برای نوشته‌شدن آخرین بسته P از فرگمنت/قطعه بر درج قطعه در مانیفست
* no: منتظر P نمان
* yes: منتظر P بمان
* auto: در صورت استفاده از HLS منتظر P بمان

cmaf (enum، پیش‌فرض: no): استفاده از رهنمودهای cmaf
* no: استاندارد CMAF اعمال نمی‌شود
* cmfc: استفاده از رهنمودهای CMAF cmfc
* cmf2: استفاده از رهنمودهای CMAF cmf2

pswitch (enum، پیش‌فرض: single): حالت کنترل تعویض دوره
* single: در صورت تغییر پیکربندی PID، دوره را تغییر بده
* force: اجبار به تعویض دوره در هر بازپیکربندی PID به‌جای یکپارچه‌سازی بازپیکربندی PID (برای پیوند یا درج آگهی بدون استفاده از periodID)
* stsd: تغییر دوره در صورت تغییر پیکربندی PID، مگر اینکه پیکربندی جدید در تنظیمات اولیه اعلان شده باشد

kpswitch (bool، پیش‌فرض: false): اجبار به دوره جدید هنگام تغییر اطلاعات کلید CENC، شامل تغییرات بین حالت‌های رمزگذاری‌شده/رمزگذاری‌نشده
chain (str): نشانی URL مربوط به MPD بعدی برای زنجیره‌سازی معمولی
chain_fbk (str): نشانی URL مربوط به MPD پشتیبان
gencues (bool، پیش‌فرض: false): فقط مرزهای قطعه درج شوند و مانیفست‌ها تولید نشوند
force_init (bool، پیش‌فرض: false): اجبار به ایجاد قطعه init در حالت تعویض بیت‌استریم
keep_src (bool، پیش‌فرض: false): حفظ URLهای منبع در حالت تولید مانیفست
gxns (bool، پیش‌فرض: false): درج برخی افزونه‌های gpac در مانیفست (در حال حاضر، فقط tfdt از قطعه اول)
dkid (enum، پیش‌فرض: auto): کنترل تزریق KID پیش‌فرض در MPD
* off: مقدار KID پیش‌فرض تزریق نمی‌شود
* on: مقدار KID پیش‌فرض همیشه تزریق می‌شود
* auto: مقدار KID پیش‌فرض تنها در صورتی تزریق می‌شود که هیچ key roll تشخیص داده نشود (مطابق با رهنمودهای DASH-IF)

tpl_force (bool، پیش‌فرض: false): استفاده از رشته قالب به‌صورت مستقیم بدون تلاش برای افزودن پسوند یا حل تعارض در نام‌ها
inband_event (strl): درج رویداد درون‌باندی در مانیفست DASH که به‌صورت سه‌تایی {schemeIdUri,value,streamType} توصیف شده است
که در آن streamType می‌تواند "audio"، "video"، "text" یا "all" باشد
ttml_agg (bool، پیش‌فرض: false): اجبار به تجمیع نمونه‌های TTML یک قطعه DASH در یک نمونه واحد
evte_agg (bool، پیش‌فرض: false): اجبار به تجمیع نمونه‌های Event Track یک قطعه DASH در یک نمونه واحد
scte35 (enum، پیش‌فرض: auto): سیگنال‌دهی SCTE-35
* auto: بر اساس ورودی، 'xmlbin' یا 'evte'
* xmlbin: جریان رویداد خارج از باند (MPD) با xml+bin (توصیه‌شده)
* inband: جعبه‌های emsg درون‌باندی
* all: در هر کجا که تشخیص داده شود سیگنال ارسال کند
* none: بدون EventStream یا جعبه‌های emsg

base64 (bool، پیش‌فرض: false): جاسازی قطعات init در مانیفست‌ها به‌صورت base64
td_limit (uint، پیش‌فرض: 5): تعداد ثانیه‌هایی که کمتر از آن یک ناپیوستگی زمانی طبیعی در نظر گرفته می‌شود (مثلاً اتلاف) - مقدار 0 بررسی را غیرفعال می‌کند
td_detect (uint، پیش‌فرض: 5): تعداد ثانیه‌های بین DTS که بیشتر از آن یک ناپیوستگی فعال می‌شود - مقدار 0 بررسی را غیرفعال می‌کند
sigfo (bool): استفاده از آفست‌های فرگمنت در صورت موجود بودن هنگام تولید ایندکس (در صورت استفاده از sigfrag به‌صورت ضمنی فعال می‌شود)

توضیحات: تجمیع‌کننده تایل‌های HEVC

این فیلتر مجموعه‌ای از جریان‌های تایل‌بندی‌شده‌ی تفکیک‌شده‌ی HEVC (شناسه‌های hvt1 یا hvt2 در ISOBMFF) را در یک جریان تکی HEVC تجمیع می‌کند.

tiledrop (uintl, updatable): مشخص کردن اندیس‌های تایل‌ها جهت دور انداختن (drop)
ttimeout (uint, default: 10000, updatable): مدت‌زمان بر حسب میلی‌ثانیه برای انتظار پیش از مفقود در نظر گرفتن یک بسته تایل، مقدار 0 تا ابد منتظر می‌ماند

توضیحات: تفکیک‌کننده تایل‌های HEVC

این فیلتر یک جریان تایل‌بندی‌شده‌ی HEVC را به جریان‌های تایل‌بندی‌شده‌ی HEVC (شناسه‌های hvt1 یا hvt2 در ISOBMFF) تفکیک می‌کند.
اگر جریان بیت (bitstream) تایل‌بندی نشده باشد، فیلتر به حالت عبور مستقیم (passthrough) تغییر وضعیت می‌دهد.
اگر ویژگی Bitrate روی PID ورودی تنظیم شده باشد، PIDهای تایل خروجی دارای نرخ بیتی تنظیم‌شده روی (Bitrate - 10k)/nb_opids خواهند بود که 10 کیلوبیت‌برثانیه برای پایه رزرو می‌شود.

به هر PID تایل، ویژگی‌های زیر اختصاص داده می‌شود:
* `ID`: برابر با شناسه PID پایه (مشابه ورودی) به‌علاوه اندیس مبتنی بر 1 تایل در ترتیب پویش شطرنجی (raster scan).
* `TileID`: برابر با اندیس مبتنی بر 1 تایل در ترتیب پویش شطرنجی (raster scan).

هشدار: این فیلتر بررسی نمی‌کند که آیا تایل‌ها به صورت مستقل کدگذاری شده‌اند (MCTS) یا خیر!

هشدار: پشتیبانی از تغییرات پویای شبکه تایل‌بندی آزمایش نشده است!

tiledrop (uintl, updatable): مشخص کردن اندیس‌های تایل‌ها جهت دور انداختن (مبتنی بر 0، در ترتیب پویش شطرنجی تایل)

توضیحات: ورودی پایپ (Pipe input)

این فیلتر پایپ‌های ورودی عمومی (یک‌طرفه) را در حالت مسدودکننده (blocking) یا غیرمسدودکننده (non-blocking) مدیریت می‌کند.
هشدار: پایپ‌های ورودی قابلیت پرش موقعیت (seek) ندارند.
قالب داده‌ی پایپ ممکن است با استفاده از پسوند (چه در نام فایل یا از طریق .I ext ) یا نوع MIME از طریق .I mime مشخص شود.
نکته: مگر اینکه در سطح نشست غیرفعال شده باشد (رجوع کنید به .I -no-probe )، پسوندهای فایل معمولاً نادیده گرفته می‌شوند و شناسایی قالب (probing) روی اولین بلوک داده انجام می‌گیرد.

فیلتر می‌تواند خواندن از stdin را با استفاده از - یا stdin به عنوان نام فایل ورودی مدیریت کند.
مثال
gpac -i - vout
gpac -i stdin vout

هنگام خواندن از stdin، مهلت زمانی (timeout) پیش‌فرض ۱۰ ثانیه است.

این فیلتر می‌تواند خواندن از پایپ‌های نام‌گذاری‌شده را مدیریت کند. طرح‌واره‌ی پروتکل مرتبط هنگامی که به عنوان یک ورودی عمومی بارگذاری شود pipe:// است (به عنوان مثال -i pipe://URL که در آن URL نام نسبی یا مطلق پایپ است).
در میزبان‌های Windows، اگر پیشوندی تعیین نشده باشد، پیشوند پیش‌فرض پایپ \.ipeac است.

dst=mypipe به \.ipeacpipe
منتهی می‌شود
dst=\.ipeapppipe
به \.ipeapppipe
منتهی می‌شود
هر نام مقصدی که با \ شروع شود همان‌طور که هست استفاده می‌شود، و  به / تبدیل می‌گردد.

پایپ‌های ورودی به صورت پیش‌فرض در حالت غیرمسدودکننده (non-blocking) ایجاد می‌شوند.

فیلتر در صورت پیدا نشدن پایپ می‌تواند آن را با استفاده از .I mkp بسازد. در میزبان‌های Windows، این کار یک سرور پایپ ایجاد خواهد کرد.
در میزبان‌های غیر ویندوزی، پایپ ساخته‌شده پس از نابودی فیلتر، فایل پایپ را حذف خواهد کرد.

پایپ‌های ورودی را می‌توان با استفاده از .I ka طوری تنظیم کرد که تا ابد اجرا شوند. در این حالت:
- هرگونه بسته شدن احتمالی پایپ در سمت نوشتن نادیده گرفته خواهد شد
- در صورت تنظیم .I sigflush ، تخلیه خط لوله (pipeline flushing) پس از بسته شدن پایپ آغاز خواهد شد
- پایان نهایی جریان هنگام بسته شدن نشست فعال می‌شود.

این قابلیت می‌تواند برای ارسال جریانی (pipe کردن) داده‌های خام از فرایندهای مختلف به gpac مفید باشد:
* سمت گیرنده: gpac -i pipe://mypipe:ext=.264:mkp:ka
* سمت فرستنده: cat raw1.264 > mypipe && gpac -i raw2.264 -o pipe://mypipe:ext=.264
تخلیه خط لوله در عین فعال نگه داشتن جریان، به عنوان EOS اعلام می‌شود.
این قابلیت معمولاً برای فیلترهای mux که در انتظار دریافت EOS جهت تخلیه داده‌های خود هستند، مورد نیاز است.

اگر .I marker تنظیم شده باشد، رشته‌های زیر (همگی ۸ بایتی با

src (cstr): نام pipe مبدأ
block_size (uint، پیش‌فرض: 5000): اندازه بافر استفاده‌شده برای خواندن pipe
ext (str): مشخص کردن پسوند فایل داده‌های pipe
mime (str): مشخص کردن نوع MIME داده‌های pipe
blk (bool، پیش‌فرض: false): باز کردن pipe در حالت مسدودکننده (blocking)
ka (bool، پیش‌فرض: false): زنده‌نگه‌داشتن pipe هنگام تشخیص پایان ورودی
mkp (bool، پیش‌فرض: false): ایجاد pipe در صورت پیدا نشدن
sigflush (bool، پیش‌فرض: false): ارسال سیگنال پایان جریان با بسته شدن pipe - به راهنمای فیلتر مراجعه کنید
marker (bool، پیش‌فرض: false): بررسی بار داده (payload) برای سیگنال‌های flush و پیکربندی مجدد - به راهنمای فیلتر مراجعه کنید
bpcnt (uint، پیش‌فرض: 0): تعداد مجاز قطعی pipe پیش از خروج؛ 0 یعنی نامحدود
timeout (uint، پیش‌فرض: 0): مهلت زمانی به میلی‌ثانیه پیش از پایان‌یافته تلقی کردن جریان ورودی (0: بدون مهلت زمانی)

توضیحات: خروجی pipe

این فیلتر pipeهای خروجی عمومی (یک‌طرفه) را فقط در حالت مسدودکننده (blocking) مدیریت می‌کند.
هشدار: pipeهای خروجی در حال حاضر از حالت غیرمسدودکننده (non-blocking) پشتیبانی نمی‌کنند.
طرح پروتکل مرتبط هنگام بارگذاری به‌عنوان یک خروجی عمومی pipe:// است (برای مثال -o pipe://URL که در آن URL یک نام نسبی یا مطلق برای pipe است).
قالب داده‌های pipe باید با استفاده از پسوند (یا در نام فایل یا از طریق گزینه .I ext) یا نوع MIME از طریق .I mime مشخص شود.
نام pipe مشخص‌شده در .I dst می‌تواند از سازوکارهای الگوی gpac استفاده کند، مانند dst=pipe_$ServiceID$

در میزبان‌های Windows، در صورت عدم تعیین پیشوند، پیشوند پیش‌فرض pipe عبارت است از \.ipeac 
عبارت dst=mypipe به \.ipeacpipe
تبدیل می‌شود
عبارت dst=\.ipeapppipe
به \.ipeapppipe
تبدیل می‌شود
هر نام مقصدی که با \ آغاز شود همان‌گونه که هست استفاده می‌شود و  به / تبدیل می‌گردد

ورودی pipe می‌تواند در صورت پیدا نشدن pipe با استفاده از .I mkp آن را ایجاد کند. در میزبان‌های Windows، این کار یک سرور pipe ایجاد خواهد کرد.
در میزبان‌های غیر Windows، پایپ ایجادشده پس از نابودی فیلتر، فایل pipe را حذف خواهد کرد.
با استفاده از .I ka می‌توان pipe را پس از تشخیص قطع ارتباط pipe زنده نگه داشت. این ویژگی معمولاً زمانی استفاده می‌شود که کلاینت‌ها با خطا متوقف (crash) یا خارج شده و مجدداً ادامه می‌یابند.
هنگامی که یک pipe زنده‌نگه‌داشته‌شده قطع می‌شود، داده‌های ورودی دور ریخته شده و فیلتر تا جای ممکن با حداکثر سرعت به حذف داده‌ها ادامه می‌دهد.
بنابراین توصیه می‌شود از این حالت برای ورودی‌های بلادرنگ (real-time) استفاده شود (در صورت نیاز از یک reframer استفاده کنید).
اگر .I marker تنظیم شده باشد، رشته GPACPIF (۸ بایت شامل پایان‌دهنده صفر) در هر بار تخلیه خط لوله (pipeline flush) شناسایی‌شده در pipe نوشته خواهد شد.
تخلیه خط لوله در حال حاضر با پایان قطعه DASH یا پایان بخش ISOBMF فعال می‌شود.

dst (cstr): نام pipe مقصد
ext (str): مشخص کردن پسوند فایل داده‌های pipe
mime (str): مشخص کردن نوع MIME داده‌های pipe
dynext (bool، پیش‌فرض: false): مشخص کردن اینکه پسوند فایل توسط زنجیره فیلتر تنظیم می‌شود نه dst
start (dbl، پیش‌فرض: 0.0): تنظیم آفست شروع پخش. مقدار منفی به معنای درصدی از مدت‌زمان رسانه است و -1 برابر با کل مدت‌زمان است
speed (dbl، پیش‌فرض: 1.0): تنظیم سرعت پخش. اگر منفی باشد و start برابر 0 باشد، start روی -1 تنظیم می‌شود
mkp (bool، پیش‌فرض: false): ایجاد pipe در صورت پیدا نشدن
block_size (uint، پیش‌فرض: 5000): اندازه بافر استفاده‌شده برای نوشتن در pipe، فقط Windows
ka (bool، پیش‌فرض: false): زنده‌نگه‌داشتن pipe هنگام تشخیص قطع ارتباط (broken pipe)
marker (bool، پیش‌فرض: false): تزریق نشانگر (marker) هنگام رویدادهای تخلیه خط لوله (pipeline flush)

توضیحات: مالتی‌پلکسر GSF

این فیلتر مالتی‌پلکسینگ GSF (فرمت سریالی‌شده GPAC یا GPAC Serialized Format) را فراهم می‌کند.
این فیلتر وضعیت‌های جریان (config/reconfig/info update/remove/eos) و بسته‌های PIDهای ورودی را سریال‌سازی می‌کند. این امر امکان ذخیره یک نشست در فایل یا ارسال وضعیت/داده‌های جریان‌ها به نمونه دیگری از GPAC را با استفاده از pipeها یا سوکت‌ها ممکن می‌سازد. رویدادهای بالادستی (upstream) سریال‌سازی نمی‌شوند.

رفتار پیش‌فرض، شماره‌های توالی (sequence numbers) را درج نمی‌کند. هنگام اجرا روی پروتکل‌های عمومی که ترتیب بسته‌ها را تضمین نمی‌کنند، این شماره‌ها باید درج شوند.
سریال‌ساز، بسته‌های هماهنگ‌سازی (tune-in) را (به‌صورت سراسری و به ازای هر PID) با نرخ چرخشی (carousel rate) درخواستی ارسال می‌کند - اگر 0 باشد، هیچ چرخشی وجود ندارد. این بسته‌ها به‌عنوان مازاد علامت‌گذاری می‌شوند تا در صورت نیاز توسط فیلترهای خروجی دور ریخته شوند.

قالب جریان می‌تواند در حالت AES 128 CBC رمزنگاری شود. برای تمامی بسته‌ها، سرآیند بسته (سرآیند، اندازه، اندازه فریم/آفست بلوک و شماره توالی اختیاری) به‌صورت شفاف (رمزنگاری‌نشده) بوده و بایت‌های پس از آن تا آخرین بایت از آخرین مضرب اندازه بلوک (16) که در بار داده (payload) جا می‌گیرد، رمزنگاری می‌شوند.
برای بسته‌های داده، هر قطعه (fragment) به‌طور جداگانه رمزنگاری می‌شود تا از انتشار خطا در صورت مفقود شدن بسته‌ها جلوگیری شود.
برای سایر بسته‌ها، کل بسته قبل از قطعه‌قطعه‌سازی (fragmentation) رمزنگاری می‌شود (قطعات نمی‌توانند به‌صورت جداگانه پردازش شوند).
برای بسته‌های سرآیند/tunein، مقدار ۲۵ بایت نخست پس از سرآیند به‌صورت شفاف (رمزنگاری‌نشده) است (signature، version، IV و pattern).
مقدار .I IV برای جلوگیری از سربار بسته ثابت است؛ اگر تنظیم نشود به‌صورت تصادفی تولید شده و در سرآیند اولیه جریان فرستاده می‌شود. از حالت الگو (Pattern mode) می‌توان برای رمزنگاری K بلوک و باقی گذاشتن N بلوک به‌صورت شفاف استفاده کرد (به CENC cbcs مراجعه کنید).

هنگامی که تمام ویژگی‌های PID نگه‌داشته شوند، بستهٔ سرایند/tunein ممکن است بسیار حجیم شود. برای کمک به کاهش اندازهٔ آن، می‌توان از گزینهٔ .I minp استفاده کرد: این کار تمام ویژگی‌های توکار علامت‌گذاری‌شده به‌عنوان قابل حذف (رک. راهنمای مشخصه‌ها) و همچنین تمام ویژگی‌های غیر توکار را حذف می‌کند.
همچنین می‌توان از گزینهٔ .I skp برای مشخص کردن ویژگی‌هایی که باید حذف شوند استفاده کرد:
skp="4CC1,Name2

این کار ویژگی‌هایی از نوع 4CC1 و ویژگی‌های (توکار یا غیر آن) با نام Name2 را حذف خواهد کرد.

به‌طور پیش‌فرض این فیلتر فقط جریان‌های رسانه‌ای فریم‌بندی‌شده را به عنوان PID ورودی می‌پذیرد، نه فایل‌ها را. این رفتار را می‌توان با بارگذاری صریح فیلتر همراه با تنظیم .I ext یا .I dst تغییر داد.
مثال:
gpac -i source.mp4 gsfmx:dst=manifest.mpd -o dump.gsf

این دستور منبع را DASH کرده و تمام فایل‌های تولیدشده را به صورت PID در تسهیم‌کنندهٔ GSF ذخیره می‌کند.
برای تفکیک (demultiplex) چنین فایلی، احتمالاً لازم است gsfdmxfilter به‌طور صریح بارگذاری شود:
gpac -i mux.gsf gsfdmx -o dump/$File$:dynext

این دستور تمام فایل‌ها را از GSF mux استخراج خواهد کرد.

به‌طور پیش‌فرض هنگام کار در حالت فایل، فیلتر فقط PIDهایی از نوع فایل را به عنوان ورودی می‌پذیرد.
برای مجاز کردن ترکیبی از فایل‌ها و جریان‌ها، از .I mixed استفاده کنید:
gpac -i source.mp4 gsfmx:dst=manifest.mpd:mixed -o dump.gsf

این دستور منبع را DASH کرده، فایل مانیفست و جریان‌های رسانه‌ای را همراه با ویژگی‌های بسته‌هایشان در GSF mux ذخیره می‌کند.

sigsn (bool, default: false): اعلام شماره توالی بسته پس از فیلد سرایند و پیش از فیلد اندازه. شماره توالی به ازای هر PID است و به صورت ۱۶ بیتی کدگذاری می‌شود. بستهٔ سرایند فاقد SN است
sigdur (bool, default: true): اعلام مدت‌زمان
sigbo (bool, default: false): اعلام آفست بایت
sigdts (bool, default: true): اعلام برچسب زمانی رمزگشایی (DTS)
dbg (enum, default: no): تنظیم حالت اشکال‌زدایی
* no: غیرفعال‌سازی اشکال‌زدایی
* nodata: اجبار اندازهٔ بسته به ۰
* nopck: نادیده گرفتن بسته

key (mem): رمزنگاری بسته‌ها با استفاده از کلید داده‌شده
IV (mem): تنظیم IV برای رمزنگاری - یک IV ثابت برای پایین نگه‌داشتن بار اضافی (overhead) بسته استفاده می‌شود (مشابه cbcs)
pattern (frac, default: 1/0): تنظیم الگوی بلوک nb_crypt / nb_skip. مقدار پیش‌فرض، همگی رمزنگاری‌شده است
mpck (uint, default: 0): تنظیم حداکثر اندازهٔ بسته. مقدار ۰ به معنی عدم قطعه‌بندی است (هر AU در یک بسته ارسال می‌شود)
magic (str): رشتهٔ جادویی جهت الحاق در بستهٔ راه‌اندازی (setup)
skp (str): فهرست نام‌های ویژگی‌های PID جداشده با ویرگول برای نادیده گرفتن
minp (bool, default: false): گنجاندن تنها حداقل مجموعه‌ای از ویژگی‌های لازم برای پردازش جریان
crate (dbl, default: 0): دورهٔ زمانی تکرار چرخشی (carousel) برای اطلاعات tune-in بر حسب ثانیه
ext (str): پسوند فایل برای حالت فایل
dst (str): نشانی URL مقصد در حالت فایل
mixed (bool, default: false): مجاز کردن GSF برای در بر گرفتن هر دو مورد فایل‌ها و جریان‌های رسانه‌ای

توضیحات: تفکیک‌کنندهٔ (demultiplexer) GSF

این فیلتر قابلیت تفکیک قالب ترتیبی جی‌پک (GSF - GPAC Serialized Format) را فراهم می‌کند.
این فیلتر وضعیت‌های جریان (config/reconfig/info update/remove/eos) و بسته‌ها را در جریان بایتی GSF بازنشانی (de-serialize) می‌کند.
این ویژگی امکان خواندن یک نشست ذخیره‌شده در فایل یا دریافت وضعیت/داده‌های جریان‌ها را از نمونه‌ای دیگر از GPAC با استفاده از لوله‌ها (pipes) یا سوکت‌ها فراهم می‌سازد.

قالب جریان می‌تواند در حالت AES 128 CBC رمزنگاری شود، که در این صورت باید یک کلید ۱۲۸ بیتی به فیلتر تفکیک‌کننده داده شود.

key (mem): کلید برای رمزگشایی بسته‌ها
magic (str): رشتهٔ جادویی جهت بررسی در بستهٔ راه‌اندازی (setup)
mq (uint, default: 4): تنظیم حداکثر طول صف بسته برای تشخیص بسته‌های از دست رفته. مقدار ۰ با شروع یک بسته جدید، بستهٔ ناقص را تخلیه (flush) می‌کند
pad (uint, default: 0, minmax: 0-255): مقدار بایت استفاده‌شده برای پر کردن (pad) بسته‌های از دست رفته

توضیحات: خروجی UDP/TCP

این فیلتر سوکت‌های خروجی عمومی (تک‌جهته) را تنها در حالت مسدودکننده (blocking mode) مدیریت می‌کند.
این فیلتر می‌تواند در حالت سرور کار کند و منتظر اتصالات منبع بماند، یا در حالت کلاینت که مستقیماً به یک سرور متصل می‌شود.
در حالت سرور، می‌توان فیلتر را طوری تنظیم کرد که در پایان جریان (stream) به کار خود ادامه دهد.
در حالت سرور، رفتار پیش‌فرض این است که در صورت قطع اتصال همهٔ کلاینت‌ها، بسته‌های ورودی حفظ شوند؛ این مورد از طریق گزینهٔ .I kp قابل تنظیم است، با این حال هیچ تنظیم بلادرنگی برای سرعت دور ریختن بسته‌ها وجود ندارد.
اگر منابع شما بلادرنگ نیستند، افزودن یک زمان‌بند بلادرنگ در زنجیره را در نظر بگیرید (ر.ک به فیلتر reframer)، یا گزینهٔ ارسال .I rate را تنظیم کنید.

- سوکت‌های UDP برای نشانی‌های URL مقصد با قالب udp://NAME به کار می‌روند
- سوکت‌های TCP برای نشانی‌های URL مقصد با قالب tcp://NAME به کار می‌روند
- سوکت‌های یونیکس دامین UDP برای نشانی‌های URL مقصد با قالب udpu://NAME به کار می‌روند
- سوکت‌های یونیکس دامین TCP برای نشانی‌های URL مقصد با قالب tcpu://NAME به کار می‌روند

هنگامی که پورت‌ها در URL مشخص شده باشند و از جداکننده‌های پیش‌فرض گزینه‌ها استفاده شود (به gpac -h doc مراجعه کنید)، URL باید یکی از موارد زیر باشد:
- یک '/' در انتها داشته باشد، مانند udp://localhost:1234/[:opts]
- از گریز (escape) مربوط به gpac استفاده کند، مانند udp://localhost:1234[:gpac:opts]

خروجی سوکت را می‌توان به منظور آزمایش طوری پیکربندی کرد که بسته‌ها را دور بیندازد یا ترتیب آن‌ها را معکوس کند.
اندازهٔ پنجره بر حسب بسته به عنوان مخرج کسر دور انداختن/معکوس کردن تعیین می‌شود، و اندیس بسته‌ای که باید دور انداخته/معکوس شود به عنوان صورت کسر مشخص می‌گردد.
اگر صورت کسر ۰ باشد، بسته‌ای به صورت تصادفی در آن پنجره انتخاب می‌شود.
مثال
:pckd=4/10

این حالت چهارمین بسته از هر پنجرهٔ ۱۰ بسته‌ای را دور می‌اندازد.
مثال
:pckr=0/100

این حالت ترتیب ارسال یک بستهٔ تصادفی را در هر پنجرهٔ ۱۰۰ بسته‌ای معکوس می‌کند.

dst (cstr): نشانی URL مقصد
sockbuf (uint, پیش‌فرض: 65536): اندازهٔ بلوک مورد استفاده برای خواندن فایل
port (uint, پیش‌فرض: 1234): پورت پیش‌فرض در صورت عدم تعیین
ifce (cstr): رابط چندپخشی (multicast) پیش‌فرض
ext (str): پسوند فایل داده‌های پایپ (pipe)
mime (str): نوع MIME داده‌های پایپ (pipe)
listen (bool, پیش‌فرض: false): مشخص می‌کند که سوکت خروجی در حالت سرور کار می‌کند
maxc (uint, پیش‌فرض: +I): حداکثر تعداد اتصالات هم‌زمان
ka (bool, پیش‌فرض: false): زنده نگه داشتن سوکت در صورت نبود اتصال دیگر
kp (bool, پیش‌فرض: true): نگه‌داشتن بسته‌ها در صف در صورت نبود کلاینت دیگر
start (dbl, پیش‌فرض: 0.0): تنظیم آفست شروع پخش. مقدار منفی به معنای درصدی از مدت‌زمان رسانه است که در آن 1- برابر با کل مدت‌زمان است
speed (dbl, پیش‌فرض: 1.0): تنظیم سرعت پخش. اگر منفی باشد و start برابر ۰ باشد، مقدار start روی 1- تنظیم می‌شود
rate (uint, پیش‌فرض: 0): تنظیم نرخ ارسال بر حسب bps، به صورت پیش‌فرض غیرفعال است (در سریع‌ترین حالت ممکن)
pckr (frac, پیش‌فرض: 0/0): معکوس کردن بسته در هر N بسته
pckd (frac, پیش‌فرض: 0/0): دور انداختن بسته در هر N بسته
ttl (uint, پیش‌فرض: 0, minmax: 0-127): مقدار TTL چندپخشی

توضیحات: بازفریم‌بند (reframer) قالب‌های AV1/IVF/VP9/IAMF

این فیلتر فایل‌ها/داده‌های AV1 OBU،‏ AV1 AnnexB یا IVF حاوی AV1 یا VP9 را تجزیه کرده و PID و فریم‌های تصویری متناظر را در خروجی می‌دهد. همچنین IAMF OBU را تجزیه کرده و واحدهای زمانی متناظر حاوی فریم‌های صوتی و بلوک‌های پارامتر را خروجی می‌دهد.

fps (frac, پیش‌فرض: 0/1000): نرخ فریم واردسازی (مقدار ۰ به طور پیش‌فرض به FPS برگرفته از bitstream یا ۲۵ هرتز تنظیم می‌شود)
index (dbl, پیش‌فرض: -1.0): طول پنجرهٔ نمایه‌سازی. اگر ۰ باشد، bitstream برای تعیین مدت‌زمان بررسی نمی‌شود. مقدار منفی در صورتی که فایل منبع بزرگ‌تر از 20M باشد (سرعت واردکننده‌ها را کاهش می‌دهد)، از نمایه‌سازی صرف‌نظر می‌کند مگر این‌که درخواستی برای پخش با محدودهٔ شروع بزرگ‌تر از ۰ صادر شود
importer (bool, پیش‌فرض: false): سازگاری با واردکنندهٔ قدیمی
deps (bool, پیش‌فرض: false): وارد کردن اطلاعات وابستگی نمونه‌ها (sample)
notime (bool, پیش‌فرض: false): نادیده گرفتن برچسب‌های زمانی ورودی، بازسازی از ۰
temporal_delim (bool, پیش‌فرض: false): حفظ جداکننده‌های زمانی در فریم‌های بازسازی‌شده
bsdbg (enum, پیش‌فرض: off): اشکال‌زدایی تجزیهٔ OBU در گزارش‌های media@debug
* off: غیرفعال است
* on: فعال است
* full: فعال با تخلیهٔ (dump) تعداد بیت‌ها

توضیحات: بازنویسنده IVF/OBU/annexB

این فیلتر، جریان‌های بیتی (bitstreams) VPx یا AV1 را به یک دنباله IVF، annexB یا OBU بازنویسی می‌کند.
جداکننده زمانی OBU (یا temporal delimiter OBU) مجدداً در annexB (فایل‌های .av1 و .av1b، با تنظیم obu_size) و دنباله‌های OBU (فایل‌های .obu، بدون obu_size) درج می‌شود.
متادیتای timecode به صورت اختیاری درج می‌شود
نکته: کدک‌های VP8/9 فقط از خروجی IVF استفاده خواهند کرد (معادل پسوند فایل .ivf یا تنظیم :ext=ivf در خروجی).

rcfg (bool، پیش‌فرض: true): اجبار به تکرار پیکربندی رمزگشا (decoder config) در هر I-frame

توضیحات: ورودی MABR و ROUTE

این فیلتر یک گیرنده برای تحویل فایل از طریق چندپخشی (multicast) است. این فیلتر در حال حاضر از ATSC 3.0، ROUTE عمومی و DVB-MABR flute پشتیبانی می‌کند.
- حالت ATSC 3.0 با URL atsc:// شناسایی می‌شود.
- حالت ROUTE عمومی با URL route://IP:PORT شناسایی می‌شود.
- حالت DVB-MABR با URL mabr://IP:PORT که به کانال راه‌انداز (bootstrap) FLUTE حامل پیکربندی gateway چندپخشی اشاره دارد شناسایی می‌شود.

این فیلتر می‌تواند در حالت کَش‌شده (cached mode)، حالت منبع (source mode) یا حالت مستقل (standalone mode) کار کند.

حالت کَش، رفتار پیش‌فرض فیلتر است. این حالت GPAC HTTP Cache را با فایل‌های دریافت‌شده پر می‌کند، و از http://gmcast/serviceN به عنوان ریشه سرویس استفاده می‌نماید که در آن N شناسه سرویس چندپخشی (multicast service ID) است.
در حالت کَش، فایل‌های تکراری همیشه به کَش فرستاده می‌شوند.
حداکثر تعداد اشیاء قطعه چندرسانه‌ای (media segment) در کَش به ازای هر سرویس توسط .I nbcached تعریف می‌شود؛ این یک سازوکار ایمنی است که برای اجبار به حذف اشیاء در صورتی که زمان‌بندی کلاینت DASH نادرست باشد و برخی فایل‌ها هرگز در سطح کَش درخواست نشوند، به کار می‌رود.

به MPD کَش‌شده هدرهای زیر اختصاص داده می‌شود:
* `x-mcast`: مقدار بولی (boolean)، در صورت yes نشان می‌دهد که فایل از یک چندپخشی آمده است.
* `x-mcast-first-seg`: مقدار رشته‌ای (string)، نام اولین قطعه‌ای را که (به طور کامل یا در حال حاضر) از پخش دریافت شده است مشخص می‌کند.
* `x-mcast-ll`: مقدار بولی (boolean)، در صورت yes نشان می‌دهد که اولین قطعهٔ مشخص‌شده در حال حاضر در حال دریافت است (سیگنال‌دهی با تأخیر کم یا low latency signaling).
* `x-mcast-loop`: مقدار بولی (boolean)، در صورت yes نشان می‌دهد که یک حلقه (مانند بازپخش pcap) در سرویس شناسایی شده است - تنها در صورتی بررسی می‌شود که .I cloop تنظیم شده باشد.

به فایل‌های کَش‌شده هدرهای زیر اختصاص داده می‌شود:
* `x-mcast`: مقدار بولی (boolean)، در صورت yes نشان می‌دهد که فایل از یک چندپخشی آمده است.

اگر .I max_segs تنظیم شده باشد، رویداد حذف فایل در زنجیره فیلتر فعال خواهد شد.

در حالت منبع، فیلتر فایل‌ها را روی یک PID خروجی تکی از نوع file ارسال می‌کند. فایل‌ها پس از دریافت کامل مخابره می‌شوند، و PID خروجی دنباله‌ای از فایل‌های کامل را حمل می‌کند. فایل‌های تکراری ارسال نمی‌شوند مگر اینکه درخواست شده باشند.
مثال
gpac -i atsc://gcache=false -o $ServiceID$/$File$:dynext

این دستور فایل‌ها را گرفته و آن‌ها را به صورت PIDهای خروجی که توسط فیلتر fout مصرف می‌شوند فوروارد می‌کند.

در صورت نیاز، می‌توان با استفاده از .I stsi به جای یک PID تکی، یک PID به ازای هر TSI به کار برد. این کار از ترکیب فایل‌هایی با mime typeهای متفاوت روی همان PID (مانند HAS manifest و ISOBMFF) جلوگیری می‌کند.
در این حالت، هر بسته‌ای که یک فایل جدید را آغاز می‌کند نام فایل را به عنوان یک مشخصه (property) حمل می‌کند. اگر .I repair در این حالت فعال باشد، ارسال تدریجی (progressive dispatch) فایل‌ها انجام خواهد شد.

اگر .I max_segs تنظیم شده باشد، رویداد حذف فایل در زنجیره فیلتر فعال خواهد شد.
نکته: گزینه .I nbcached در این حالت نادیده گرفته می‌شود.

در حالت مستقل، فیلتر هیچ PID خروجی تولید نمی‌کند و فایل‌های دریافت‌شده را در دایرکتوری .I odir می‌نویسد.
مثال
gpac -i atsc://:odir=output

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

در این حالت، فایل‌ها صرف‌نظر از گزینه .I repair همیشه پس از دریافت کامل نوشته می‌شوند.

اگر .I max_segs تنظیم شده باشد، فایل‌های قدیمی حذف خواهند شد.
نکته: گزینه .I nbcached در این حالت نادیده گرفته می‌شود.

در صورت اتلاف یا دریافت ناقص سگمنت (هنگام tune-in یا ترمیم جزئی HTTP)، فایل‌ها به‌صورت زیر وصله (patch) می‌شوند:
* MPEG-2 TS: تمام محدوده‌های از دست رفته بر روی مرزهای ۱۸۸ بایتی تنظیم شده و به بسته‌های NULL TS تبدیل می‌شوند.
* ISOBMFF: تمام باکس‌های سطح‌بالا (top-level) پویش می‌شوند و باکس‌های ناقص به باکس‌های free تبدیل می‌شوند، به‌جز mdat:
- اگر repair=simple باشد، mdat در صورت ناقص بودن نگه‌داری می‌شود (فایل خراب)،
- اگر repair=strict باشد، mdat در صورت ناقص بودن به free منتقل شده و moof پیشین نیز به free منتقل می‌شود.

اگر گزینهٔ .I kc تنظیم شده باشد، فایل‌های آسیب‌دیده نگه‌داری خواهند شد. اگر .I fullseg تنظیم نشده باشد و فایل‌ها تنها به‌صورت جزئی دریافت شوند، نگه‌داری خواهند شد.

نکته: سگمنتی که به‌طور جزئی وصله شده باشد دیگر آسیب‌دیده در نظر گرفته نمی‌شود و بدون توجه به .I kc ارسال خواهد شد.

در برخی سیستم‌ها (OSX)، هنگام استفاده از بازپخش بسته‌های ماشین مجازی (VM packet replay)، ممکن است لازم باشد مسیریابی چندپخشی (multicast) را روی رابط محلی خود اجبار کنید.
برای ATSC، باید این کار را برای چندپخشی سیگنالینگ پایه (224.0.23.60) انجام دهید:
route add -net 224.0.23.60/32 -interface vboxnet0

سپس برای هر سرویس چندپخشی درون ترافیک چندپخشی:
route add -net 239.255.1.4/32 -interface vboxnet0

src (cstr): نشانی اینترنتی (URL) محتوای منبع
ifce (str): رابط پیش‌فرض مورد استفاده برای چندپخشی. در صورت NULL بودن، رابط پیش‌فرض سیستم استفاده خواهد شد
gcache (bool, پیش‌فرض: true): مشخص می‌کند که فایل‌ها باید حافظهٔ موقت (کَش) HTTP مربوط به GPAC را پر کنند یا خیر
tunein (sint, پیش‌فرض: -2): شناسهٔ سرویس (service ID) برای راه‌اندازی اولیه. مقادیر خاص:
* 0: عدم تنظیم روی هیچ سرویسی
* -1: تنظیم روی تمام سرویس‌ها
* -2: تنظیم روی نخستین سرویس یافت‌شده
* -3: شناسایی تمام سرویس‌ها و عدم پیوستن به چندپخشی

buffer (uint, پیش‌فرض: 0x80000): اندازهٔ بافر دریافت به بایت
timeout (uint, پیش‌فرض: 5000): مهلت زمانی به میلی‌ثانیه که پس از آن tunein با شکست مواجه می‌شود
nbcached (uint, پیش‌فرض: 8): تعداد سگمنت‌های نگه‌داری‌شده در حافظهٔ موقت به ازای هر سرویس
kc (bool, پیش‌فرض: false): نگه‌داری فایل آسیب‌دیده
skipr (bool, پیش‌فرض: true): صرف‌نظر از فایل‌های تکراری (در حالت حافظهٔ موقت نادیده گرفته می‌شود)
stsi (bool, پیش‌فرض: false): تعریف یک PID خروجی به ازای هر tsi/serviceID (در حالت حافظهٔ موقت نادیده گرفته می‌شود)
stats (sint, پیش‌فرض: 1000): ثبت آمارهای عملکردی با نرخ داده‌شده به میلی‌ثانیه (مقدار 0 آمار را غیرفعال می‌کند، مقادیر منفی هرگز آمار را بازنشانی نمی‌کنند)
tsidbg (uint, پیش‌فرض: 0): گردآوری تنها اشیاء با TSI داده‌شده (اشکال‌زدایی)
max_segs (uint, پیش‌فرض: 0): حداکثر تعداد سگمنت‌های نگه‌داری‌شده روی دیسک
odir (str): دایرکتوری خروجی برای حالت مستقل (standalone)
reorder (bool, پیش‌فرض: true): در نظر گرفتن این‌که بسته‌ها همیشه مرتب نیستند - اگر false باشد، با تغییر TOI وضعیت شیء LCT کامل ارزیابی می‌شود
cloop (bool, پیش‌فرض: false): بررسی حلقه‌ها بر اساس TOI (مورد استفاده در بازپخش ضبط)
rtimeout (uint, پیش‌فرض: 500000): مهلت زمانی پیش‌فرض به میکروثانیه برای انتظار هنگام گردآوری بسته‌های نامرتب
fullseg (bool, پیش‌فرض: false): ارسال تنها سگمنت‌های کامل در حالت حافظهٔ موقت (برای سایر حالت‌ها همیشه true است)
repair (enum, پیش‌فرض: strict): حالت ترمیم برای فایل‌های آسیب‌دیده
* no: هیچ ترمیمی انجام نمی‌شود
* simple: ترمیم ساده انجام می‌شود (باکس‌های ناقص mdat نگه‌داری می‌شوند)
* strict: باکس‌های ناقص mdat و همچنین باکس‌های moof پیشین از دست خواهند رفت
* full: ترمیم مبتنی بر HTTP برای تمام بسته‌های از دست رفته

repair_urls (strl): نشانی سرورهای ترمیم - در صورت تعیین، repair بر روی full تنظیم می‌شود
max_sess (uint, پیش‌فرض: 1): حداکثر تعداد نشست‌های هم‌روند ترمیم HTTP
llmode (bool, پیش‌فرض: true): فعال‌سازی دسترسی با تأخیر اندک (low-latency)
dynsel (bool, پیش‌فرض: true): فعال و غیرفعال‌سازی پویای گروه‌های چندپخشی بر اساس وضعیت انتخاب آن‌ها
range_merge (uint, پیش‌فرض: 10000): ادغام محدوده‌ها در ترمیم HTTP در صورتی که فاصلهٔ آن‌ها کمتر از مقدار بایت داده‌شده باشد
minrecv (uint, پیش‌فرض: 20): بارگیری مجدد کل فایل در ترمیم HTTP در صورتی که بایت‌های دریافتی کمتر از درصد داده‌شده از اندازهٔ فایل باشد؛ 0 یعنی در صورت بروز هر خطایی کل فایل دوباره بارگیری شود
riso (enum, پیش‌فرض: none): گزینه‌های پیشرفته برای ترمیم ISOBMFF از طریق HTTP
* none: استفاده از ترمیم عادی HTTP (ترمیم متوالی)
* simple: ابتدا ترمیم تمام باکس‌های غیر mdat، سپس ترمیم mdat به‌ترتیب
* partial: تنها ترمیم تمام باکس‌های غیر mdat و باقی گذاشتن حفره‌ها در mdat
* deps: مشابه simple و تنها ترمیم نمونه‌هایی که سایر نمونه‌ها به آن‌ها وابسته‌اند
* depx: مشابه deps اما پنهان نکردن moof مربوط به mdat ناقص (صرفاً برای آزمایش)

ka (bool, پیش‌فرض: false): زنده‌نگه‌داشتن سرویس در صورت قطع بودن چندپخشی
chkiso (bool, پیش‌فرض: false): بررسی ساختار isobmf پس از ترمیم (اشکال‌زدایی)

توضیحات: استریمر RTP

استریمر RTP پخش جریانی خروجی SDP/RTP را مدیریت می‌کند.

هنگامی که نشانی اینترنتی (URL) مقصد یک SDP باشد، فیلتر یک SDP را روی یک PID فایلی خروجی می‌دهد و بسته‌های RTP را از طریق UDP، با شروع از .I port مشخص‌شده، پخش جریانی می‌کند.

هنگامی که نشانی اینترنتی مقصد از طرح پروتکل rtp://IP:PORT استفاده می‌کند، فیلتر هیچ SDPای خروجی نمی‌دهد و یک ورودی منفرد را از طریق RTP، با استفاده از PORT مشخص‌شده در نشانی اینترنتی مقصد یا اولین .I port پیکربندی‌شده، پخش جریانی می‌کند.
در این حالت، معمولاً نیاز است که قالب مد نظر با استفاده از .I ext یا .I mime مشخص شود.
مثال
gpac -i src -o rtp://localhost:1234/:ext=ts

این دستور مشخص می‌کند که استریمر RTP انتظار یک مالتی‌پلاکس MPEG-2 TS را به عنوان ورودی دارد.

بسته‌های RTP تولیدشده دارای حداکثر بار داده (payload) تعیین‌شده توسط گزینه .I mtu هستند (بسته IP برابر با MTU + ۴۰ بایت از سرآیندهای IP+UDP+RTP خواهد بود).
الگوریتم زمان‌بندی هم‌زمان (real-time) به این صورت عمل می‌کند:
- ابتدا مقداردهی اولیه ساعت با:
- محاسبه کوچک‌ترین برچسب زمانی (timestamp) برای تمام PIDهای ورودی
- نگاشت این زمان رسانه به ساعت سیستم
- تعیین زودترین بسته برای ارسال بعدی روی هر PID ورودی، با افزودن .I delay در صورت وجود
- در نهایت مقایسه برچسب زمانی نگاشت‌شده بسته TS با ساعت سیستم SC. هرگاه TS - SC کمتر از .I tt باشد، بسته‌های RTP مربوط به بسته مبدأ ارسال می‌شوند

این فیلتر اتمام مهلت زمانی (timeout) پروتکل RTCP را بررسی نمی‌کند و تا زمانی که تمام PIDهای ورودی به پایان جریان برسند، اجرا خواهد شد.

ip (str): نشانی IP مقصد (مقدار NULL برابر با 127.0.0.1 است)
port (uint, default: 7000): پورت برای اولین جریان در نشست
loop (bool, default: false): تکرار حلقه‌ای همه جریان‌ها در نشست (بسته به نوع منبع همیشه امکان‌پذیر نیست)
mpeg4 (bool, default: false): ارسال تمام جریان‌ها با استفاده از قالب بار داده عمومی MPEG-4 در صورت امکان
mtu (uint, default: 1460): اندازه MTU پروتکل RTP به بایت
ttl (uint, default: 2): طول عمر (TTL) برای بسته‌های چندپخشی (multicast)
ifce (str): رابط شبکه پیش‌فرض برای استفاده
payt (uint, default: 96, minmax: 96-127): نوع بار داده (payload type) برای استفاده در پیکربندی‌های رمزگشای پویا
delay (sint, default: 0): تأخیر ارسال برای بسته (مقدار منفی به معنی ارسال زودهنگام‌تر است)
tt (uint, default: 1000): میزان رواداری زمانی (time tolerance) به میکروثانیه. هرگاه زمان زمان‌بندی منهای زمان واقعی کمتر از این مقدار باشد، بسته بلافاصله ارسال می‌شود
runfor (sint, default: -1): اجرا به مدت‌زمان داده‌شده به میلی‌ثانیه. مقدار منفی به معنی اجرای همیشگی (در صورت loop) یا مدت‌زمان منبع است، 0 تنها sdp را خروجی می‌دهد
tso (sint, default: -1): تنظیم آفست برچسب زمانی به میکروثانیه. مقدار منفی به معنی برچسب زمانی اولیه تصادفی است
xps (bool, default: false): اجبار به تزریق مجموعه پارامترها (parameter set) در هر SAP. در صورت عدم تنظیم، تنها در صورتی تزریق می‌شود که با موارد موجود در SDP متفاوت باشد
latm (bool, default: false): استفاده از latm برای قالب بار داده AAC
dst (cstr): نشانی اینترنتی (URL) برای حالت RTP مستقیم
ext (str): پسوند فایل برای حالت RTP مستقیم
mime (cstr): تنظیم نوع mime برای حالت RTP مستقیم
speed (dbl, default: 1.0): تنظیم سرعت پخش جریانی. اگر منفی باشد و start برابر با 0 باشد، start روی -1 تنظیم می‌شود
start (dbl, default: 0.0): تنظیم آفست شروع پخش جریانی. مقدار منفی به معنی درصدی از مدت‌زمان رسانه است که در آن -1 برابر با کل مدت‌زمان است

توضیحات: سرور RTSP

سرور RTSP پروتکل RTSP 1.0 را به‌صورت جزئی پیاده‌سازی می‌کند، همراه با پشتیبانی از OPTIONS، DESCRIBE، SETUP، PLAY، PAUSE و TEARDOWN.
محدوده‌های PLAY چندگانه پشتیبانی نمی‌شوند، پایان محدوده PLAY پشتیبانی نمی‌شود، محدوده PAUSE پشتیبانی نمی‌شود.
تنها کنترل تجمیعی (aggregated control) برای PLAY و PAUSE پشتیبانی می‌شود، عملگر PAUSE/PLAY روی یک جریان مجزا پشتیبانی نمی‌شود.
سرور فقط روی TCP اجرا می‌شود و درخواست‌ها را به ترتیب پردازش می‌کند: تا زمانی که پاسخ قبلی ارسال نشود، دستورات بعدی را بررسی نخواهد کرد.
سرور هم از تحویل RTP روی UDP و هم از تحویل RTP درهم‌آمیخته (interleaved) روی RTSP پشتیبانی می‌کند.

الگوریتم زمان‌بندی و گزینه‌های RTP همانند فیلتر خروجی RTP هستند، دستور gpac -h rtpout را ببینید.
سرور در صورتی که به مدت .I timeout ثانیه هیچ ترافیک RTCPای دریافت نشود، نشست‌های پخش جریانی UDP را قطع خواهد کرد.

سرور می‌تواند با مشخص کردن .I cert و .I pkey روی TLS اجرا شود، که در این حالت .I port پیش‌فرض 322 است.

فیلتر می‌تواند با تعیین گزینهٔ .I dst به‌عنوان یک فیلتر خروجی ساده عمل کند:
gpac -i source -o rtsp://myip/sessionname
gpac -i source -o rtsp://myip/sessionname

در این حالت، تنها یک نشست (session) امکان‌پذیر است. امکان تکرار حلقه‌ای (.I loop) منبع یا منابع ورودی وجود دارد.

فیلتر می‌تواند با تعیین گزینهٔ .I mounts جهت مشخص کردن مسیرهای فایل چندرسانه‌ای برای سرویس‌دهی، به‌عنوان یک سرور RTSP عادی عمل کند:
gpac rtspout:mounts=mydir1,mydir2

در این حالت، محتوای RES از هر یک از دایرکتوری‌های مشخص‌شده به‌صورت rtsp://SERVER/RES در دسترس قرار می‌گیرد

گزینهٔ .I mounts همچنین می‌تواند فایل(های) قوانین دسترسی را مشخص کند، gpac -h creds را ببینید. هنگام استفاده از قوانین:
- اگر یک دایرکتوری دارای قاعدهٔ name باشد، در URL استفاده خواهد شد
- در غیر این صورت، دایرکتوری مستقیماً در زیر ریشهٔ سرور / در دسترس است
- فقط دسترسی خواندن و مجوزهای چندپخشی (multicast) بررسی می‌شوند
مثال
[foodir]
name=bar

محتوای RES این دایرکتوری به‌صورت rtsp://SERVER/bar/RES ارائه می‌شود.

در این حالت، با تنظیم گزینهٔ .I dynurl، امکان بارگذاری هر منبع پشتیبانی‌شده توسط gpac وجود دارد.
نحو مورد انتظار برای URLهای پویای RTSP به‌صورت rtsp://servername/?URL1[&URLN] یا rtsp://servername/@URL1[@URLN] است
هر URL می‌تواند مطلق یا محلی باشد، که در این صورت نسبت به نقطه(های) اتصال (mount point) بازگشایی می‌شود.
مثال
gpac -i rtsp://localhost/?pipe://mynamepipe&myfile.mp4 [dst filters]

سرور این URL را در یک نشست جدید شامل جریان‌های myfile.mp4 و جریان‌های لولهٔ mynamepipe بازگشایی خواهد کرد.
هنگام تنظیم .I runfor در حالت سرور، سرور پس از بسته شدن آخرین نشست خارج خواهد شد.

پارامتر name=VAL برای تخصیص نام نشست در صورت استفاده از آینه‌سازی چندپخشی (multicast mirroring) رزرو شده است.
مثال
gpac -i rtsp://localhost/?name=live?pipe://mynamepipe&myfile.mp4 [dst filters]

استفاده از URLهای پویا را همچنین می‌توان با استفاده از دایرکتوری خاص $dynurl در یک فایل قوانین دسترسی پیکربندی کرد.
EX[$dynurl]
ru=foo
این کار استفاده از URLهای پویا را تنها برای کاربر foo مجاز می‌کند.

نکته: اگر .I dynurl تنظیم شود، برای تمام کاربران و بدون احراز هویت فعال می‌گردد.

در هر دو حالت، در صورتی که گزینهٔ .I mcast روی on یا mirror باشد، کلاینت‌ها می‌توانند چندپخشی را راه‌اندازی کنند.
هنگامی که .I mcast روی حالت mirror تنظیم شده باشد، هر دستور DESCRIBE روی منبعی که از قبل از طریق یک نشست چندپخشی تحویل داده می‌شود، از همان چندپخشی استفاده خواهد کرد.
در نتیجه، برای چنین نشست‌هایی تنها متدهای DESCRIBE پردازش می‌شوند و سایر متدها Unauthorized را بازمی‌گردانند.

در حالت سرور، چندپخشی را می‌توان به‌ازای هر دایرکتوریِ خواندن با استفاده از قاعدهٔ دسترسی mcast در پیکربندی دایرکتوری فعال کرد - gpac -h creds را ببینید.

حالت سرور به‌طور پیش‌فرض از مدیریت RTSP از طریق تونل HTTP پشتیبانی می‌کند. این قابلیت را می‌توان با استفاده از .I htun غیرفعال کرد.
این تونل با مشخصات QT سازگار است و تنها از تونل‌های HTTP 1.0 و 1.1 پشتیبانی می‌شود.

dst (cstr): مکان منبع مقصد
port (uint، پیش‌فرض: 554): درگاه سرور
firstport (uint، پیش‌فرض: 6000): درگاه برای نخستین جریان در نشست
mtu (uint، پیش‌فرض: 1460): اندازهٔ RTP MTU به بایت
ttl (uint، پیش‌فرض: 0): طول عمر (TTL) برای بسته‌های چندپخشی (مقدار 0 از TTL درخواستی کلاینت یا 1 استفاده می‌کند)
ifce (str): رابط شبکهٔ پیش‌فرض برای استفاده
payt (uint، پیش‌فرض: 96، minmax: 96-127): نوع بار داده (payload type) برای استفاده در پیکربندی‌های رمزگشای پویا
mpeg4 (bool، پیش‌فرض: false): در صورت امکان، ارسال تمام جریان‌ها با استفاده از قالب بار دادهٔ عمومی MPEG-4
delay (sint، پیش‌فرض: 0): تأخیر ارسال برای بسته (مقدار منفی به معنی ارسال زودتر است)
tt (uint، پیش‌فرض: 1000): رواداری زمانی به میکروثانیه (هرگاه زمان زمان‌بندی منهای زمان واقعی کمتر از این مقدار باشد، بسته بلافاصله ارسال می‌شود)
runfor (sint، پیش‌فرض: -1): اجرای نشست برای مدت‌زمان داده‌شده به میلی‌ثانیه. مقدار منفی به معنی اجرای همیشگی در صورت loop یا مدت‌زمان منبع است؛ مقدار 0 فقط sdp را در خروجی قرار می‌دهد
tso (sint، پیش‌فرض: -1): تنظیم آفست برچسب زمانی به میکروثانیه (مقدار منفی به معنی برچسب زمانی اولیهٔ تصادفی است)
xps (bool، پیش‌فرض: false): اجبار به تزریق مجموعه پارامترها در هر SAP. اگر تنظیم نشود، فقط در صورت تفاوت با موارد SDP تزریق می‌شود
latm (bool، پیش‌فرض: false): استفاده از latm برای قالب بار دادهٔ AAC
mounts (strl): فهرست دایرکتوری‌ها جهت ارائه در حالت سرور
block_size (uint، پیش‌فرض: 10000): اندازهٔ بلوک استفاده‌شده برای خواندن سوکت TCP
maxc (uint، پیش‌فرض: 100): حداکثر تعداد اتصالات
timeout (uint، پیش‌فرض: 20): زمان انقضا به ثانیه برای نشست‌های غیرفعال (0 زمان انقضا را غیرفعال می‌کند)
user_agent (str، پیش‌فرض: $GUA): رشتهٔ عامل کاربر (user agent)، به‌طور پیش‌فرض از ترجیحات GPAC تعیین می‌شود
close (bool، پیش‌فرض: false): بستن اتصال RTSP پس از هر درخواست، مگر در مواقعی که RTP over RTSP استفاده شود
loop (bool، پیش‌فرض: false): تکرار حلقه‌ای تمام جریان‌ها در نشست (بسته به نوع منبع همیشه امکان‌پذیر نیست)
dynurl (bool، پیش‌فرض: false): اجازه به سرهم‌بندی پویای سرویس
mcast (enum، پیش‌فرض: off): کنترل راه‌اندازی چندپخشی یک نشست
* off: کلاینت‌ها هرگز مجاز به ایجاد چندپخشی نیستند
* on: کلاینت‌ها می‌توانند نشست‌های چندپخشی ایجاد کنند
* mirror: کلاینت‌ها می‌توانند یک نشست چندپخشی ایجاد کنند. هر درخواست بعدی به همان URL از آن نشست چندپخشی استفاده خواهد کرد

quit (bool، پیش‌فرض: false): خروج از سرور پس از پایان نخستین نشست (جهت مقاصد آزمایشی)
htun (bool، پیش‌فرض: true): فعال‌سازی RTSP از طریق تونل HTTP
trp (enum، پیش‌فرض: both): حالت انتقال
* both: اجازه به ترافیک TCP یا UDP
* udp: تنها اجازه به ترافیک UDP
* tcp: تنها اجازه به ترافیک TCP

cert (str): فایل گواهی با قالب PEM جهت استفاده در حالت TLS
pkey (str): فایل کلید خصوصی با قالب PEM جهت استفاده در حالت TLS

توضیحات: سرور HTTP

فیلتر خروجی HTTP می‌تواند به این صورت‌ها عمل کند:
- یک سرور HTTP ساده
- یک سینک (sink) سرور HTTP
- یک سینک فایل سرور HTTP
- یک سینک کلاینت HTTP
- یک منبع (source) سرور HTTP

سرور در حال حاضر متدهای GET، HEAD، PUT، POST، DELETE و پشتیبانی اولیه از OPTIONS را مدیریت می‌کند.
محدوده‌های بایتی منفرد یا چندگانه (byte ranges) برای هر دو متد GET و PUT/POST، در تمام حالت‌های سرور پشتیبانی می‌شوند.
- برای GET، بدنه حاصل یک بدنه تک‌بخشی تشکیل‌شده از محدوده‌های بایتی به‌هم‌پیوسته طبق درخواست است (بدون بررسی هم‌پوشانی).
- برای PUT/POST، داده‌های دریافتی بر اساس محدوده‌های بایتی مشخص‌شده در درخواست کلاینت به فایل مقصد ارسال می‌شوند.

هشدار: درخواست partial PUT با RFC2616 سازگار است اما با RFC7230 سازگار نیست. متد PATCH هنوز در GPAC پیاده‌سازی نشده است.

هنگامی که یک دایرکتوری خواندنی منفرد مشخص شده باشد، ریشه سرور / محتوای این دایرکتوری است.
هنگامی که چندین دایرکتوری خواندنی مشخص شده باشند، ریشه سرور / شامل فهرست نقاط اتصال (mount points) به همراه نام دایرکتوری‌های آنها خواهد بود.
هنگامی که یک دایرکتوری نوشتنی مشخص شده باشد، نام منبع بارگذاری، فایلی را در این دایرکتوری مشخص می‌کند (نام دایرکتوری نوشتنی در URL وجود ندارد).

هشدار: فایل‌های بارگذاری‌شده یا ایجادشده در دایرکتوری نوشتنی، همیشه در حالت‌های غیراتمیک (non-atomic) ایجاد می‌شوند.

یک فایل قوانین دایرکتوری (رجوع کنید به gpac -h creds) می‌تواند در .I rdirs مشخص شود، اما در .I wdir نه. هنگامی که از قوانین استفاده می‌شود:
- اگر یک دایرکتوری دارای قانون نامگذاری (name rule) باشد، در URL استفاده خواهد شد
- در غیر این صورت، دایرکتوری مستقیماً زیر ریشه سرور / در دسترس است
- مجوزهای دسترسی خواندن و نوشتن بررسی می‌شوند
مثال
[foodir]
name=bar

محتوای RES این دایرکتوری به صورت http://SERVER/bar/RES ارائه می‌شود.

برای احراز هویت سرویس‌های مدیریت‌شده توسط بایندینگ‌ها (bindings)، از یک دایرکتوری ناموجود و نامی که احراز هویت را توصیف می‌کند استفاده کنید.
مثال
[NonExistingDir]
name=service_root

درخواست‌ها در قالب http://SERVER/service_root/* با این قانون احراز هویت خواهند شد.

فهرست‌بندی را می‌توان با استفاده از .I dlist روی سرور فعال کرد.
در صورت غیرفعال بودن، عملیات GET روی یک دایرکتوری با شکست مواجه می‌شود.
در صورت فعال بودن، عملیات GET روی یک دایرکتوری یک فهرست HTML ساده از محتوا را با الهام از Apache برمی‌گرداند.

هدرهای سفارشی را می‌توان با استفاده از .I hdrs مشخص کرد؛ آنها بر تمامی درخواست‌ها اعمال می‌شوند. برای کنترل پیشرفته‌تر روی درخواست‌ها، از یک بایندینگ javascript استفاده کنید (به .I js و howtos مراجعه کنید).

فایل‌های متنی در صورتی که کلاینت این رمزگذاری‌ها را بپذیرد، با استفاده از gzip یا deflate فشرده می‌شوند، مگر اینکه .I zmax برابر با 0 تنظیم شده باشد.

در این حالت، فیلتر به هیچ اتصال ورودی نیاز ندارد و تمامی فایل‌های موجود در دایرکتوری‌های ارائه‌شده توسط .I rdirs را در دسترس قرار می‌دهد.
متدهای PUT و POST تنها در صورتی پشتیبانی می‌شوند که یک دایرکتوری نوشتنی توسط گزینه .I wdir مشخص شده باشد.
مثال
gpac httpout:rdirs=outcoming

این دستور یک سرور فقط-خواندنی را راه‌اندازی می‌کند.

مثال
gpac httpout:wdir=incoming

این دستور یک سرور فقط-نوشتنی را راه‌اندازی می‌کند.

مثال
gpac httpout:rdirs=outcoming:wdir=incoming:port=8080

این دستور یک سرور خواندنی-نوشتنی را راه‌اندازی می‌کند که روی .I port 8080 اجرا می‌شود.

در این حالت، فیلتر PIDهای ورودی را به کلاینت‌های متصل فوروارد می‌کند و در صورتی که هیچ کلاینتی متصل نباشد، داده‌ها را دور می‌ریزد مگر اینکه .I hold مشخص شده باشد.
فیلتر در این حالت از هیچ دایرکتوری خواندنی استفاده نمی‌کند.
این حالت بیشتر برای راه‌اندازی استریم زندهٔ HTTP نشست‌های رسانه‌ای مانند MP3، MPEG-2 TS یا سایر نمایش‌های مالتی‌پلکس‌شده مفید است:
gpac -i MP3_SOURCE -o http://localhost/live.mp3 --hold

در این مثال، سرور منتظر درخواست‌های کلاینت روی /live.mp3 می‌ماند و سپس هر بستهٔ ورودی را به تمامی کلاینت‌های متصل ارسال (push) می‌کند.
اگر منبع بی‌درنگ (real-time) نباشد، می‌توانید یک فیلتر reframer را برای تنظیم بی‌درنگ تزریق کنید.
مثال
gpac -i MP3_SOURCE reframer:rt=on -o http://localhost/live.mp3

در این مثال، سرور هر بستهٔ ورودی را به تمام کلاینت‌های متصل ارسال می‌کند، یا در صورت عدم وجود کلاینت متصل، بسته را دور می‌اندازد.

در این حالت، فراداده‌های ICECast را می‌توان با استفاده از .I ice درج کرد. مقادیر پیش‌فرض درج‌شده عبارتند از ice-audio-info، icy-br، icy-pub (تنظیم‌شده روی 1) و در صورت تنظیم بودن ویژگی ServiceName ورودی، مقدار icy-name.
سرور همچنین به دنبال هر ویژگی با نام ice-* روی PID ورودی می‌گردد و آن‌ها را تزریق می‌کند.
مثال
gpac -i source.mp3:#ice-Genre=CoolRock -o http://IP/live.mp3 --ice

این کار هدر ice-Genre: CoolRock را در پاسخ تزریق خواهد کرد.
به محض ارسال کامل یک فایل ورودی، آن فایل دیگر برای دانلود در دسترس نخواهد بود مگر اینکه .I reopen تنظیم شده باشد و PID ورودی خاتمه نیافته باشد.

این حالت نباید با مالتی‌پلکسرهای چندفایلی مانند DASH یا HLS استفاده شود.

در این حالت، فیلتر PIDهای ورودی را در فایل‌هایی درون نخستین دایرکتوری خواندن مشخص‌شده می‌نویسد و به عنوان یک سینک خروجی فایل عمل می‌کند.
فیلتر در این حالت از یک دایرکتوری خواندن استفاده می‌کند که باید قابل نوشتن باشد.
به محض دریافت درخواست GET کلاینت، سرور بررسی می‌کند که آیا URL درخواستی با نام فایلی که هم‌اکنون توسط سرور در حال نوشتن است مطابقت دارد یا خیر.
- اگر چنین باشد، سرور:
- محتوا را با استفاده از حالت انتقال تکه‌ای HTTP (chunk transfer mode)، با شروع از آنچه پیش‌تر روی دیسک نوشته شده است ارسال می‌کند
- داده‌های باقی‌مانده را به محض دریافت و هم‌زمان با نوشتن روی دیسک، تا زمان تکمیل فایل منبع به کلاینت ارسال (push) می‌کند
- در غیر این صورت، سرور به سادگی فایل را از روی دیسک همانند یک نشست عادی HTTP، بدون انتقال تکه‌ای ارسال خواهد کرد.

این حالت معمولاً برای سرور مبدأ در نشست‌های HAS استفاده می‌شود؛ جایی که ممکن است کلاینت‌ها فایل‌ها را هم‌زمان با تولید شدن آن‌ها درخواست کنند (DASH با تأخیر کم).
مثال
gpac -i SOURCE reframer:rt=on -o http://localhost:8080/live.mpd --rdirs=temp --dmode=dynamic --cdur=0.1

در این مثال، یک نشست پویای بی‌درنگ DASH با تکه‌های 100ms ایجاد می‌شود که فایل‌ها را در temp می‌نویسد. کلاینتی که به لبهٔ زنده متصل می‌شود، قطعات را به محض تولید با استفاده از انتقال تکه‌ای HTTP دریافت خواهد کرد.

سرور می‌تواند با تنظیم دایرکتوری خواندن روی gmem، فایل‌های ورودی را در حالت حافظه ذخیره کند.
در این حالت، .I max_cache_segs همیشه حداقل 1 است.

اگر مقدار N در .I max_cache_segs برابر با 0 نباشد، هر PID ورودی حداکثر مقادیر زیر را ذخیره خواهد کرد:
- به اندازهٔ MIN(N, time-shift depth) فایل در صورت ذخیره‌سازی در حافظه
- به اندازهٔ -N فایل در صورت ذخیره‌سازی محلی و منفی بودن N
- به اندازهٔ MAX(N, time-shift depth) فایل در صورت ذخیره‌سازی محلی و مثبت بودن N
- در غیر این صورت نامحدود (فایل‌ها به صورت محلی ذخیره شده باشند، N مثبت باشد و اطلاعات time-shift موجود نباشد)

در این حالت، فیلتر داده‌های PIDهای ورودی را با استفاده از PUT (یا POST در صورتی که .I post تنظیم شده باشد) در سرور راه دور بارگذاری می‌کند.
این حالت باید صراحتاً با استفاده از .I hmode فعال شود.
فیلتر در این حالت از هیچ دایرکتوری خواندن یا نوشتنی استفاده نمی‌کند.
مثال
gpac -i SOURCE -o http://targethost:8080/live.mpd:gpac:hmode=push

در این مثال، فیلتر متدهای PUT را به سرور در حال اجرا روی .I port 8080 در مکان targethost (آدرس IP یا نام) ارسال می‌کند.

در این حالت، سرور به جای یک سینک به عنوان یک منبع عمل می‌کند. این سرور متدهای دریافتی PUT یا POST را به عنوان PIDهای خروجی اعلان می‌کند
این حالت باید صراحتاً با استفاده از .I hmode فعال شود.
فیلتر در این حالت از هیچ دایرکتوری خواندن یا نوشتنی استفاده نمی‌کند، و داده‌های بارگذاری‌شده توسط سرور ذخیره نمی‌شوند.
مثال
gpac httpout:hmode=source vout aout

در این مثال، فیلتر تلاش می‌کند فایل‌های بارگذاری‌شده را از طریق خروجی ویدیو و صدا پخش کند.

سرور می‌تواند برای تمام حالت‌های سرور بر بستر TLS (https) اجرا شود. TLS با تعیین گزینه‌های .I cert و .I pkey فعال می‌شود.
هر دو فایل گواهی و کلید باید در قالب PEM باشند.
سرور در حال حاضر فقط در یکی از دو حالت HTTPS یا HTTP کار می‌کند و نمی‌تواند هر دو حالت را به‌طور هم‌زمان اجرا کند. برای این منظور باید از دو فیلتر httpout استفاده کنید، یکی در حالت HTTPS و دیگری در حالت HTTP.

هنگام اجرا در حالت سرور، می‌توان از چندین خروجی HTTP با URL/پورت یکسان استفاده کرد:
- اولین فیلتر خروجی HTTP بارگذاری‌شده با URL/پورت یکسان، مجدداً استفاده خواهد شد
- تمام گزینه‌های httpout فیلترهای بعدی httpout، به جز .I dst نادیده گرفته خواهند شد؛ سایر گزینه‌ها طبق روال معمول به ارث برده می‌شوند

مثال
gpac -i dash.mpd dashin:forward=file:FID=D1 dashin:forward=segb:FID=D2 -o http://localhost:80/live.mpd:SID=D1:rdirs=dash -o http://localhost:80/live_rw.mpd:SID=D2:sigfrag

این دستور کارهای زیر را انجام می‌دهد:
- بارگذاری سرور HTTP و فوروارد کردن نشست dash (از طریق D1) به این سرور با استفاده از live.mpd به عنوان نام مانیفست
- استفاده مجدد از سرور HTTP و بازتولید مانیفست (از طریق D2 و گزینه sigfrag)، با استفاده از live_rw.mpd به عنوان نام مانیفست

dst (cstr): مکان منبع مقصد
port (uintl, پیش‌فرض: 0): پورت سرور
ifce (str): رابط شبکه پیش‌فرض برای استفاده
rdirs (strl): فهرست دایرکتوری‌ها برای دسترسی خواندن
wdir (str): دایرکتوری برای دسترسی نوشتن
cert (str): فایل گواهی در قالب PEM برای استفاده در حالت TLS
pkey (str): فایل کلید خصوصی در قالب PEM برای استفاده در حالت TLS
block_size (uint, پیش‌فرض: 10000): اندازه بلوک مورد استفاده برای خواندن و نوشتن سوکت TCP
user_agent (str, پیش‌فرض: $GUA): رشته user agent، به‌طور پیش‌فرض از تنظیمات ترجیحی GPAC حل می‌شود
close (bool, پیش‌فرض: false): بستن اتصال HTTP پس از هر درخواست
maxc (uint, پیش‌فرض: 100): حداکثر تعداد اتصال‌ها، 0 یعنی نامحدود
maxp (uint, پیش‌فرض: 6): حداکثر تعداد اتصال‌ها برای یک همتا (0 یعنی نامحدود)
cache_control (str): تعیین رشته Cache-Control برای افزودن (مقدار none کنترل کش و ETag را غیرفعال می‌کند)
hold (bool, پیش‌فرض: false): نگه‌داشتن بسته‌ها تا زمانی که یک کلاینت متصل شود
hmode (enum, پیش‌فرض: default): حالت عملیاتی فیلتر، در صورت تنظیم .I wdir نادیده گرفته می‌شود
* default: اجرا در حالت سرور
* push: اجرا در حالت کلاینت با استفاده از PUT یا POST
* source: استفاده از سرور به عنوان فیلتر منبع روی PUT/POST دریافتی

timeout (uint, پیش‌فرض: 30): زمان انقضا (مهلت زمانی) بر حسب ثانیه برای اتصال‌های پایدار (0 مهلت زمانی را غیرفعال می‌کند)
ext (cstr): تنظیم پسوند برای تفکیک گراف، صرف‌نظر از پسوند فایل
mime (cstr): تنظیم نوع mime برای تفکیک گراف
quit (bool, پیش‌فرض: false): خروج از سرور پس از پایان تمام PIDهای ورودی و قطع اتصال کلاینت (برای اهداف آزمایشی)
post (bool, پیش‌فرض: false): استفاده از POST به جای PUT برای بارگذاری فایل‌ها
dlist (bool, پیش‌فرض: false): فعال‌سازی فهرست‌بندی HTML برای درخواست‌های GET روی دایرکتوری‌ها
sutc (bool, پیش‌فرض: false): درج UTC سرور در هدرهای پاسخ به صورت Server-UTC: VAL_IN_MS
cors (enum, پیش‌فرض: auto): درج هدر CORS برای مجاز کردن تمام دامنه‌ها
* off: غیرفعال‌سازی CORS
* on: فعال‌سازی CORS
* auto: فعال‌سازی CORS در صورت یافت شدن Origin در درخواست

reqlog (str): ارائه لاگ کوتاهی از درخواست‌های مشخص‌شده در این گزینه (فهرست جداشده با کاما، * برای همه) صرف‌نظر از تنظیمات لاگ HTTP. مقدار REC شروع/پایان نوشتن فایل را ثبت می‌کند. در صورت تنظیم پیشوند -، پایان درخواست لاگ نمی‌شود
ice (bool, پیش‌فرض: false): درج فراداده ICE در هدرهای پاسخ در حالت sink
max_client_errors (uint, پیش‌فرض: 20): قطع اجباری اتصال پس از تعداد مشخصی خطای متوالی از کلاینت HTTP 1.1 (در H/2 یا در صورت تنظیم close نادیده گرفته می‌شود)
max_cache_segs (sint, پیش‌فرض: 5): حداکثر تعداد قطعه‌های کش‌شده به ازای هر کیفیت HAS (راهنمای فیلتر را ببینید)
reopen (bool, پیش‌فرض: false): در حالت سرور بدون دایرکتوری خواندن، پذیرش درخواست‌ها روی فایل‌هایی که پیش‌تر تمام شده‌اند اما pid ورودی آن‌ها در انتهای جریان نیست
max_async_buf (uint, پیش‌فرض: 100000): حداکثر اندازه بافر ناهمگام به بایت هنگام اشتراک‌گذاری خروجی روی چندین اتصال بدون ورودی/خروجی فایل
blockio (bool, پیش‌فرض: false): استفاده از ورودی/خروجی مسدودکننده در حالت push یا source یا در حالت سرور بدون دایرکتوری خواندن
ka (bool, پیش‌فرض: true): زنده‌نگه‌داشتن ورودی در صورت بروز شکست در حالت push
hdrs (strl): هدرهای HTTP اضافی برای تزریق، مقادیر زوج نام‌ها و مقادیر فرد مقادیر هستند
js (str): منطق جاوااسکریپت برای سرور
zmax (uint, پیش‌فرض: 50000): حداکثر اندازه غیرفشرده مجاز برای فشرده‌سازی gzip یا deflate برای فایل‌های متنی (تنها در صورتی فعال می‌شود که کلاینت آن را مشخص کرده باشد)، مقدار 0 فشرده‌سازی را غیرفعال می‌کند
cte (bool, پیش‌فرض: true): استفاده از حالت chunked transfer-encoding در صورت امکان
maxs (uint, پیش‌فرض: 50M): حداکثر اندازه بارگذاری مجاز به بایت
norange (bool, پیش‌فرض: false): غیرفعال‌سازی پشتیبانی از بازه بایتی در GET (پاسخ 200 به درخواست‌های جزئی)

شرح: استخراج‌کننده تایل HEVC

این فیلتر یک PID ویدیویی HEVC تایل‌بندی‌شده با قید حرکت (motion-constrained tiled) را به N عدد PID مستقل HEVC تقسیم می‌کند.
از فیلتر hevcmerge برای ادغام PID اولیه HEVC با تایل‌های مقید به حرکت در یک خروجی واحد استفاده کنید.

بدون گزینه

شرح: ادغام‌کننده تایل HEVC

این فیلتر مجموعه‌ای از PIDهای HEVC را در یک PID واحد ویدیویی HEVC تایل‌بندی‌شده با قید حرکت ادغام می‌کند.
این فیلتر یک شبکه تایل‌بندی با یک سطر و به تعداد ستون‌های مورد نیاز ایجاد می‌کند.
اگر .I mrows تنظیم شده باشد و تایل‌ها به درستی روی شبکه نهایی هم‌تراز شوند، چندین سطر در PPS اعلان خواهد شد.
موقعیت‌یابی تایل‌ها می‌تواند خودکار (ضمنی) یا صریح باشد.
فیلتر، پیکربندی‌های SPS و PPS مربوط به PIDهای ورودی را بررسی کرده و در صورت عدم هم‌ترازی هشدار می‌دهد، اما همچنان آن‌ها را پردازش خواهد کرد مگر اینکه .I strict تنظیم شده باشد.
فیلتر فرض می‌کند که تمام PIDهای ورودی همگام هستند (فریم‌ها برچسب زمانی مشترک دارند) و فریم‌های دارای زمان رمزگشایی یکسان را مجدداً سرهم می‌کند. اگر مدت‌زمان PIDها نابرابر باشد، فیلتر به محض پایان یافتن یکی از PIDها، فریم‌ها را دور می‌ریزد.

در موقعیت‌یابی ضمنی، نتایج ممکن است بر اساس ترتیب اعلان PIDهای ورودی متفاوت باشد.
در این حالت، فیلتر به‌طور خودکار ستون‌های جدیدی را برای تایل‌هایی که ارتفاع آن‌ها مضربی از حداکثر ارتفاع CU نیست، اختصاص می‌دهد.

در موقعیت‌یابی صریح، از ویژگی CropOrigin در PIDهای ورودی برای برپایی شبکه تایل استفاده می‌شود. در این حالت، تایل‌ها نباید در خروجی نهایی هم‌پوشانی داشته باشند.
اگر CropOrigin استفاده شود، باید روی تمام منابع ورودی تنظیم شده باشد.
اگر از مختصات مثبت استفاده شود، آن‌ها موقعیت‌یابی مطلق تایل‌ها بر حسب پیکسل را مشخص می‌کنند. این مختصات به‌طور خودکار روی مضرب بعدی از حداکثر عرض و ارتفاع CU تنظیم می‌شوند.
اگر از مختصات منفی استفاده شود، آن‌ها موقعیت‌یابی نسبی را مشخص می‌کنند (به‌عنوان مثال، 0x-1 نشان‌دهنده قرار دادن تایل در زیر تایل 0x0 است).
در این حالت، وظیفه فراخواننده است که مختصات را طوری تنظیم کند که تمام تایل‌های یک ستون عرض یکسانی داشته باشند و تنها آخرین سطر/ستون از مقادیری که مضرب حداکثر عرض/ارتفاع CU نیستند استفاده کند. در صورت عدم رعایت این مورد، فیلتر اخطار داده و متوقف خواهد شد.
- اگر یک فضای خالی افقی در چیدمان تشخیص داده شود، یک ستون خالی در شبکه تایل‌بندی درج خواهد شد.
- اگر یک فضای خالی عمودی در چیدمان تشخیص داده شود، نادیده گرفته می‌شود.

اگر SRDRef و SRD یا CropOrigin روی تمام PIDهای ورودی تنظیم شده باشند، فیلتر ویژگی SRDMap را در PID خروجی ایجاد خواهد کرد.
ویژگی SRDMap امکان انتقال SRD منابع منطقی را در PID ادغام‌شده فراهم می‌کند.
مقدار SRDRef در PID خروجی برابر با ابعاد ویدیوی خروجی تنظیم می‌شود.
مقادیر ورودی SRDRef و SRD معمولاً در DASH MPD مشخص می‌شوند، اما می‌توانند به‌صورت دستی نیز به ورودی‌ها اختصاص داده شوند.
- مقدار SRDRef ابعاد مرجع مورد استفاده برای SRD ورودی را نشان می‌دهد (معمولاً با ابعاد ویدیوی اصلی مطابقت دارد، اما نه همیشه)
- مقدار SRD ابعاد و موقعیت ورودی در ویدیوی اصلی را که در مرجع SRDRef ورودی بیان شده است، مشخص می‌کند.
نیازی نیست که ورودی‌ها دارای SRDRef یکسان باشند

src1:SRD=0x0x640x480:SRDRef=1280x720
این نشان می‌دهد که src1 شامل ویدیویی واقع در 0,0 با اندازه 640x480 پیکسل در یک منبع مجازی 1280x720 پیکسل است.
مثال
src2:SRD=640x0x640x480:SRDRef=1280x720
این نشان می‌دهد که src1 شامل ویدیویی واقع در 640,0 با اندازه 640x480 پیکسل در یک منبع مجازی 1280x720 پیکسل است.
هر ورودی ادغام‌شده توسط ۸ عدد صحیح در SRDMap خروجی توصیف می‌شود:
- مقدار SRD منبع در SRDRef خروجی مجدداً مقیاس‌بندی می‌شود تا بخش اول (۴ عدد صحیح) از SRDMap را تشکیل دهد (یعنی: ورودی کجا قرار داشت؟)
- مکان منبع در ویدیوی بازسازی‌شده، بخش دوم (۴ عدد صحیح) از SRDMap را تشکیل می‌دهد (یعنی: پیکسل‌های ورودی در کجای خروجی قرار دارند؟)
با فرض اینکه دو منبع با ابعاد 320x240 کدگذاری شده و به صورت src2 بالای src1 ادغام شوند، خروجی یک ویدیوی 320x480 با SRDMap به صورت {0,160,160,240,0,0,320,240,0,0,160,240,0,240,320,240} خواهد بود.
نکته: ورودی‌های ادغام‌شده همیشه در SRDMap به ترتیب تایل‌های مربوطه‌شان در جریان بیتی (bitstream) خروجی فهرست می‌شوند.
به‌عنوان جایگزینی برای استفاده از SRD و SRDRef، می‌توان ویژگی CropOrigin را روی ورودی‌ها تعیین کرد که در این صورت:
- ویژگی CropOrigin مکان را در منبع مشخص می‌کند
- اندازه ورودی، اندازه در منبع را مشخص می‌کند و هیچ تغییر مقیاسی در مرجع انجام نمی‌شود
مثال
src1:CropOrigin=0x0  src1:CropOrigin=640x0 
با فرض اینکه دو منبع با ابعاد 320x240 کدگذاری شده و به صورت src1 بالای src2 ادغام شوند، خروجی یک ویدیوی 320x480 با SRDMap به صورت {0,0,320,240,0,0,320,240,640,0,320,240,0,240,320,240} خواهد بود.

strict (bool, default: false): مقایسه دقیق SPS و PPS مربوط به PIDهای ورودی
mrows (bool, default: false):  اعلام چندین سطر در شبکه کاشی‌ها (tile grid) در صورت امکان

توضیحات: بازقاب‌بند FLAC

این فیلتر فایل‌ها/داده‌های FLAC را تجزیه کرده و PID صوتی و فریم‌های متناظر را در خروجی می‌دهد.

به‌طور پیش‌فرض این بازقاب‌بند تنها در صورتی فوتر CRC فریم‌ها را بررسی می‌کند که تغییری در نرخ نمونه‌برداری یا نگاشت کانال شناسایی شود.
این رفتار باید برای اغلب پیکربندی‌ها مناسب باشد، اما می‌توان بررسی CRC را با استفاده از .I docrc اجباری کرد.

index (dbl, default: 1.0): طول پنجره نمایه‌سازی
docrc (bool, default: false): انجام بررسی CRC پس از هر فریم

توضیحات: بازقاب‌بند جریان صوتی MPEG-H

این فیلتر فایل‌ها/داده‌های MHAS را تجزیه کرده و PID صوتی و فریم‌های متناظر را در خروجی می‌دهد.
به‌طور پیش‌فرض، فیلتر انتظار یک جریان MHAS با بسته‌های SYNC تنظیم‌شده را دارد، در غیر این صورت همگام‌سازی و اتصال اولیه (tune-in) ناموفق خواهد بود. استفاده از .I nosync=false می‌تواند به تجزیه جریان‌های بیتی که فاقد بسته‌های SYNC هستند کمک کند.
رفتار پیش‌فرض، ارسال یک جریان بیت MHAS قاب‌بندی‌شده است. برای تفکیک (demultiplex) به یک MPEG-H Audio خام، از .I mpha استفاده کنید.

index (dbl, default: 1.0): طول پنجره نمایه‌سازی
mpha (bool, default: false): تفکیک MHAS و تنها هدایت فریم‌های صوتی
pcksync (uint, default: 4): تعداد بسته‌های ناشناخته قابل تحمل پیش از در نظر گرفتن از دست رفتن همگام‌سازی (sync)
nosync (bool, default: true): وضعیت همگام‌سازی اولیه

توضیحات: بازقاب‌بند ProRes

این فیلتر فایل‌ها/داده‌های خام ProRes را تجزیه کرده و PID تصویری و فریم‌های متناظر را در خروجی می‌دهد.

fps (frac, default: 0/1000): نرخ فریم واردسازی (0 به‌طور پیش‌فرض به FPS برگرفته از جریان بیت یا 25 هرتز تنظیم می‌شود)
findex (bool, default: true): نمایه‌سازی فریم‌ها؛ در صورت true بودن، فیلتر قادر به کار در حالت بازگشت به عقب (rewind mode) خواهد بود
cid (str): تنظیم QT 4CC برای رسانه واردشده. در صورت عدم تنظیم، مقدار پیش‌فرض 'ap4h' برای YUV444 و 'apch' برای YUV422 است
notime (bool, default: false): نادیده گرفتن برچسب‌های زمانی ورودی، بازسازی از 0

توضیحات: تقسیم‌کننده MPEG-2 TS

این فیلتر یک جریان انتقال MPEG-2 را به چندین جریان انتقال تک‌برنامه‌ای تقسیم می‌کند.
تنها جدول PAT بازنویسی می‌شود؛ سایر جدول‌ها (PAT، PMT) و جریان‌ها (PES) بدون تغییر هدایت می‌شوند.
اگر .I dvb تنظیم شده باشد، جدول‌های سراسری DVB مالتی‌پلکس ورودی به هر mux خروجی هدایت می‌شوند؛ در غیر این صورت این جدول‌ها دور ریخته می‌شوند.

dvb (bool, default: true): هدایت تمام بسته‌ها از PIDهای سراسری DVB
mux_id (sint, default: -1): تنظیم شناسه اولیه mux خروجی؛ نخستین برنامه از mux_id، دومین از mux_id+1 و غیره استفاده خواهد کرد. در صورت عدم تنظیم، این مقدار برابر با sourceMuxId*255 خواهد بود
avonly (bool, default: true): عدم هدایت برنامه‌های فاقد مؤلفه صوتی/تصویری (AV)
nb_pack (uint, default: 10): بسته‌بندی N بسته پیش از ارسال
gendts (bool, default: false): تولید برچسب‌های زمانی روی بسته‌های خروجی بر اساس PCR
kpad (bool, default: false): نگه‌داشتن بسته‌های TS لایه‌گذاری (null)
rt (bool, default: false): فعال‌سازی تنظیم زمان‌واقعی (real-time)

توضیحات: برچسب‌گذار زمان MPEG-2 TS

این فیلتر جریان انتقال (transport stream) ورودی MPEG-2 را بر اساس PCR مجدداً برچسب‌گذاری زمانی می‌کند.

nb_pack (uint، پیش‌فرض: 10): بسته‌بندی N بسته پیش از ارسال
kpad (bool، پیش‌فرض: false): نگه‌داشتن بسته‌های TS لایه‌گذاری (null)
rt (bool، پیش‌فرض: false): فعال‌سازی تنظیم بی‌درنگ (real-time)

توضیحات: بازنویس فراداده جریان بیت (Bitstream)

این فیلتر برخی فراداده‌های قالب‌های گوناگون جریان بیت (bitstream) را بازنویسی می‌کند.
این فیلتر در حال حاضر می‌تواند ویژگی‌های زیر را در جریان‌های بیت ویدئویی تغییر دهد:
- MPEG-4 Visual:
- نسبت ابعاد نمونه (sample aspect ratio)
- نمایه و سطح (profile and level)
- AVC|H264 و HEVC و VVC:
- نسبت ابعاد نمونه (sample aspect ratio)
- نمایه، سطح، سازگاری نمایه (profile, level, profile compatibility)
- قالب ویدئو، دامنه کامل ویدئو (video format, video fullrange)
- رنگ‌های پایه، مشخصات انتقال و ضرایب ماتریس (یا حذف همه اطلاعات)
- کد زمانی (AVC|HEVC)- AV1:
- کد زمانی (timecode)
- ProRes:
- نسبت ابعاد نمونه (sample aspect ratio)
- رنگ‌های پایه، مشخصات انتقال و ضرایب ماتریس

مقادیر به‌طور پیش‌فرض با -1 مقداردهی اولیه می‌شوند، که به معنای حفظ اطلاعات مربوطه (چه موجود باشند و چه نباشند) در جریان بیت است.
یک مقدار 0/0 برای .I sar در صورت امکان، اطلاعات نسبت ابعاد نمونه را از جریان بیت حذف خواهد کرد.

این فیلتر در حال حاضر می‌تواند ویژگی‌های زیر را در پیکربندی جریان تغییر دهد، اما نه در جریان بیت:
* HEVC: profile IDC، profile space، پرچم‌های سازگاری عمومی (general compatibility flags)
* VVC: profile IDC، مشخصه عمومی نمایه و سطح (general profile and level indication)

این فیلتر برای سایر کدک‌ها و انواع رسانه در حالت عبور مستقیم (passthrough) عمل خواهد کرد.

می‌توان به‌طور اختیاری .I tcxs و .I tcxe را برای تعیین آغاز و پایان دستکاری کد زمانی تنظیم کرد. به‌طور پیش‌فرض، فیلتر تمام بسته‌ها را پردازش خواهد کرد.
برخی حالت‌ها نیازمند تعریف .I tcsc هستند. این گزینه از همان قالب خود کد زمانی تبعیت می‌کند (.I -. استفاده از مقادیر منفی تنها در حالت shift معنادار است. همچنین می‌توان .I tcsc را روی first تنظیم کرد تا مقدار از نخستین کد زمانی هنگام شروع دستکاری کد زمانی استنتاج شود. در این حالت، فیلتر هیچ عملیاتی انجام نخواهد داد مگر اینکه یک کد زمانی پیدا شود.

دستکاری کد زمانی چهار حالت دارد و همه آن‌ها ظرافت‌های عملیاتی خاص خود را دارند.

Remove
حذف تمام کدهای زمانی از جریان بیت.

Insert
درج کدهای زمانی بر اساس CTS. اگر .I tcsc تنظیم شده باشد، به عنوان آفست کد زمانی استفاده خواهد شد.
این حالت کدهای زمانی موجود (در صورت وجود) را بازنویسی خواهد کرد.

Shift
انتقال (Shift) تمام کدهای زمانی به میزان مقدار تعریف‌شده در .I tcsc.
این حالت کدهای زمانی را تنها در صورت وجود داشتن تغییر می‌دهد؛ هیچ کد زمانی جدیدی درج نخواهد شد.

Constant
تنظیم تمام کدهای زمانی روی مقدار تعریف‌شده در .I tcsc.
مجدداً، این حالت کدهای زمانی جدیدی درج نخواهد کرد.

UTC
برای تنظیم کد زمانی، از ویژگی SenderNTP، ویژگی UTC روی بسته یا زمان کنونی UTC استفاده می‌کند.
این حالت کدهای زمانی موجود (در صورت وجود) را بازنویسی خواهد کرد.
مثال
gpac -i in.mp4 bsrw:tc=insert [dst]
gpac -i in.mp4 bsrw:tc=insert:tcsc=TC00:00:10:00 [dst]
gpac -i in.mp4 bsrw:tc=shift:tcsc=TC00:00:10:00:tcxs=TC00:01:00:00 [dst]

cprim (cprm، پیش‌فرض: -1، Enum: reserved0|BT709|undef|reserved3|BT470M|BT470G|SMPTE170|SMPTE240|FILM|BT2020|SMPTE428|SMPTE431|SMPTE432|EBU3213، قابل به‌روزرسانی): رنگ‌های اصلی مطابق با ISO/IEC 23001-8 / 23091-2

ctfc (ctfc، پیش‌فرض: -1، Enum: reserved0|BT709|undef|reserved3|BT470M|BT470BG|SMPTE170|SMPTE249|Linear|Log100|Log316|IEC61966|BT1361|sRGB|BT2020_10|BT2020_12|SMPTE2084|SMPTE428|STDB67، قابل به‌روزرسانی): مشخصه‌های انتقال رنگ مطابق با ISO/IEC 23001-8 / 23091-2

cmx (cmxc، پیش‌فرض: -1، Enum: GBR|BT709|undef|FCC|BT601|SMPTE170|SMPTE240|YCgCo|BT2020|BT2020cl|YDzDx، قابل به‌روزرسانی): ضرایب ماتریس رنگ مطابق با ISO/IEC 23001-8 / 23091-2

sar (frac، پیش‌فرض: -1/-1، قابل به‌روزرسانی): نسبت ابعاد تصویر برای بازنویسی
m4vpl (sint، پیش‌فرض: -1، قابل به‌روزرسانی): تنظیم ProfileLevel برای ویدیوی MPEG-4 بخش دوم
fullrange (bool، پیش‌فرض: false، قابل به‌روزرسانی): پرچم محدوده کامل ویدیویی (full range)
novsi (bool، پیش‌فرض: false، قابل به‌روزرسانی): حذف video_signal_type از VUI در AVC|H264 و HEVC
novuitiming (bool، پیش‌فرض: false، قابل به‌روزرسانی): حذف timing_info از VUI در AVC|H264 و HEVC
prof (sint، پیش‌فرض: -1، قابل به‌روزرسانی): نشانگر نمایه (profile) برای AVC|H264
lev (sint، پیش‌فرض: -1، قابل به‌روزرسانی): نشانگر سطح (level) برای AVC|H264، و level_idc برای VVC
pcomp (sint، پیش‌فرض: -1، قابل به‌روزرسانی): سازگاری نمایه برای AVC|H264
pidc (sint، پیش‌فرض: -1، قابل به‌روزرسانی): شناسه IDC نمایه برای HEVC و VVC
pspace (sint، پیش‌فرض: -1، قابل به‌روزرسانی): فضای نمایه (profile space) برای HEVC
gpcflags (sint، پیش‌فرض: -1، قابل به‌روزرسانی): پرچم‌های سازگاری عمومی برای HEVC
tcxs (str، قابل به‌روزرسانی): شروع دستکاری کد زمانی (timecode)
tcxe (str، قابل به‌روزرسانی): پایان دستکاری کد زمانی (timecode)
tcdf (bool، پیش‌فرض: false، قابل به‌روزرسانی): استفاده از شمارش NTSC drop-frame برای کدهای زمانی
tcsc (str، قابل به‌روزرسانی): ثابت کد زمانی برای استفاده در حالت‌های shift/constant
tc (enum، پیش‌فرض: none، قابل به‌روزرسانی): حالت دستکاری کد زمانی
* none: هیچ تغییری اعمال نشود
* remove: حذف کدهای زمانی
* insert: درج کدهای زمانی بر اساس cts یا tcsc (در صورت ارائه)
* shift: جابه‌جایی کدهای زمانی بر اساس tcsc
* constant: بازنویسی کدهای زمانی با مقدار tcsc
* utc: درج کدهای زمانی بر اساس زمان utc روی بسته یا زمان کنونی

seis (uintl، قابل به‌روزرسانی): فهرستی از انواع پیام‌های SEI (مانند 4,137,144,...). هنگام استفاده با rmsei، این گزینه به عنوان یک فهرست سیاه عمل می‌کند. در صورت خالی بودن، تمام پیام‌های SEI حذف خواهند شد؛ در غیر این صورت، به عنوان یک فهرست سفید عمل می‌کند
rmsei (bool، پیش‌فرض: false، قابل به‌روزرسانی): حذف پیام‌های SEI از جریان بیتی برای AVC|H264، HEVC و VVC
vidfmt (sint، پیش‌فرض: -1، Enum: component|pal|ntsc|secam|mac|undef، قابل به‌روزرسانی): قالب ویدیویی برای AVC|H264، HEVC و VVC

توضیحات: تفکیک‌کننده جریان بیتی لایه‌ای

این فیلتر جریان ورودی را بر اساس لایه‌ها و زیرلایه‌ها تفکیک می‌کند

این فیلتر از تفکیک جریان‌های AVC|H264، HEVC و VVC پشتیبانی می‌کند و برای سایر انواع کدک‌ها به صورت عبور مستقیم (pass-through) عمل می‌نماید.

تفکیک بر اساس مقدار temporalID (شروع از ۱) و مقدار layerID (شروع از ۰) انجام می‌شود.
برای AVC|H264، مقدار layerID همان مقدار وابستگی (dependency) است، یا در صورت تعیین svcqid، مقدار کیفیت خواهد بود.

هر جریان ورودی بر اساس گزینه ltid به شرح زیر فیلتر می‌شود:
* بدون مقدار تعیین‌شده: جریان ورودی بر اساس layerID تفکیک می‌شود، یعنی هر لایه یک خروجی ایجاد می‌کند
* `all`: جریان ورودی بر اساس layerID و temporalID تفکیک می‌شود، یعنی هر {layerID,temporalID} یک خروجی ایجاد می‌کند
* `lID`: جریان ورودی بر اساس مقدار لایه lID تفکیک شده و temporalID نادیده گرفته می‌شود
* `.tID`: جریان ورودی بر اساس مقدار زیرلایه زمانی tID تفکیک شده و layerID نادیده گرفته می‌شود
* `lID.tID`: جریان ورودی بر اساس مقادیر لایه lID و زیرلایه tID تفکیک می‌شود

نکته: مقدار 0 برای tID در ltid معادل مقدار 1 است.

می‌توان چندین مقدار را در ltid مشخص کرد؛ در این حالت هر مقدار، حداکثر مقادیر {layerID,temporalID} را برای لایه جاری تعیین می‌کند.
چند مثال روی یک ورودی با ۲ لایه که هرکدام دارای ۲ زیرلایه زمانی هستند:
* `ltid=0.2`: این گزینه جریان را به موارد زیر تفکیک می‌کند:
- یک جریان با واحدهای NAL به صورت {lID=0,tID=1} و {lID=0,tID=2}
- یک جریان با تمام لایه‌ها/زیرجریان‌های دیگر
* `ltid=0.1,1.1`: این گزینه جریان را به موارد زیر تفکیک می‌کند:
- یک جریان با واحدهای NAL به صورت {lID=0,tID=1}
- یک جریان با واحدهای NAL به صورت {lID=0,tID=2} و {lID=1,tID=1}
- یک جریان با باقی‌مانده واحدهای NAL به صورت {lID=0,tID=2} و {lID=1,tID=2}
* `ltid=0.1,0.2`: این گزینه جریان را به موارد زیر تفکیک می‌کند:
- یک جریان با واحدهای NAL به صورت {lID=0,tID=1}
- یک جریان با واحدهای NAL به صورت {lID=0,tID=2}
- یک جریان با باقی‌مانده واحدهای NAL به صورت {lID=1,tID=1} و {lID=1,tID=2}

این فیلتر همچنین می‌تواند روی جریان‌های DolbyVision برای AVC و HEVC جهت تفکیک جریان پایه (base stream) و DV RPU/EL استفاده شود.

این فیلتر واحدهای NAL تجمیع‌کننده (aggregator) یا استخراج‌کننده (extractor) ایجاد نمی‌کند.

ltid (strl): شناسه زمانی و لایه (temporal and layer ID) جریان‌های خروجی
svcqid (bool، پیش‌فرض: false): استفاده از qualityID به جای dependencyID برای تفکیک SVC
sig_ltid (bool، پیش‌فرض: false): اعلام بیشینه شناسه زمانی (max_temporal_id) و شناسه لایه (max_layer_id) جریان‌های خروجی (عمدتاً برای اشکال‌زدایی استفاده می‌شود)

توضیحات: تجمیع‌کننده جریان بیتی لایه‌ای

این فیلتر لایه‌ها و زیرلایه‌ها را در یک PID خروجی واحد تجمیع می‌کند.

این فیلتر از بازسازی جریان‌های AVC|H264، HEVC و VVC پشتیبانی می‌کند و برای سایر انواع کدک‌ها به صورت عبور مستقیم (passthrough) عمل می‌کند.

تجمیع بر اساس مقدار temporalID (شروع از ۱) و مقدار layerID (شروع از ۰) انجام می‌شود.
برای AVC|H264، مقدار layerID همان مقدار وابستگی (dependency) است، یا در صورت تنظیم svcqid، مقدار کیفیت (quality) خواهد بود.

این فیلتر همچنین می‌تواند در جریان‌های دوگانه AVC و HEVC DolbyVision برای تجمیع جریان پایه و DV RPU/EL استفاده شود.

این فیلتر واحدهای NAL مربوط به aggregator یا extractor را بازارسال (forward) نمی‌کند.

svcqid (bool، پیش‌فرض: false): استفاده از qualityID به جای dependencyID برای تفکیک SVC

توضیحات: بازنویس TX3G

این فیلتر یک جریان ISOBMFF TX3G منفرد را به یک جریان بدون فریم TTXT (قالب xml) تبدیل می‌کند.

exporter (bool، پیش‌فرض: false): سازگاری با صادرکننده (exporter) قدیمی، نتایج استخراج را نمایش می‌دهد

توضیحات: تبدیل TX3G به SRT

این فیلتر یک جریان ISOBMFF TX3G منفرد را به یک جریان بدون فریم SRT تبدیل می‌کند.

exporter (bool، پیش‌فرض: false): سازگاری با صادرکننده (exporter) قدیمی، نتایج استخراج را نمایش می‌دهد

توضیحات: تبدیل TX3G به WebVTT

این فیلتر یک جریان ISOBMFF TX3G منفرد را به یک جریان بدون فریم WebVTT تبدیل می‌کند.

exporter (bool، پیش‌فرض: false): سازگاری با صادرکننده (exporter) قدیمی، نتایج استخراج را نمایش می‌دهد

توضیحات: تبدیل TX3G به TTML

این فیلتر جریان ISOBMFF TX3G را به یک جریان TTML تبدیل می‌کند.

هر فریم TTML خروجی یک سند کامل TTML است.

بدون گزینه

توضیحات: تبدیل WebVTT به TX3G

این فیلتر WebVTT بدون فریم (unframed) را به TX3G / QT Timed Text (قالب باینری) بازنویسی می‌کند.

بسته‌های WebVTT بدون فریم (unframed) شامل نشانه‌های (cue) منفرد هستند:
- بار مفید نشانه (cue payload) به عنوان بار مفید بسته (packet payload)
- پیشوند به عنوان ویژگی رشته‌ای بسته vtt_pre
- شناسهٔ نشانه (cue ID) به عنوان ویژگی رشته‌ای بسته vtt_cueid
- تنظیمات نشانه (cue settings) به عنوان ویژگی رشته‌ای بسته vtt_settings
- زمان‌بندی بسته شامل زمان‌بندی نشانه (شروع و مدت‌زمان) است

fontname (str): قلم پیش‌فرض
fontsize (uint، پیش‌فرض: 18): اندازهٔ قلم پیش‌فرض

توضیحات: بازفریم‌بند SRT (SRT reframer)

این فیلتر SRT بدون فریم (unframed) را به TX3G / QT Timed Text (قالب باینری) بازنویسی می‌کند.

یک بستهٔ SRT بدون فریم (unframed) از یک نشانهٔ منفرد SRT (SRT cue) به عنوان بار مفید بسته تشکیل شده و زمان‌بندی بسته شامل زمان‌بندی نشانه (شروع و مدت‌زمان) است.

fontname (str): قلم پیش‌فرض
fontsize (uint، پیش‌فرض: 18): اندازهٔ قلم پیش‌فرض

توضیحات: تبدیل TTML به WebVTT

این فیلتر فریم‌های TTML را به WebVTT بدون فریم (unframed) تبدیل می‌کند.

تبدیل نسبتاً محدود است: تنها اولین div تحلیل شده و فقط قالب‌بندی پایه‌ای پیاده‌سازی شده است.

بدون گزینه

توضیحات: تبدیل TTML به SRT

این فیلتر فریم‌های TTML را به SRT بدون فریم (unframed) تبدیل می‌کند.

تبدیل نسبتاً محدود است: تنها اولین div تحلیل شده و فقط قالب‌بندی پایه‌ای پیاده‌سازی شده است.

بدون گزینه

توضیحات: رمزگشای صوتی MPEG-H

این فیلتر جریان‌های صوتی MPEG-H را از طریق کتابخانهٔ IIS MpeghDecoder رمزگشایی می‌کند.

cicp_idx (uint، پیش‌فرض: 2): شاخص CICP چیدمان خروجی هدف (مشاهده کنید: gpac -h layouts)

توضیحات: تفکیک‌کنندهٔ FFmpeg (FFmpeg demultiplexer)
نسخه: Lavf62.13.100

این فیلتر یک فایل ورودی را تفکیک (demultiplex) کرده یا یک پروتکل مبدأ را با استفاده از FFmpeg باز می‌کند.
برای جزئیات بیشتر به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید.
برای فهرست کردن تمام تفکیک‌کننده‌های پشتیبانی‌شده در ساخت کنونی GPAC خود، از gpac -h ffdmx:* استفاده کنید.
این دستور هم قالب‌ها و هم پروتکل‌های ورودی پشتیبانی‌شده را فهرست می‌کند.
پروتکل‌های ورودی با Description: Input protocol فهرست می‌شوند و نام زیرکلاس (subclass)، طرح‌وارهٔ پروتکل (protocol scheme) را مشخص می‌کند.
به عنوان مثال، اگر ffdmx:rtmp به عنوان پروتکل ورودی فهرست شده باشد، به این معنی است که نشانی‌های اینترنتی (URL) منبع rtmp:// پشتیبانی می‌شوند.

پرچم proto دیمالتی‌پلکسر FFmpeg را غیرفعال کرده و به‌جای آن از GPAC استفاده می‌کند. قالب پیش‌فرض از روی داده‌های اولیه شناسایی می‌شود، اما در صورت غیرفعال بودن کاوش خودکار، می‌توان آن را با استفاده از ext یا mime تنظیم کرد.
مثال
gpac -i srt://127.0.0.1:1234:gpac:proto inspect
این دستور از گرداننده پروتکل SRT اما دیمالتی‌پلکسر GPAC استفاده خواهد کرد.

در این حالت، فیلتر از زمان بین دو بستهٔ دریافتیِ آخر برای تخمین این‌که هر چند وقت یک‌بار باید ورودی‌ها را بررسی کند، استفاده می‌کند. حداقل و حداکثر زمان انتظار بین دو فراخوانی با گزینهٔ mwait مشخص می‌شود. برای منابع با نرخ‌بیت بسیار بالا، ممکن است نیاز باشد حداکثر زمان کاهش یابد.

src (cstr): نشانی اینترنتی (URL) محتوای منبع
reparse (bool, default: false): تحلیل مجدد اجباری محتوای جریان (در حال حاضر فقط AVC,HEVC,VVC,AV1)
block_size (uint, default: 4096): اندازه بلوک مورد استفاده برای خواندن فایل هنگام استفاده از بافت GFIO
strbuf_min (uint, default: 1MB): اندازه بافر داخلی هنگام دیمالتی‌پلکس از جریان ورودی GPAC
proto (bool, default: false): تنها استفاده از گرداننده پروتکل و دور زدن دیمالتی‌پلکسر FFmpeg
mwait (v2di, default: 1x30): تنظیم حداقل و حداکثر زمان انتظار به میلی‌ثانیه برای جلوگیری از سرکشی بیش از حد (polling) در حالت proto
ext (str): مشخص کردن پسوند فایل داده‌ها در حالت پروتکل خام
mime (str): مشخص کردن نوع mime داده‌ها در حالت پروتکل خام
* (str): هر گزینهٔ ممکنِ تعریف‌شده برای AVFormatContext و زیرکلاس‌های آن. ببینید: gpac -hx ffdmx و gpac -hx ffdmx:*

شرح: رمزگشای FFmpeg
نسخه: Lavc62.29.100

این فیلتر جریان‌های صوتی و تصویری را با استفاده از FFmpeg رمزگشایی می‌کند.
برای جزئیات بیشتر، به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید.
برای فهرست کردن همهٔ رمزگشاهای پشتیبانی‌شده در ساخت GPAC خود، از gpac -h ffdec:* استفاده کنید.

گزینه‌ها را می‌توان از خط فرمان با استفاده از --OPT=VAL ارسال کرد.
پرچم‌های رمزگشا را می‌توان مستقیماً به‌صورت :FLAGNAME منتقل کرد.
حالت پیش‌فرض ریسه‌بندی این است که به libavcodec اجازه داده شود دربارهٔ تعداد ریسه‌های مورد استفاده تصمیم بگیرد. برای اجبار به استفاده از یک تک‌ریسه، از --threads=1 استفاده کنید.

گزینهٔ ffcmap امکان مشخص کردن کدک‌های FFmpeg را برای کدک‌هایی که توسط GPAC پشتیبانی نمی‌شوند فراهم می‌کند.
هر مدخل در این فهرست به‌صورت GID@name یا GID@+name قالب‌بندی می‌شود، همراه با:
* GID: شناسهٔ 4CC یا ۳۲ بیتیِ codec ID، همان‌طور که توسط gpac -i source inspect:full نشان داده می‌شود
* name: نام کدک FFmpeg
* `+': در صورتی که تنظیم شده باشد و داده‌های اضافی نیز تنظیم و در قالب یک جعبهٔ ISOBMFF قالب‌بندی شده باشند، سرآیند جعبه را حذف می‌کند

مثال
gpac -i source.mp4 --ffcmap=BKV1@binkvideo vout

این دستور یک ترک ISOBMFF را که با نوع کدگذاری BKV1 اعلان شده است، به binkvideo نگاشت می‌کند.

ffcmap (strl): نگاشت کدک
c (str): نام کدک (GPAC یا ffmpeg)، فقط برای استعلام آرگومان‌های ممکن استفاده می‌شود - پس از مقداردهی اولیه به نام کدک ffmpeg به‌روزرسانی می‌شود
* (str): هر گزینهٔ ممکنِ تعریف‌شده برای AVCodecContext و زیرکلاس‌های آن. ببینید: gpac -hx ffdec و gpac -hx ffdec:*

شرح: ضبط صوت/تصویر FFmpeg
نسخه: Lavd62.4.100

خواندن از دستگاه‌های ضبط صدا/تصویر با استفاده از FFmpeg.
برای جزئیات بیشتر، به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید.
برای فهرست کردن همهٔ ضبط‌کننده‌های پشتیبانی‌شده در ساخت GPAC خود، از gpac -h ffavin:* استفاده کنید.

کلاس‌های معمول عبارتند از dshow در ویندوز، avfoundation در OSX، و video4linux2 یا x11grab در لینوکس

نام معمول دستگاه می‌تواند نام وب‌کم باشد:
- FaceTime HD Camera در OSX، نام دستگاه در ویندوز، /dev/video0 در لینوکس
- screen-capture-recorder، در ویندوز http://screencapturer.sf.net را ببینید
- ضبط صفحهٔ ۰ در OSX (۰=صفحه نخست)، یا به اختصار screenN
- نام نمایشگر X (مانند :0.0) در لینوکس

نگاشت کلی از خط فرمان ffmpeg به‌صورت زیر است:
- گزینهٔ ffmpeg -f به گزینهٔ fmt نگاشت می‌شود
- گزینهٔ ffmpeg -i به گزینهٔ dev نگاشت می‌شود

مثال
ffmpeg -f libndi_newtek -i MY_NDI_TEST ...
gpac -i av://:fmt=libndi_newtek:dev=MY_NDI_TEST ...

در صورتی که قالب از ':' به‌عنوان جداکننده استفاده می‌کند، همان‌طور که برای AVFoundation چنین است، ممکن است لازم باشد گزینهٔ dev را گریزدهی (escape) کنید:
gpac -i av://::dev=0:1 ...

src (str): نشانی اینترنتی (URL) دستگاه، video://، audio:// یا av://
fmt (str): نام کلاس دستگاه. در صورت عدم تنظیم، به نخستین کلاس دستگاه پیش‌فرض می‌شود
dev (str، پیش‌فرض: 0): نام دستگاه یا نمایهٔ (index) دستگاه
copy (enum، پیش‌فرض: A): تنظیم حالت کپی فریم‌های خام
* N: فریم‌ها فقط بازفرستاده می‌شوند (حافظه اشتراکی، بدون کپی)
* A: فریم‌های صوتی کپی شده و فریم‌های ویدئویی بازفرستاده می‌شوند
* V: فریم‌های ویدئویی کپی شده و فریم‌های صوتی بازفرستاده می‌شوند
* AV: تمام فریم‌ها کپی می‌شوند

sclock (bool، پیش‌فرض: false): استفاده از ساعت سیستم (us) به جای برچسب زمانی دستگاه (برای دستگاه‌های دارای نقص)
probes (uint، پیش‌فرض: 10، minmax: 0-100): پایش (probe) تعداد مشخصی از فریم‌های ویدئویی پیش از انتشار (این گزینه معمولاً به رفع ناهماهنگی زمانی فریم‌های نخست کمک می‌کند)
* (str): هر گزینهٔ ممکنِ تعریف‌شده برای AVInputFormat و AVFormatContext (به gpac -hx ffavin و gpac -hx ffavin:* مراجعه کنید)

توضیحات: تغییر مقیاس‌دهندهٔ ویدئوی FFmpeg
نسخه: SwS9.6.100

این فیلتر داده‌های خام ویدئو را با استفاده از FFmpeg به اندازه و قالب پیکسل مشخص‌شده تغییر مقیاس می‌دهد.

اگر .I osize برابر با {0,0} باشد، ابعاد خروجی روی اندازه ورودی تنظیم شده و نسبت ابعاد ورودی نادیده گرفته خواهد شد.

اگر .I osize برابر با {0,H} (یا به ترتیب {W,0}) باشد، عرض (یا به ترتیب ارتفاع) خروجی با حفظ نسبت ابعاد ورودی تنظیم می‌شود. اگر .I keepar = nosrc باشد، نسبت ابعاد نمونه (sample aspect ratio) ورودی نادیده گرفته می‌شود.

هنگامی که نسبت ابعاد نمونه خروجی تنظیم شود، ابعاد خروجی بر نسبت ابعاد نمونه خروجی تقسیم می‌شوند.
مثال
ffsws:osize=288x240:osar=3/2

ابعاد خروجی 192x240 خواهد بود.

هنگامی که نسبت ابعاد حفظ نمی‌شود (.I keepar = off):
- منبع به ابعاد دلخواه بازنمونه‌برداری می‌شود
- اگر نسبت ابعاد خروجی تنظیم نشده باشد، خروجی از نسبت ابعاد نمونه منبع استفاده خواهد کرد

هنگامی که نسبت ابعاد تا حدی حفظ می‌شود (.I keepar = nosrc):
- بازنمونه‌برداری روی داده‌های ورودی بدون در نظر گرفتن نسبت ابعاد نمونه ورودی انجام می‌شود
- اگر نسبت ابعاد نمونه خروجی تنظیم نشده باشد (.I osar = 0/N)، نسبت ابعاد منبع به خروجی بازفرستاده می‌شود.

هنگامی که نسبت ابعاد به‌طور کامل حفظ شود (.I keepar = full)، در صورت عدم تنظیم، نسبت ابعاد خروجی به 1/1 تحمیل می‌شود.

هنگامی که نسبت ابعاد نمونه حفظ شود، فیلتر این اقدامات را انجام می‌دهد:
- فریم ورودی تغییر‌مقیاس‌یافته را در مرکز فریم خروجی قرار می‌دهد
- پیکسل‌های اضافی را با .I padclr پر می‌کند

- برای bicubic، جهت تنظیم شکل تابع پایه، .I p1 تابع f(1) و .I p2 تابع f´(1) را تنظیم می‌کند
- برای gauss، گزینهٔ .I p1 نما و در نتیجه فرکانس قطع (cutoff frequency) را تنظیم می‌کند
- برای lanczos، گزینهٔ .I p1 عرض تابع پنجره را تنظیم می‌کند

برای جزئیات بیشتر به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید

osize (v2di): اندازه (osize) ویدئوی خروجی
ofmt (pfmt، پیش‌فرض: none، Enum: none|yuv420|yvu420|yuv420_10|yuv422|yuv422_10|yuv444|yuv444_10|uyvy|vyuy|yuyv|yvyu|uyvl|vyul|yuyl|yvyl|nv12|nv21|nv1l|nv2l|yuva|yuvd|yuv444a|yuv444p|v308|yuv444ap|v408|v410|v210|grey|algr|gral|rgb8|rgb4|rgb5|rgb6|rgba|argb|bgra|abgr|rgb|bgr|xrgb|rgbx|xbgr|bgrx|rgbd|rgbds|uncv): قالب پیکسل برای ویدئوی خروجی. در صورت عدم تنظیم، از قالب ورودی استفاده می‌شود

scale (enum، پیش‌فرض: bicubic): حالت تغییر مقیاس (به راهنمای فیلتر مراجعه کنید) (fastbilinear|bilinear|bicubic|X|point|area|bicublin|gauss|sinc|lanzcos|spline)

p1 (dbl، پیش‌فرض: +I): پارامتر اول الگوریتم تغییر مقیاس
p2 (dbl، پیش‌فرض: +I): پارامتر دوم الگوریتم تغییر مقیاس
ofr (bool، پیش‌فرض: false): تحمیل دامنهٔ کامل (full range) در خروجی
brightness (bool، پیش‌فرض: 0): تصحیح روشنایی با ممیز ثابت 16.16؛ مقدار 0 به معنای استفاده از پیش‌فرض است
contrast (uint، پیش‌فرض: 0): تصحیح روشنایی با ممیز ثابت 16.16؛ مقدار 0 به معنای استفاده از پیش‌فرض است
saturation (uint، پیش‌فرض: 0): تصحیح روشنایی با ممیز ثابت 16.16؛ مقدار 0 به معنای استفاده از پیش‌فرض است
otable (sintl): ضرایب yuv2rgb توصیف‌کنندهٔ فضای yuv خروجی، معمولاً ff_yuv2rgb_coeffs[x]؛ در صورت عدم تنظیم از پیش‌فرض استفاده می‌شود
itable (sintl): ضرایب yuv2rgb توصیف‌کنندهٔ فضای yuv ورودی، معمولاً ff_yuv2rgb_coeffs[x]؛ در صورت عدم تنظیم از پیش‌فرض استفاده می‌شود
keepar (enum، پیش‌فرض: off): حفظ نسبت ابعاد
* off: نادیده گرفتن نسبت ابعاد
* full: رعایت نسبت ابعاد با اعمال اطلاعات نسبت ابعاد نمونهٔ ورودی
* nosrc: رعایت نسبت ابعاد اما بدون در نظر گرفتن نسبت ابعاد نمونهٔ ورودی

padclr (str، پیش‌فرض: black): رنگ حاشیه (pad) هنگام استفاده از حفظ نسبت ابعاد
osar (frac، پیش‌فرض: 0/1): تحمیل نسبت ابعاد پیکسلی خروجی

شرح: رمزگذار FFmpeg
نسخه: Lavc62.29.100

این فیلتر جریان‌های صوتی و ویدئویی را با استفاده از FFmpeg رمزگذاری می‌کند.
برای جزئیات بیشتر به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید.
برای مشاهده فهرست تمامی رمزگذارهای پشتیبانی‌شده در ساختار GPAC خود، از gpac -h ffenc:* استفاده کنید.

این فیلتر تلاش می‌کند نام کدک موجود در .I c را با نام کدک‌های libavcodec (مانند libx264) تطبیق داده و در صورت یافتن از آن استفاده کند.
در صورت عدم تطابق، آن را نام کدک GPAC در نظر گرفته و کدکی متناسب با آن پیدا می‌کند. در این حالت، اگر هیچ فرمت پیکسلی مشخص نشده باشد، کدک‌ها برای یافتن فرمت پیکسل منطبق بررسی خواهند شد.

گزینه‌ها را می‌توان از خط فرمان با استفاده از OPT=VAL-- (گزینه‌های سراسری) یا با افزودن OPT=VAL:: به فیلتر رمزگذار مورد نظر منتقل کرد.
پرچم‌های رمزگذار می‌توانند مستقیماً به‌صورت FLAGNAME: منتقل شوند.

نکته
تنظیم پرچم low_delay: به‌طور پیش‌فرض گزینه‌های profile=baseline، preset=ultrafast و tune=zerolatency و همچنین x264-params را برای AVC|H264 فعال می‌کند. اگر یک یا چند مورد از این گزینه‌ها به‌عنوان آرگومان فیلتر تنظیم شده باشند، مقادیر پیش‌فرض برای هیچ‌یک از آن‌ها اعمال نخواهد شد.

این فیلتر به‌دنبال ویژگی TargetRate در PID ورودی می‌گردد تا نرخ بیت (bitrate) مورد نظر را به ازای هر PID تنظیم کند.

این فیلتر در موارد زیر مرز GOP بسته (closed GOP boundary) را تحمیل می‌کند:
- در هر بسته‌ای که ویژگی FileNumber برای آن تنظیم شده باشد یا مقدار ویژگی CueStart برابر true باشد.
- در ناپیوستگی‌های زمانی در صورتی که .I rtd تنظیم شده باشد.
- در صورتی که .I fintra و .I rc تنظیم شده باشند.

هنگام تحمیل مرز GOP بسته، فیلتر بافر رمزگذار را تخلیه (flush)، آن را نابود و مجدداً بازسازی می‌کند تا اطمینان حاصل شود زمینه‌ای (context) تمیز به کار می‌رود؛ زیرا در حال حاضر بسیاری از رمزگذارها در libavcodec از بازنشانی تمیز در هنگام اجبار نوع تصویر پشتیبانی نمی‌کنند.
اگر .I fintra تنظیم نشده باشد و خروجی رمزگذار یک نشست DASH در نمایه زنده (live profile) بدون خط زمانی قطعه (segment timeline) باشد، مقدار .I fintra روی مدت‌زمان قطعه هدف تنظیم شده و .I rc فعال خواهد شد.

این فیلتر به‌دنبال ویژگی logpass در PID ورودی می‌گردد تا نام فایل گزارش گذر ۲ (2-pass log) را تعیین کند، در غیر این صورت مقدار پیش‌فرض ffenc2pass-PID.log استفاده می‌شود.

آرگومان‌ها می‌توانند در زمان اجرا به‌روزرسانی شوند. اگر .I rld تنظیم شده باشد، بافر رمزگذار تخلیه شده و سپس با گزینه‌های جدید دوباره بارگذاری می‌شود.
اگر کدک از نوع ویدئویی باشد و .I fintra تنظیم شده باشد، بارگذاری مجدد در فریم intra اجباری بعدی اتفاق می‌افتد؛ در غیر این صورت، بارگذاری مجدد در رمزگذاری بعدی انجام خواهد شد.
گزینه .I rld معمولاً برای به‌روزرسانی پویای پارامترهای کنترل نرخ (rate control) مورد نیاز است، چرا که بیشتر رمزگذارها در ffmpeg از آن پشتیبانی نمی‌کنند.

c (str): شناسه کدک. می‌تواند هر نام کدک پشتیبانی‌شده در GPAC یا ffmpeg باشد - پس از مقداردهی اولیه به نام کدک ffmpeg به‌روزرسانی می‌شود
pfmt (pfmt، پیش‌فرض: none): فرمت پیکسل برای ویدئوی ورودی. در صورت عدم تنظیم، از فرمت ورودی استفاده می‌شود
fintra (frac، پیش‌فرض: -1/1): اجبار فریم‌های intra / IDR در دوره زمانی داده‌شده برحسب ثانیه، برای مثال fintra=2 هر ۲ ثانیه یک فریم intra تحمیل می‌کند و fintra=1001/1000 در ویدئوی 30000/1001=29.97 فریم‌برثانیه هر ۳۰ فریم یک فریم intra تحمیل می‌کند؛ برای صدا نادیده گرفته می‌شود
all_intra (bool، پیش‌فرض: false، قابل به‌روزرسانی): تنها فریم‌های intra تولید شوند
ls (bool، پیش‌فرض: false): ثبت آمارهای گزارش (log stats)
rc (bool، پیش‌فرض: false): بازنشانی رمزگذار هنگام اجبار فریم intra (برخی رمزگذارها ممکن است از اجبار فریم intra پشتیبانی نکنند)
rld (bool، پیش‌فرض: false، قابل به‌روزرسانی): اجبار به بارگذاری مجدد رمزگذار هنگام به‌روزرسانی آرگومان‌ها
rtd (bool، پیش‌فرض: true): تزریق IDR در هر ناپیوستگی زمانی
round (sint، پیش‌فرض: 1، قابل به‌روزرسانی): گرد کردن ابعاد ویدئو به بالا یا پایین
* 0: بدون گرد کردن
* 1: گرد کردن به بالا برای تطابق با نیازمندی‌های فرمت YUF کدک
* -1: گرد کردن به پایین برای تطابق با نیازمندی‌های فرمت YUF کدک
* other: گرد کردن به مقدار کمتر (مقدار منفی) یا بیشتر (مقدار مثبت)، برای مثال اندازه CTU

* (str): هر گزینه ممکن تعریف‌شده برای AVCodecContext و زیرکلاس‌ها. به gpac -hx ffenc و gpac -hx ffenc:* مراجعه کنید

شرح: مالتی‌پلکسر FFmpeg
نسخه: Lavf62.13.100

فایل‌ها و پروتکل‌های خروجی باز را با استفاده از FFmpeg مالتی‌پلکس (تسهیم) می‌کند.
برای جزئیات بیشتر به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید.
برای مشاهده فهرست تمامی مالتی‌پلکسرهای پشتیبانی‌شده در ساختار GPAC خود، از gpac -h ffmx:* استفاده کنید. این دستور هم فرمت‌های خروجی و هم پروتکل‌های پشتیبانی‌شده را فهرست می‌کند.
پروتکل‌های خروجی با عبارت Description: Output protocol مشخص می‌شوند و نام زیرکلاس، طرح (scheme) پروتکل را نشان می‌دهد.
به‌عنوان مثال، اگر ffmx:rtmp به‌عنوان پروتکل خروجی فهرست شود، به این معنی است که نشانی‌های اینترنتی مقصد //:rtmp پشتیبانی می‌شوند.

برخی از قالب‌های نشانی اینترنتی (URL) ممکن است برای تشخیص فرمت مالتی‌پلکس کافی نباشند، در این صورت باید از .I ffmt برای مشخص کردن فرمت مورد نظر استفاده کنید.

برخلاف سایر فیلترهای مالتی‌پلکس در GPAC، این فیلتر یک فیلتر مقصد (sink) است و هیچ PID خروجی برای هدایت در گراف تولید نمی‌کند.
با این حال فیلتر می‌تواند از نام‌های الگو (template) برای خروجی خود استفاده کند و با بهره‌گیری از نخستین PID ورودی، نام نهایی را حل کند.
این فیلتر ویژگی FileNumber را در بسته‌های ورودی پایش می‌کند تا فایل‌های جدید بسازد.

تمامی ویژگی‌های PID با پیشوند :meta به‌عنوان فراداده (metadata) اضافه خواهند شد.

پرچم .I proto مالتی‌پلکسر FFmpeg را غیرفعال کرده و به‌جای آن از مالتی‌پلکسر GPAC استفاده می‌کند. فرمت پیش‌فرض MPEG-2 TS است و می‌توان آن را با استفاده از .I ext یا .I mime مشخص کرد.
مثال
gpac -i SRC -o srt://127.0.0.1:1234:gpac:proto[:ext=mp4:frag] این دستور از گرداننده پروتکل SRT استفاده می‌کند، اما از مالتی‌پلکسر m2ts متعلق به GPAC، یا در صورت تعیین ext=mp4:frag از مالتی‌پلکسر mp4 استفاده خواهد کرد.

dst (cstr): مکان فایل مقصد یا URL دوردست
start (dbl, default: 0.0): تنظیم آفست شروع پخش. یک مقدار منفی به معنای درصدی از مدت‌زمان رسانه است که -1 برابر با کل مدت‌زمان خواهد بود
speed (dbl, default: 1.0): تنظیم سرعت پخش. اگر منفی باشد و start برابر با 0 باشد، start روی -1 تنظیم می‌شود
ileave (frac, default: 1): مدت‌زمان پنجره درهم‌آمیزی (interleave) به ثانیه؛ مقدار 0 درهم‌آمیزی را غیرفعال می‌کند
nodisc (bool, default: false): نادیده‌گرفتن تغییرات پیکربندی جریان هنگام تسهیم (multiplexing)؛ ممکن است منجر به خرابی جریان‌ها شود
mime (cstr): تنظیم نوع mime برای تحلیل گراف
ffiles (bool, default: false): اجبار به ایجاد فایل‌های کامل برای هر قطعه در حالت‌های DASH
ffmt (str): اجبار قالب خروجی ffmpeg برای URL داده‌شده
block_size (uint, default: 4096): اندازه بلوک مورد استفاده برای خواندن فایل هنگام استفاده از کانتکست avio
keepts (bool, default: true): خط زمانی ورودی را به 0 بازنگردان
proto (bool, default: false): فقط استفاده از پروتکل: تلاشی برای تسهیم (mux) نکن (هنگام ارسال جریان SRT با بازتسهیم مفید است)
psleep (uint, default: 1000): در حالت فقط پروتکل، پیش از EOS به میزان میلی‌ثانیه مشخص‌شده درنگ کن (برای برخی پروتکل‌ها اتصال را بلافاصله قطع نکن)
* (str): هر گزینه ممکن تعریف‌شده برای AVFormatContext و زیرکلاس‌های آن (gpac -hx ffmx و gpac -hx ffmx:* را ببینید)

توضیحات: فیلتر FFmpeg AV
نسخه: Lavfi11.15.100

این فیلتر ابزارهای صوتی و تصویری خام libavfilter را فراهم می‌کند.
برای جزئیات بیشتر به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید
برای مشاهده فهرست تمام avfilterهای پشتیبانی‌شده در ساخت GPAC خود، از gpac -h ffavf:* استفاده کنید.

این فیلتر توصیف یک فیلتر یا زنجیره‌ای از فیلترها را از گزینه .I f بارگذاری می‌کند.
مثال
ffavf:f=showspectrum

برخلاف سایر پیوندهای FFmpeg در GPAC، این فیلتر سایر گزینه‌های libavfilter را تجزیه نمی‌کند؛ باید آن‌ها را مستقیماً در زنجیره فیلتر مشخص کنید و کاراکترهای گزینه .I f باید با کاراکتر گریز (escape) درج شوند.
مثال
ffavf::f=showspectrum=size=320x320 یا ffavf::f=showspectrum=size=320x320::pfmt=rgb
ffavf::f=anullsrc=channel_layout=5.1:sample_rate=48000

برای گراف‌های فیلتر پیچیده، امکان ذخیره گزینه‌ها در یک فایل وجود دارد (مانند opts.txt):
:f=anullsrc=channel_layout=5.1:sample_rate=48000

و بارگذاری آرگومان‌ها از فایل:
ffavf:opts.txt aout

این فیلتر به‌طور خودکار فیلترهای AV از نوع buffer و buffersink را برای تبادل داده بین GPAC و libavfilter ایجاد می‌کند.
گزینه‌های توکار ( .I pfmt، .I afmt ...) می‌توانند برای پیکربندی فیلتر buffersink جهت تعیین قالب خروجی فیلتر استفاده شوند.

برای گراف‌های فیلتر ساده با تنها یک ورودی و یک خروجی، به PID ورودی نام avfilter با عنوان in و به PID خروجی نام avfilter با عنوان out اختصاص داده می‌شود

هنگامی که یک گراف چندین ورودی دارد، نام‌های PID ورودی باید توسط کاربر با استفاده از ویژگی ffid تعیین شوند و نگاشت باید در فیلتر انجام شود.
مثال
gpac -i video:#ffid=a -i logo:#ffid=b ffavf::f=[a][b]overlay=main_w-overlay_w-10:main_h-overlay_h-10 vout

در این مثال:
- منبع ویدیو با a شناسایی می‌شود
- منبع نشان‌واره (logo) با b شناسایی می‌شود
- اعلان فیلتر، a را به نخستین ورودی خود (در این حالت، ویدیوی اصلی) و b را به دومین ورودی خود (در این حالت overlay) نگاشت می‌کند

هنگامی که یک گراف چندین خروجی دارد، PIDهای خروجی با استفاده از ویژگی ffid تنظیم‌شده روی نام خروجی avfilter شناسایی خواهند شد.
مثال
gpac -i source ffavf::f=split inspect:SID=#ffid=out0 vout#SID=out1

در این مثال:
- تقسیم‌کننده (splitter) دو جریان ویدیویی out0 و out1 تولید می‌کند
- بازرس (inspector) تنها جریان با ffid برابر out0 را پردازش می‌کند
- خروجی ویدیو تنها جریان با ffid برابر out1 را نمایش می‌دهد

نام(های) خروجی نهایی گراف avfilter در GPAC قابل پیکربندی نیست. با این حال می‌توانید مانند همیشه خروجی(های) میانی را در یک زنجیره فیلتر پیچیده نام‌گذاری کنید.

این فیلتر به‌روزرسانی‌های گزینه‌ها را به‌عنوان دستورات ارسال‌شده به گراف فیلتر AV مدیریت می‌کند. نحو (syntax) مورد انتظار در نام گزینه به این صورت است:
* com_name=value: دستور com_name را با مقدار value به تمامی فیلترها ارسال می‌کند
* name#com_name=value: دستور com_name را با مقدار value به فیلتری با نام name ارسال می‌کند

f (str): توصیف فیلتر یا زنجیره فیلتر
pfmt (pfmt, default: none): قالب پیکسلی خروجی. در صورت عدم تنظیم، تصمیم‌گیری به AVFilter واگذار می‌شود
afmt (afmt, default: none): قالب صوتی خروجی. در صورت عدم تنظیم، تصمیم‌گیری به AVFilter واگذار می‌شود
sr (uint, default: 0): نرخ نمونه‌برداری خروجی. در صورت عدم تنظیم، تصمیم‌گیری به AVFilter واگذار می‌شود
ch (uint, default: 0): تعداد کانال‌های خروجی. در صورت عدم تنظیم، تصمیم‌گیری به AVFilter واگذار می‌شود
dump (bool, default: false, updatable): تخلیه گراف به‌صورت گزارش در media@info یا در صورت عدم تنظیم در stderr
* (str): هر گزینه ممکن تعریف‌شده برای AVFilter و زیرکلاس‌های آن (به gpac -hx ffavf و gpac -hx ffavf:* مراجعه کنید)

توضیحات: فیلتر بیت‌استریم FFmpeg
نسخه: Lavu60.27.100

این فیلتر، فیلترهای بیت‌استریم (BSF) را برای قالب‌های صوتی و تصویری فشرده‌شده فراهم می‌کند.
برای جزئیات بیشتر به مستندات FFmpeg (https://ffmpeg.org/documentation.html) مراجعه کنید
برای مشاهده فهرست تمامی فیلترهای بیت‌استریم پشتیبانی‌شده در ساخت GPAC خود، از gpac -h ffbsf:* استفاده کنید.

می‌توان چندین BSF را در .I f برای انواع مختلف کدگذاری مشخص کرد. مواردی از BSF که با نوع کدگذاری مطابقت نداشته باشند، بدون هشدار نادیده گرفته می‌شوند.
هنگامی که هیچ BSF با نوع کدگذاری ورودی مطابقت نداشته باشد، یا زمانی که .I f خالی باشد، فیلتر به عنوان یک فیلتر عبوری (passthrough) عمل می‌کند.

گزینه‌ها پس از فیلترهای مورد نظر مشخص می‌شوند:
- ffbsf:f=h264_metadata:video_full_range_flag=0
- ffbsf:f=h264_metadata,av1_metadata:video_full_range_flag=0:color_range=tv

نکته: استفاده از BSFها روی برخی از انواع رسانه (مانند avc، hevc) ممکن است باعث ایجاد یک فیلتر reframer (مانند rfnalu) شود

f (strl): نام فیلترهای بیت‌استریم - راهنمای فیلتر را ببینید
* (str): هر گزینه ممکن تعریف‌شده برای AVBitstreamFilter و زیرکلاس‌های آن. به gpac -hx ffbsf و gpac -hx ffbsf:* مراجعه کنید

توضیحات: فیلتر جاوااسکریپت

این فیلتر یک فایل جاوااسکریپت مشخص‌شده در .I js را اجرا می‌کند که یک فیلتر جاوااسکریپت جدید را تعریف می‌نماید.

برای اطلاعات بیشتر در مورد نحوه استفاده از فیلترهای JS، لطفاً https://wiki.gpac.io/Howtos/jsf/jsfilter را بررسی کنید

js (cstr): مکان سورس اسکریپت
* (str): هر گزینه ممکن تعریف‌شده برای اسکریپت (به gpac -hx jsf:js=$YOURSCRIPT یا gpac -hx $YOURSCRIPT مراجعه کنید)

توضیحات: خروجی MABR و ROUTE

فیلتر خروجی ROUTE برای توزیع یک نشست زنده مبتنی بر فایل با استفاده از ROUTE یا DVB-MABR به کار می‌رود.
این فیلتر از ورودی‌های DASH و HLS، سیگنال‌دهی ATSC3.0 و سیگنال‌دهی عمومی ROUTE یا DVB-MABR پشتیبانی می‌کند.

این فیلتر با استفاده از طرح‌واره‌های URL زیر شناسایی می‌شود:
* `atsc://`: نشست یک نشست کامل ATSC 3.0 است
* `route://IP:port`: نشست یک نشست ROUTE است که روی IP چندپخشی و درگاه مشخص‌شده اجرا می‌شود
* `mabr://IP:port`: نشست یک نشست DVB-MABR با استفاده از FLUTE است که روی IP چندپخشی و درگاه مشخص‌شده اجرا می‌شود

این فیلتر فقط PIDهای ورودی از نوع FILE را می‌پذیرد.
- فایل‌های مانیفست HAS از طریق پسوند فایل و/یا انواع MIME شناسایی شده و به عنوان بخشی از بسته سیگنال‌دهی یا به عنوان فایل‌های شیء LCT برای لیست‌های پخش فرعی HLS ارسال می‌شوند.
- قطعه‌های رسانه‌ای HAS با استفاده از ویژگی OrigStreamType شناسایی شده و با استفاده از رشته الگوی DASH به عنوان فایل‌های شیء LCT ارسال می‌شوند.
- یک PID بدون تنظیم ویژگی OrigStreamType به عنوان یک فایل شیء LCT معمولی (که از این پس raw نامیده می‌شود) تحویل داده می‌شود.

برای PIDهای فایل raw، فیلتر به دنبال ویژگی‌های زیر می‌گردد:
* `MCASTName`: نام منبع را تنظیم می‌کند. در صورت پیدا نشدن، از نام پایه (basename) نشانی URL استفاده می‌کند
* `MCASTCarousel`: دوره تکرار را تنظیم می‌کند. در صورت عدم یافتن، از .I carousel استفاده می‌کند. اگر 0 باشد، فایل فقط یک بار ارسال می‌شود
* `MCASTUpload`: زمان بارگذاری منبع را تنظیم می‌کند. در صورت عدم یافتن، از .I carousel استفاده می‌کند. اگر 0 باشد، فایل با حداکثر سرعت ممکن ارسال خواهد شد.

هنگام ایجاد DASH برای ROUTE، DVB-MABR یا ATSC تک‌سرویسی، ممکن است از یک پسوند فایل، چه در .I dst یا در .I ext، برای شناسایی نوع نشست HAS (از نوع DASH یا HLS) استفاده شود.
مثال
"route://IP:PORT/manifest.mpd", "route://IP:PORT/:ext=mpd"

هنگام ایجاد DASH برای ATSC چندسرویسی، اجبار کردن یک پسوند باعث می‌شود تمامی سرویس‌ها ملزم به استفاده از همان قالب‌ها شوند.
مثال
"atsc://:ext=mpd", "route://IP:PORT/manifest.mpd"

اگر به چندین سرویس با قالب‌های مختلف نیاز باشد، باید فیلترهای خود را به صورت صریح مشخص کنید:
gpac -i DASH_URL:#ServiceID=1 dashin:forward=file:FID=1 -i HLS_URL:#ServiceID=2 dashin:forward=file:FID=2 -o atsc://:SID=1,2
gpac -i MOVIE1:#ServiceID=1 dasher:FID=1:mname=manifest.mpd -i MOVIE2:#ServiceID=2 dasher:FID=2:mname=manifest.m3u8 -o atsc://:SID=1,2

هشدار: هنگام فوروارد کردن یک نشست موجود DASH/HLS، به هیچ وجه پسوند یا نام مانیفستی را تنظیم نکنید.

این فیلتر برای راه‌اندازی چندپخشی هر سرویس، به دنبال ویژگی‌های MCASTIP و MCASTPort در PID ورودی می‌گردد. در صورت پیدا نشدن، مقادیر پیش‌فرض .I ip و port استفاده خواهند شد، به طوری که درگاه برای هر جریان چندپخشی جدید یکی افزایش می‌یابد.

به طور پیش‌فرض، تمام جریان‌های موجود در یک سرویس به یک نشست چندپخشی واحد اختصاص می‌یابند و توسط TSI متمایز می‌شوند (به .I splitlct مراجعه کنید).
مقادیر TSI به صورت زیر تخصیص می‌یابند:
- مقدار TSI سیگنال‌دهی همیشه برای ROUTE برابر با 0 و برای DVB+Flute برابر با 1 است
- به فایل‌های raw مقدار TSI 1 و شماره‌های افزایشی TOI اختصاص داده می‌شود
- در غیر این صورت، به اولین PID یافت‌شده مقدار TSI 10، به دومی TSI 20 و غیره اختصاص می‌یابد...

هنگامی که .I splitlct روی mcast تنظیم شده باشد، نشانی IP چندپخشی به صورت زیر محاسبه می‌شود:
- اگر MCASTIP روی PID تنظیم شده باشد و با IP چندپخشی سرویس متفاوت باشد، از آن استفاده می‌شود
- در غیر این صورت، از IP چندپخشی سرویس به علاوه یک استفاده می‌شود
درگاه چندپخشی مورد استفاده به صورت زیر تنظیم می‌شود:
- اگر MCASTPort روی PID تنظیم شده باشد، از آن استفاده می‌شود
- در غیر این صورت، از همان درگاه مربوط به سرویس استفاده می‌شود.
قطعه‌های مقداردهی اولیه (Init segments) و لیست‌های پخش فرعی HLS قبل از هر قطعه جدید، مستقل از .I carousel ارسال می‌شوند.

در این حالت، فیلتر امکان مالتی‌پلکس چند سرویس را، که از طریق مشخصهٔ ServiceID شناسایی می‌شوند، فراهم می‌کند.
به‌طور پیش‌فرض (بالا را ببینید)، از یک IP چندپخشی (multicast) واحد برای نشست‌های route استفاده می‌شود، و به هر سرویس یک پورت متفاوت اختصاص می‌یابد.

ویژگی‌های ATSC 3.0 با استفاده از مشخصه‌های PID زیر تنظیم می‌شوند:
* ATSC3ShortServiceName: نام کوتاه سرویس را تعیین می‌کند، با حداکثر ۷ نویسه. در صورت پیدا نشدن، ServiceName بررسی می‌شود، در غیر این صورت مقدار پیش‌فرض GPAC خواهد بود.
* ATSC3MajorChannel: شماره کانال اصلی سرویس را تنظیم می‌کند. پیش‌فرض ۲ است. این مقدار حتماً باید تنظیم شود و نباید از مقدار پیش‌فرض استفاده گردد.
* ATSC3MinorChannel: شماره کانال فرعی سرویس را تنظیم می‌کند. پیش‌فرض ۱ است.
* ATSC3ServiceCat: دسته‌بندی سرویس را تعیین می‌کند؛ در صورت پیدا نشدن، پیش‌فرض ۱ است. ۱=سرویس خطی صوتی/تصویری (Linear a/v). ۲=سرویس خطی فقط صوتی. ۳=سرویس مبتنی بر برنامه (App-based). ۴=سرویس ESG. ۵=سرویس EA. ۶=سرویس DRM.
* ATSC3hidden: پنهان بودن سرویس را تعیین می‌کند. مقدار بولی true یا false. پیش‌فرض false است.
* ATSC3hideInGuide: پنهان بودن سرویس در ESG را تعیین می‌کند. مقدار بولی true یا false. پیش‌فرض false است.
* ATSC3configuration: پیکربندی سرویس را تنظیم می‌کند. گزینه‌های انتخابی Broadcast یا Broadband هستند. پیش‌فرض Broadcast است.

در این حالت، تنها یک سرویس منفرد می‌تواند توسط نشست ROUTE توزیع شود.
نکته: .I ip نادیده گرفته می‌شود، و در صورتی که هیچ پورتی در .I dst مشخص نشده باشد از .I first_port استفاده می‌شود.
نشست ROUTE شامل یک بستهٔ چندبخشی MIME امضانشده حاوی manifest و S-TSID خواهد بود که بر روی TSI=0 ارسال می‌شود.

در این حالت، فیلتر امکان مالتی‌پلکس چند سرویس را، که از طریق مشخصه‌های ServiceID و ServiceName شناسایی می‌شوند، فراهم می‌کند.
نکته: از .I ip و .I first_port برای ارسال پیکربندی درگاه چندپخشی (multicast gateway) استفاده می‌شود. از .I first_port تنها زمانی استفاده می‌شود که پورتی در .I dst مشخص نشده باشد.

این نشست پیکربندی درگاه DVB-MABR، مانیفست‌ها و قطعه‌های آغازین (init segments) را بر روی TSI=1 حمل خواهد کرد. گزینهٔ .I use_inband می‌تواند برای ارسال مانیفست‌ها و قطعه‌های آغازین در نشست‌های چندپخشی رسانه استفاده شود.

نشست FLUTE همواره از طول نماد برابر با .I mtu منهای ۴۴ بایت استفاده می‌کند.

مشخصهٔ MABRBaseURLs می‌تواند بر روی منابع تنظیم شود تا فهرستی از سرورهای ترمیم جایگزین (repair servers) را برای تزریق اعلان نماید.
هر نشانی پایه (base URL) می‌تواند با پیشوند N; همراه شود، که در آن N وزن نسبی سرور را تعیین می‌کند، و مقدار منفی سرور را نادیده می‌گیرد.
مقدار ویژهٔ src برای مشخص کردن منبع نشست به کار می‌رود.
مثال
gpac -i HTTP_MPD_URL:gpac::#MABRBaseURLs=-1;src,SOME_ALT_URL dashin:forward=file -o mabr://225.0.0.1:1234/

این کار نشست DASH مبدأ را به چندپخشی فوروارد کرده و:
- سرور مبدأ را به عنوان یک URL ترمیم پنهان می‌کند
- نشانی SOME_ALT_URL را به عنوان یک URL ترمیم اضافه می‌کند

هنگام استفاده از حالت تاخیر کم .I llmode، قطعه‌های رسانه‌ای ورودی در قالب یک بستهٔ واحد سرهم‌بندی نمی‌شوند، بلکه به همان صورتی که دریافت می‌شوند ارسال می‌گردند.
برای اینکه زمان‌بندی هم‌زمان (real-time) تکه‌های داده به درستی کار کند، هر فرگمنت از قطعه باید دارای یک CTS و برچسب زمان (timestamp) باشد که زمان‌بندی آن را توصیف می‌کند.
اگر چنین نباشد (معمولاً هنگام استفاده با یک نشست DASH موجود در حالت فایل)، زمان‌بند مقدار CTS و مدت‌زمان را بر اساس نرخ بیت جریان و مدت قطعه تخمین می‌زند. نرخ بیت مشخص‌شده برای حاشیهٔ اطمینان به اندازهٔ .I brinc درصد افزایش می‌یابد.
اگر این کار ناموفق باشد، فیلتر هشدارهایی صادر کرده و ارسال را با حداکثر سرعت ممکن انجام می‌دهد.
نکته: اشیای LCT بدون اختصاص طول (هدر TOL) ارسال می‌شوند تا زمانی که اندازهٔ نهایی قطعه مشخص گردد، که ممکن است به یک فرگمنت نهایی LCT با اندازهٔ ۰ منجر شود که تنها اندازهٔ نهایی را اعلان می‌کند.

در این حالت، قطعه‌های آغازین و مانیفست‌ها با بسامدی ارسال می‌شوند که توسط مشخصهٔ MCASTCarousel در PID مبدأ (در صورت تعیین شدن) یا توسط گزینهٔ .I carousel تعیین شده است.
تعیین MCASTCarousel=0 تکرار بین‌قطعه‌ای مانیفست‌ها و قطعه‌های آغازین را غیرفعال می‌کند.

از آنجا که فیلتر ROUTE تنها فایل‌ها را مصرف می‌کند، درج موارد زیر الزامی است:
- دی‌مالتی‌پلکسر dash در حالت فوروارد فایل هنگام بارگذاری یک نشست DASH
- مالتی‌پلکسر dash هنگام ایجاد یک نشست DASH

مالتی‌پلکس کردن یک نشست DASH موجود در route:
gpac -i source.mpd dashin:forward=file -o route://225.1.1.0:6000/

مالتی‌پلکس کردن یک نشست DASH موجود در atsc:
gpac -i source.mpd dashin:forward=file -o atsc://

قطعه‌بندی DASH و مالتی‌پلکس در route:
gpac -i source.mp4 dasher:profile=live -o route://225.1.1.0:6000/manifest.mpd

قطعه‌بندی DASH و مالتی‌پلکس در route با تاخیر کم (Low Latency):
gpac -i source.mp4 dasher -o route://225.1.1.0:6000/manifest.mpd:profile=live:cdur=0.2:llmode

ارسال یک فایل منفرد در ROUTE با استفاده از زمان بارگذاری نیم ثانیه و کاروسل ۲ ثانیه‌ای:
gpac -i URL:#MCASTUpload=0.5:#MCASTCarousel=2 -o route://225.1.1.0:6000/

اشتباهات رایج:
gpac -i source.mpd -o route://225.1.1.0:6000/

این دستور تنها فایل مانیفست را به عنوان یک شیء معمولی ارسال می‌کند و نشست dash را بارگذاری نخواهد کرد.
مثال
gpac -i source.mpd dashin:forward=file -o route://225.1.1.0:6000/manifest.mpd

این دستور مالتی‌پلکسر ROUTE را وادار می‌کند که تنها فایل‌های .mpd را بپذیرد، و تمام فایل‌های قطعه (segment) را دور می‌ریزد (مشابه حالتی که .I ext استفاده شود).
مثال
gpac -i source.mpd dasher -o route://225.1.1.0:6000/
gpac -i source.mpd dasher -o route://225.1.1.0:6000/manifest.mpd

این دستورها ورودی را دی‌مالتی‌پلکس کرده، مجدداً قطعه‌بندی DASH می‌کنند و خروجی dasher را به ROUTE ارسال می‌نمایند.

امکان شبیه‌سازی خطاها با errsim وجود دارد. در این حالت، ارسال‌کننده شبکه LCT یک زنجیره مارکوف ۲-حالته را پیاده‌سازی می‌کند:
gpac -i source.mpd dasher -o route://225.1.1.0:6000/:errsim=1.0x98.0

این پیکربندی احتمال ۱.۰ درصدی برای گذار به حالت خطا (عدم ارسال داده روی شبکه) و احتمال ۹۸.۰ درصدی برای بازگشت از خطا به وضعیت عادی (OK) را تعیین می‌کند.

dst (cstr): URL مقصد
ext (cstr): تنظیم پسوند برای تفکیک گراف، صرف‌نظر از پسوند فایل
mime (cstr): تنظیم mime type برای تفکیک گراف
ifce (str): رابط پیش‌فرض برای استفاده در مالتی‌کست. در صورت NULL، از رابط پیش‌فرض سیستم استفاده خواهد شد
carousel (uint, default: 1000): دوره کاروسل به میلی‌ثانیه برای تکرار سیگنالینگ و داده‌های خام فایل
first_port (uint, default: 6000): شماره پورت نخستین نشست ROUTE در حالت ATSC
ip (str, default: 225.1.1.0): آدرس IP مالتی‌کست برای نشست ROUTE در حالت ATSC
ttl (uint, default: 0): طول عمر (time-to-live) برای بسته‌های مالتی‌کست
bsid (uint, default: 800): شناسه (ID) برای جریان پخش همگانی ATSC
mtu (uint, default: 1472): اندازه MTU در LCT به بایت
splitlct (enum, default: off): حالت تقسیم برای کانال‌های LCT
* off: تمام جریان‌ها در همان کانال LCT قرار دارند
* type: هر نوع جریان جدید منجر به یک کانال LCT جدید می‌شود
* all: تمام جریان‌ها در کانال LCT اختصاصی قرار دارند و از جریان نخست برای سیگنالینگ STSID استفاده می‌شود
* mcast: تمام جریان‌ها در گروه‌های مالتی‌کست اختصاصی قرار دارند

korean (bool, default: false): استفاده از نسخه کره‌ای مشخصات ATSC 3.0 به‌جای نسخه ایالات متحده
llmode (bool, default: false): استفاده از حالت تأخیر کم (low-latency)
brinc (uint, default: 10): افزایش نرخ بیت بر حسب درصد هنگام برآورد زمان‌بندی در حالت تأخیر کم
noreg (bool, default: false): غیرفعال‌سازی تنظیم نرخ قطعات رسانه، و ارسال آن‌ها به محض دریافت با حداکثر سرعت
runfor (uint, default: 0): اجرا به مدت‌زمان داده‌شده بر حسب میلی‌ثانیه
nozip (bool, default: false): فشرده نکردن (zip نکردن) بسته سیگنالینگ (STSID+manifest)
flute (bool, default: true): استفاده از flute برای تحویل شیء DVB-MABR
csum (enum, default: meta): ارسال مجموع مقابله‌ای (MD5 checksum) برای DVB flute
* no: عدم ارسال مجموع مقابله‌ای
* meta: ارسال مجموع مقابله‌ای فقط برای فایل‌های پیکربندی، مانیفست‌ها و قطعات init
* all: ارسال مجموع مقابله‌ای برای همه چیز

recv_obj_timeout (uint, default: 50): تنظیم مدت مهلت زمانی (timeout) بر حسب میلی‌ثانیه پیش از توسل کلاینت به ترمیم unicast
errsim (v2d, default: 0.0x100.0): شبیه‌سازی خطاها با استفاده از زنجیره مارکوف ۲-حالته. مقادیر بر حسب درصد هستند
use_inband (bool, default: false): ارسال قطعات مانیفست و init در نشست‌های انتقال رسانه برای MABR
ssm (bool, default: false): تعیین مالتی‌کست منبع‌محور (SSM) برای DVB-MABR، مستلزم تنظیم ifce است

توضیحات: بازچینش‌گر فریم TrueHD (TrueHD reframer)

این فیلتر فایل‌ها/داده‌های Dolby TrueHD را تجزیه کرده و فریم‌ها و PID صوتی مربوطه را در خروجی قرار می‌دهد.

index (dbl, default: 1.0): طول پنجره نمایه‌سازی (indexing)
auxac3 (bool, default: false): آشکارسازی جریان کمکی AC-3 در صورت وجود

توضیحات: ورودی CryptFile

این فیلتر بلوک‌های خام را از فایل‌های رمزگذاری‌شده با AES 128 CBC در PKCS7 به فایل‌های ورودی شفاف (رمزگشایی‌شده) ارسال می‌کند

این فیلتر به‌طور خودکار توسط دیمولتی‌پلکسر DASH/HLS بارگذاری می‌شود و نباید به‌طور صریح توسط برنامه شما بارگذاری شود.

این فیلتر URL با طرح‌واره gcryp://URL را می‌پذیرد، که در آن URL همان نشانی جهت رمزگشایی است.

این فیلتر می‌تواند URLهای کلید با پروتکل http(s) و فایل‌های محلی (پیکربندی‌شده از طریق مانیفست HLS) را پردازش کند، و در نتیجه واکشی منبع، انتظار یک کلید کامل (۱۶ بایت) را دارد.

src (cstr): مکان فایل منبع
fullfile (bool, default: false): سرهم‌بندی مجدد کل فایل پیش از رمزگشایی

توضیحات: خروجی CryptFile

این فیلتر بلوک‌های خام را از فایل‌های ورودی رمزنگاری‌نشده به فایل‌های رمزگذاری‌شده با AES 128 CBC در PKCS7 ارسال می‌کند.

این فیلتر به‌طور خودکار توسط تسهیم‌کننده DASH/HLS بارگذاری می‌شود و نباید به‌صورت صریح توسط برنامهٔ شما بارگذاری شود.

این فیلتر نشانی‌های URL با طرحوارهٔ gcryp://URL را می‌پذیرد، که در آن URL همان نشانی اینترنتی برای رمزنگاری است.

dst (cstr): مکان فایل منبع
fullfile (bool, default: false): سرهم‌بندی مجدد کل فایل پیش از رمزگشایی

توضیحات: بازنویس برچسب زمان

این فیلتر زمان‌بندی (آفست‌ها و نرخ) بسته‌ها را بازنویسی می‌کند.

تاخیرها (سراسری یا به ازای هر کلاس جریان) می‌توانند مثبت (ارائه جریان در زمان دیرتر) یا منفی (ارائه جریان در زمان زودتر) باشند.

مقدار مشخص‌شده برای .I fps می‌تواند ۰، مثبت یا منفی باشد.
- اگر ۰ باشد یا جریان از نوع صوتی باشد، نرخ جریان تغییری نمی‌کند.
- در غیر این صورت اگر منفی باشد، نرخ جریان در -fps.num/fps.den ضرب می‌شود.
- در غیر این صورت اگر مثبت باشد و جریان ویدیویی نباشد، نرخ جریان تغییری نمی‌کند.
- در غیر این صورت (PID ویدیویی)، نرخ فریم ثابت فرض می‌شود و:
- اگر .I rawv = no باشد، نرخ فریم ویدیو به نرخ مشخص‌شده تغییر می‌یابد (افزایش یا کاهش سرعت).
- اگر .I rawv = force باشد، جریان ویدیوی ورودی رمزگشایی شده و فریم‌های ویدیو برای مطابقت با نرخ جدید حذف یا کپی می‌شوند.
- اگر .I rawv = dyn باشد، در صورتی که جریان ویدیوی ورودی تماماً all-intra نباشد رمزگشایی شده و فریم‌های ویدیو برای مطابقت با نرخ جدید حذف یا کپی می‌شوند.

نکته: فریم‌ها صرفاً کپی یا حذف می‌شوند و هیچ‌گونه جبران حرکتی (motion compensation) انجام نمی‌گیرد.

هنگامی که .I align برابر ۰ نباشد، اگر اختلاف بین دو برچسب زمان متوالی از آستانه مشخص‌شده بیشتر باشد، برچسب زمان جدید
برابر آخرین برچسب زمان محاسبه‌شده به‌علاوه حداقل مدت‌زمان بسته برای آن جریان تنظیم می‌شود.

fps (frac, default: 0/1): نرخ فریم هدف
delay (frac, default: 0/1, updatable): تاخیر برای افزودن به همه جریان‌ها
delay_v (frac, default: 0/1, updatable): تاخیر برای افزودن به جریان‌های ویدیو
delay_a (frac, default: 0/1, updatable): تاخیر برای افزودن به جریان‌های صوتی
delay_t (frac, default: 0/1, updatable): تاخیر برای افزودن به جریان‌های متنی
delay_o (frac, default: 0/1, updatable): تاخیر برای افزودن به سایر جریان‌ها
rawv (enum, default: no): کپی فریم‌های ویدیو
* no: عدم کپی/حذف فریم خام
* force: اجبار به رمزگشایی تمام جریان‌های ویدیو
* dyn: رمزگشایی جریان‌های ویدیو در صورت all-intra نبودن

tsinit (lfrac, default: -1/1): برچسب زمان اولیه برای همگام‌سازی مجدد، مقادیر منفی همگام‌سازی مجدد را غیرفعال می‌کند
align (uint, default: 0): آستانه تراز کردن برچسب زمان (۰ تراز کردن را غیرفعال می‌کند) - راهنمای فیلتر را ببینید
reorder (bool, default: false): مرتب‌سازی مجدد بسته‌های ورودی بر اساس CTS (ممکن است PID حاصل در رمزگشایی با خطا مواجه شود)

توضیحات: تسهیم‌کننده OGG

این فیلتر صدا و ویدیو را برای تولید یک جریان OGG تسهیم می‌کند.

گزینه .I cdur امکان مشخص کردن مدت‌زمان درهم‌بافی (حداکثر اختلاف زمانی بین بسته‌های متوالی جریان‌های مختلف) را فراهم می‌کند.

cdur (frac، پیش‌فرض: 1/10): مدت‌زمان درهم‌بافی (interleaving) جریان بر حسب ثانیه
rcfg (frac، پیش‌فرض: 0/1): بسامد تزریق مجدد پیکربندی جریان بر حسب ثانیه

توضیحات: بازنویس جریان

این فیلتر برای اجبار به فریم‌بندی مجدد (reframing) منابع ورودی استفاده می‌شود که از فریم‌بندی داخلی مشابه GPAC (مانند ISOBMFF) استفاده می‌کنند، اما فریم‌بندی یا سیگنال‌دهی آن‌ها معیوب است.
مثال
gpac -i src.mp4 unframer -o dst.mp4

این کار موارد زیر را انجام می‌دهد:
- اجبار PIDهای ورودی unframer به قرارگیری در قالب سریالی‌شده (AnnexB، ADTS، ...)
- فعال‌سازی نمونه‌سازی فریم‌بندها (reframers) پس از فیلتر unframer.
استفاده از فیلتر unframer از تخلیه داده‌ها روی دیسک (dump) و سپس وارد کردن مجدد، یا سایر روش‌های پیچیده لوله‌کشی داده‌ها (data piping) جلوگیری می‌کند.

بدون گزینه

توضیحات: مبدل فریم‌بندی‌شده به فریم‌بندی‌نشده

مبدل عمومی تک‌جریان به قالب بدون فریم (unframed)، که هنگام تبدیل PIDها استفاده می‌شود. این فیلتر نباید به‌طور صریح بارگذاری شود.

بدون گزینه

توضیحات: ادغام‌کننده نمونه‌های TTML

نمونه‌های ورودی را در یک نمونه واحد TTML ادغام می‌کند. فرآیند ادغام در ابتدای سگمنت‌های DASH مجدداً آغاز می‌شود.

بدون گزینه

توضیحات: رمزگشای UNCV

این فیلتر قالب پیکسلی UNCV را به یک قالب پیکسلی قابل استفاده تبدیل می‌کند.

force_pf (bool، پیش‌فرض: false): نادیده‌گرفتن نگاشت احتمالی به قالب‌های پیکسلی GPAC
no_tile (bool، پیش‌فرض: false): نادیده‌گرفتن اطلاعات کاشی‌بندی (اشکال‌زدایی)

توضیحات: دی‌مالتی‌پلکسر GHI

این فیلتر محتوای از پیش نمایه‌شده را برای پردازش به‌هنگام (just-in-time) مانیفست، سگمنت اولیه (init segment) و سگمنت‌های HAS مدیریت می‌کند

هشدار: این بخش در حال توسعه است؛ قالب نمایه‌ها (باینری یا XML) ممکن است تا نهایی شدن این فیلتر تغییر کند.

نمایه‌ها با استفاده از فیلتر dasher و یک مدت‌زمان مشخص برای سگمنت ساخته می‌شوند.
مثال
gpac -i SRC [... -i SRCn] -o index.ghi:segdur=2

این دستور یک نمایه باینری برای نشست DASH می‌سازد.
مثال
gpac -i SRC -o index.ghix:segdur=2

این دستور یک نمایه XML برای نشست DASH می‌سازد.

هشدار: نمایه‌های XML تنها باید برای اهداف اشکال‌زدایی استفاده شوند، زیرا تجزیه (parse) آن‌ها ممکن است زمان قابل‌توجهی ببرد.

هنگام نمایه‌گذاری، الگوی پیش‌فرض مورد استفاده $Representation$_$Number$ است. این الگو در نمایه ذخیره می‌شود و هنگام تولید محتوا نباید دوباره مشخص شود.

از نمایه می‌توان برای تولید مانیفست، گونه‌های فرزند (child variants) برای HLS، قطعات راه‌اندازی (init segments) و قطعات (segments) استفاده کرد.
مثال
gpac -i index.ghi:gm=all -o dash/vod.mpd

این دستور مانیفست(ها) و قطعه(های) init را تولید می‌کند.

مثال
gpac -i index.ghi:rep=FOO:sn=10 -o dash/vod.mpd

این دستور قطعهٔ دهم از بازنمود با شناسهٔ FOO را تولید می‌کند.

نکته: هنگام تولید یک قطعه، فایل(های) مانیفست و قطعه(های) init نوشته نمی‌شوند. مقصد مانیفست (mpd یا m3u8) صرفاً برای برپاسازی زنجیرهٔ فیلتر و مسیر خروجی هدف استفاده می‌شود.

مثال
gpac -i index.ghi:gm=main -o dash/vod.m3u8

این دستور تنها مانیفست اصلی (MPD یا فهرست پخش اصلی HLS) را تولید می‌کند.

مثال
gpac -i index.ghi:gm=child:rep=FOO:out=BAR -o dash/vod.m3u8

این دستور مانیفست فرزند را برای بازنمود FOO در فایل BAR تولید می‌کند.

مثال
gpac -i index.ghi:gm=init:rep=FOO:out=BAR2 -o dash/vod.m3u8

این دستور قطعهٔ init را برای بازنمود FOO در فایل BAR2 تولید می‌کند.

خروجی‌های فیلتر PIDهایی با استفاده از بسته‌های فریم‌بندی‌شده هستند که با مرزهای قطعه (segment boundaries) نشانه‌گذاری شده‌اند و می‌توان آن‌ها را پیش از ورود به dasher به فیلترهای دیگر زنجیر کرد (برای مثال جهت رمزگذاری، ترنسکد و...).

اگر شناسه‌های بازنمود در حین ایجاد نمایه اختصاص داده نشوند، مقدار پیش‌فرض آن‌ها اندیس بر پایهٔ ۱ از منبع خواهد بود. می‌توانید با استفاده از دستور زیر آن‌ها را بررسی کنید:
gpac -i src.ghi inspect:full

این فیلتر می‌تواند برای تولید بازنمودهای مالتی‌پلکس‌شده، چه در زمان تولید مانیفست و چه هنگام تولید یک قطعه استفاده شود.
مثال
gpac -i index.ghi:mux=A@V1@V2 -o dash/vod.mpd

این دستور مانیفستی تولید خواهد کرد که بازنمود A را با بازنمودهای V1 و V2 مالتی‌پلکس می‌کند.

مثال
gpac -i index.ghi:mux=A@V1@V2,T@V1@V2 -o dash/vod.mpd

این دستور مانیفستی تولید خواهد کرد که بازنمودهای A و T را با بازنمودهای V1 و V2 مالتی‌پلکس می‌کند.

مثال
gpac -i index.ghi:rep=V2:sn=5:mux=A@V2 -o dash/vod.mpd

این دستور قطعهٔ پنجم را شامل بازنمودهای A و V2 تولید خواهد کرد.

این فیلتر هیچ وضعیتی را ذخیره نمی‌کند، مسئولیت استفاده از اطلاعات منسجم در طول فراخوانی‌های مختلف بر عهدهٔ کاربر است:
- الگوهای قطعه (segment templates) را تغییر ندهید
- بازنمودهای مالتی‌پلکس‌شده را به پیکربندی‌هایی که در مانیفست‌های تولیدشده اعلان نشده‌اند تغییر ندهید

نمایه‌سازی از MP4های تکه‌بندی‌شده (fragmented) و تکه‌بندی‌نشده (non-fragmented)، MPEG-2 TS و ورودی‌های دارای قابلیت جست‌وجو (seekable) پشتیبانی می‌کند.
- توصیه می‌شود از MP4 تکه‌بندی‌شده به‌عنوان قالب ورودی استفاده شود، زیرا این کار زمان بارگذاری فایل را به شکل چشمگیری کاهش می‌دهد.
- اگر از MP4 تکه‌بندی‌نشده استفاده می‌شود، توصیه می‌شود از فایل‌های تک‌ترک (single-track) استفاده کنید تا اندازهٔ movie box کاهش یافته و تجزیه (parsing) سریع‌تر شود.
- منابع MPEG-2 TS کندتر خواهند بود چرا که نیازمند فریم‌بندی مجدد PES و بازآرایی AU هستند که در مقایسه با mp4 منجر به ورودی/خروجی‌های (IO) بیشتری می‌شود.
- سایر منابع جست‌وجوپذیر احتمالاً کندتر خواهند بود (به دلیل جست‌وجو/پرش و فریم‌بندی مجدد) و توصیه نمی‌شوند.

gm (enum، پیش‌فرض: main): حالت تولید مانیفست
* none: عدم تولید مانیفست (اگر sn برابر 0 نباشد اعمال می‌شود)
* all: تولید همهٔ مانیفست‌ها و قطعه‌های init
* main: تولید مانیفست اصلی (MPD یا M3U8 اصلی)
* child: تولید لیست پخش فرعی برای HLS
* init: تولید قطعهٔ init

force (bool، پیش‌فرض: false): اجبار به بارگذاری منابع در تولید مانیفست جهت اشکال‌زدایی
rep (str): نمایش (representation) جهت تولید
sn (uint): شماره قطعه جهت تولید، 0 یعنی قطعهٔ init
mux (strl): نمایش جهت ترکیب (mux) - به راهنمای فیلتر رجوع کنید
out (str): نام فایل خروجی جهت تولید

توضیحات: مقیاس‌بند ویدیویی EVG

این فیلتر با استفاده از کتابخانهٔ EVG در GPAC، داده‌های ویدیویی خام را به اندازه و فرمت پیکسل مشخص‌شده تغییر مقیاس می‌دهد.

اگر .I osize برابر {0,0} باشد، ابعاد خروجی روی اندازهٔ ورودی تنظیم شده و نسبت ابعاد ورودی نادیده گرفته می‌شود.

اگر .I osize برابر {0,H} (یا {W,0}) باشد، عرض خروجی (یا ارتفاع) با رعایت نسبت ابعاد ورودی تنظیم خواهد شد. اگر .I keepar = nosrc باشد، نسبت ابعاد نمونهٔ ورودی نادیده گرفته می‌شود.

هنگامی که نسبت ابعاد نمونهٔ خروجی تنظیم شود، ابعاد خروجی بر نسبت ابعاد نمونهٔ خروجی تقسیم می‌شوند.
مثال
evgs:osize=288x240:osar=3/2

ابعاد خروجی 192x240 خواهد بود.

هنگامی که نسبت ابعاد حفظ نشود (.I keepar = off):
- منبع به ابعاد مد نظر بازنمونه‌برداری می‌شود
- اگر نسبت ابعاد خروجی تنظیم نشده باشد، خروجی از نسبت ابعاد نمونهٔ منبع استفاده خواهد کرد

هنگامی که نسبت ابعاد به‌صورت جزئی حفظ شود (.I keepar = nosrc):
- بازنمونه‌برداری روی داده‌های ورودی بدون در نظر گرفتن نسبت ابعاد نمونهٔ ورودی انجام می‌شود
- اگر نسبت ابعاد نمونهٔ خروجی تنظیم نشده باشد (.I osar = 0/N)، نسبت ابعاد منبع به خروجی منتقل می‌شود.

هنگامی که نسبت ابعاد به‌طور کامل حفظ شود (.I keepar = full)، در صورت تنظیم نشدن، نسبت ابعاد خروجی به 1/1 اجبار می‌شود.

هنگامی که نسبت ابعاد نمونه حفظ شود، فیلتر موارد زیر را انجام خواهد داد:
- فریم ورودی تغییر مقیاس یافته را در مرکز فریم خروجی قرار می‌دهد
- پیکسل‌های اضافی را با .I padclr پر می‌کند

osize (v2di): اندازهٔ ویدیوی خروجی
ofmt (pfmt، پیش‌فرض: none): فرمت پیکسل برای ویدیوی خروجی. در صورت تنظیم نشدن، از فرمت ورودی استفاده می‌شود
ofr (bool، پیش‌فرض: false): اجبار به محدودهٔ کامل (full range) در خروجی
keepar (enum، پیش‌فرض: off): حفظ نسبت ابعاد
* off: نادیده گرفتن نسبت ابعاد
* full: رعایت نسبت ابعاد، با اعمال اطلاعات نسبت ابعاد نمونهٔ ورودی
* nosrc: رعایت نسبت ابعاد، اما نادیده گرفتن نسبت ابعاد نمونهٔ ورودی

padclr (str، پیش‌فرض: black): رنگ پاک‌سازی هنگام استفاده از حفظ نسبت ابعاد
osar (frac، پیش‌فرض: 0/1): اجبار نسبت ابعاد پیکسل خروجی
nbth (sint، پیش‌فرض: -1): تعداد نخ‌ها جهت استفاده، -1 به معنای تمام هسته‌هاست
hq (bool، پیش‌فرض: false): استفاده از درون‌یابی دوخطی (bilinear) به‌جای نزدیک‌ترین پیکسل

توضیحات: رمزگشای زیرنویس پنهان (Closed-Caption)

این فیلتر زیرنویس‌های پنهان (Closed Captions) را به فرمت بدون فریم SRT رمزگشایی می‌کند.
انواع رسانه‌های ویدیویی پشتیبانی‌شده جریان‌های MPEG2، AVC، HEVC، VVC و AV1 هستند.

تنها زیرمجموعه‌ای از CEA 608/708 پشتیبانی می‌شود.

field (uint، پیش‌فرض: 1): فیلد برای رمزگشایی
agg (enum، پیش‌فرض: none): حالت تجمیع خروجی
* none: هدایت داده‌ها همان‌گونه که رمزگشایی شده‌اند (پیش‌فرض)
* word: تجمیع کلمات (جدا شده با فاصله)

توضیحات: رمزگذار Closed-Caption

این فیلتر Closed Captionها را در جریان ویدیویی رمزگذاری می‌کند.
انواع رسانه‌های ویدیویی پشتیبانی‌شده جریان‌های MPEG2، AVC، HEVC، VVC و AV1 هستند.

تنها زیرمجموعه‌ای از CEA 608/708 پشتیبانی می‌شود.

vb_time (frac، پیش‌فرض: 1/1): مدت زمان نگه‌داشتن بسته‌های ویدیویی در صورت نبود زیرنویس

توضیحات: رمزگشای SCTE35

این فیلتر نشانگرهای SCTE-35 متصل‌شده به عنوان ویژگی به بسته‌های صوتی و ویدیویی
یا درون یک جریان اختصاصی را به قالب درخواستی تبدیل می‌کند. همچنین باکس‌های
خالی 'emeb' را در این بین، طبق قطعه‌بندی مشخص‌شده توسط گراف ایجاد می‌کند.

mode (enum، پیش‌فرض: evte): حالت عملکرد
* evte: خروجی دادن باکس‌های emib/emeb برای Event Tracks
* m2ts: ارسال فوری کل splice_info_section مربوط به MPEG-2 TS طبق استاندارد ANSI/SCTE 67 2017 (13.1.1.3)
* passthrough: حالت عبور مستقیم (pass-through) با افزودن ویژگی cue start در نقاط برش (splice points)

sampdur (frac، پیش‌فرض: 0/1): مدت‌زمان قطعه‌بندی بر حسب ثانیه. مقدار پیش‌فرض 0 تنها هنگام تغییر محتوا تخلیه (flush) می‌کند
prop (bool، پیش‌فرض: false): همچنین پیوست کردن داده‌ها به عنوان ویژگی در صورتی که dasher برای حالت دوگانه درون‌باند+برون‌باند (dual in+out band) به آن نیاز داشته باشد

توضیحات: بارگذار پیام SEI

این فیلتر فراداده‌های درون‌باندی (inband) شناخته‌شده را به عنوان ویژگی‌های بسته بارگذاری می‌کند

بدون گزینه

توضیحات: رمزگشای WebCodec

این فیلتر جریان‌های ویدیویی را با استفاده از رمزگشای WebCodec مرورگر رمزگشایی می‌کند

queued (uint، پیش‌فرض: 10): حداکثر تعداد بسته‌ها برای قرارگیری در صف نمونه webcodec

توضیحات: رمزگذار WebCodec

این فیلتر جریان‌های ویدیویی را با استفاده از رمزگذار WebCodec مرورگر رمزگذاری می‌کند

c (str): شناسه کدک. می‌تواند هر نام کدک پشتیبانی‌شده GPAC یا نام کدک ffmpeg باشد - پس از مقداردهی اولیه به نام کدک ffmpeg به‌روزرسانی می‌شود
fintra (frac، پیش‌فرض: -1/1): اجبار فریم‌های intra / IDR در دوره زمانی داده‌شده بر حسب ثانیه؛ به عنوان مثال fintra=2 یک فریم intra را هر ۲ ثانیه اجبار می‌کند و fintra=1001/1000 یک فریم intra را هر ۳۰ فریم در ویدیوی 30000/1001=29.97 fps اجبار خواهد کرد؛ برای صوت نادیده گرفته می‌شود
all_intra (bool، پیش‌فرض: false، قابل به‌روزرسانی): فقط فریم‌های intra تولید شوند
b (uint، پیش‌فرض: 0): نرخ بیت بر حسب بیت بر ثانیه، پیش‌فرض 2M برای ویدیو و 124K برای صوت است
queued (uint، پیش‌فرض: 10): حداکثر تعداد بسته‌ها برای قرارگیری در صف نمونه webcodec

توضیحات: ضبط صوت و تصویر مبتنی بر وب

این فیلتر جریان‌های صوتی و تصویری را از MediaStreamTrackProcessor مرورگر دریافت می‌کند

طرح‌های URL پشتیبانی‌شده:
- video:// از دوربین دریافت می‌کند
- audio:// از میکروفون دریافت می‌کند
- av:// هم صدا را از میکروفون و هم تصویر را از دوربین دریافت می‌کند
- video://ELTID از عنصر DOM با شناسه ELTID دریافت می‌کند (عنصر باید عنصری معتبر و موردقبول برای سازندهٔ VideoFrame باشد)

src (str): نشانی اینترنتی (URL) منبع
vsize (v2di، پیش‌فرض: 0x0): تفکیک‌پذیری مد نظر وب‌کم
back (bool، پیش‌فرض: false): استفاده از دوربین پشت
ntp (bool، پیش‌فرض: false): نشانه‌گذاری بسته‌ها با NTP
alpha (bool، پیش‌فرض: false): حفظ آلفا هنگام دریافت canvas
fps (frac، پیش‌فرض: 0/1): نرخ فریم مورد استفاده هنگام دریافت تصاویر - مقدار 0 FPS به معنای تک‌تصویر است

توضیحات: خروجی SDI کارت‌های DekTec

این فیلتر خروجی SDI را برای استفاده با کارت‌های DTA 2174 یا DTA 2154 فراهم می‌کند.

bus (sint، پیش‌فرض: -1): شماره گذرگاه PCI. در صورت عدم تنظیم، از شناسایی خودکار دستگاه استفاده می‌شود
slot (sint، پیش‌فرض: -1): شماره گذرگاه PCI. در صورت عدم تنظیم، از شناسایی خودکار دستگاه استفاده می‌شود
fps (frac، پیش‌فرض: 30/1): نرخ فریم (FPS) پیش‌فرض در صورت عدم تشخیص fps جریان ورودی
clip (bool، پیش‌فرض: false): محدودسازی داده‌های YUV به محدودهٔ معتبر SDI، کندتر
port (uint، پیش‌فرض: 1): تنظیم درگاه خروجی SDI کارت
start (dbl، پیش‌فرض: 0.0): تنظیم آفست آغاز پخش، [-1, 0] به معنای درصد مدت‌زمان رسانه است، مثلاً -1 == dur

توضیحات: رمزگشای OpenHEVC

این فیلتر HEVC و LHVC (افزونه‌های مقیاس‌پذیر HEVC) را از یک یا چند PID از طریق کتابخانهٔ OpenHEVC رمزگشایی می‌کند

threading (enum، پیش‌فرض: frame): تنظیم حالت ریسه‌بندی (threading)
* frameslice: رمزگشایی موازی هم فریم‌ها و هم برش‌ها (slices)
* frame: رمزگشایی موازی فریم‌ها
* slice: رمزگشایی موازی برش‌ها (slices)

nb_threads (uint، پیش‌فرض: 0): تنظیم تعداد ریسه‌ها (اگر 0 باشد، از تعداد هسته‌ها منهای یک استفاده می‌کند)
no_copy (bool، پیش‌فرض: false): ارسال مستقیم فریم رمزگشایی‌شدهٔ داخلی بدون رونوشت (کپی)
pack_hfr (bool، پیش‌فرض: false): بسته‌بندی ۴ فریم متوالی در یک خروجی واحد
seek_reset (bool، پیش‌فرض: false): راه‌اندازی مجدد رمزگشا هنگام جستجو (seek)
force_stereo (bool، پیش‌فرض: true): استفاده از خروجی استریو برای چندنمایی (فقط بالا-پایین)
reset_switch (bool، پیش‌فرض: false): راه‌اندازی مجدد رمزگشا هنگام تغییر پیکربندی

توضیحات: تولیدکنندهٔ ویدیوی فشرده‌نشده
نسخه: 1.0
نویسنده: تیم GPAC - (c) Telecom ParisTech 2023 - مجوز LGPL v2

این فیلتر امکان تولید تصاویر آزمایشی را برای ISO/IEC 23001-17 فراهم می‌کند
پیکسل‌های تولیدشده می‌توانند شامل موارد زیر باشند:
- الگویی از رنگ‌ها در ستون‌ها، یا در مستطیل‌ها در صورت تنظیم .I sq ، با استفاده از پالت مشخص‌شده.
- یک منبع تصویر در صورت استفاده از .I img .

رنگ‌های مشخص‌شده در پالت می‌توانند رنگ‌های پیش‌فرض GPAC (دستور gpac -h colors را ببینید)، 0xRRGGBB یا 0xAARRGGBB باشند

هنگام تولید ویدیو، پیکسل‌ها در هر فریم به سمت چپ شیفت داده می‌شوند

مؤلفه‌ها به صورت N[bpc][+k] توصیف می‌شوند که در آن:
* N: نوع مؤلفه، یکی از M(mono)، Y، U، V، R، G، B، A، d(depth)، disp، p(palette)، f(filterArray)، x (pad)
* bpc: مقدار بیت بر مؤلفه، پیش‌فرض 8 است. مقادیر غیرصحیح باید یکی از موارد زیر باشند:
* sft: مقدار ممیز شناور 16 بیتی
* flt: مقدار ممیز شناور 32 بیتی
* dbl: مقدار ممیز شناور 64 بیتی
* dblx: مقدار ممیز شناور 128 بیتی
* cps: مقدار مختلط به صورت دو عدد ممیز شناور هرکدام 16 بیتی
* cpf: مقدار مختلط به صورت دو عدد ممیز شناور هرکدام 32 بیتی
* cpd: مقدار مختلط به صورت دو عدد ممیز شناور هرکدام 64 بیتی
* cpx: مقدار مختلط به صورت دو عدد ممیز شناور هرکدام 128 بیتی
* k: اجبار هم‌ترازی مؤلفه بر روی k بایت، پیش‌فرض 0 است (بدون هم‌ترازی)

vsize (v2d، پیش‌فرض: 128x128): عرض و ارتفاع تصویر خروجی
c (strl، پیش‌فرض: R8,G8,B8): مولفه‌های تصویر
tiles (v2d، پیش‌فرض: 1x1): تعداد کاشی‌های افقی و عمودی
interleave (enum، پیش‌فرض: pix): نوع درهم‌تنیدگی
* comp: درهم‌تنیدگی بر پایه مولفه (حالت‌های planar)
* pix: درهم‌تنیدگی بر پایه پیکسل (حالت‌های packed)
* mix: درهم‌تنیدگی بر پایه پیکسل برای UV (حالت‌های semi-planar)
* row: درهم‌تنیدگی بر پایه ردیف
* tile: درهم‌تنیدگی کاشی-مولفه
* multi: درهم‌تنیدگی بر پایه پیکسل (حالت‌های packed) برای حالت‌های زیرنمونه‌برداری‌شده

sampling (enum، پیش‌فرض: none): انواع نمونه‌برداری
* none: بدون زیرنمونه‌برداری
* 422: زیرنمونه‌برداری YUV 4:2:2
* 420: زیرنمونه‌برداری YUV 4:2:0
* 411: زیرنمونه‌برداری YUV 4:1:1

block_size (uint، پیش‌فرض: 0): اندازه بلوک به بایت
pad_lsb (bool، پیش‌فرض: false): بیت‌های فاصله‌ساز در LSB بلوک قرار دارند
ble (bool، پیش‌فرض: false): بلوک به‌صورت little endian است
br (bool، پیش‌فرض: false): بلوک دارای مولفه‌های معکوس است
pixel_size (uint، پیش‌فرض: 0): اندازه پیکسل به بایت
row_align (uint، پیش‌فرض: 0): تراز ردیف به بایت
tile_align (uint، پیش‌فرض: 0): تراز کاشی به بایت
cle (bool، پیش‌فرض: false): مولفه‌های تراز‌شده با بایت به‌صورت little endian هستند
img (str، پیش‌فرض: ): استفاده از تصویر مشخص‌شده به‌عنوان ورودی به جای تولید RGB
asize (bool، پیش‌فرض: false): استفاده از اندازه تصویر ورودی
pal (strl، پیش‌فرض: red,green,blue,white,black,yellow,cyan,grey,orange,violet): پالت پیش‌فرض برای تولید رنگ
fa (strl، پیش‌فرض: B,G,G,R): فیلتر شبه‌بایر - تنها 2x2 روی مولفه‌های R,G,B پشتیبانی می‌شود
bpm (strl، پیش‌فرض: ): تنظیم نگاشت پیکسل‌های خراب حسگر به‌صورت فهرستی از cN (ستون خراب)، rM (ردیف خراب) یا NxM (تک‌پیکسل)
fps (frac، پیش‌فرض: 25/1): نرخ فریم جهت تولید - استفاده از 0 فرایند item muxing را فعال می‌کند
dur (frac، پیش‌فرض: 1/1): مدت‌زمان تولید - استفاده از 0 فرایند item muxing را فعال می‌کند
cloc (uint، پیش‌فرض: -1، minmax: -1,6): تنظیم نوع موقعیت کروما (chroma location)
stereo (bool، پیش‌فرض: false): استخراج یک تصویر استریو
sq (flt، پیش‌فرض: 0): تولید الگوهای مربعی به جای ستون‌ها
shade (bool، پیش‌فرض: false): سایه‌زدن پیکسل‌ها از رنگ سیاه در پایین تا شدت کامل در بالا
scpt (bool، پیش‌فرض: false): استفاده از یک رنگ برای هر کاشی، کاشی نخست از اولین رنگ در پالت استفاده می‌کند

توضیحات: بارگذار بافت در GPU
نسخه: 1.0
نویسنده: تیم GPAC

این فیلتر جریان‌های ویدیویی ورودی را به‌صورت بافت‌های OpenGL به GPU ارسال می‌کند. می‌توان از آن برای شبیه‌سازی رمزگشاهای سخت‌افزاری که بافت‌های OpenGL را توزیع می‌کنند استفاده کرد.

بدون گزینه

توضیحات: سازنده تصویر بندانگشتی
نسخه: 1.0
نویسنده: تیم GPAC

این فیلتر از یک جریان ویدیویی نماگرفت تولید می‌کند.

ویدیوی ورودی با ضریب مقیاس .I scale کاهش نمونه‌برداری می‌شود. اندازه خروجی بر اساس تعداد تصاویر در هر خط و هر ستون در .I grid پیکربندی می‌گردد.
پس از پیکربندی، اندازه خروجی دیگر تغییر داده نمی‌شود.

گزینه .I snap مشخص می‌کند که در هر چند ثانیه معین، یک فریم ویدیو استفاده شود. اگر مقدار 0 باشد، همه فریم‌های ورودی استفاده می‌شوند.

اگر تعداد ردیف‌ها 0 باشد، بر اساس مدت‌زمان منبع و زمان .I snap مورد نظر محاسبه خواهد شد، و در صورتی که قابل حل نباشد، مقدار پیش‌فرض آن 10 خواهد بود.

برای خروجی دادن یک تصویر به ازای هر فریم ورودی، از :grid=1x1 استفاده کنید.

اگر یک تک‌تصویر به ازای هر فریم خروجی استفاده شود، مقدار پیش‌فرض برای .I snap برابر 0 و برای .I scale برابر 1 است.
در غیر این صورت، مقدار پیش‌فرض برای .I snap برابر 1 ثانیه و برای .I scale برابر 10 است.

می‌توان یک خط متن را روی هر فریم درج کرد. کلمات کلیدی از پیش تعریف‌شده را می‌توان در متن ورودی استفاده کرد که به‌صورت $KEYWORD$ مشخص می‌شوند:
* ts: با برچسب زمان (timestamp) بسته جایگزین می‌شود
* timescale: با مقیاس زمانی PID جایگزین می‌شود
* time: با زمان بسته به‌صورت HH:MM:SS.ms جایگزین می‌شود
* cpu: با میزان مصرف فعلی CPU توسط فرایند جایگزین می‌شود
* mem: با میزان مصرف فعلی حافظه توسط فرایند جایگزین می‌شود
* version: با نسخه GPAC جایگزین می‌شود
* fversion: با نسخه کامل GPAC جایگزین می‌شود
* mae: با میانگین قدر مطلق خطا (MAE) نسبت به فریم قبلی جایگزین می‌شود
* mse: با میانگین مربعات خطا (MSE) نسبت به فریم قبلی جایگزین می‌شود
* P4CC, PropName: با مشخصه متناظر PID جایگزین می‌شود

مثال
gpac -i src reframer:saps=1 thumbs:snap=30:grid=6x30 -o dump/$num$.png

این دستور تصاویری را فقط از فریم‌های کلیدی (key-frames) تولید می‌کند و هر 30 ثانیه یک تصویر درج می‌نماید. استفاده از فیلتر کردن فریم‌های کلیدی بسیار سریع‌تر است، اما در صورتی که فریم‌های کلیدی کافی در منبع وجود نداشته باشد ممکن است نتایج غیرمنتظره‌ای به همراه داشته باشد.

مثال
gpac -i src thumbs:snap=0:grid=5x5 -o dump/$num$.png

این دستور در نرخ 25 fps، در هر ثانیه یک تصویر شامل 25 فریم تولید خواهد کرد.

اگر یک تک‌تصویر به ازای هر فریم خروجی استفاده شود و ضریب مقیاس 1 باشد، بسته ورودی مجدداً به‌عنوان ورودی همراه با متن و گرافیک هم‌پوشانی‌شده (overlaid) استفاده می‌شود.

مثال
gpac -i src thumbs:grid=1x1:txt='Frame $time$' -o dump/$num$.png

این دستور متن را روی هر فریم تزریق می‌کند و زمان‌بندی و سایر مشخصه‌های بسته را حفظ می‌نماید.

می‌توان یک خروجی json را در .I list ورودی مشخص کرد تا به برنامه‌ها امکان دهد موقعیت فریم در تصویر خروجی را از روی زمان‌بندی آن بازیابی کنند.

این فیلتر می‌تواند معیارهای خطای قدر مطلق و/یا مجذور میانگین خطا را بین تصاویر متوالی محاسبه کرده و اگر معیار محاسبه‌شده کمتر از آستانهٔ مشخص‌شده باشد، تصویر را نادیده بگیرد.
اگر هر دو آستانهٔ .I mae و .I mse برابر با ۰ باشند، تشخیص صحنه انجام نمی‌شود (پیش‌فرض).
اگر هر دو آستانهٔ .I mae و .I mse مقداری غیر از ۰ داشته باشند، فریم در صورتی اضافه می‌شود که از هر دو آستانه عبور کند.

برای هر دو معیار، مقدار ۰ به این معنی است که تمام پیکسل‌ها یکسان هستند و مقدار ۱۰۰ یعنی تمام پیکسل‌ها ۱۰۰٪ اختلاف شدت روشنایی دارند (مانند سیاه در برابر سفید).

تشخیص صحنه پس از فیلترسازی .I snap انجام می‌شود و از موارد زیر استفاده می‌کند:
- فریم قبلی در جریان داده، چه اضافه شده باشد و چه نشده باشد، در صورتی که .I scref تنظیم نشده باشد،
- آخرین فریم اضافه‌شده، در غیر این صورت.

آستانه‌های معمول برای تشخیص برش صحنه بین ۱۴ تا ۲۰ برای .I mae و ۵ تا ۷ برای .I mse هستند.

از آنجا که این فرایند پردازش سنگینی دارد، توصیه می‌شود در ترکیب با گزینش فریم‌های کلیدی (key-frames) استفاده شود:

مثال:
gpac -i src reframer:saps=1 thumbs:mae=15 -o dump/$num$.png

در صورتی که هیچ برش صحنه‌ای یافت نشود، می‌توان از گزینهٔ .I maxsnap برای اجبار به درج تصویر پس از زمان مشخص‌شده استفاده کرد.

grid (v2di، پیش‌فرض: 6x0): تعداد تصاویر در سطرها و ستون‌ها
scale (dbl، پیش‌فرض: -1): ضریب مقیاس برای اندازهٔ ورودی
mae (uint، پیش‌فرض: 0، minmax: 0,100): آستانهٔ تفاوت صحنه با استفاده از میانگین قدر مطلق خطا (MAE)
mse (uint، پیش‌فرض: 0، minmax: 0,100): آستانهٔ تفاوت صحنه با استفاده از میانگین مجذور خطا (MSE)
lw (dbl، پیش‌فرض: 0.0): عرض خط بین تصاویر بر حسب پیکسل
lc (str، پیش‌فرض: white): رنگ خط
clear (str، پیش‌فرض: white): رنگ پاک‌سازی پس‌زمینه
snap (dbl، پیش‌فرض: -1): مدت‌زمان بین تصاویر، 0 برای همهٔ تصاویر
maxsnap (dbl، پیش‌فرض: -1): حداکثر مدت‌زمان بین دو بندانگشتی هنگامی که تشخیص تغییر صحنه فعال است
pfmt (pfmt، پیش‌فرض: rgb): قالب پیکسلی خروجی
txt (str، پیش‌فرض: ): متن درج‌شونده در هر بندانگشتی
tc (str، پیش‌فرض: white): رنگ متن
tb (str، پیش‌فرض: black): سایهٔ متن
font (str، پیش‌فرض: SANS): قلم مورد استفاده
fs (dbl، پیش‌فرض: 10): اندازهٔ قلم بر حسب درصد از ارتفاع مقیاس‌بندی‌شده
tv (dbl، پیش‌فرض: 0): موقعیت عمودی متن بر حسب درصد از ارتفاع مقیاس‌بندی‌شده
thread (sint، پیش‌فرض: -1): تعداد رشته‌ها برای رسترایزر نرم‌افزاری، -1 برای تمام هسته‌های موجود
blt (bool، پیش‌فرض: true): استفاده از blit به جای رسترایزر نرم‌افزاری
scref (bool، پیش‌فرض: false): استفاده از آخرین تصویر درج‌شده به عنوان مرجع برای تشخیص تغییر صحنه
dropfirst (bool، پیش‌فرض: false): نادیده گرفتن تصویر نخست
list (str، پیش‌فرض: null): صدور فهرست json از زمان‌ها و موقعیت‌های فریم به فایل مشخص‌شده
lxy (bool، پیش‌فرض: false): افزودن صریح x و y در خروجی json

توضیحات: تولیدکنندهٔ متن (Text Generator)
نسخه: 1.0
نویسنده: GPAC Team

این فیلتر جریان‌های متنی را بر اساس فایل .I src ارائه‌شده تولید می‌کند. به‌طور پیش‌فرض، فیلتر از یک فایل متنی lorem ipsum استفاده می‌کند
پارامتر .I type حالت تولید متن را تعیین می‌کند. اگر روی 'txt' تنظیم شود، فیلتر متن را بر اساس فایل منبع تولید خواهد کرد
اگر روی 'utc' تنظیم شود، فیلتر متن را بر اساس زمان کنونی UTC تولید می‌کند. اگر روی 'ntp' تنظیم شود، فیلتر متن را بر اساس زمان کنونی NTP تولید خواهد کرد
هنگامی که .I unit روی 'w' تنظیم شده باشد، فیلتر متن را بر اساس کلمات تولید می‌کند. هنگامی که روی 'l' تنظیم شود، فیلتر متن را بر اساس خطوط تولید خواهد کرد
پارامتر .I fdur مدت‌زمان فریم جریان متن را تعیین می‌کند. کل مدت‌زمان جریان متن توسط پارامتر .I dur مشخص می‌شود. اگر روی 0/0 تنظیم شود، جریان متن بی‌پایان خواهد بود
پارامتر .I rollup حالت پیمایش روبه‌بالا (roll-up) را تا سقف تعداد خطوط مشخص‌شده فعال می‌کند. در حالت roll-up، فیلتر متن را تا رسیدن به تعداد خطوط تعیین‌شده انباشته می‌کند.
با رسیدن به این تعداد خطوط، فیلتر خط نخست را حذف کرده و به جمع‌آوری متن ادامه می‌دهد
می‌توان از .I rollup در ترکیب با تنظیم .I unit روی 'l' برای ایجاد جلوهٔ زیرنویس پیمایشی (roll-up subtitle) استفاده کرد؛ یا .I unit را روی 'w' تنظیم نمود تا جلوهٔ متن پیمایشی ایجاد شود.
پارامتر .I lmax حداکثر تعداد نویسه‌ها در یک خط را تعیین می‌کند. اگر خط موجود در فایل منبع طولانی‌تر از این باشد، متن اضافی شکسته (wrap) می‌شود. مقدار 0 به معنای عدم وجود محدودیت است
هنگامی که .I rt روی true تنظیم شود، فیلتر متن را به‌صورت بلادرنگ (real-time) تولید می‌کند. اگر روی false تنظیم گردد، فیلتر متن را با حداکثر سرعت ممکن تولید خواهد کرد

src (str، پیش‌فرض: /usr/local/share/gpac/scripts/jsf/txtgen/lipsum.txt): منبع متن. در صورت عدم تنظیم، فیلتر از متن lorem ipsum استفاده خواهد کرد
type (enum، پیش‌فرض: txt): نوع متن برای تولید
* txt: متن ساده (از گزینه src استفاده می‌کند)
* utc: زمان UTC
* ntp: زمان NTP

unit (enum، پیش‌فرض: l): حداقل واحد متن از منبع
* w: کلمه
* l: خط

fdur (frac، پیش‌فرض: 1/1): مدت‌زمان هر فریم
lmax (uint، پیش‌فرض: 32): حداکثر تعداد نویسه‌ها در یک خط. اگر خط در فایل منبع طولانی‌تر از این مقدار باشد، متن اضافی شکسته (wrap) خواهد شد. مقدار 0 به معنای عدم وجود محدودیت است
dur (frac، پیش‌فرض: 0/0): مدت‌زمان جریان متن
rollup (uint، پیش‌فرض: 0): فعال‌سازی حالت بالاآمدن تدریجی (roll-up) تا تعداد خطوط مشخص‌شده
lock (bool، پیش‌فرض: false): قفل‌کردن زمان‌بندی با تولید متن
rt (bool، پیش‌فرض: true): حالت زمان‌واقعی (real-time)

توضیحات: سرور چندرسانه‌ای (Media Server)
نسخه: 1.0
نویسنده: GPAC team - (c) Telecom Paris 2024 - license LGPL v2

این فیلتر یک سرور HTTP و پروکسی برای درخواست‌های GET و HEAD است که از منابع Multicast ABR پشتیبانی می‌کند.

این فیلتر هیچ PIDای تولید نمی‌کند، بلکه به فیلتر خروجی HTTP متصل می‌شود.
اگر هیچ فیلتر خروجی HTTP در نشست (session) مشخص نشده باشد، فیلتر یکی ایجاد خواهد کرد.
فایل .gpac_auth، در صورت وجود در دایرکتوری کاری فعلی، برای احراز هویت استفاده خواهد شد مگر اینکه --rdirs تنظیم شده باشد.

اگر نیاز به تعیین گزینه‌های بیشتری برای فیلتر خروجی HTTP باشد، می‌توان آن‌ها را به عنوان گزینه‌های محلی یا با استفاده از گزینه‌های سراسری ارسال کرد:
gpac mediaserver:cors=on --user_agent=MyUser

اگرچه توصیه نمی‌شود، اما سرور را می‌توان به صورت صریح نیز مشخص کرد:
gpac mediaserver httpout:OPTS

در این حالت، اولین فیلتر httpout ایجادشده مورد استفاده قرار خواهد گرفت.

مدیریت پیش‌فرض درخواست‌های فیلتر httpout از طریق دایرکتوری‌های خواندن / نوشتن غیرفعال است.

پیکربندی سرویس با استفاده از .I scfg تنظیم می‌شود. این پیکربندی باید یک فایل JSON شامل یک آرایه واحد از سرویس‌ها باشد.
هر سرویس یک شیء JSON با یک یا چند مورد از ویژگی‌های زیر است:
* id: (string، پیش‌فرض: null) شناسه سرویس مورد استفاده برای گزارش‌ها (logs)
* active: (boolean، پیش‌فرض: true) در صورت false بودن، سرویس نادیده گرفته می‌شود
* http: (string، پیش‌فرض: null) نشانی URL سرویس دوردست جهت پروکسی‌کردن (یا نام منبع یا مسیر سرور)
* gcache: (boolean، پیش‌فرض: false) استفاده از حافظه موقت (کش) دیسک محلی gpac هنگام واکشی رسانه از HTTP برای این سرویس
* local: (string، پیش‌فرض: null) نقطه اتصال محلی (mount point) این سرویس
* keepalive: (number، پیش‌فرض: 4) حذف سرویس در صورتی که برای مدت زمان مشخص‌شده به ثانیه هیچ درخواستی دریافت نشود (مقدار 0 سرویس را مجبور می‌کند تا همیشه در حافظه باقی بماند)
* mabr: (string، پیش‌فرض: null) نشانی منبع چندپخشی ABR (Multicast ABR) برای این سرویس
* timeshift: (number، پیش‌فرض: 10) مدت‌زمان به ثانیه که یک فایل کش‌شده در حافظه باقی می‌ماند
* unload: (number، پیش‌فرض: 4) سیاست تخلیه چندپخشی (multicast unload)
* activate: (number، پیش‌فرض: 1) سیاست فعال‌سازی چندپخشی (multicast activation)
* mcache: (boolean، پیش‌فرض: false) کش‌کردن فایل‌های مانیفست
* repair: (string، پیش‌فرض: false) فعال‌سازی ترمیم تک‌پخشی (unicast repair) در پشته MABR
* false: غیرفعال‌سازی ترمیم
* true: فعال‌سازی ترمیم با استفاده از URL منبع یا سرورهای ترمیم مشخص‌شده در MABR
* auto: فعال‌سازی ترمیم تنها از طریق سرورهای ترمیم مشخص‌شده در MABR
* check_ip: (boolean، پیش‌فرض: false) نظارت بر نشانی IP و درگاه به‌جای اتصال هنگام ردیابی کلاینت‌های فعال
* noproxy: (boolean) غیرفعال‌سازی پروکسی برای سرویس هنگام تنظیم نقطه اتصال محلی. پیش‌فرض در صورت تنظیم هر دو گزینه local و http برابر با true و در غیر این صورت false است
* sources: (array، پیش‌فرض: null) فهرستی از اشیاء منابع برای سرویس‌های فقط-فایل. هر منبع دارای ویژگی‌های زیر است:
* name: نام مورد استفاده در مسیر منبع،
* url: نشانی URL محلی یا دوردست برای استفاده در این منبع.
* js: (string، پیش‌فرض: null) تحلیل‌گر درخواست (request resolver) توکار یا سفارشی

هر شیء JSON که ویژگی comment در آن تنظیم شده باشد، نادیده گرفته خواهد شد.

همه ویژگی‌ها برای هر نوع سرویسی استفاده نمی‌شوند و ویژگی‌های دیگر می‌توانند توسط تحلیل‌گرهای درخواست سفارشی تعریف شوند.

تمامی سرویس‌هایی که از گزینه http استفاده می‌کنند، می‌توانند به جای پروکسی شدن، بدون افشای نشانی URL مبدأ توسط سرور ارائه شوند. برای فعال‌سازی این قابلیت، گزینه پیکربندی سرویس local باید روی یکی از موارد زیر تنظیم شود:
- مسیر سرور ارائه‌شده، که در این حالت نام‌های مانیفست بازنویسی نمی‌شوند
- یا مسیر مانیفست ارائه‌شده، که در این حالت نام‌های مانیفست بازنویسی می‌شوند، اما تنها یک مانیفست می‌تواند ارائه شود (با سرویس‌های دوگانه MPD و M3U8 کار نمی‌کند)

مثال
{ "http": "https://test.com/live/dash/live.mpd", "local": "/service1/"}

سرور هر درخواست /service1/foo/bar.ext را به https://test.com/live/dash/foo/bar.ext ترجمه خواهد کرد.

مثال
{ "http": "https://test.com/live/dash/live.mpd", "local": "/service1/manifest.mpd"}

سرور موارد زیر را ترجمه خواهد کرد:
- درخواست /service1/manifest.mpd را به https://test.com/live/dash/live.mpd
- هر درخواست /service1/foo/bar.ext را به https://test.com/live/dash/foo/bar.ext

نکته: نشانی URL باید به یک زیردایرکتوری مستقل از سایت راه دور اشاره کند. هر نشانی URL خارج از این دایرکتوری یا با خطا مواجه شده یا به عنوان یک مسیر مطلق در سایت راه دور تحلیل خواهد شد.

هنگامی که local تنظیم نشده باشد، این سرویس‌ها همواره به عنوان پروکسی برای نشانی URL در http عمل می‌کنند.

هنگامی که noproxy به صراحت روی false برای سرویس‌های دارای هر دو گزینه http و local تنظیم شده باشد، نشانی URL راه دور به عنوان یک سرویس پروکسی نیز در دسترس خواهد بود.

سرور می‌تواند به عنوان یک پروکسی برای درخواست‌های HTTP، چه برای تمامی درخواست‌ها و چه بر اساس دامنه یا نام منبع عمل کند.

پارامترهای پیکربندی سرویس مورد استفاده: http (اجباری)، gcache، local.

پیکربندی برای فعال‌سازی پروکسی برای یک مسیر شبکه خاص:
{ "http": "https://test.com/video"}

پیکربندی برای فعال‌سازی پروکسی برای هر مسیر شبکه:
{ "http": "*"}

پیکربندی برای یک رله روی یک مسیر مشخص:
{ "http": "https://test.com/some/path/to/video", "local": "/myvids/"}

این پیکربندی هر درخواست http://localhost/myvids/* را به https://test.com/some/path/to/video/* هدایت خواهد کرد.

نکته: درخواست‌ها در این حالت هرگز در حافظه کَش نمی‌شوند، اما اگر gcache تنظیم شده باشد، می‌توانند روی دیسک کَش شوند.

سرور می‌تواند به عنوان کَش برای نشست‌های استریم زنده HTTP عمل کند. لبه زنده (live edge) می‌تواند برای مدت‌زمان مشخصی در حافظه کَش شود.

پارامترهای پیکربندی سرویس مورد استفاده: http (اجباری)، timeshift، mcache، gcache، keepalive و local.

پیکربندی برای پروکسی کردن هم‌زمان با کَش کردن یک سرویس استریم زنده HTTP:
{ "http": "https://test.com/dash/live.mpd", "timeshift": 30 }

پیکربندی برای کَش رله یک سرویس استریم زنده HTTP:
{ "http": "https://test.com/dash/live.mpd", "timeshift": 30, "local": "/myservice/test.mpd"}

گزینه پیکربندی سرویس local می‌تواند روی موارد زیر تنظیم شود:
- مسیر سرور ارائه‌شده، که در این حالت نام‌های مانیفست بازنویسی نمی‌شوند
- یا مسیر مانیفست ارائه‌شده، که در این حالت نام‌های مانیفست بازنویسی می‌شوند، اما تنها یک مانیفست می‌تواند ارائه شود (با سرویس‌های دوگانه MPD و M3U8 کار نمی‌کند)

سرور می‌تواند به گونه‌ای پیکربندی شود که از یک منبع Multicast ABR برای یک سرویس پخش زنده (streaming) مبتنی بر HTTP، بدون نیاز به هیچ منبع HTTP استفاده کند.

پارامترهای پیکربندی سرویس استفاده‌شده: mabr (اجباری)، local (اجباری)، timeshift و keepalive.

منبع چندپخشی می‌تواند DVB-MABR (مثلاً mabr://235.0.0.1:1234)، ATSC3.0 (مثلاً atsc://) یا ROUTE (مثلاً route://235.0.0.1:1234) باشد.
- اگر چندپخشی از یک فایل بازپخش شود، شناسه netcap باید در این نشانی URL چندپخشی تعیین گردد (مثلاً :NCID=N).
- اگر یک رابط IP خاص استفاده شود، می‌تواند در نشانی URL چندپخشی نیز تعیین گردد (مثلاً :ifce=IP).

برای نمونه، با تنظیم local روی /service/live.mpd به همراه تنظیم mabr، سرور سرویس چندپخشی را به صورت http://localhost/service/live.mpd در دسترس قرار خواهد داد.
نام مانیفست می‌تواند حذف شود؛ در این صورت نام دقیق مانیفست استفاده‌شده در انتشار همگانی (broadcast) باید به کار رود (و برای کلاینت شناخته‌شده باشد).

پیکربندی برای در دسترس قرار دادن یک نشست MABR:
{ "mabr": "mabr://234.0.0.1:1234", "local": "/service1", "timeshift": 30 }

سرور می‌تواند به گونه‌ای پیکربندی شود که از یک منبع چندپخشی به عنوان منبع داده جایگزین برای یک سرویس استریمینگ HTTP مشخص استفاده کند.

پارامترهای پیکربندی سرویس استفاده‌شده: http (اجباری)، mabr (اجباری)، local، timeshift، repair، gcache، mcache، unload، activate، keepalive و js.

سرویس چندپخشی می‌تواند با استفاده از گزینه پیکربندی سرویس unload، در زمان اجرا به طور پویا بارگذاری شود:
- اگر 0 باشد، چندپخشی هنگام بارگذاری سرور آغاز شده و هرگز متوقف نمی‌شود،
- در غیر این صورت، چندپخشی به صورت پویا آغاز شده و به میزان unload ثانیه پس از آخرین غیرفعال‌سازی پایان می‌یابد.

کیفیت‌ها در سرویس چندپخشی می‌توانند با استفاده از گزینه پیکربندی سرویس activate، به طور پویا فعال یا غیرفعال شوند:
- اگر 0 باشد، جریان‌های چندپخشی هرگز غیرفعال نمی‌شوند،
- در غیر این صورت، یک بازنمایی (representation) چندپخشی تنها در صورتی فعال می‌شود که حداقل activate کلاینت در حال مصرف آن باشند، و در غیر این صورت غیرفعال می‌گردد.

سرویس چندپخشی می‌تواند با استفاده از گزینه پیکربندی سرویس repair، از گزینه‌های ترمیم پشته MABR استفاده کند:
- اگر false باشد، فایل تا زمانی که به طور کامل دریافت نشود ارسال نخواهد شد (این کار تاخیر را افزایش می‌دهد)،
- در غیر این صورت، داده‌های فایل به محض در دسترس قرار گرفتن به ترتیب ارسال خواهند شد (پس از دریافت یا ترمیم).

تعداد کلاینت‌های فعال در یک کیفیت معین، با استفاده از وضعیت اتصال کلاینت محاسبه می‌شود: هرگونه قطع/اتصال مجدد از سوی کلاینت برای همان کیفیت، یک توالی deactivate+activate را راه‌اندازی می‌کند.
اگر check_ip برابر با true تنظیم شود، نشانی IP دوردست+پورت به جای اتصال استفاده می‌شوند. با این حال این حالت فرض می‌کند که هر کلاینت یک IP/port یکتا دارد که ممکن است همیشه درست نباشد (NATها).

اگر timeshift برای سرویس برابر 0 باشد، قطعه‌های چندپخشی به محض این‌که دیگر مورد استفاده نباشند دور ریخته می‌شوند (احتمالاً پیش از درخواست کلاینت).

نکته: فایل‌های مانیفست دریافتی از چندپخشی در حال حاضر هرگز کش نمی‌شوند.

پیکربندی برای کش کردن یک سرویس استریمینگ زنده HTTP به همراه پشتیبان MABR:
{ "http": "https://test.com/dash/live.mpd", "mabr": "mabr://234.0.0.1:1234", "timeshift": 30}

برای چنین سرویس‌هایی، سرآیند سفارشی HTTP با نام X-From-MABR تعریف شده است:
- برای درخواست کلاینت، مقدار no حافظه کش MABR را برای این درخواست غیرفعال می‌کند؛ در صورت عدم وجود یا داشتن مقدار yes، در صورت موجود بودن از کش MABR استفاده خواهد شد
- برای پاسخ کلاینت، مقدار yes نشان می‌دهد که محتوا از کش MABR تامین شده است؛ در صورت عدم وجود یا داشتن مقدار no یا off-edge، محتوا از طریق HTTP تامین شده است (off-edge نشان‌دهنده درخواستی خارج از بافر timeshift است)

نقطه پایانی ریشه اختصاصی /stats، تعداد نوع محتوای پاسخ‌های سرویس‌دهی‌شده (yes، no، off-edge) توسط درگاه را برمی‌گرداند.

گزینه js می‌تواند به یک ماژول JS تنظیم شود که توابع زیر را صادر (export) می‌کند:
* init : (اجباری) این تابع یک بار در هنگام آغاز سرور فراخوانی می‌شود. پارامترها:
* scfg: شیء پیکربندی سرویس
* return value: در صورت موفقیت‌آمیز بودن پیکربندی و مقداردهی اولیه باید true باشد، در غیر این صورت false.

* service_activation : (اختیاری) این تابع هنگامی که سرویس فعال یا غیرفعال می‌شود فراخوانی می‌گردد. پارامترها:
* do_activate (boolean): اگر true باشد، سرویس در حال بارگذاری است؛ در غیر این صورت در حال تخلیه (unload) است
* return value: ندارد (none)

* quality_activation : (اختیاری) این تابع هنگامی که کیفیت مشخص‌شده باید فعال یا غیرفعال شود فراخوانی می‌گردد. در صورت عدم وجود، فعال‌سازی/غیرفعال‌سازی همواره رخ می‌دهد. پارامترها (به ترتیب):
* do_activate (boolean): اگر true باشد، کیفیت در حال فعال‌سازی است؛ در غیر این صورت در حال غیرفعال‌سازی است
* service_id (integer): شناسه سرویس آن‌طور که در چندپخشی اعلان شده است
* period_id (string): شناسه Period در DASH، برای HLS نادیده گرفته می‌شود (خالی)
* adaptationSet_ID (integer): شناسه AdaptationSet در DASH، برای HLS نادیده گرفته می‌شود (-1)
* representation_ID (string): شناسه representation در DASH یا نام لیست پخش متغیر (variant playlist) در HLS
* return value: اگر فعال‌سازی/غیرفعال‌سازی باید انجام شود باید true باشد و اگر فعال‌سازی/غیرفعال‌سازی باید لغو گردد باید false باشد.

* get_mcast_address : (اختیاری) این تابع هنگامی که سرویس فعال می‌شود فراخوانی می‌گردد. پارامترها:
* service_url (string): نشانی URL سرویسی که آدرس چندپخشی برای آن استعلام می‌شود
* return value: باید آدرس چندپخشی مورد استفاده برای سرویس باشد یا null در صورتی که هیچ چندپخشی استفاده نمی‌شود (در این صورت چندپخشی فعال غیرفعال خواهد شد).

یک دایرکتوری از سامانه فایل می‌تواند به‌صورت یک سرویس ارائه شود.

پارامترهای پیکربندی سرویس مورد استفاده: local (اجباری)، sources (اجباری)، gcache و keepalive.

گزینه پیکربندی سرویس local باید روی مسیر سرویس مورد نظر تنظیم شود، و گزینه پیکربندی سرویس sources باید شامل یک یا چند منبع معتبر باشد.
هر منبع می‌تواند یک فایل، یک دایرکتوری یا یک URL دوردست باشد.

پیکربندی برای ارائه یک دایرکتوری:
{ "local": "/dserv/", "sources": [ { "name": "foo/", "url": "my_dir/" } ] }

این سرویس محتوای دایرکتوری my_dir/* را به‌صورت http://localhost/dserv/foo/* در دسترس قرار می‌دهد.

در این حالت، سرویس‌دهی فایل مستقیماً توسط فیلتر httpout مدیریت می‌شود و از حافظه نهان (کش) استفاده نمی‌شود.
اگر منبع یک نشانی دوردست HTTP باشد، گزینه gcache مشخص می‌کند که آیا از کش محلی GPAC استفاده شود یا خیر.

یک ماژول JS را می‌توان با استفاده از گزینه js در پیکربندی سرویس مشخص کرد. توابع صادر شده (export) ماژول عبارتند از:

این تابع یک بار هنگام شروع به کار سرور فراخوانی می‌شود
پارامتر: شیء پیکربندی سرویس
مقدار بازگشتی در صورت موفقیت‌آمیز بودن پیکربندی و راه‌اندازی اولیه باید true و در غیر این صورت false باشد

پارامتر: یک شیء درخواست HTTP از GPAC

این تابع آرایه‌ای از دو مقدار [result, delay] را برمی‌گرداند:
* result: در صورت خطا مقدار null، یک رشته تفکیک‌شده که نشان‌دهنده یک فایل محلی یا بدنه پاسخ است، یا یک شیء
* delay: اگر true باشد، پاسخ توسط ماژول برای پردازش بعدی به تعویق می‌افتد

هنگامی که یک شیء برگردانده می‌شود، درخواست توسط ماژول JS که مسئول ارسال پاسخ و خواندن داده‌ها است مدیریت می‌شود. این شیء باید دارای ویژگی‌های (properties) زیر باشد:
* read: معنایی یکسان با متد read درخواست
* on_close: تابع اختیاری که هنگام بسته‌شدن درخواست فراخوانی می‌شود

ماژول هنگام استفاده از js=remux بارگذاری می‌شود

این ماژول فایل‌های منبع را بدون ترنسکد کردن (تغییر کدک) به فرمت مورد نظر بازترکیب (remultiplex) می‌کند.

پارامترهای پیکربندی سرویس مورد استفاده: local (اجباری)، sources (اجباری).

پارامترهای اضافی پیکربندی سرویس
* fmt: فرمت پیش‌فرض برای استفاده (پیش‌فرض mp4 است). فرمت‌های پشتیبانی‌شده عبارتند از:
* `src`: بدون بازترکیب
* `mp4`: فرمت fragmented MP4
* `ts`: فرمت MPEG-2 TS
* `gsf`: فرمت جاری‌سازی GPAC
* `dash`: فرمت MPEG-DASH، تک‌کیفیتی
* `hls`: فرمت HLS، تک‌کیفیتی

منابع با استفاده از آرایه sources در پیکربندی سرویس تعریف می‌شوند.

پارامترهای CGI برای درخواست عبارتند از:
* fmt: (رشته، یکسان با fmt پیکربندی سرویس) فرمت مالتی‌پلکس. در صورت تنظیم روی src، تمام پارامترهای دیگر CGI نادیده گرفته می‌شوند.
* start: (عدد، پیش‌فرض 0) زمان شروع محتوای بازترکیب‌شده به ثانیه.
* speed: (عدد، پیش‌فرض 1) سرعت (>=0)، فقط جریان تصویری را نگه می‌دارد و فریم‌های غیر SAP را حذف می‌کند.
* media: (رشته، پیش‌فرض av) نوع فیلتر کردن رسانه
* 'av': نگه‌داشتن هم صدا و هم تصویر
* 'a': نگه‌داشتن فقط صدا
* 'v': نگه‌داشتن فقط تصویر

پیکربندی برای ارائه یک دایرکتوری همراه با بازترکیب به mp4:
{"local": "/service1/", "js": "remux", "sources": [{"name": "vids", "url": "/path/to/vids/"}], "fmt": "mp4"}

scfg (str): فایل پیکربندی سرویس
quit (bool, default: false): خروج از سرور به محض غیرفعال شدن آخرین سرویس

توضیحات: میکسر صوت و تصویر
نویسنده: تیم GPAC

ابزار AVMix یک میکسر صوت و تصویر است که توسط یک قالب لیست پخش قابل به‌روزرسانی JSON کنترل می‌شود. از این فیلتر می‌توان برای موارد زیر استفاده کرد:
- زمان‌بندی دنباله(های) ویدیو در طول زمان
- میکس کردن ویدیوها با یکدیگر
- چینش چندین ویدیو
- قرار دادن تصاویر، متن و گرافیک‌ها بر روی ویدیوهای منبع

تمام جریان‌های ورودی پیش از ورود به میکسر رمزگشایی می‌شوند.
- جریان‌های صوتی به‌صورت نرم‌افزاری میکس می‌شوند
- جریان‌های ویدیویی مطابق با گزینه gpu ترکیب‌بندی می‌شوند
- سایر انواع جریان‌ها هنوز پشتیبانی نمی‌شوند

شتاب‌دهی سخت‌افزاری OpenGL قابل استفاده است، اما مجموعه ویژگی‌های پشتیبانی‌شده در حال حاضر با GPU یا بدون آن یکسان نیست.

در حالت نرم‌افزاری، میکسر بررسی می‌کند که آیا هر یک از منابع ویدیویی فعال فعلی می‌تواند به عنوان یک بوم (canvas) پایه برای خروجی جهت صرفه‌جویی در زمان پردازش استفاده شود یا خیر.
رفتار پیش‌فرض این است که این تشخیص فقط در اولین فریم تولیدشده انجام شود؛ برای تغییر این مورد از dynpfmt استفاده کنید.

این فیلتر را می‌توان از طریق ماژول‌های JavaScript گسترش داد. در حال حاضر فقط صحنه‌ها و جلوه‌های انتقال از این ویژگی استفاده می‌کنند.

هنگام کار در حالت آفلاین، میکسر به مدت ۱۰ برابر lwait منتظر آماده شدن فریم‌های ویدیو می‌ماند. پس از این زمان انتظار، در صورتی که ورودی در دسترس نباشد، فیلتر متوقف خواهد شد.
این بدان معناست که همیشه باید رسانه‌ای برای ترکیب‌بندی وجود داشته باشد، یعنی هیچ شکافی در خط زمانی نباشد.
نکته: لیست پخش همچنان در حالت آفلاین تازه‌سازی می‌شود.

هنگام کار در حالت زنده، میکسر در ابتدا به مدت lwait ثانیه منتظر آماده شدن فریم‌های ویدیو می‌ماند. پس از این زمان انتظار اولیه، فریم‌های خروجی موارد زیر را نشان خواهند داد:
- عبارت 'No signal' در صورتی که هیچ ورودی‌ای در دسترس نباشد (فریم منبعی وجود نداشته باشد) یا صحنه‌ای تعریف نشده باشد
- عبارت 'Signal lost' در صورتی که داده ورودی جدیدی به مدت lwait روی یک منبع دریافت نشده باشد

اجزای اصلی در یک لیست پخش عبارتند از:
* منابع رسانه و دنباله‌ها: هر منبع توسط یک یا چند URL به داده‌های رسانه توصیف می‌شود، و هر دنباله مجموعه‌ای از منابع است که باید به‌طور پیوسته پخش شوند
* انتقال‌ها: منابع در یک دنباله را می‌توان با استفاده از انتقال‌ها (transitions) ترکیب کرد
* صحنه‌ها: یک صحنه یک شیء گرافیکی را برای قرار دادن روی صفحه توصیف می‌کند و مشخص می‌سازد که آیا و چگونه ویدیوهای ورودی روی اشیاء نگاشت شوند
* گروه‌ها: یک گروه، سلسله‌مراتبی از صحنه‌ها و گروه‌ها با ویژگی‌های موقعیت‌یابی است، و همچنین می‌تواند برای ایجاد تصاویر خارج از صفحه (offscreen) که توسط سایر عناصر بازاستفاده می‌شوند، به کار رود
* زمان‌سنج‌ها: یک زمان‌سنج (timer) می‌تواند برای متحرک‌سازی پارامترهای صحنه به روش‌های مختلف استفاده شود

محتوای لیست پخش باید یک شیء منفرد JSON یا آرایه‌ای از اشیاء JSON باشد که از این پس اشیاء ریشه (root objects) نامیده می‌شوند.
نوع اشیاء ریشه را می‌توان از طریق یک ویژگی type مشخص کرد:
* seq: یک شیء دنباله
* url: یک شیء منبع (در صورت استفاده به عنوان ریشه، یک شیء دنباله پیش‌فرض ایجاد خواهد شد)
* scene: یک شیء صحنه
* group: یک شیء گروه
* timer: یک شیء زمان‌سنج
* script: یک شیء اسکریپت
* config: یک شیء پیکربندی
* watch: یک شیء ناظر
* style: یک شیء استایل

به جز style، ویژگی type در اشیاء ریشه معمولاً مورد نیاز نیست، زیرا تجزیه‌کننده نوع شیء را از روی ویژگی‌های آن حدس می‌زند.

یک شیء ریشه با ویژگی skip که مقداری به جز 0 یا false داشته باشد، نادیده گرفته می‌شود.
در یک سلسله‌مراتب گروه، هر شیء صحنه یا گروهی با ویژگی skip تنظیم‌شده روی مقداری به جز 0 یا false نادیده گرفته می‌شود.

هر ویژگی ناشناخته‌ای که با _ شروع نشود به عنوان یک هشدار گزارش خواهد شد.

رنگ‌ها به عنوان رشته مدیریت شده و به این صورت‌ها قالب‌بندی می‌شوند:
- نام رنگ DOM (دستور gpac -h colors را ببینید)
- کدهای HTML به صورت $RRGGBB یا #RRGGBB
- مقادیر هگزادسیمال RGB به صورت 0xRRGGBB
- مقادیر هگزادسیمال RGBA به صورت 0xAARRGGBB
- رنگ none برابر است با 0x00000000، و مفهوم آن بستگی به شیء استفاده‌کننده از آن دارد.

اگر کد JS نیاز به دستکاری رنگ‌ها داشته باشد، از توابع sys.color_lerp و sys.color_component استفاده کنید.

برخی از انواع اشیاء امکان اجرای کد JS سفارشی را فراهم می‌کنند.
کد اسکریپت می‌تواند مقدار مشخصه (property) باشد، یا در فایلی قرار داشته باشد که در مشخصه معین شده است.
این کد هنگام تجزیه اولیه لیست پخش یا بارگذاری مجدد به یک تابع (یعنی new Function(args, js_code)) تبدیل می‌شود، که از این پس JSFun نامیده می‌شود.
آرگومان‌ها و مقدار بازگشتی JSFun به نوع شیء والد بستگی دارند.
شیء والد به عنوان this در JSFun در دسترس قرار می‌گیرد و می‌توان از آن برای ذخیره اطلاعات زمینه (context) برای کد JS استفاده کرد.

کد می‌تواند از توابع و ماژول‌های سراسری تعریف‌شده استفاده کند، به ویژه:
* sys: ماژول سیستم GPAC
* evg: ماژول EVG مربوط به GPAC
* os: ماژول OS مربوط به QuickJS
* video_playing: وضعیت پخش ویدیو
* audio_playing: وضعیت پخش صوت
* video_time: زمان ویدیوی خروجی
* video_timescale: مقیاس زمانی (timescale) ویدیوی خروجی
* video_width: عرض ویدیوی خروجی
* video_height: ارتفاع ویدیوی خروجی
* audio_time: زمان صوت خروجی
* audio_timescale: مقیاس زمانی (timescale) صوت خروجی
* samplerate: نرخ نمونه‌برداری (samplerate) صوت خروجی
* channels: کانال‌های صوت خروجی
* current_utc_clock: ساعت UTC کنونی بر حسب میلی‌ثانیه
* get_media_time: زمان رسانه‌ای خروجی (بدون آرگومان) یا منبعی با شناسه‌ای منطبق با آرگومان اول را دریافت می‌کند. مقادیر بازگشتی:
* -4: یافت نشد
* -3: در حال پخش نیست
* -2: در وضعیت پیش‌واکشی (prefetch)
* -1: زمان‌بندی هنوز مشخص نیست
* value: زمان رسانه بر حسب ثانیه (float)
* resolve_url: نشانی اینترنتی (URL) داده‌شده در آرگومان اول را نسبت به URL لیست پخش رسانه تحلیل (resolve) کرده و url تحلیل‌شده را بازمی‌گرداند (string)
* get_scene(id): صحنه با شناسه داده‌شده را دریافت می‌کند
* get_group(id): گروه با شناسه داده‌شده را دریافت می‌کند
* mouse_over(evt): صحنه زیر موشواره را که توسط یک رویداد GPAC توصیف شده، یا در صورت نبود صحنه null را بازمی‌گرداند (انتخاب شیء برای صحنه‌های دارای تصویرسازی پرسپکتیو پشتیبانی نمی‌شود)
* mouse_over(x, y): صحنه را در مختصات {x, y} بر حسب پیکسل بازمی‌گرداند؛ {0,0} نمایانگر مرکز فریم بوده، محور x به سمت راست و محور y به سمت بالا جهت‌گیری دارد

گزینه‌های صحنه و گروه باید از طریق دریافت‌کننده‌ها (getters) و تنظیم‌کننده‌ها (setters) مورد دسترسی قرار گیرند:
* scene.get(prop_name): گزینه صحنه را دریافت می‌کند
* scene.set(prop_name, value): گزینه صحنه را مقداردهی می‌کند
* group.get(prop_name): گزینه گروه را دریافت می‌کند
* group.set(prop_name, value): گزینه گروه را مقداردهی می‌کند

هشدار: اگر کد JS اشیاء صحنه/گروه را به هر شیوه دیگری تغییر دهد، نتایج تعریف‌نشده خواهد بود.

سایر اشیاء لیست پخش (و همچنین اشیاء صحنه و گروه) را می‌توان با استفاده از query_element(ID, propName) استعلام کرد یا با استفاده از update_element(ID, propName, value) تغییر داد (به به‌روزرسانی لیست پخش در ادامه نگاه کنید).

هشدار: هیچ محافظتی از متغیرها و وضعیت سراسری وجود ندارد، اسکریپت خود را با دقت بنویسید!

علاوه بر این، اسکریپت‌های اجراشده در ماژول‌های صحنه می‌توانند لیست پخش داخلی را با استفاده از توابع زیر تغییر دهند:
* remove_element(ID): یک صحنه، گروه، توالی (sequence)، زمان‌سنج (timer)، اسکریپت یا دیده‌بان (watcher) با شناسه داده‌شده را از لیست پخش حذف می‌کند
* parse_element(JSON): یک عنصر ریشه لیست پخش را تجزیه کرده و آن را به لیست پخش جاری اضافه می‌کند
* parse_scene(JSON, parent): یک صحنه را تجزیه کرده و در صورت عدم مقدار null آن را به گروه والد، و در غیر این صورت به ریشه اضافه می‌کند
* parse_group(JSON, parent): یک گروه را تجزیه کرده و در صورت عدم مقدار null آن را به گروه والد، و در غیر این صورت به ریشه اضافه می‌کند
* reload_playlist(JSON): یک لیست پخش جدید را تجزیه می‌کند (یک آرایه خالی JSON لیست پخش را بازنشانی می‌کند). اگر صحنه فراخواننده دیگر در درخت صحنه حاصل موجود نباشد، به ریشه درخت صحنه اضافه خواهد شد.

تمام این توابع مرتبط با لیست پخش باید در بازفراخوانی (callback) تابع update() ماژول صحنه فراخوانی شوند.

ویژگی‌های شیءهای sequence:
* id (null): شناسهٔ sequence
* loop (0): تعداد تکرارهای sequence (مقدار 0 یعنی بدون تکرار، -1 تا ابد تکرار می‌شود)
* start (0): زمان شروع sequence (نکات را ببینید). اگر منفی باشد، sequence فعال نیست
* stop (0): زمان توقف sequence (نکات را ببینید). اگر کمتر از start باشد، sequence تنها زمانی متوقف می‌شود که به پایان برسد
* transition (null): یک شیء گذار (transition) جهت اعمال بین منابع sequence
* seq ([]): آرایه‌ای از یک یا چند شیء source

نکات
زمان‌بندی منبع رسانه به استفاده شدن یا نشدن رسانه توسط یک صحنه (scene) بستگی ندارد، بلکه تنها توسط پارامترهای sequence تعیین می‌شود.
این بدان معناست که یک sequence که توسط هیچ صحنهٔ فعالی استفاده نشود، رندر نخواهد شد (نه ویدیو و نه صدا).

نحو فیلدهای start و stop عبارت است از:
* `now`: در حالت live به ساعت جاری UTC و در حالت غیر live به 0 تبدیل می‌شود
* date: در حالت live به تاریخ UTC و در حالت غیر live به 0 تبدیل می‌شود
* N: به ساعت جاری utc (یا 0 برای حالت غیر live) به علاوهٔ N ثانیه UTC تبدیل می‌شود
* "N": به ساعت جاری utc (یا 0 برای حالت غیر live) به علاوهٔ N ثانیه UTC تبدیل می‌شود

در حالت 'live'، اگر start با استفاده از یک تاریخ UTC تنظیم شود، sequence بازهٔ شروعی برابر با MAX(current_UTC - start_in_UTC, 0) خواهد داشت. ممکن است برخی از منابع برای برآورده کردن این شرط نادیده گرفته شوند.
این قابلیت به نمونه‌های مختلف فیلتر که از یک playlist یکسان استفاده می‌کنند اجازه می‌دهد تا زمان رسانه را به شیوه‌ای مشابه مقداردهی اولیه کنند.

هنگام بارگذاری مجدد playlist:
- اگر sequence فعال باشد، مقدار start نادیده گرفته می‌شود
- اگر sequence شروع نشده باشد، مقدار start به‌روزرسانی می‌شود
- اگر sequence به پایان رسیده باشد، مقدار start تنها در صورتی به‌روزرسانی می‌شود که از زمان شروع UTC محاسبه‌شدهٔ قبلی بزرگتر باشد.

ویژگی‌های شیءهای source
* id (null): شناسهٔ منبع، مورد استفاده هنگام بارگذاری مجدد playlist
* src ([]): فهرستی از sourceURL که نشانی‌های URL برای پخش را توصیف می‌کند. چندین منبع به طور هم‌زمان پخش خواهند شد
* start (0.0): زمان شروع رسانه در منبع
* stop (0.0): زمان توقف رسانه در منبع، اگر کمتر یا مساوی با start باشد نادیده گرفته می‌شود
* mix (true): اگر true باشد، گذار sequence یا نسبت جلوهٔ میکس را به عنوان حجم صدای صوتی اعمال می‌کند. در غیر این صورت، حجم صدا توسط گذارها تغییر نمی‌کند.
* fade ('inout'): نحوهٔ محو شدن صدا (fade) در شروع/پایان جریان را مشخص می‌کند:
* in: محو شدن تدریجی صدا به درون (fade-in) هنگام پخش فریم اول
* out: محو شدن تدریجی صدا به بیرون (fade-out) هنگام پخش فریم آخر
* inout: هر دو fade-in و fade-out فعال هستند
* other: بدون هیچ‌گونه fade در صدا
* keep_alive (false): در صورت استفاده از یک فرایند اختصاصی gpac برای یک یا چند ورودی، در پایان منبع اگر کد خروج بزرگتر از 2 باشد یا پس از rtimeout پاسخی دریافت نشود، فرایند(ها) مجدداً راه‌اندازی می‌شوند
* seek (false): اگر true باشد و keep_alive فعال باشد، هنگام اجرای مجدد فرایند(ها)، مقدار start را بر اساس زمان سپری‌شده از شروع منبع تنظیم می‌کند
* prefetch (500): مدت‌زمان پیش‌واکشی (prefetch) بر حسب میلی‌ثانیه (پخش قبل از زمان شروع منبع)، مقدار 0 برای عدم انجام پیش‌واکشی
* hold (false): اگر مدت‌زمان رسانه مشخص باشد و زمان توقف رسانه بزرگتر از مدت‌زمان رسانه باشد، تا رسیدن به زمان توقف مورد نظر حالت بدون سیگنال (no signal) را فعال می‌کند (غیرفعال کردن گذار)، در غیر این صورت در پایان جریان به منبع بعدی می‌رود

ویژگی‌های شیءهای sourceURL
* id (null): شناسهٔ URL منبع، مورد استفاده هنگام بارگذاری مجدد playlist
* in (null): نشانی URL ورودی یا زنجیرهٔ فیلتر برای بارگذاری به عنوان رشته متن. کلماتی که با - شروع می‌شوند نادیده گرفته می‌شوند. اولین ورودی باید یک URL منبع را مشخص کند، و فیلترها و پیوندهای اضافی را می‌توان با استفاده از نحو @N[#LINKOPT] و @@N[#LINKOPT]، مانند gpac مشخص کرد
* port (null): درگاه ورودی (port) برای منبع. مقادیر ممکن عبارتند از:
* pipe: اجرای یک فرایند gpac برای پخش منبع با استفاده از قالب GSF بر روی pipe
* tcp, tcpu: اجرای یک فرایند gpac برای پخش منبع با استفاده از قالب GSF بر روی سوکت TCP‏ (tcp) یا سوکت دامنه یونیکس TCP‏ (tcpu)
* مشخص‌نشده یا رشتهٔ خالی: منبع را با استفاده از فرایند جاری بارگذاری می‌کند
* other: استفاده از مقدار به عنوان اعلان فیلتر ورودی و اجرای in به عنوان یک فرایند اختصاصی (مانند in="ffmpeg ..." port="pipe://...")
* opts (null): گزینه‌های نمونه فرایند gpac در صورت استفاده از یک فرایند اختصاصی gpac، در غیر این صورت نادیده گرفته می‌شود
* media ('all'): پالایش رسانه ورودی بر اساس نوع، a برای صدا، v برای ویدیو، t برای متن (استفاده از چند نویسه مجاز است، مانند av یا va)، مقدار all همه رسانه‌های ورودی را می‌پذیرد
* raw (true): مشخص می‌کند که آیا درگاه ورودی، AV رمزگشایی‌شده (true) است یا AV فشرده‌شده (false) هنگام استفاده از یک فرایند اختصاصی gpac، در غیر این صورت نادیده گرفته می‌شود

نکات
طرح نشانی ویژهٔ ipid:// می‌تواند برای مکان‌یابی یک pid ورودی از طریق دستورالعمل‌های پیوند استفاده شود.
مثال
in=ipid://#foo=bar

این دستور بدون در نظر گرفتن شناسهٔ فیلتر منبع، از pidهایی که دارای ویژگی foo با مقدار bar هستند استفاده خواهد کرد.

مثال
in=ipid://TEST#foo=bar

این دستور از pidهایی استفاده می‌کند که دارای ویژگی foo با مقدار bar بوده و از فیلتری با شناسهٔ TEST می‌آیند.

هنگام استفاده از طرح ipid://، نمی‌توان زنجیره‌های فیلتر را مشخص کرد (in تنها یک آرگومان می‌پذیرد) و port نادیده گرفته می‌شود.
نحو دستورالعمل پیوند همانند gpac است. با این حال، اگر ویژگی ذکرشده در pid ورودی یافت نشود، تطابق ناموفق خواهد بود.

هنگام راه‌اندازی یک فرایند فرزند، ابتدا فیلتر ورودی ایجاد شده و فرایند فرزند پس از آن راه‌اندازی می‌شود.

هشدار: هنگام راه‌اندازی مستقیم یک فرایند فرزند (مانند in="ffmpeg ...")، هر URL نسبی استفاده‌شده در in باید نسبت به دایرکتوری کاری جاری باشد.

ویژگی‌های مشترک برای اشیاء گروه و صحنه
* active (true): نشان می‌دهد که آیا شیء فعال است یا خیر. یک شیء غیرفعال نه بازآوری (refresh) و نه رندر خواهد شد
* x (0): انتقال افقی
* y (0): انتقال عمودی
* cx (0): مختصات افقی مرکز چرخش
* cy (0): مختصات عمودی مرکز چرخش
* units ('rel'): نوع واحد برای x، y، cx، cy، width و height. مقادیر ممکن عبارتند از:
* rel: واحدها بر حسب درصد مرجع فعلی بیان می‌شوند (پایین را ببینید)
* pix: واحدها بر حسب پیکسل بیان می‌شوند
* rotation (0): زاویه چرخش صحنه به درجه
* hscale (1): ضریب مقیاس‌گذاری افقی برای اعمال به گروه
* vscale (1): ضریب اریب‌سازی عمودی برای اعمال به صحنه
* hskew (0): ضریب اریب‌سازی افقی برای اعمال به صحنه
* vskew (0): ضریب اریب‌سازی عمودی برای اعمال به صحنه
* zorder (0): ترتیب نمایش صحنه یا گروه خارج از صفحه (offscreen) (برای گروه‌های عادی نادیده گرفته می‌شود)
* untransform (false): اگر true باشد، ماتریس درخت والد را پیش از محاسبه ماتریس به ماتریس همانی (identity) بازنشانی می‌کند
* mxjs (null): کد JS برای محاسبه ماتریس
* z (0): انتقال عمق
* cz (0): مختصات عمق مرکز چرخش
* zscale (1): ضریب مقیاس‌گذاری عمق برای اعمال به گروه
* orientation ([0, 0, 1, 0]): مقیاس‌گذاری در امتداد محور جهت‌گیری داده‌شده [x, y, z, angle] - به VRML scaleOrientation مراجعه کنید
* axis ([0, 0, 1]): محور چرخش
* position ([0, 0, auto]): موقعیت دوربین
* target ([0, 0, 0]): نقطه‌ای که دوربین به آن نگاه می‌کند
* up ([0, 1, 0]): بردار جهت بالای دوربین (camera up vector)
* viewport ([0, 0, 100, 100]): درگاه دید (viewport) برای دوربین
* fov (45): میدان دید به درجه
* ar (0): نسبت ابعاد دوربین، 0 به معنای پیش‌فرض است
* znear (0): فاصله صفحه Z نزدیک، 0 به معنای پیش‌فرض است
* zfar (0): فاصله صفحه Z دور، 0 به معنای پیش‌فرض است

دستگاه مختصات (Coordinate System)
هر گروه یا صحنه در یک دستگاه مختصات محلی مشخص می‌شود که در آن:
- مقدار {0,0} بیانگر مرکز است
- مقادیر X به سمت راست افزایش می‌یابند
- مقادیر Y به سمت بالا افزایش می‌یابند
- مقادیر Z به سمت چشم بیننده افزایش می‌یابند (Z=X^Y)

ماتریس تبدیل محلی ۲بعدی به این صورت محاسبه می‌شود: rotate(cx, cy, rotation) * hskew * vskew * scale(hscale, vscale) * translate(x, y).
ماتریس تبدیل محلی ۳بعدی به این صورت محاسبه می‌شود: translate(x, y, z) * rotate(cx, cy, cz, rotation) * scale(hscale, vscale, zscale). اریب‌سازی (Skewing) برای ۳بعدی پشتیبانی نمی‌شود.

دستگاه واحد پیش‌فرض (rel) نسبت به فضای مرجع تعیین‌شده فعلی است:
- به‌طور پیش‌فرض، فضای مرجع {output_width, output_height} است که مبدأ {0,0} مرکز فریم خروجی خواهد بود
- هر گروه با reference=true، width>0 و height>0 یک فضای مرجع جدید {group.width, group.height} ایجاد می‌کند

درون یک فضای مرجع R، مختصات نسبی به صورت زیر تفسیر می‌شوند:
- برای مختصات افقی، 0 به معنای مرکز، -50 به معنای لبه چپ (-R.width/2)، و 50 به معنای لبه راست (+R.width/2) است.
- برای مختصات عمودی، 0 به معنای مرکز، -50 به معنای لبه پایین (-R.height/2)، و 50 به معنای لبه بالا (+R.height/2) است.
- برای width، مقدار 100 به معنای R.width است.
- برای height، مقدار 100 به معنای R.height است.
- برای مختصات عمق (z و cz)، مقدار بر حسب درصدی از ارتفاع مرجع (+R.height) است.

اگر width=height باشد، width برابر با ارتفاع محاسبه‌شده شیء تنظیم می‌شود.
اگر height=width باشد، height برابر با عرض محاسبه‌شده شیء تنظیم می‌شود.
برای ویژگی x، مقادیر ویژه زیر تعریف شده‌اند:
- مقدار y این مقدار را برابر با y محاسبه‌شده شیء قرار می‌دهد.
- مقدار -y این مقدار را برابر با -y محاسبه‌شده شیء قرار می‌دهد.
برای ویژگی y، مقادیر ویژه زیر تعریف شده‌اند:
- مقدار x این مقدار را برابر با x محاسبه‌شده شیء قرار می‌دهد.
- مقدار -x این مقدار را برابر با -x محاسبه‌شده شیء قرار می‌دهد.

تغییر مرجع معمولاً هنگام ایجاد گروه‌های خارج از صفحه (offscreen) لازم است، به طوری که مختصات نسبی فرزندان بر اساس اندازه بوم (canvas) خارج از صفحه محاسبه و حل شوند.

انتخاب میان ۲بعدی و ۳بعدی به‌طور خودکار بر اساس مقادیر z، cz، axis و orientation انجام می‌شود.
تصویرسازی (projection) پیش‌فرض عبارت است از:
- درگاه دید (viewport) کل فریم خروجی است
- میدان دید برابر با PI/4 و نسبت ابعاد برابر با width/height خروجی است
- مقدار zNear برابر 0.1 و zFar برابر با ۱۰ برابر maximum(output width, output height) است
- جهت بالای دوربین محور Y است و فاصله دوربین به‌گونه‌ای است که یک مستطیل رو به دوربین با z=0 و اندازه‌ای برابر با اندازه خروجی، دقیقاً فریم خروجی را پوشش می‌دهد.
- بافر عمق (depth buffer) غیرفعال است

تصویرسازی پیش‌فرض را می‌توان با تنظیم ویژگی‌های دوربین در سطح گروه یا صحنه تغییر داد. هنگامی که روی یک گروه تنظیم شود، تمام فرزندان آن گروه از ویژگی‌های دوربین داده‌شده استفاده خواهند کرد (پارامترهای دوربین روی فرزندان نادیده گرفته می‌شوند).
پارامتر viewport به صورت یک آرایه [x, y, w, h] مشخص می‌شود که در آن:
* x: مختصات افقی مرکز درگاه دید، بر حسب واحدهای گروه یا صحنه، یا 'y' برای استفاده از مقدار y، یا '-y' برای استفاده از مقدار -y.
* y: مختصات عمودی مرکز درگاه دید، بر حسب واحدهای گروه یا صحنه، یا 'x' برای استفاده از مقدار x، یا '-x' برای استفاده از مقدار -x.
* w: عرض درگاه دید، بر حسب واحدهای گروه یا صحنه، یا 'height' برای استفاده از مقدار h.
* h: ارتفاع درگاه دید، بر حسب واحدهای گروه یا صحنه، یا 'width' برای استفاده از مقدار w.

ترتیب نمایش (z-ordering)
مقدار zorder ترتیب نمایش عنصر را در بوم خارج از صفحه (offscreen canvas) مربوط به گروه خارج از صفحه دربرگیرنده، یا در صورت نبود گروه خارج از صفحه در درخت والد، روی فریم خروجی مشخص می‌کند.
این ترتیب مستقل از z-ordering گروه والد است. این قابلیت امکان جابجایی اشیاء یک گروه را در پشته نمایش به بالا و پایین، بدون تغییر دادن گروه‌ها، فراهم می‌کند.

تغییر مختصات از طریق JS
تابع JSFun مشخص‌شده در mxjs دارای یک پارامتر منفرد tr است.

پارامتر tr شیئی است شامل متغیرهای زیر که کد می‌تواند آنها را تغییر دهد:
* x، y، z، cx، cy، cz، hscale، vscale، zscale، hskew، vskew، rotation، untransform، axis، orientation: این مقادیر با مقادیر فعلی گروه در واحدهای دستگاه مختصات محلی مقداردهی اولیه می‌شوند
* update: اگر روی true تنظیم شود، ماتریس شیء در هر فریم دوباره محاسبه می‌شود حتی اگر تغییری در پارامترهای گروه یا صحنه رخ نداده باشد (اگر use تنظیم شده باشد، همیشه به صورت اجباری روی true خواهد بود)
* depth: برای گروه‌های دارای use، سطح بازگشت (recursion level) عنصر استفاده‌شده را مشخص می‌کند. مقدار 0 نشان‌دهنده رندر مستقیم عنصر است، در غیر این صورت یک رندر از طریق use خواهد بود

تابع JSFun ممکن است مقدار false را برگرداند تا نشان دهد صحنه باید غیرفعال در نظر گرفته شود. هر مقدار بازگشتی دیگری (undefined یا غیر false) صحنه را به عنوان فعال علامت‌گذاری می‌کند.

مثال
"mxjs": "tr.rotation = (get_media_time() % 8) * 360 / 8; tr.update=true;"

ویژگی‌های اشیاء گروه (group)
* id (null): شناسهٔ گروه
* scenes ([]): صفر یا چند شیء گروه یا صحنه (scene)؛ پویانمایی یا به‌روزرسانی آن ممکن نیست
* opacity (1): میزان کدر بودن (شفافیت) گروه
* offscreen ('none'): قرار دادن گروه در حالت خارج از صفحه (offscreen)؛ پویانمایی یا به‌روزرسانی آن ممکن نیست. حالت offscreen به‌طور مستقیم دیده نمی‌شود اما می‌تواند در برخی عملیات‌های بافت (texture) استفاده شود. مقادیر ممکن عبارتند از:
* none: گروه معمولی
* mask: سطح offscreen از نوع alpha+grey است
* color: سطح offscreen از نوع alpha+colors است، یا در صورت تنظیم back_color از نوع colors
* dual: همانند color اما اجازه می‌دهد گروه نمایش داده شود
* scaler (1): هنگام استفاده از opacity یا رندرینگ offscreen، اندازهٔ بوم (canvas) خارج از صفحه بر این ضریب (>=1) تقسیم می‌شود
* back_color ('none'): هنگام استفاده از opacity یا رندرینگ offscreen، بوم خارج از صفحه را با رنگ داده‌شده پر می‌کند.
* width (-1): هنگام استفاده از opacity یا رندرینگ offscreen، عرض offscreen را به مقدار داده‌شده محدود می‌کند (پایین‌تر را ببینید)
* height (-1): هنگام استفاده از opacity یا رندرینگ offscreen، ارتفاع offscreen را به مقدار داده‌شده محدود می‌کند (پایین‌تر را ببینید)
* use (null): شناسهٔ گروه یا صحنه برای استفادهٔ مجدد
* use_depth (-1): تعداد دفعات بازگشت (تکرار) مجاز برای عنصر استفاده‌شده؛ مقدار منفی به معنی حداکثر عمق سراسری شاخه است که توسط maxdepth مشخص می‌شود
* reverse (false): معکوس کردن ترتیب صحنه‌ها پیش از رسم
* reference (false): گروه، یک فضای مرجع برای مختصات نسبی گره‌های فرزند است

نکات
حداکثر عمق یک شاخه در نمودار صحنه (scene graph)، مقدار maxdepth است (پیمایش پس از این حد متوقف می‌شود).

در حالت offscreen، مرزهای اشیاء محصور محاسبه می‌شوند تا سطح offscreen تخصیص یابد، مگر آنکه هر دو مقدار width و height بزرگتر یا مساوی با 0 باشند.
اجبار اندازهٔ offscreen هنگام تولید بافت‌ها برای جلوه‌های بعدی مفید است.

رندرینگ offscreen همواره به صورت نرم‌افزاری انجام می‌شود.

هنگام اجبار scaler>1 روی گروهی با opacity==1، رندرینگ offscreen استفاده شده و scaler اعمال خواهد شد.

هنگام اجبار width و height روی گروهی با opacity<1، در صورتی که اشیاء فرزند خارج از مرزهای بوم offscreen باشند، ممکن است نمایش بریده (truncate) شود.

ویژگی‌های اشیاء صحنه (scene)
* id (null): شناسهٔ صحنه
* js ('shape'): نوع صحنه، چه builtin (پایین‌تر را ببینید) یا مسیر یک ماژول JS؛ پویانمایی یا به‌روزرسانی آن ممکن نیست
* sources ([]): فهرست شناسه‌های دنباله‌ها (sequences) یا گروه‌های offscreen استفاده‌شده توسط این صحنه
* width (-1): عرض صحنه، -1 به معنی عرض فضای مرجع است
* height (-1): ارتفاع صحنه، -1 به معنی ارتفاع فضای مرجع است
* mix (null): یک شیء گذار (transition) برای اعمال در صورتی که بیش از یک منبع تنظیم شده باشد، در غیر این صورت نادیده گرفته می‌شود
* mix_ratio (-1): نسبت ترکیب برای جلوهٔ گذار، <=0 فقط به معنی منبع اول، >=1 فقط به معنی منبع دوم
* volume (1.0): بلندی صدا (0: سکوت، 1: بلندی صدای ورودی)، این مقدار توسط mixer محدود نمی‌شود.
* fade ('inout'): مشخص می‌کند که صدا هنگام فعال/غیرفعال شدن صحنه چگونه باید محو (fade) شود:
* in: محوشدگی تدریجی به داخل (fade-in) صدا هنگام پخش نخستین فریم پس از فعال‌سازی صحنه
* out: محوشدگی تدریجی به خارج (fade-out) صدا هنگام پخش آخرین فریم در فعال‌سازی صحنه
* inout: هر دو حالت fade-in و fade-out فعال هستند
* other: بدون محوشدگی صدا
* autoshow (true): غیرفعال‌سازی خودکار صحنه هنگامی که دنباله‌های تنظیم‌شده در sources فعال نیستند
* nosig ('lost'): فعال کردن پیام no-signal برای صحنه‌هایی که از دنباله‌ها استفاده می‌کنند:
* no: غیرفعال کردن پیام
* lost: نمایش پیام هنگام قطع سیگنال
* before: نمایش پیام اگر منبع هنوز فعال نشده باشد
* all: نمایش همیشگی پیام اگر منبع غیرفعال باشد
* styles ([]): فهرست شناسه‌های استایل (style ID) برای استفاده
- هر ویژگی دیگری که توسط ماژول JS صحنهٔ زیربنایی ارائه شده باشد.

نکات
ورودی‌های یک صحنه، چه sequence باشد چه گروه offscreen، باید پیش از خودِ صحنه اعلان شده باشند.

در صورت پیدا نشدن هیچ صحنه‌ای هنگام بارگذاری اولیهٔ playlist، یک صحنهٔ پیش‌فرض تزریق خواهد شد. اگر نیاز دارید با یک خروجی خالی شروع کنید، از صحنه‌ای بدون sequence مرتبط استفاده کنید.

اگر یک صحنه از یک یا چند sequence استفاده کند و autoshow تنظیم نشده باشد، در صورتی که همهٔ دنباله‌ها غیرفعال باشند (هنوز آغاز نشده یا به پایان رسیده باشند)، صحنه بدون هیچ دنبالهٔ پیوست‌شده‌ای رسم خواهد شد.

نحو JSON
ویژگی‌های اشیاء transition:
* id (null): شناسه‌ی گذار
* type: نوع گذار، توکار (builtin، زیر را ببینید) یا مسیری به یک ماژول JS
* dur: مدت‌زمان گذار (گذارها همیشه در زمان توقف منبع خاتمه می‌یابند). در صورتی که گذار برای یک scene mix مشخص شده باشد نادیده گرفته می‌شود.
* fun (null): کد JS که اثر ضریب (ratio) را تغییر می‌دهد
- هر ویژگی دیگری که توسط ماژول گذار زیربنایی ارائه شده باشد.

نکات
توالی دو رسانه با مدت‌زمان پخش (همان‌طور که در منبع مشخص شده) D1 و D2 با استفاده از گذاری با مدت‌زمان DT منجر به توالی با مدت‌زمان D1 + D2 - DT خواهد شد.

تابع JSFun مشخص‌شده با fun یک آرگومان ratio می‌پذیرد و باید مقدار بازتخمین‌زده‌شده‌ی ratio را برگرداند.

مثال
"fun": "return ratio*ratio;"

ویژگی‌های اشیاء timer
* id (null): شناسه‌ی زمان‌سنج
* dur (0): مدت‌زمان زمان‌سنج بر حسب ثانیه
* loop (false): تکرار حلقه‌ای زمان‌سنج وقتی stop تنظیم نشده باشد
* pause (false): توقف موقت زمان‌سنج
* start (-1): زمان شروع (نکات را ببینید)، مقدار منفی به معنی غیرفعال بودن است
* stop (-1): زمان توقف (نکات را ببینید)، در صورتی که کمتر از start باشد نادیده گرفته می‌شود
* keys ([]): فهرست کلیدهای مورد استفاده برای درون‌یابی، فهرستی مرتب میان 0.0 و 1.0
* anims ([]): فهرست اشیاء animation

ویژگی‌های اشیاء animation
* values ([]): فهرست مقادیر برای درون‌یابی، باید به همان تعداد کلیدها مقدار وجود داشته باشد
* color (false): نشان‌دهنده‌ی رنگ بودن مقادیر (به صورت رشته)
* angle (false): نشان‌دهنده‌ی این که ضریب درون‌یابی زاویه‌ای بر حسب درجه است، تا پیش از درون‌یابی به رادیان تبدیل شود (نسبت درون‌یابی ضرب‌در PI و تقسیم بر 180)
* mode ('linear') : حالت درون‌یابی:
* linear: درون‌یابی خطی میان مقادیر
* discrete: عدم انجام درون‌یابی
* other: کد JS که نسبت درون‌یابی را تغییر می‌دهد
* postfun (null): کد JS که نتیجه‌ی درون‌یابی را تغییر می‌دهد
* end ('freeze'): رفتار در پایان پویانمایی:
* freeze: نگه‌داشتن آخرین مقادیر پویانمایی‌شده
* restore: بازگرداندن اهداف به مقادیر اولیه‌شان
* targets ([]): فهرستی از رشته‌ها که ویژگی‌های هدف را برای اصلاح مشخص می‌کنند. نحو عبارت است از:
* ID@option: ویژگی option از شیء با ID داده‌شده را تغییر می‌دهد
* ID@option[IDX]: مقدار در نمایه‌ی IDX از آرایه‌ی ویژگی option از شیء با ID داده‌شده را تغییر می‌دهد

نکات
در حال حاضر، تنها اشیاء scene، group، transition و script را می‌توان از طریق زمان‌سنج‌ها تغییر داد (به‌روزرسانی‌های playlist را ببینید).

نحو برای فیلدهای start و stop عبارت است از:
* `now`: در حالت زنده به ساعت کنونی UTC، و برای حالت غیرزنده به 0 ارزیابی می‌شود
* date: در حالت زنده به تاریخ UTC، و برای حالت غیرزنده به 0 تبدیل می‌شود
* N: برای اشیاء timer به ساعت UTC هنگام راه‌اندازی به‌علاوه‌ی N ثانیه تبدیل می‌شود (آفست مطلق از راه‌اندازی خط زمانی)
* "N": به ساعت کنونی UTC به‌علاوه‌ی N ثانیه تبدیل می‌شود (آفست نسبی از زمان کنونی) که در آن N عددی مثبت یا منفی است

تابع JSFun مشخص‌شده با mode دارای یک پارامتر ورودی interp برابر با ضریب درون‌یابی است و باید ضریب درون‌یابی جدید را برگرداند.
مثال
"mode":"return interp*interp;"

تابع JSFun مشخص‌شده با postfun دارای دو پارامتر ورودی res (نتیجه‌ی فعلی درون‌یابی) و interp (ضریب درون‌یابی) است، و باید مقدار درون‌یابی‌شده‌ی جدید را برگرداند.
مثال
"postfun": "if (interp<0.5) return res*res; return res;"

ویژگی‌های اشیاء اسکریپت (script)
* id (null): شناسه اسکریپت
* script (null): کد JavaScript یا مسیر فایل JavaScript برای اجرا؛ نمی‌تواند پویانمایی یا به‌روزرسانی شود
* active (true): مشخص می‌کند که آیا اسکریپت فعال است یا خیر

نکات

اشیاء اسکریپت امکان دسترسی خواندن و نوشتن به فهرست‌پخش (playlist) را از طریق اسکریپت فراهم می‌کنند. آن‌ها در حال حاضر تنها می‌توانند برای تغییر صحنه‌ها و گروه‌ها و فعال/غیرفعال کردن سایر اسکریپت‌ها استفاده شوند.

تابع JSFun مشخص‌شده توسط fun هیچ پارامتر ورودی ندارد. مقدار بازگشتی (پیش‌فرض 0) تعداد ثانیه‌هایی (float) است که باید تا ارزیابی بعدی اسکریپت منتظر ماند.

مثال
{ "script": "let s=get_scene('s1'); let rot = s.get('rotation'); rot += 10; s.set('rotation', rot); return 2;" }

این دستور چرخش صحنه s1 را هر ۲ ثانیه یک‌بار تغییر می‌دهد

ویژگی‌های اشیاء ناظر (watcher)
* id (null): شناسه ناظر
* active (true): مشخص می‌کند که آیا ناظر فعال است یا خیر
* watch (""): عنصر تحت نظارت، در قالب ID@prop، که در آن ID شناسه عنصر و prop نام ویژگی مورد نظارت است
* target (""): کنش برای ناظر. نحوهای مجاز عبارتند از:
* `ID@prop`، `ID@prop[idx]`: رونوشت مقدار به ویژگی prop از عنصر ID (در صورت تعیین برای آرایه‌ها، در اندیس idx)
* `ID.fun_name`: فراخوانی تابع fun_name صادرشده از ماژول صحنه ID با سه آرگومان ['value', 'watchID', 'watchPropName']، بدون بررسی مقدار بازگشتی
* در غیر این صورت: کنش باید کد JS باشد، و تابع JSFun حاصل دارای یک آرگومان value شامل مقدار نظارت‌شده است، بدون بررسی مقدار بازگشتی
* with (undefined): برای مقصدهای در قالب ID@prop، استفاده از این مقدار به‌جای مقدار نظارت‌شده

نکات

از یک ناظر می‌توان برای پایش تغییرات در یک شیء در فهرست‌پخش (playlist) استفاده کرد.
هر ویژگی شیء که امکان پویانمایی یا به‌روزرسانی داشته باشد، می‌تواند توسط یک ناظر پایش شود.

علاوه بر این، ویژگی‌های مجازی زیر (غیرقابل خواندن یا نوشتن) را نیز می‌توان نظارت کرد:
* sequence.active: هنگامی که sequence فعال شود مقدار روی true و هنگام غیرفعال شدن روی false تنظیم می‌شود
* source.active: هنگامی که پخش source آغاز شود مقدار روی true و با توقف پخش منبع روی false تنظیم می‌شود
* timer.active: هنگامی که تایمر شروع شود مقدار روی true و با توقف تایمر روی false تنظیم می‌شود

در یک ناظر، تنها ویژگی active می‌تواند پویانمایی یا به‌روزرسانی شود.

مثال
{"watch": "s1@rotation", "target": "s2@rotation"}

این دستور مقدار s1.rotation را در s2.rotation رونوشت می‌کند.

مثال
{"watch": "s1@rotation", "target": "get_scene('s2').set('rotation', -value);" }

این دستور مقدار s1.rotation*-1 را در s2.rotation رونوشت می‌کند.

نظارت بر رویدادهای واسط کاربری (UI)

ناظرها همچنین می‌توانند برای پایش رویدادهای کاربری GPAC با تنظیم watch به موارد زیر استفاده شوند:
- نام یک رویداد برای پایش، یکی از keydown، keyup، mousemove، mouseup، mousedown، wheel، textInput
- مقدار events برای پایش تمام رویدادها (شامل رویدادهای داخلی).

برای رویدادهای keyup و keydown، کد کلید مورد نظارت می‌تواند علاوه بر این در پرانتز مشخص شود، مانند 'watch': 'keyup(T)'.

نکته: رویدادهای کاربری تنها در صورتی ارسال می‌شوند که خروجی فیلتر توسط فیلتر vout مصرف شود.

هنگامی که پایش رویداد استفاده می‌شود، target باید یک بازفراخوان (callback) جاوااسکریپت باشد (یعنی نمی‌تواند ID@prop باشد).
تابع جاوااسکریپت با یک تک‌آرگومان evt حاوی رویداد GPAC فراخوانی خواهد شد.

مثال
{"watch": "mousemove", "target": "let s = mouse_over(evt); get_scene('s2').set('fill', (s && (s.id=='s1') ? 'white' : 'black' );"}

این دستور در صورتی که موشواره روی s2 باشد، رنگ پرکردن (fill) شیء s1 را به سفید و در غیر این صورت به سیاه تنظیم می‌کند.

ویژگی‌های اشیاء شیوه (style)
* id (null): شناسه (ID) شیوه
* forced (false): اعمال همیشگی شیوه حتی در صورت عدم تغییر
* other: هر ویژگی برای به اشتراک‌گذاری بین صحنه‌ها

نکات

یک شیء شیوه به صحنه‌ها اجازه می‌دهد تا مقادیر یکسانی را برای مجموعه‌ای معین از ویژگی‌ها به اشتراک بگذارند.

اگر ویژگی یک صحنه نامی مشابه با یک ویژگی شیوه داشته باشد، ویژگی صحنه با ویژگی شیوه جایگزین می‌شود.
شیوه‌ها تنها به شرح زیر بر روی ویژگی‌های صحنه اعمال می‌شوند:
- موارد volume، fade و mix_ratio می‌توانند از شیوه استفاده کنند
- تمام گزینه‌های تعریف‌شده توسط ماژول صحنه می‌توانند از شیوه استفاده کنند
- ویژگی transformation یا سایر ویژگی‌های صحنه نمی‌توانند از شیوه استفاده کنند

ویژگی‌های یک شیء شیوه را می‌توان پویانمایی یا به‌روزرسانی کرد، اما یک شیء شیوه قابل پایش (watch) نیست.

شیوه‌ها به ترتیب اعلان روی هر صحنه مرتبط اعمال می‌شوند؛ برای نمونه ['st1', 'st2'] و ['st2', 'st1'] احتمالاً نتایج متفاوتی خواهند داشت.

اگر force برای یک شیوه تنظیم نشده باشد، شیوه تنها پس از تغییر یافتن (بارگذاری، پویانمایی، به‌روزرسانی) اعمال می‌شود؛ اگر صحنه‌ای از ['st1', 'st2'] استفاده کند و تنها st1
تغییر یابد (پویانمایی، به‌روزرسانی)، st2 تنها یک‌بار اعمال خواهد شد.

فهرست پخش (playlist) می‌تواند با استفاده از یک شیء ریشه از نوع 'config'، گزینه‌های پیکربندی فیلتر را مشخص کند:
- نام‌های ویژگی‌ها با گزینه‌های فیلتر یکسان هستند
- مقادیر ویژگی‌ها در نوع داده اصلی خود، یا به صورت رشته برای کسرها (قالب N/D)، بردارها (قالب WxH) یا شمارش‌ها (enums) ارائه می‌شوند
- هر ویژگی اعلان‌شده، گزینه فیلتر هم‌نام خود را رونویسی (override) می‌کند (خواه مقدار پیش‌فرض باشد یا هنگام ایجاد فیلتر تعیین شده باشد)

یک شیء پیکربندی در فهرست پخش تنها هنگام بارگذاری اولیه فهرست پخش تجزیه می‌شود و هنگام بارگذاری مجدد نادیده گرفته خواهد شد.

ویژگی‌های تکمیلی زیر برای آزمودن تعریف شده‌اند:
* reload_tests([]): فهرستی از فهرست‌های پخش برای بارگذاری مجدد
* reload_timeout(1.0): مهلت زمانی به ثانیه پیش از بارگذاری مجدد فهرست پخش
* reload_loop (0): تعداد دفعات تکرار آزمون‌های بارگذاری مجدد (شامل فهرست پخش اصلی که دوباره بارگذاری نمی‌شود نیست)

فایل فهرست پخش می‌تواند در هر زمانی تغییر کند.
اشیاء در میان بارگذاری‌های مجدد فهرست پخش از طریق ویژگی id خود شناسایی می‌شوند.
اشیائی که پس از بارگذاری مجدد یک فهرست پخش وجود ندارند، از میکسر حذف می‌شوند. این امر به این معنی است که بارگذاری مجدد یک فهرست پخش، بیشتر اشیاء فاقد ID مرتبط را مجدداً ایجاد می‌کند.

یک شیء sequence که بین دو بارگذاری مجدد تغییر کرده باشد، تازه‌سازی می‌شود؛ مگر برای فیلد start آن در صورتی که sequence فعال باشد.

یک شیء source باید بین دو بارگذاری مجدد دارای sequence والد یکسانی باشد. هرگونه تغییر روی شیء تنها هنگام بارگذاری (مجدد) منبع مد نظر قرار خواهد گرفت.

یک شیء sourceURL برای تغییرات ردیابی نمی‌شود، و تنها هنگام فعال‌سازی شیء source والد ارزیابی می‌گردد.

به یک شیء scene یا group که بین دو بارگذاری مجدد تغییر یافته باشد، هر مقدار تغییریافته اطلاع‌رسانی می‌شود.

یک شیء timer که بین دو بارگذاری مجدد تغییر کند خاموش و دوباره راه‌اندازی می‌شود. در نتیجه، اشیاء animation بین بارگذاری‌های مجدد ردیابی نمی‌شوند.

یک شیء transition ممکن است بین دو بارگذاری مجدد تغییر کند، اما هرگونه تغییر در شیء تنها هنگام راه‌اندازی مجدد اثر (effect) اعمال خواهد شد.

کد یک شیء script که بین دو بارگذاری مجدد تغییر کرده باشد، دوباره ارزیابی می‌شود

منبع پایش (watch source) و کد یک شیء watcher که بین دو بارگذاری مجدد تغییر کرده باشد، دوباره ارزیابی می‌شود

یک شیء style ردیابی نمی‌شود (تمام styleها هنگام بارگذاری مجدد فهرست پخش، دوباره بارگذاری می‌شوند).

در ادامه نمونه‌ای از یک فهرست پخش با استفاده از توالی دو ویدیو با گذار mix و یک ناحیه ویدیویی متحرک‌سازی‌شده آورده شده است:

مثال
[
{"id": "seq1", "loop": -1, "start": 0, "seq":
[
{ "id": "V1", "src": [{"in": "s1.mp4"}], "start": 60, "stop": 80},
{ "id": "V2", "src": [{"in": "s2.mp4"}], "stop": 100}
],
"transition": { "dur": 1, "type": "mix"}
},
{"id": "scene1", "sources": ["seq1"]},
{"start": 0, "dur": 10, "keys": [0, 1], "anims":
[
{"values": [50, 0], "targets": ["scene1@x", "scene1@y"]},
{"values": [0, 100], "targets": ["scene1@width", "scene1@height"]}
]
}
]

به‌جای بارگذاری مجدد کل فهرست پخش، می‌توان به‌روزرسانی‌هایی را برای اصلاح فهرست پخش ارسال کرد.
به‌روزرسانی‌ها از یک فایل جداگانه مشخص‌شده در updates خوانده می‌شوند که به‌طور پیش‌فرض غیرفعال است.

هشدار: فایل به‌روزرسانی‌ها تنها در صورتی خوانده می‌شود که «پس» از مقداردهی اولیه فیلتر تغییر یافته باشد.

محتوای فایل به‌روزرسانی‌ها باید یا یک شیء JSON منفرد یا آرایه‌ای از اشیاء JSON باشد.
ویژگی‌های این اشیاء عبارتند از:
* skip: اگر true یا 1 باشد، به‌روزرسانی را نادیده می‌گیرد؛ در غیر این صورت آن را اعمال می‌کند
* replace: رشته‌ای که هدف جایگزینی را مشخص می‌کند. ساختار نحوی آن به این صورت است:
* ID@name: نام ویژگی عنصری با شناسه (ID) داده‌شده را جهت جایگزینی مشخص می‌کند
* ID@name[idx]: نمایه (اندیس) را در نام ویژگی عنصری با شناسه (ID) داده‌شده جهت جایگزینی مشخص می‌کند
* with: مقدار جایگزین؛ باید از همان نوع داده مقدار هدف باشد.

ویژگی id قابل به‌روزرسانی نیست.

عناصر زیر از یک فهرست پخش قابل به‌روزرسانی هستند:
* scene: تمام ویژگی‌ها به‌جز js و ویژگی‌های فقط‌خواندنی پودمان
* group: تمام ویژگی‌ها به‌جز scenes و offscreen
* sequence: ویژگی‌های start،‏ stop،‏ loop و transition
* timer: ویژگی‌های start،‏ stop،‏ loop،‏ pause و dur
* transition: تمام ویژگی‌ها
* برای گذارهای sequence: بیشتر این ویژگی‌ها تنها در بارگذاری مجدد بعدی به‌روزرسانی خواهند شد
* برای گذارهای صحنه فعال: اعمال بلادرنگ این تغییرات به پودمان transition بستگی دارد

مثال
[
{"replace": "scene1@x", "with": 20},
{"replace": "seq1@start", "with": "now"}
]

این صحنه ناحیه بوم (canvas) پوشانده‌شده توسط صحنه را با یک رنگ مشخص پاک می‌کند.

رنگ پیش‌فرض پاک‌سازی میکسر، سیاه (black) است.

ناحیه پاک‌سازی همواره در فریم خروجی هم‌راستا با محورها (axis-aligned) است؛ بنابراین هنگام وجود skew/rotation، کادر محاطی هم‌راستا با محورِ ناحیه تغییریافته صحنه پاک خواهد شد.

گزینه‌ها:
* color ('none'): رنگ پاک‌سازی
این صحنه برش‌دهنده (clipper) بوم را بازنشانی می‌کند یا برش‌دهنده بوم را روی ناحیه صحنه تنظیم می‌نماید.

برش‌دهنده در فریم خروجی همواره با محورها هم‌تراز (axis-aligned) است، بنابراین در صورت وجود کجی (skew) یا چرخش (rotation)، کادر احاطه‌کننده هم‌تراز با محورِ برش‌دهنده تبدیل‌یافته استفاده خواهد شد.

برش‌دهنده‌ها از طریق یک پشته (stack) مدیریت می‌شوند؛ بازنشانی برش‌دهنده پشته را بیرون می‌اندازد (pop) و برش‌دهنده پیشین را بازیابی می‌کند.
اگر هنگام تنظیم برش‌دهنده، برش‌دهنده‌ای از پیش تعریف شده باشد، برش‌دهنده تنظیم‌شده اشتراک این دو برش‌دهنده خواهد بود.

گزینه‌ها:
* reset (false): در صورت تنظیم، برش‌دهنده بازنشانی می‌شود، در غیر این صورت روی موقعیت و اندازه صحنه تنظیم می‌گردد
* stack (true): اگر false باشد، برش‌دهنده مستقل از پشته برش‌دهنده تنظیم/بازنشانی می‌شود (بدون اشتراک، بدون push/pop در پشته)

این صحنه حالت ماسک آلفای بوم را تنظیم می‌کند.

ماسک آلفای بوم همواره تمام‌صفحه است.

در حالت نرم‌افزاری، ترکیب جلوه ماسک در حالت ضبط (record mode) و رسم گروهی معکوس امکان رسم از جلو به عقب را فراهم می‌سازد در حالی که پیکسل‌ها فقط یک بار نوشته می‌شوند.

گزینه‌ها:
* mode ('off'): در صورت تنظیم، برش‌دهنده بازنشانی می‌شود، در غیر این صورت روی موقعیت و اندازه صحنه تنظیم می‌گردد
* off: ماسک غیرفعال است
* on: ماسک فعال و پاک‌سازی می‌شود، عملیات رسم بعدی روی ماسک انجام خواهند گرفت
* onkeep: ماسک فعال است اما پاک‌سازی نمی‌شود، عملیات رسم بعدی روی ماسک انجام خواهند گرفت
* use: ماسک فعال است، عملیات رسم بعدی توسط ماسک فیلتر خواهند شد
* use_inv: ماسک فعال است، عملیات رسم بعدی توسط 1-mask فیلتر خواهند شد
* rec: ماسک در حالت ضبط قرار دارد، عملیات رسم بعدی روی خروجی کشیده شده و مقدار ماسک را روی 0 تنظیم خواهند کرد

از این صحنه می‌توان برای برپایی یک شکل، خط دور (outline) آن و مشخص کردن حالت‌های fill و strike استفاده کرد.
شکل‌های پشتیبانی‌شده عبارتند از:
- انواع مستطیل‌ها، بیضی و سایر چندضلعی‌ها
- مسیرهای سفارشی مشخص‌شده از JS
- متن

حالت‌های رنگ برای اشکال و خطوط دور شامل موارد زیر است:
- بافت‌دهی (texturing) با استفاده از داده‌های جریان‌های رسانه‌ای ورودی (فقط برای fill شکل)
- بافت‌دهی با استفاده از فایل‌های محلی JPEG و PNG (فقط برای fill شکل)
- رنگ یکدست (solid color)
- گرادیان‌های خطی و شعاعی

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

تمام گزینه‌ها را می‌توان در زمان اجرا (run time) به‌روزرسانی کرد.

این ماژول 0، 1 یا 2 توالی را به عنوان ورودی می‌پذیرد.

عملیات جایگزینی رنگ را می‌توان برای صحنه‌های پایه با استفاده از ویدیوهای منبع از طریق مشخص کردن گزینه replace تعیین کرد. منبع جایگزینی عبارت است از:
- داده‌های تصویر اگر img تنظیم شده باشد، که ممکن است با استفاده از گزینه‌های *_rep تغییر یافته باشند
- در غیر این صورت یک گرادیان خطی اگر fill=linear باشد یا یک گرادیان شعاعی اگر fill=radial باشد (در حالت GPU پشتیبانی نمی‌شود، برای این کار از یک گروه offscreen استفاده کنید).

هشدار: عملیات جایگزینی رنگ نمی‌تواند با جلوه‌های گذار (transition) یا ترکیب (mix) استفاده شود.

اگر text[0] یک فایل محلی موجود باشد، متن می‌تواند از فایل بارگیری شود.
به صورت پیش‌فرض تمام خطوط بارگیری می‌شوند. تعداد خطوط بارگیری‌شده را می‌توان با استفاده از text[1] به صورت زیر مشخص کرد:
* 0 یا عدم وجود: تمام خطوط بارگیری می‌شوند
* N > 0: فقط N خط آخر نگه داشته می‌شوند
* N < 0: فقط N خط نخست نگه داشته می‌شوند

متن بارگیری‌شده از فایل با هر بار تغییر فایل، بازآوری (refresh) خواهد شد.

می‌توان از کلیدواژه‌های از پیش تعریف‌شده در متن ورودی استفاده کرد که به صورت $KEYWORD$ شناسایی می‌شوند. کلیدواژه‌های زیر (بدون حساسیت به حروف کوچک و بزرگ) تعریف شده‌اند:
* time: با تاریخ UTC جایگزین می‌شود
* ltime: با تاریخ محلی (locale) جایگزین می‌شود
* date: با تاریخ (Y/M/D) جایگزین می‌شود
* ldate: با تاریخ محلی (Y/M/D) جایگزین می‌شود
* mtime: با زمان رسانه خروجی جایگزین می‌شود
* mtime_SRC: با زمان رسانه منبع ورودی SRC جایگزین می‌شود
* cpu: با میزان مصرف فعلی CPU توسط فرایند جایگزین می‌شود
* mem: با میزان مصرف فعلی حافظه توسط فرایند جایگزین می‌شود
* version: با نسخه GPAC جایگزین می‌شود
* fversion: با نسخه کامل GPAC جایگزین می‌شود
* P4CC, PropName: با ویژگی متناظر PID جایگزین می‌شود

مسیرهای سفارشی (شکل‌ها یا shapes) را می‌توان از طریق کد JS مشخص‌شده در 'shape'، چه به‌صورت درون‌خطی یا از طریق یک فایل ایجاد کرد.
ماژول‌های JS زیر از GPAC وارد (import) شده‌اند:
- Sys به‌صورت sys
- تمام EVG به‌صورت evg
- os از QuickJS

برای اطلاعات بیشتر دربارهٔ APIهای JS مربوط به EVG و Sys به https://doxygen.gpac.io مراجعه کنید.

کد، صحنه را به‌صورت this در معرض دسترسی قرار می‌دهد. متغیر this.path ایجاد می‌شود که نمایانگر یک مسیر خالی است.
مثال:
"shape": "this.path.add_rectangle(0, 0, this.width, this.height); let el = new evg.Path().ellipse(0, 0, this.width, this.height/3); this.path.add_path(el);"

رفتار پیش‌فرض استفاده از عرض و ارتفاع شکل به عنوان اندازهٔ مرجع برای نگاشت بافت (texture mapping) است.
اگر مسیر سفارشی شما بافت‌دار است و اندازهٔ مستطیل محاطی آن با اندازهٔ شکل مشخص‌شده متفاوت است، متغیر this.tx_adjust را روی true تنظیم کنید.

در مثال پیشین، نگاشت بافت تحت تأثیر اندازهٔ مسیر سفارشی قرار نخواهد گرفت.

مثال:
"shape": "this.path.add_rectangle(0, 0, this.width, this.height); let el = new evg.Path().ellipse(0, 0, this.width, this.height/3); this.path.add_path(el); this.tx_adjust = true;"

در این مثال، نگاشت بافت به اندازهٔ دلخواه تنظیم خواهد شد.

متغیرها و توابع سراسری در دسترس هستند (برای مقایسه: gpac -h avmix:global):
* get_media_time(): بازگرداندن زمان رسانه بر حسب ثانیه (اعشاری float) برای خروجی
* get_media_time(SRC): دریافت زمان منبع با شناسهٔ SRC؛ در صورت پیدا نشدن مقدار -4، در صورت عدم پخش مقدار -3، در صورت قرار داشتن در پیش‌واکشی (prefetch) مقدار -2، در صورتی که زمان‌بندی هنوز مشخص نباشد مقدار -1 و در غیر این صورت زمان رسانه بر حسب ثانیه (اعشاری float) را بازمی‌گرداند
* current_utc_clock: زمان کنونی UTC بر حسب میلی‌ثانیه
* video_time: زمان ویدیوی خروجی
* video_timescale: مقیاس زمانی (timescale) ویدیوی خروجی
* video_width: عرض ویدیوی خروجی
* video_height: ارتفاع ویدیوی خروجی

اگر مسیر شما باید به‌طور منظم مجدداً ارزیابی شود، مقدار this.reload را روی مدت زمان تا بارگذاری مجدد بعدی، بر حسب میلی‌ثانیه تنظیم کنید.

گزینه‌ها:
* rx (0): شعاع افقی برای مستطیل گردگوشه؛ در صورت مثبت بودن به درصد از عرض شیء، در صورت منفی بودن به مقدار مطلق؛ مقدار y به معنی استفاده از ry است
* ry (0): شعاع عمودی برای مستطیل گردگوشه؛ در صورت مثبت بودن به درصد از ارتفاع شیء، در صورت منفی بودن به مقدار مطلق؛ مقدار x به معنی استفاده از rx است
* tl (1): مقیاس‌بند گوشهٔ بالا-چپ (مثبت؛ 0 گوشه را غیرفعال می‌کند)
* bl (1): مقیاس‌بند گوشهٔ پایین-چپ (مثبت؛ 0 گوشه را غیرفعال می‌کند)
* tr (1): مقیاس‌بند گوشهٔ بالا-راست (مثبت؛ 0 گوشه را غیرفعال می‌کند)
* br (1): مقیاس‌بند گوشهٔ پایین-راست (مثبت؛ 0 گوشه را غیرفعال می‌کند)
* rs (false): تکرار افقی بافت
* rt (false): تکرار عمودی بافت
* keep_ar (true): حفظ نسبت ابعاد (aspect ratio)
* pad_color ('0x00FFFFFF'): رنگ مورد استفاده برای لایه‌گذاری (padding) بافت در صورتی که rs یا rt برابر false باشند. استفاده از none برای استفاده از لبهٔ بافت، 0x00FFFFFF برای شفاف (در صورت شفاف بودن منبع همیشه اعمال می‌شود)
* txmx ([]): ماتریس بافت - هر 6 ضریب باید مشخص شوند، یعنی [xx xy tx yx yy ty]
* cmx ([]): تبدیل رنگ - هر 20 ضریب باید به ترتیب مشخص شوند، یعنی [Mrr, Mrg, Mrb, Mra, Tr, Mgr, Mgg ...]
* line_width (0): ضخامت خط به درصد از عرض در صورت مثبت بودن، یا مقدار مطلق در صورت منفی بودن
* line_color ('white'): رنگ خط؛ linear برای گرادیان خطی و radial برای گرادیان شعاعی
* line_pos ('center'): موقعیت‌دهی خط/شکل. مقادیر ممکن عبارتند از:
* center: خط در مرکز محیط شکل قرار می‌گیرد
* outside: خط در خارج از شکل قرار می‌گیرد
* inside: خط در داخل شکل قرار می‌گیرد
* line_dash ('plain'): حالت خط‌چین خط. مقادیر ممکن عبارتند از:
* plain: بدون خط‌چین (خط پیوسته)
* dash: استفاده از الگوی خط‌چین از پیش تعریف‌شده
* dot: استفاده از الگوی نقطه‌چین از پیش تعریف‌شده
* dashdot: استفاده از الگوی خط-نقطه از پیش تعریف‌شده
* dashdashdot: استفاده از الگوی خط-خط-نقطه از پیش تعریف‌شده
* dashdotdot: استفاده از الگوی خط-نقطه-نقطه از پیش تعریف‌شده
* dashes ([]): طول الگوهای خط‌چین/نقطه‌چین برای خط‌چین‌های سفارشی (این مقادیر در اندازهٔ خط ضرب خواهند شد)
* cap ('flat'): سبک انتهای خط. مقادیر ممکن عبارتند از:
* flat: انتهای تخت
* round: انتهای گرد
* square: انتهای مربع (محدوده را نسبت به flat امتداد می‌دهد)
* triangle: انتهای مثلثی
* join ('miter'): سبک اتصال خطوط. مقادیر ممکن عبارتند از:
* miter: اتصال گوشه‌تیز/فارسی (خطوط مستقیم)
* round: اتصال گرد
* bevel: اتصال پَخ‌خورده (bevel)
* bevelmiter: اتصال پَخ + گوشه‌تیز
* miter_limit (2): حد اتصال گوشه‌تیز (miter limit) برای سبک‌های اتصال
* dash_length (-1): طول مسیری که باید دورخط رسم شود؛ مقادیر منفی یعنی کل مسیر
* dash_offset (0): آفست در مسیر که رسم دورخط از آنجا آغاز می‌شود
* blit (true): استفاده از blit در صورت امکان، در غیر این صورت بافت‌دهی EVG. در صورت غیرفعال بودن، همیشه از بافت‌دهی استفاده می‌شود
* fill ('none'): رنگ پر کردن در صورت استفاده بدون منابع؛ linear برای گرادیان خطی و radial برای گرادیان شعاعی
* img (''): تصویر برای صحنه‌های بدون منبع یا زمانی که replace تنظیم شده است. مسیر یک تصویر محلی (JPG یا PNG)، شناسهٔ یک گروه برون‌صفحه‌ای (offscreen) یا شناسهٔ یک توالی را می‌پذیرد
* alpha (1): شفافیت سراسری بافت
* replace (''): اگر img یا fill تنظیم شده باشد و شکل از منبع استفاده کند، گزینهٔ چندبافتی را فعال می‌کند. حالت‌های ممکن عبارتند از:
* a، r، g یا b: جایگزینی مؤلفهٔ آلفای منبع با مؤلفهٔ مشخص‌شده از img. در صورت وجود پیشوند -، جایگزینی با یک منهای مؤلفهٔ مشخص‌شده انجام می‌شود
* m: ترکیب مؤلفه‌های رنگی منبع و img با استفاده از mix_ratio و تنظیم آلفا روی حالت کاملاً کدر
* M: ترکیب تمام مؤلفه‌های منبع و img با استفاده از mix_ratio، از جمله آلفا
* xC: ترکیب منبع 1 و منبع 2 با استفاده از مؤلفهٔ C از img (که a، r، g یا b است) و تحمیل آلفا روی حالت کاملاً کدر
* XC: ترکیب منبع 1 و منبع 2 با استفاده از مؤلفهٔ C از img (که a، r، g یا b است)، شامل آلفا

* shape ('rect'): نوع شکل. مقادیر ممکن عبارتند از:
* rect: مستطیل گردگوشه
* square: مربع با استفاده از مقدار کوچک‌تر عرض/ارتفاع
* ellipse: بیضی
* circle: دایره با استفاده از مقدار کوچک‌تر عرض/ارتفاع
* rhombus: لوزی هم‌راستا با محورها
* text: تحمیل حالت متن حتی اگر فیلد متن خالی باشد
* rects: مشابه مستطیل گردگوشه اما با استفاده از خطوط مستقیم برای گوشه‌ها
* مقادیر دیگر: کد JS برای ایجاد مسیر سفارشی، چه به‌صورت رشته یا نام فایل محلی (با امکان بارگذاری مجدد پویا)
* grad_p ([]): موقعیت‌های گرادیان بین 0 و 1
* grad_c ([]): رنگ‌های گرادیان برای هر موقعیت، به‌صورت رشته
* grad_start ([]): نقطهٔ شروع برای گرادیان خطی یا نقطهٔ مرکز برای گرادیان شعاعی
* grad_end ([]): نقطهٔ پایان برای گرادیان خطی یا مقدار شعاع برای گرادیان شعاعی
* grad_focal ([]): نقطهٔ کانونی برای گرادیان شعاعی
* grad_mode ('pad'): حالت گرادیان. مقادیر ممکن عبارتند از:
* pad: لایه‌گذاری رنگی در خارج از حدود گرادیان
* spread: قرینه‌سازی گرادیان در خارج از حدود
* repeat: تکرار گرادیان در خارج از حدود
* text ([]): خطوط متن (تنها UTF-8). اگر خالی نباشد، مقدار shape=text تحمیل می‌شود
* font ([]): نام یا نام‌های فونت
* size (20): اندازهٔ فونت به درصد از ارتفاع (متن افقی) یا عرض (متن عمودی)، یا مقدار مطلق در صورت منفی بودن
* baseline ('alphabetic'): موقعیت خط مبنا (baseline). مقادیر ممکن عبارتند از:
* alphabetic: موقعیت الفبایی خط مبنا
* top: خط مبنا در بالای جعبهٔ EM
* hanging: رزرو شده، پیاده‌سازی نشده
* middle: خط مبنا در وسط جعبهٔ EM
* ideograph: رزرو شده، پیاده‌سازی نشده
* bottom: خط مبنا در پایین جعبهٔ EM
* align ('center'): تراز افقی متن. مقادیر ممکن عبارتند از:
* center: مرکز شکل
* start: ابتدای شکل (چپ یا راست بسته به جهت متن)
* end: انتهای شکل (راست یا چپ بسته به جهت متن)
* left: سمت چپ شکل
* right: سمت راست شکل
* spacing (0): فاصلهٔ بین خطوط به درصد از ارتفاع (متن افقی) یا عرض (متن عمودی)، یا مقدار مطلق در صورت منفی بودن
* bold (false): استفاده از نگارش ضخیم (bold) فونت
* italic (false): استفاده از نگارش مورب (italic) فونت
* underline (false): زیرخط‌دار کردن متن
* vertical (false): رسم عمودی متن
* flip (false): برگرداندن عمودی متن
* extend (0): حداکثر عرض متن به درصد از عرض (برای افقی) یا ارتفاع (برای عمودی)، یا مقدار مطلق در صورت منفی بودن
* keep_ar_rep (true): همانند keep_ar برای تصویر محلی در حالت replace
* txmx_rep ([]): همانند txmx برای تصویر محلی در حالت replace
* cmx_rep ([]): همانند cmx برای تصویر محلی در حالت replace
* pad_color_rep ('none'): همانند pad_color برای تصویر محلی در حالت replace
* rs_rep (false): همانند rs برای تصویر محلی در حالت replace
* rt_rep (false): همانند rt برای تصویر محلی در حالت replace

این گذار، محوشدگی (fade) به/از رنگ ویدیوهای مبدأ را انجام می‌دهد
گزینه‌ها:
* color ('black'): رنگ محوشدگی

این پودمان گذار gl-transitions را در بر می‌گیرد؛ برای گذارهای توکار به https://gl-transitions.com و gpac -h avmix:gltrans مراجعه کنید
گزینه‌ها:
* fx (''): نام جلوه برای جلوه‌های توکار، یا مسیر فایل GLSL مربوط به gl-transition

این گذار محوشدگی متقاطع (cross-fade) ویدیوهای مبدأ را انجام می‌دهد

این گذار تبدیل‌های آفین دوبعدی ساده را برای گذار ویدیوهای مبدأ، با مبدأ جلوه قابل پیکربندی انجام می‌دهد
گزینه‌ها:
* from ('left'): جهت ورود ویدیو ۲. مقادیر ممکن عبارتند از:
* left: از لبه‌های چپ به راست
* right: از لبه‌های راست به چپ
* top: از لبه‌های بالا به پایین
* bottom: از لبه‌های پایین به بالا
* topleft: از گوشه‌های بالا-چپ به پایین-راست
* topright: از گوشه‌های بالا-راست به پایین-چپ
* bottomleft: از گوشه‌های پایین-چپ به بالا-راست
* bottomright: از گوشه‌های پایین-راست به بالا-چپ

* mode ('slide'): چگونگی تأثیر ورود ویدیو ۲ بر ویدیو ۱. مقادیر ممکن عبارتند از:
* slide: موقعیت ویدیو ۱ تغییر نمی‌کند
* push: ویدیو ۲ ویدیو ۱ را به بیرون می‌راند
* squeeze: ویدیو ۲ ویدیو ۱ را در امتداد لبه مقابل می‌فشارد
* grow: اندازه ویدیو ۲ افزایش می‌یابد، ویدیو ۱ تغییر نمی‌کند
* swap: اندازه ویدیو ۲ افزایش و اندازه ویدیو ۱ کاهش می‌یابد

pl (str، پیش‌فرض: avmix.json): فایل فهرست‌پخش محلی برای بارگذاری
live (bool، پیش‌فرض: true): حالت زنده
gpu (enum، پیش‌فرض: off): فعال‌سازی استفاده از GPU
* off: بدون GPU
* mix: فقط رندر کردن مسیرهای بافت‌دار روی GPU، استفاده از رسترایزر نرم‌افزاری برای خطوط دور، پرکردن‌های یکدست و گرادیان‌ها
* all: تلاش برای استفاده از GPU در همه موارد

thread (sint، پیش‌فرض: -1): استفاده از رشته‌ها برای رسترایزر نرم‌افزاری (-1 برای همه هسته‌های موجود)
lwait (uint، پیش‌فرض: 1000): مهلت زمانی به میلی‌ثانیه پیش از فرض نبود سیگنال
ltimeout (uint، پیش‌فرض: 4000): مهلت زمانی به میلی‌ثانیه پیش از راه‌اندازی مجدد فرآیندهای فرزند
maxdur (dbl، پیش‌فرض: 0): اجرا به مدت ثانیه‌های مشخص‌شده و سپس خروج؛ در صورت 0 متوقف نخواهد شد (استفاده در آزمون‌های حالت زنده)
updates (str): فایل‌های محلی JSON برای به‌روزرسانی‌های فهرست‌پخش
maxdepth (uint، پیش‌فرض: 100): بیشینه عمق یک شاخه در گراف صحنه
vsize (v2d، پیش‌فرض: 1920x1080): اندازه ویدیوی خروجی، 0 خروجی ویدیو را غیرفعال می‌کند
fps (frac، پیش‌فرض: 25): نرخ فریم ویدیوی خروجی
pfmt (pfmt، پیش‌فرض: yuv): قالب پیکسل خروجی. در حالت GPU از rgba برای اجبار کانال آلفا استفاده کنید
dynpfmt (enum، پیش‌فرض: init): مجاز شمردن تغییر پویای قالب پیکسل خروجی در حالت نرم‌افزاری
* off: قالب پیکسل به مقدار دلخواه اجبار می‌شود
* init: قالب پیکسل به قالب ورودی تمام‌صفحه در نخستین فریم تولیدشده اجبار می‌شود
* all: قالب پیکسل هر بار که یک PID ورودی تمام‌صفحه با تفکیک‌پذیری مشابه استفاده شود تغییر می‌کند

sr (uint، پیش‌فرض: 44100): نرخ نمونه‌برداری صوتی خروجی، 0 خروجی صدا را غیرفعال می‌کند
ch (uint، پیش‌فرض: 2): تعداد کانال‌های صوتی خروجی، 0 خروجی صدا را غیرفعال می‌کند
afmt (afmt، پیش‌فرض: s16): قالب صوتی خروجی (تنها s16، s32، flt و dbl پشتیبانی می‌شوند)
alen (uint، پیش‌فرض: 1024): تعداد پیش‌فرض نمونه‌ها در هر فریم

توضیحات: مولد شمارنده صوتی/تصویری (AV)
نسخه: 1.0
نویسنده: GPAC Team

این فیلتر جریان‌های AV نمایانگر یک شمارنده را تولید می‌کند. جریان‌ها را می‌توان با استفاده از .I type فعال یا غیرفعال کرد.
این فیلتر مبتنی بر نرم‌افزار است و از GPU استفاده نمی‌کند.

هنگامی که .I adjust تنظیم شود، نخستین فریم ویدیو طوری تنظیم می‌شود که بر اساس ساعت UTC سیستم، در هر ثانیه دقیق یک دور کامل رخ دهد.
به‌طور پیش‌فرض، تاریخ و ساعت UTC ویدیو در هر تولید فریم، بر پایه ساعت کنونی و نه از روی شماره فریم محاسبه می‌شوند.
این امر هنگام پخش با سرعت‌هایی غیر از 1.0 منجر به متن زمان‌بندی UTC نامعتبر خواهد شد.
این رفتار را می‌توان با استفاده از .I lock تغییر داد.

بوق صوتی هر ثانیه تولید می‌شود، به‌طوری که هر ۱۰ ثانیه اکتاو (2xfreq) بوق زوج به کار می‌رود.
هنگامی که ویدیو تولید می‌شود، بوق در هر ثانیه دقیق با ویدیو همگام‌سازی می‌شود.

اگر تزریق NTP استفاده شود، هر بسته ویدیو (اما نه بسته‌های صوتی) دارای ویژگی SenderNTP تنظیم‌شده خواهد بود؛ اگر ویدیو استفاده نشود، هر بسته صوتی دارای ویژگی SenderNTP تنظیم‌شده خواهد بود.

می‌توان بیش از یک اندازه خروجی مشخص کرد. این کار باعث می‌شود چندین منبع، یکی به ازای هر اندازه، تولید شوند.
یک اندازه را می‌توان بیش از یک بار مشخص کرد، که در صورت تنظیم نشدن .I copy منجر به ارجاع بسته‌ها، و در غیر این صورت منجر به رونوشت‌های کامل می‌شود.
با استفاده از .I rates می‌توان نرخ‌بیت‌های هدف کدگذاری را به هر خروجی اختصاص داد. این ویژگی هنگام تولید dash می‌تواند مفید باشد:
gpac avgen:sizes=1280x720,1920x1080:rates=2M,5M c=aac:FID=1 c=264:FID=2:clone -o live.mpd:SID=1,2

در حالت چندنمایی، فقط شمارنده متحرک طبق مقدار .I disparity در عمق به عقب و جلو حرکت خواهد کرد.
هنگامی که .I pack تنظیم شده باشد، برای هر بسته ویدیو یک جفت استریو بسته‌بندی‌شده تولید می‌شود.
در غیر این صورت، هنگامی که .I views بزرگتر از ۲ باشد، هر نما روی یک PID خروجی اختصاصی با ویژگی ViewIdx تنظیم‌شده در [1, views] تولید می‌شود.
خروجی چندنمایی، استفاده از حالت .I copy را اجباری می‌کند.

به PID صوتی نام audio و شناسه ۱ اختصاص داده می‌شود.
اگر تنها یک PID ویدیویی تولید شود، نام video و شناسه ۲ به آن اختصاص می‌یابد.
اگر چندین PID ویدیویی تولید شوند، نام‌های videoN و شناسه N+1 به آن‌ها اختصاص می‌یابد، N در [1, sizes].
اگر چندین .I views تولید شوند، نام‌های videoN_vK و شناسه N*views+K-1 به آن‌ها اختصاص می‌یابد، N در [1, sizes] و K در [1, views].

با استفاده از .I disc، ناپیوستگی‌ها را می‌توان در بازه زمانی مشخص شبیه‌سازی کرد. در هر ناپیوستگی برچسب زمانی (timestamp) به ۰ بازنشانی خواهد شد.

type (enum، پیش‌فرض: av): انتخاب خروجی
* a: فقط صدا
* v: فقط ویدیو
* av: صدا و ویدیو

evte (uint، پیش‌فرض: 0): جریان رویداد خروجی
* 0: غیرفعال
* 1+: دوره زمانی (ثانیه) رویدادهای ساختگی

freq (uint، پیش‌فرض: 440): بسامد بوق
freq2 (uint، پیش‌فرض: 659): بسامد بوق فرد
sr (uint، پیش‌فرض: 44100): نرخ نمونه‌برداری خروجی
flen (uint، پیش‌فرض: 1024): طول فریم خروجی بر حسب نمونه
ch (uint، پیش‌فرض: 1): تعداد کانال‌ها
alter (bool، پیش‌فرض: false): بوق زدن متناوب روی هر کانال
blen (uint، پیش‌فرض: 50): طول بوق بر حسب میلی‌ثانیه
fps (frac، پیش‌فرض: 25): نرخ فریم ویدیو
sizes (v2il، پیش‌فرض: 1280x720): اندازه ویدیو بر حسب پیکسل
disc (frac، پیش‌فرض: -1/1): بازه ناپیوستگی - راهنمای فیلتر را ببینید
pfmt (pfmt، پیش‌فرض: yuv): قالب پیکسل خروجی
lock (bool، پیش‌فرض: false): قفل کردن زمان‌بندی با تولید ویدیو
dyn (bool، پیش‌فرض: true): جابه‌جایی بنر پایینی
ntp (bool، پیش‌فرض: true): ارسال NTP به همراه بسته‌ها
copy (bool، پیش‌فرض: false): رونوشت از framebuffer به درون هر بسته ویدیو به جای استفاده از ارجاع بسته‌ها
dur (frac، پیش‌فرض: 0/0): اجرا برای مدت زمان مشخص بر حسب ثانیه
adjust (bool، پیش‌فرض: true): تنظیم زمان آغاز برای همگام‌سازی شمارنده و UTC
pack (enum، پیش‌فرض: no): حالت بسته‌بندی برای نماهای استریو
* no: بدون بسته‌بندی
* ss: بسته‌بندی کنار هم (side by side)، .I views را به ۲ اجبار می‌کند
* tb: بسته‌بندی بالا-پایین (top-bottom)، .I views را به ۲ اجبار می‌کند

disparity (uint، پیش‌فرض: 20): اختلاف منظر بر حسب پیکسل بین چپ‌ترین و راست‌ترین نماها
views (uint، پیش‌فرض: 1): تعداد نماها
rates (strl): تعداد نرخ‌بیت‌های هدف جهت تخصیص، یکی به ازای هر اندازه
logt (bool): ثبت زمان فریم در کنسول
banner (str، پیش‌فرض: many thanks to QuickJS, FreeType, OpenSSL, SDL, FFmpeg, OpenHEVC, libjpeg, libpng, faad2, libmad, a52dec, xvid, OGG ...): متن بنر برای نمایش

مثال‌های مقدماتی و پیشرفته در https://wiki.gpac.io/Filters/Filters در دسترس هستند.

نویسندگان: توسعه‌دهندگان GPAC، تاریخچه مخزن git را ببینید (-log)
برای گزارش باگ‌ها، درخواست قابلیت‌ها، اطلاعات بیشتر و کد منبع، از https://github.com/gpac/gpac دیدن کنید
ساخت: 26.07
کپی‌رایت: (c) 2000-2024 Telecom Paris توزیع‌شده تحت LGPL v2.1+ - https://gpac.io

gpac(1), MP4Box(1)

2019 gpac