| gpac(1) | GPAC | gpac(1) |
نام (NAME)
gpac - پخشکننده، بستهبندیکننده و ابزار چندرسانهای همهمنظوره
خلاصه دستور (SYNOPSIS)
gpac
[گزینهها]FILTER[LINK]FILTER[...]
دستور gpac
ابزار خط
فرمان GPAC
برای
راهاندازی
و اجرای
زنجیرههای
فیلتر است.
FILTER: اعلان
یک فیلتر
تکی (مانند -i
file, -o dump, inspect, و
غیره)؛ به gpac -h
doc مراجعه
کنید.
[LINK]: یک
دستورالعمل
پیوند
(مانند @, @2,
@2#StreamType=Visual, و
غیره)؛ به gpac -h
doc مراجعه
کنید.
[گزینهها]:
یک یا چند
رشته
گزینه، که
هر کدام با
نویسه -
شروع
میشوند.
- گزینهای
با یک علامت
- منفرد،
بیانگر
گزینهای
از gpac (به gpac -hx
مراجعه
کنید) یا از
libgpac (به gpac -hx core
مراجعه
کنید) است.
- گزینهای
با -- بیانگر
یک گزینه
فیلتر
سراسری یا
متافیلتر
(مانند FFmpeg)
است؛ برای
مثال --block_size=1000 یا
--profile=Baseline (به gpac -h doc
مراجعه
کنید).
ترتیب
اعلان
فیلترها
ممکن است بر
حلکننده
پیوند که
تلاش
میکند
پیونددهی
را به ترتیب
اعلان
انجام دهد،
تأثیر
بگذارد. در
بیشتر
مواقع برای
گرافهای
ساده، این
موضوع
تأثیری
ندارد؛ با
این حال
برای
گرافهای
پیچیده
بدون اعلان
پیوند، این
امر
میتواند
به نتایج
متفاوتی
منجر شود.
گزینهها
نیازمند
ترتیب خاصی
نیستند و
میتوانند
در هر جایی
حضور داشته
باشند، از
جمله بین
عبارات
پیوند یا
اعلانهای
فیلتر.
مقادیر
بولی نیازی
به تعیین
هیچ مقداری
ندارند.
سایر انواع
باید به
صورت opt=val
قالببندی
شوند، به جز
گزینههای
-i، -src، -o، -dst و
-h.
نشست کاری را میتوان در هر زمان با کلیدهای ctrl+c متوقف کرد، که همچنین میتواند برای جابجایی وضعیت گزارشدهی سراسری نیز استفاده شود.
گزینههای ممکن برای gpac عبارتند از:
- -mem-track
-
فعالسازی ردیاب حافظه
- -mem-track-stack
-
فعالسازی ردیاب حافظه همراه با تخلیه پشته (stack dumping)
- -ltf
-
بارگذاری فیلترهای واحد آزمایش (تنها برای آزمونهای واحد استفاده میشود)
- -sloop (عدد صحیح)
-
اجرای حلقهای نشست، با ایجاد یک نشست در هر دور حلقه؛ عمدتاً برای آزمون و توقف با بروز نخستین خطا استفاده میشود. در صورت عدم تعیین مقدار، حلقه تا ابد ادامه مییابد
- -eloop (عدد صحیح)
-
مشابه -sloop، اما در صورت بروز خطا متوقف نمیشود
- -runfor (عدد صحیح)
-
اجرا به مدت زمان تعیینشده به میلیثانیه، و خروج با تخلیه کامل بافر نشست (session flush)
- -runforf (عدد صحیح)
-
اجرا به مدت زمان تعیینشده به میلیثانیه، و خروج با تخلیه سریع بافر نشست
- -runforx (عدد صحیح)
-
اجرا به مدت زمان تعیینشده به میلیثانیه، و خروج بدون پاکسازی
- -runfors (عدد صحیح)
-
اجرا به مدت زمان تعیینشده به میلیثانیه، و خروج با خطای بخشبندی حافظه یا سگفالت (برای آزمونها)
- -runforl (عدد صحیح)
-
اجرا به مدت زمان تعیینشده به میلیثانیه، و انتظار همیشگی در پایان کار (برای آزمونها)
- -stats
-
چاپ آمار پس از اجرا
- -graph
-
چاپ نمودار گراف پس از اجرا
- -qe
-
فعالسازی خروج سریع (بدون پاکسازی حافظه)
- -k
-
فعالسازی تعامل با صفحهکلید از طریق خط فرمان
- -r (رشته)
-
فعالسازی گزارشدهی
* r: گزارشدهی در زمان اجرا
* r=FA[,FB]: گزارشدهی در زمان اجرا اما تنها چاپ فیلترهای دادهشده؛ برای مثال r=mp4mx تنها برای تسهیمکننده ISOBMFF
* r=: تنها چاپ گزارش نهایی
- -seps (رشته، پیشفرض: :=#,!@)
-
تنظیم مجموعه نویسههای پیشفرض مورد استفاده برای جداسازی آرگومانهای مختلف
- نویسه نخست برای جداسازی نامهای آرگومان استفاده میشود
- نویسه دوم، در صورت وجود، برای جداسازی نامها و مقادیر استفاده میشود
- نویسه سوم، در صورت وجود، برای جداسازی قطعات منابع PID استفاده میشود
- نویسه چهارم، در صورت وجود، برای جداکنندههای فهرست (مانند sourceIDs ،gfreg و...) استفاده میشود
- نویسه پنجم، در صورت وجود، برای نقیض بولی استفاده میشود
- نویسه ششم، در صورت وجود، برای دستورالعملهای LINK استفاده میشود (به راهنمای فیلترها در -h doc مراجعه کنید)
- -i,-src (رشته)
-
تعیین یک فایل ورودی - به راهنمای فیلترها مراجعه کنید (-h doc)
- -o,-dst (رشته)
-
تعیین یک فایل خروجی - به راهنمای فیلترها مراجعه کنید (-h doc)
- -ib (رشته)
-
تعیین یک فایل ورودی برای بستهبندی به عنوان شیء GF_FileIO (جهت آزمون GF_FileIO)
- -ibx (رشته)
-
تعیین یک فایل ورودی برای بستهبندی به عنوان شیء GF_FileIO بدون حافظه پنهان (جهت آزمون GF_FileIO)
- -ibb (رشته)
-
تعیین یک فایل ورودی برای بستهبندی به عنوان شیء داده خام باینری blob (جهت آزمون GF_Blob)
- -ibm (رشته)
-
تعیین یک فایل ورودی برای بستهبندی به عنوان شیء GF_FileIO از حافظه (جهت آزمون GF_Blob + GF_FileIO)
- -ob (رشته)
-
تعیین یک فایل خروجی برای بستهبندی به عنوان شیء GF_FileIO (جهت آزمون GF_FileIO)
- -cl
-
اجبار به حالت کامل هنگامی که هیچ دستورالعمل پیوندی تنظیم نشده باشد - به راهنمای فیلترها مراجعه کنید (-h doc)
- -sid
-
اجبار به وجود شناسههای منبع هنگام تلاش برای پیوند دادن - به راهنمای فیلترها مراجعه کنید (-h doc)
- -step
-
آزمایش حالت گامبهگام در نشست غیرمسدودکننده
- -h,-help,-ha,-hx,-hh (رشته)
-
چاپ راهنما. از -help یا -h برای گزینههای پایه، از -ha برای گزینههای پیشرفته، از -hx برای گزینههای تخصصی و از -hh برای همه موارد استفاده کنید.
نکته: نویسه @ میتواند به جای نویسه * استفاده شود. پارامتر رشتهای میتواند یکی از موارد زیر باشد:
* خالی: چاپ راهنمای گزینههای خط فرمان
* doc: چاپ اطلاعات عمومی فیلترها
* alias: چاپ نحو نام مستعار gpac
* log: چاپ راهنمای سامانه ثبت وقایع (log)
* core: چاپ گزینههای هسته libgpac پشتیبانیشده. از -ha/-hx/-hh برای گزینههای پیشرفته/تخصصی استفاده کنید
* cfg: چاپ راهنمای پیکربندی GPAC
* net: چاپ رابطهای شبکه
* prompt: چاپ راهنمای خط اعلان GPAC هنگام اجرا در حالت تعاملی (به -k مراجعه کنید)
* modules: چاپ ماژولهای موجود
* module NAME: چاپ اطلاعات و گزینههای ماژول NAME
* creds: چاپ راهنمای اطلاعات اعتبارسنجی
* filters: چاپ نام تمامی فیلترهای موجود
* filters:*: چاپ نام تمامی فیلترهای موجود، شامل متافیلترها
* codecs: چاپ کدکهای توکار پشتیبانیشده - از -hx برای گنجاندن کدکهای نگاشتنشده (ffmpeg و...) استفاده کنید
* formats: چاپ قالبهای پشتیبانیشده (-ha: چاپ نام فیلترها، -hx : شامل متافیلترها (ffmpeg و...)، -hh : چاپ انواع MIME)
* protocols: چاپ طرحوارههای پروتکلهای پشتیبانیشده (-ha: چاپ نام فیلترها، -hx : شامل متافیلترها (ffmpeg و...)، -hh : چاپ همه)
* props: چاپ ویژگیهای توکار بستهها و PIDهای پشتیبانیشده
* props PNAME: چاپ ویژگیهای توکار بستهها و PIDهای پشتیبانیشده حاوی PNAME
* colors: چاپ نام رنگهای توکار و مقادیر آنها
* layouts: چاپ نام چیدمانهای کانال صوتی توکار CICP و مقادیر آنها
* links: چاپ اتصالات ممکن میان هر یک از فیلترهای پشتیبانیشده (از -hx برای مشاهده جزئیات بسته قابلیت مبدا به مقصد استفاده کنید)
* links FNAME: چاپ منابع و مقصدهای فیلتر FNAME (چه فیلتر توکار یا فیلتر جاوااسکریپت)
* defer: چاپ راهنمای حالت تعویق
* FNAME: چاپ اطلاعات فیلتر FNAME (میتوان چندین FNAME ارائه داد)
- برای متافیلترها، از FNAME:INST استفاده کنید؛ مانند ffavin:avfoundation
- از * برای چاپ اطلاعات همه فیلترها (خروجی بزرگ!)، و از *:* برای چاپ اطلاعات همه فیلترها شامل نمونههای متافیلتر (خروجی بسیار بزرگ!) استفاده کنید
- به طور پیشفرض فقط گزینهها و توضیحات پایه فیلتر نشان داده میشوند. از -ha برای نمایش قابلیتهای گزینههای پیشرفته، از -hx برای گزینههای تخصصی، و از -hh برای همه گزینهها و قابلیتهای فیلترها، از جمله فیلترهای غیرفعال در این ساخت، استفاده کنید
* FNAME.OPT: چاپ گزینه OPT در فیلتر FNAME
* OPT: جستجو در نام فیلترها و گزینهها به دنبال OPT و پیشنهاد موارد منطبق ممکن در صورت نیافتن. از -hx برای جستجوی کلیدواژه در تمام توضیحات گزینهها استفاده کنید - -p (رشته)
-
استفاده از نمایه مشخصشده برای پیکربندی سراسری GPAC. در صورت پیدا نشدن، فایل پیکربندی ایجاد میشود. اگر مسیر فایل مشخص شود، نمایه از آن فایل بارگذاری خواهد شد؛ در غیر این صورت، دایرکتوری با نام مشخصشده ایجاد شده و پیکربندی جدید در آن ذخیره میشود. نامهای رزروشده زیر یک نمایه موقت ایجاد میکنند (روی دیسک ذخیره نمیشود):
* 0: نمایه کامل
* n: نمایه تهی که ماژولها/فیلترهای اشتراکی و مسیرهای سیستمی را در پیکربندی غیرفعال میکند (ممکن است رابط گرافیکی و سایر فیلترها را از کار بیندازد)
افزودن :reload به نام نمایه، ایجاد مجدد یک فایل پیکربندی جدید را اجباری میکند
- -alias (رشته)
-
تخصیص یک نام مستعار جدید یا حذف یک نام مستعار. میتواند چندین بار مشخص شود. به نحوه استفاده از نامهای مستعار (-h alias) مراجعه کنید
- -aliasdoc (رشته)
-
تخصیص مستندات برای یک نام مستعار مشخص (اختیاری). میتواند چندین بار مشخص شود
- -cache-info
-
نمایش اطلاعات حافظه پنهان. آرگومان میتواند به صورت زیر باشد:
* بدون مقدار: کل حافظه پنهان بررسی میشود
* B: پالایش ورودیهای ایجادشده پس از B، که در آن B تعداد ثانیههای پیش از زمان فعلی یا یک تاریخ است (0 یعنی اکنون)
* B;C: پالایش ورودیهای ایجادشده پس از B اما پیش از C، که در آن B و C یا تعداد ثانیههای پیش از زمان کنونی و یا یک تاریخ هستند
- اگر B برابر 0 باشد، حداقل زمان برابر با UTC=0 خواهد بود
- اگر C برابر 0 باشد، حداکثر زمان برابر با اکنون خواهد بود
نحو آرگومان برای تمامی گزینههای حافظه پنهان یکسان است
- -cache-unflat
-
بازگرداندن همه موارد در دایرکتوری حافظه پنهان GPAC به نام اصلی و مسیر سرور اولیه آنها
- -cache-list
-
فهرست کردن ورودیهای موجود در حافظه پنهان
- -cache-clean (عدد صحیح)
-
پاکسازی حافظه پنهان
- -js (رشته)
-
تعیین فایل جاوااسکریپت برای استفاده به عنوان کنترلکننده نشست فیلتر (برای چندین اسکریپت میتواند چندین بار مشخص شود)
- -wc
-
نوشتن تمامی گزینههای هسته در فایل پیکربندی، مگر آنکه از قبل تنظیم شده باشند
- -we
-
نوشتن تمامی پسوندهای فایل در فایل پیکربندی، مگر آنکه از قبل تنظیم شده باشند (برای تغییر برخی پسوندهای پیشفرض فایل کاربرد دارد)
- -wf
-
نوشتن تمامی گزینههای فیلتر در فایل پیکربندی، مگر آنکه از قبل تنظیم شده باشند
- -wfx
-
نوشتن تمامی گزینههای فیلتر و همه آرگومانهای متافیلتر در فایل پیکربندی، مگر آنکه از قبل تنظیم شده باشند (فایل پیکربندی بسیار بزرگ خواهد شد!)
- -xopt
-
گزینههای ناشناخته و اعلانهای فیلتر پس از این گزینه نادیده گرفته میشوند - برای ارسال آرگومانها به رابط کاربری گرافیکی کاربرد دارد
- -creds (رشته)
-
تنظیم اطلاعات اعتبارسنجی به نحوی که توسط سرورها استفاده میشود
- -rv
-
بازگرداندن قدرمطلق خطای داخلی GPAC به جای 1 هنگام بروز خطاگزینههای هسته libgpac زیر امکان سفارشیسازی نشست فیلتر را فراهم میکنند:
- -dbg-edges
-
ثبت وضعیت یالها در گراف فیلتر پیش از حل به روش دایکسترا (برای اشکالزدایی). یالها به صورت edge_source(status(disable_depth), weight, src_cap_idx -> dst_cap_idx) ثبت میشوند
- -full-link
-
ارسال خطا در صورتی که هر یک از PIDها در گراف فیلتر قابل پیوند دادن نباشد
- -no-dynf
-
غیرفعالسازی فیلترهایی که به صورت پویا بارگذاری میشوند
- -no-block (شمارشی، پیشفرض: no)
-
غیرفعالسازی حالت مسدودکنندگی فیلترها
* no: فعالسازی حالت مسدودکنندگی
* fanout: غیرفعالسازی مسدودسازی در شاخهبندی خروجی (fan-out)، با رفع انسداد PID به محض آنکه یکی از مقصدهای آن به بسته نیاز داشته باشد
* all: غیرفعالسازی مسدودسازی
- -no-reg
-
غیرفعالسازی تنظیم نرخ انتقال (بدون sleep) در نشست
- -no-reassign
-
غیرفعالسازی بازتخصیص فیلتر مبدأ در حل گراف PID
- -sched (شمارشی، پیشفرض: lock)
-
تنظیم حالت زمانبند
* free: صفهای بدون قفل به جز برای فهرست وظایف (پیشفرض در بیشتر بسترهها)
* lock: استفاده از mutexها برای صفها هنگام وجود چندین ریسه (پیشفرض در arm64/aarch64)
* freex: صفهای بدون قفل حتی برای فهرستهای وظایف (آزمایشی)
* flock: استفاده از mutexها برای صفها حتی در نبود ریسه (حالت اشکالزدایی)
* direct: بدون ریسه و ارسال مستقیم وظایف در هر زمان ممکن (حالت اشکالزدایی)
- -max-chain (عدد صحیح، پیشفرض: 6)
-
تنظیم حداکثر طول زنجیره هنگام حل پیوندهای فیلتر. مقدار پیشفرض مسیر زیر را پوشش میدهد:
[ in -> ] dmx -> reframe -> decode -> encode -> reframe -> mx [ -> out]
زنجیرههای فیلتر بارگذاریشده برای تطبیق (مانند تغییر قالب پیکسل) پس از حل پیوند بارگذاری میشوند. تنظیم این مقدار روی 0 حل پویای پیوند را غیرفعال میکند؛ در این صورت باید کل زنجیره را به صورت دستی تعیین کنید
- -max-sleep (عدد صحیح، پیشفرض: 50)
-
تنظیم حداکثر شکاف زمانی وقفه (sleep) به میلیثانیه در زمان فعال بودن تنظیم نرخ انتقال
- -step-link
-
بارگذاری فیلترها به صورت دانهدانه هنگام حل پیوند به جای بارگذاری همه فیلترها برای مسیر حلشده
- -threads (عدد صحیح)
-
تنظیم N ریسه اضافی برای نشست. مقدار 1- به معنای استفاده از تمام هستههای پردازشی در دسترس است
- -no-probe
-
غیرفعالسازی بررسی نوع داده (probing) در منابع و اتکا به پسوند پرونده (بارگذاری سریعتر اما مستعد خطای بیشتر)
- -no-argchk
-
غیرفعالسازی ردیابی استفاده از آرگومانها (تمامی آرگومانها استفادهشده در نظر گرفته میشوند)
- -blacklist (رشته)
-
قرار دادن فیلترهای فهرستشده در رشته مشخصشده در لیست سیاه (فهرست جداشده با کاما). اگر نویسه نخست '-' باشد، این یک لیست سفید است؛ یعنی تنها فیلترهای فهرستشده در رشته مشخصشده مجاز خواهند بود
- -no-graph-cache
-
غیرفعالسازی حافظه پنهان داخلی برای اتصالات گراف فیلتر. در صورت غیرفعال بودن، گراف در هر بار حل پیوند دوباره محاسبه میشود (مصرف حافظه کمتر اما کندتر)
- -no-reservoir
-
غیرفعالسازی بازیافت حافظه برای بستهها و ویژگیها. این کار حافظه بسیار کمتری مصرف میکند، اما بار کاری بسیار بیشتری به تخصیصدهنده حافظه سیستم تحمیل میکند
- -buffer-gen (عدد صحیح، پیشفرض: 1000)
-
اندازه پیشفرض بافر به میکروثانیه برای PIDهای عمومی
- -buffer-dec (عدد صحیح، پیشفرض: 1000000)
-
اندازه پیشفرض بافر به میکروثانیه برای PIDهای ورودی رمزگشا
- -buffer-units (عدد صحیح، پیشفرض: 1)
-
اندازه پیشفرض بافر به فریم در زمانی که زمانبندی در دسترس نیست
- -check-props
-
بررسی انواع ویژگیهای شناختهشده هنگام تخصیص و بررسی انواع PID در برابر بسته هنگام دریافت (در حالت آزمون، در صورت عدم تطابق با کد خطای 5 خارج میشود)
استفاده از نامهای مستعار (Using Aliases)
خط فرمان gpac هنگامی که از منابع یا فیلترهای متعددی استفاده میشود میتواند بسیار پیچیده شود. برای سادهسازی این موضوع، یک سامانه نام مستعار فراهم شده است.
برای
انتساب یک
نام
مستعار، از
نحو gpac -alias="NAME VALUE"
استفاده
کنید.
* `NAME`: باید یک
رشته منفرد
و بدون
فاصله باشد.
* `VALUE`: فهرست
آرگومانهایی
که این نام
مستعار
جایگزین
آنها
میشود. اگر
تنظیم
نشود، نام
مستعار حذف
میشود.
هنگام
تجزیه
آرگومانها،
نام مستعار
با مقدار
خود
جایگزین
خواهد شد.
مثال:
gpac -alias="output aout vout"
این دستور امکان پخش بعدی صوت و تصویر را با استفاده از gpac -i src.mp4 output فراهم میکند.
نامهای
مستعار
میتوانند
از
آرگومانهای
خط فرمان
استفاده
کنند.
نحوهای
مجاز
عبارتند از:
* `@{a}`: با مقدار
آرگومان
دارای
نمایه a پس از
نام مستعار
جایگزین
میشود
* `@{a,b}`: با مقدار
آرگومانهای
دارای
نمایههای a
و b جایگزین
میشود
* `@{a:b}`: با مقدار
آرگومانهای
بین
نمایههای a
و b جایگزین
میشود
* `@{-a,b}`: با مقدار
آرگومانهای
دارای
نمایههای a
و b جایگزین
میشود، در
حالی که یک
جداکننده
فهرست
(بهطور
پیشفرض
کاما) میان
آنها درج
میکند
* `@{-a:b}`: با مقدار
آرگومانهای
بین
نمایههای a
و b جایگزین
میشود، در
حالی که یک
جداکننده
فهرست
(بهطور
پیشفرض
کاما) میان
آنها درج
میکند
* `@{+a,b}`: کلمه والد
را در نام
مستعار
برای a و b
تکثیر
میکند، و
این الگو را
در هر نمونه
با آرگومان
متناظر
جایگزین
مینماید
* `@{+a:b}`: کلمه والد
را در نام
مستعار
برای هر
آرگومان
بین
نمایههای a
و b تکثیر
میکند، و
این الگو را
در هر نمونه
با آرگومان
متناظر
جایگزین
مینماید
نمایه
مشخصشده
میتواند
به
صورتهای
زیر باشد:
* نمایه رو به
جلو (forward index): یک
عدد صحیح
اکیداً
مثبت، که در
آن 1 نخستین
آرگومان پس
از نام
مستعار است
* نمایه رو به
عقب (backward index):
مقدار 'n' (یا 'N')
برای اشاره
به آخرین
آرگومان در
خط فرمان.
این مقدار
میتواند
همراه با -x
برای
بازگشت به
عقب در
آرگومانها
باشد (برای
مثال @{n-1}
آرگومان
یکی مانده
به آخر است)
پیش از حل
نامهای
مستعار،
تمام
آرگومانهای
گزینهها
به ابتدای
خط فرمان
منتقل
میشوند.
این بدان
معناست که
آرگومانهای
نام مستعار
نمیتوانند
گزینه
باشند.
آرگومانهایی
که توسط هیچ
نام
مستعاری
استفاده
نشدهاند
در خط فرمان
باقی
میمانند و
بقیه حذف
میشوند
مثال:
-alias="foo src=@{N} dst=test.mp4"
دستور gpac foo f1 f2
به عبارت gpac src=f2
dst=test.mp4 f1 بسط
مییابد
مثال:
-alias="list: inspect src=@{+:N}"
دستور gpac list f1 f2 f3
به عبارت gpac inspect
src=f1 src=f2 src=f3 بسط
مییابد
مثال:
-alias="list inspect src=@{+2:N}"
دستور gpac list f1 f2 f3
به عبارت gpac inspect
src=f2 src=f3 f1 بسط
مییابد
مثال:
-alias="plist aout vout flist:srcs=@{-,N}"
دستور gpac plist f1 f2 f3 به عبارت gpac aout vout flist:srcs="f1,f2,f3" بسط مییابد
مستندات
نام مستعار
را میتوان
با استفاده
از gpac -aliasdoc="NAME VALUE"
تنظیم کرد
که در آن NAME
نام مستعار
و VALUE متن
مستندات
است.
مستندات
نام مستعار
سپس در
راهنمای gpac
ظاهر خواهد
شد.
اطلاعات کاربری (User Credentials)
برخی از
کارسازها
در GPAC
میتوانند
از احراز
هویت مبتنی
بر کاربر و
گروه
استفاده
کنند.
این
اطلاعات
بهطور
پیشفرض در
فایل users.cfg واقع
در
دایرکتوری
نمایه GPAC
ذخیره
میشود.
این فایل را
میتوان با
استفاده از
گزینه -users
بازنویسی
کرد.
بهطور پیشفرض، این فایل تا زمانی که دستکم یک کاربر پیکربندی نشده باشد، وجود ندارد.
گزینه creds
امکان
بازبینی یا
تغییر
اطلاعات
کاربران و
گروهها را
فراهم
میکند. نحو
مقدار این
گزینه به
شرح زیر است:
* `show` یا بدون
مقدار: چاپ
فایل users.cfg
* `reset`: حذف فایل users.cfg
(یعنی حذف
تمام
کاربران و
گروهها)
* `NAME`: نمایش
اطلاعات
کاربر NAME
* `+NAME`: افزودن
کاربر NAME
* `+NAME:I1=V1[,I2=V2]`: تنظیم
اطلاع I1 با
مقدار V1 برای
کاربر NAME. نام
اطلاع password
گذرواژه را
بدون اعلان
بازنشانی
میکند.
* `-NAME`: حذف کاربر
NAME
* `_NAME`: اجبار به
تغییر
گذرواژه
کاربر NAME
* `@NAME`: نمایش
اطلاعات
گروه NAME
* `@+NAME[:u1[,u2]]`: افزودن
گروه NAME در
صورت عدم
وجود و
اضافه کردن
کاربران
مشخصشده
به گروه
* `@-NAME:u1[,u2]`: حذف
کاربران
مشخصشده
از گروه NAME
* `@-NAME`: حذف گروه NAME
بهطور
پیشفرض
تمام
کاربران
اضافهشده
عضو گروه users
هستند.
گذرواژهها
ذخیره
نمیشوند،
تنها یک هش SHA256
ذخیره
میشود.
کارسازهایی
که از
قوانین
احراز هویت
استفاده
میکنند
میتوانند
به جای نام
یک
دایرکتوری
از یک فایل
پیکربندی
استفاده
نمایند.
این فایل
پیکربندی
در قالب
بخشها
سازماندهی
شده است، که
نام هر بخش
توصیفکننده
یک
دایرکتوری
است.
مثال:
[somedir]
ru=foo
rg=bar
کلیدهای
زیر به ازای
هر
دایرکتوری
تعریف
شدهاند،
اما ممکن
است بسته به
حالت
عملکرد
کارساز
نادیده
گرفته شوند:
* ru: فهرست
نامهای
کاربری
جداشده با
کاما با
دسترسی
خواندن به
دایرکتوری
* rg: فهرست
نامهای
گروه
جداشده با
کاما با
دسترسی
خواندن به
دایرکتوری
* wu: فهرست
نامهای
کاربری
جداشده با
کاما با
دسترسی
نوشتن به
دایرکتوری
* wg: فهرست
نامهای
گروه
جداشده با
کاما با
دسترسی
نوشتن به
دایرکتوری
* mcast: فهرست
نامهای
کاربری
جداشده با
کاما با
دسترسی
ایجاد
چندپخشی
(فقط کارساز
RTSP)
* filters: فهرست
نامهای
فیلتر
جداشده با
کاما که
دایرکتوری
برای آنها
معتبر است.
در صورت
یافت نشدن
یا all، بر
تمام
فیلترها
اعمال
میشود
دسترسیها
را میتوان
با افزودن
بخشهایی
برای
دایرکتوریهای
مدنظر، بر
روی
زیردایرکتوریها
نیز
پیکربندی
کرد.
مثال:
[d1]
rg=bar
[d1/d2]
ru=foo
با این
پیکربندی:
- دایرکتوری d1
برای تمامی
اعضای گروه
bar قابل
خواندن
خواهد بود
- دایرکتوری
d1/d2 تنها برای
کاربر foo
قابل
خواندن
خواهد بود
کارسازها در GPAC در حال حاضر تنها از طرح احراز هویت Basic HTTP پشتیبانی میکنند و ترجیحاً باید بر بستر TLS اجرا شوند.
حالت آزمایش با تاخیر (Defer test mode)
این حالت
میتواند
برای
آزمایش
بارگذاری
فیلترها به
صورت
تکبهتک و
درخواست
صریح برای
حل پیوند
استفاده
شود.
این قابلیت
بیشتر برای
بازتولید
نحوه ساخت
نشستها در
برنامههای
پیچیدهتر
به کار
میرود.
گزینههای
rl، pi، pl و pd
امکان
آدرسدهی
یک فیلتر با
نمایه F در یک
فهرست را
فراهم
میکنند.
- اگر گزینه
دارای
پسوند x باشد
(مانند rlx=)،
مقدار F=0 به
معنای
آخرین
فیلتر در
فهرست
فیلترهای
نشست است
- در غیر این
صورت، F=0 به
معنای
آخرین
فیلتر
اعلانشده
پیش از
گزینه است
گزینههای
پیوند مجدد
-rl و -rlx
همواره
نشست را
تخلیه (flush)
میکنند (تا
زمانی که
هیچ
وظیفهای
زمانبندی
نشده باشد
اجرا
میشوند).
اجرای آخر
را میتوان
نادیده
گرفت.
مثال:
gpac -dl -np -i SRC reframer -g -rl -g inspect -g -rl
این دستور
فیلترهای SRC
و reframer را
بارگذاری
میکند،
گراف را چاپ
میکند
(بدون
اتصال)، SRC را
مجدداً
پیوند
میدهد،
گراف را چاپ
میکند
(اتصال به reframer)،
inspect را درج
میکند،
گراف را چاپ
میکند
(بدون
اتصال)، reframer را
مجدداً
پیوند
میدهد و
اجرا
میکند. در
اینجا هیچ
رویداد
پخشی (play)
ارسال
نمیشود.
مثال:
gpac -dl -np -i SRC reframer inspect:deep -g -rl=2 -g -rl -se
این دستور فیلترهای SRC، reframer و inspect را بارگذاری میکند، گراف را چاپ میکند (بدون اتصال)، SRC را مجدداً پیوند میدهد، گراف را چاپ میکند (اتصال به reframer)، گراف را چاپ میکند (بدون اتصال)، reframer را مجدداً پیوند میدهد، رویداد پخش را ارسال میکند و اجرا میشود.
پیونددهی
را میتوان
پس از
بارگذاری
فیلترها،
با استفاده
از نحو @F@SRC یا @@F@SRC
انجام داد:
- نماد @F فیلتر
مقصد را با
استفاده از
نمایهای
مبتنی بر
صفر (F) از
آخرین
فیلتر
بارگذاریشده
مشخص
میکند،
مثلاً @0
نشاندهنده
آخرین
فیلتر
بارگذاریشده
است.
- نماد @@F
فیلتر هدف
را با
استفاده از
نمایهای
مبتنی بر
صفر (F) از
نخستین
فیلتر
بارگذاریشده
مشخص
میکند،
مثلاً @@1
نشاندهنده
دومین
فیلتر
بارگذاریشده
است.
* `@SRC` یا `@@SRC`: همان
نحو
دستورالعملهای
پیوند
منابع باید
الزاماً
پیش از
پیوند مجدد
خروجیها
با استفاده
از rl تنظیم
شوند.
مثال:
gpac -dl -i SRC F1 F2 [...] @1@2 @0@2
این دستور پس از بارگذاری تمام فیلترها، SRC را به عنوان منبع به F1 و SRC را به عنوان منبع به F2 متصل میکند.
گزینههای زیر در حالت با تاخیر (defer mode) استفاده میشوند:
- -dl
-
فعالسازی حالت پیوند با تاخیر برای آزمایشهای ساخت مرحلهبهمرحله گراف
- -np
-
جلوگیری از ارسال رویداد پخش از سینکها
- -rl[=F] (string)
-
پیوند مجدد خروجیهای فیلتر F (پیشفرض 1)
- -wl[=F] (string)
-
مشابه -rl اما نشست را تخلیه (flush) نمیکند
- -pi=[+|-][F[:i]] (string)
-
چاپ ویژگیهای PID (همه یا با نمایه i) فیلتر F (پیشفرض 0)
* در صورت داشتن پیشوند `-`: تنها فهرست کردن PIDها
* در صورت داشتن پیشوند `+`: چاپ اطلاعات PID نیز
- -pl=[+][F[:i]]@NAME (string)
-
کاوش زنجیره فیلتر از فیلتر F (پیشفرض 0) تا فیلتر دادهشده NAME:
* در صورت داشتن پیشوند `+`: چاپ تمام زنجیرههای شناختهشده و اولویتهای آنها
- -pd=[F[:i]] (string)
-
چاپ مقصدهای ممکن PID (همه یا با نمایه i) فیلتر F (پیشفرض 0)
- -f
-
تخلیه نشست تا زمانی که هیچ وظیفهای باقی نماند
- -g
-
چاپ گراف
- -s
-
چاپ آمارها
- -se
-
ارسال رویداد PLAY از سینکها (تنها یکبار انجام میشود)
- -m (string)
-
چاپ پیام
فایل پیکربندی (Configuration file)
ابزار GPAC از
یک فایل
پیکربندی
برای اصلاح
گزینههای
پیشفرض libgpac و
فیلترها
استفاده
میکند. این
فایل GPAC.cfg نام
دارد و در
مسیرهای
زیر قرار
دارد:
- در
پلتفرمهای
ویندوز، در
C:UsersODatagram FilesGPAC.
- در
پلتفرمهای
iOS، در یک
پوشه .gpac در
دایرکتوری
ذخیرهسازی
برنامه.
- در
پلتفرمهای
اندروید،
در /sdcard/GPAC/ در
صورت وجود
این
دایرکتوری،
وگرنه در
/data/data/io.gpac.gpac/GPAC.
- در سایر
پلتفرمها،
در $HOME/.gpac/.
برنامهها
در GPAC همچنین
میتوانند
از طریق
گزینه
نمایه -p یک
فایل
پیکربندی
متفاوت
مشخص کنند.
به عنوان
مثال gpac -p=foo []
این دستور
پیکربندی
را از $HOME/.gpac/foo/GPAC.cfg
بارگذاری
کرده و در
صورت نیاز
آن را ایجاد
میکند.
نام
رزروشده 0
برای
غیرفعال
کردن نوشتن
در فایل
پیکربندی
استفاده
میشود.
فایل
پیکربندی
در قالب
بخشها
ساختاربندی
شده است که
هر یک از یک
یا چند کلید
تشکیل شده
است:
- بخش foo به
صورت [foo]0[u200E]
اعلان
میشود
- کلید bar با
مقدار N به
صورت bar=N0[u200E]
اعلان
میشود.
مقدار کلید N
تفسیر
نمیشود و
همواره به
عنوان متن ASCII
پردازش
میشود.
بهطور
پیشفرض
فایل
پیکربندی
تنها شامل
چند گزینه و
دایرکتوری
خاص سیستم
است. امکان
سریالسازی
کل مجموعه
گزینهها
در فایل
پیکربندی
با استفاده
از -wc و -wf
وجود دارد.
باید از این
کار اجتناب
شود زیرا
حجم فایل
پیکربندی
حاصل بسیار
زیاد خواهد
شد و در
نتیجه مصرف
حافظه
برنامهها
افزایش
مییابد.
گزینههای
مشخصشده
در فایل
پیکربندی
ممکن است در
صورت وجود
فایل restrict.cfg در
دایرکتوری
اشتراکی
سیستمی GPAC
(مانند /usr/share/gpac
یا C:Program FilesGPAC)،
توسط
مقادیر آن
بازنویسی
شوند؛ این
کار امکان
اعمال
مقادیر
پیکربندی
در سطح کل
سیستم را
فراهم
میکند.
نکته:
روشهای
شرحدادهشده
در این بخش
برای هر
برنامهای
در GPAC که
آرگومانهای
خود را به libgpac
منتقل
میکند،
اعمال
میشود. این
مورد شامل gpac
و MP4Box است.
گزینههای هسته (Core options)
گزینههای
هسته libgpac را
میتوان از
طریق فایل
پیکربندی
در بخش core با
استفاده از
نام گزینه
بدون خط
تیره
ابتدایی به
عنوان نام
کلید نیز
مقداردهی
کرد.
مثال:
[core]
threads=2
تنظیم این
مقدار در
فایل
پیکربندی
معادل
استفاده از
-threads=2 است.
گزینههای
مشخصشده
در خط
فرمان،
مقادیر
فایل
پیکربندی
را
بازنویسی
میکنند.
گزینههای فیلتر در پیکربندی (Filter options in configuration)
امکان
تغییر
مقدار
پیشفرض یک
گزینه
فیلتر با
اصلاح فایل
پیکربندی
وجود دارد.
گزینههای
فیلتر foo در
بخش [filter@foo]، با
استفاده از
نام گزینه و
مقدار به
عنوان جفت
کلید-مقدار
ذخیره
میشوند.
گزینههای
مشخصشده
از طریق
فایل
پیکربندی
بر
گزینههای
مشخصشده
در اعلان خط
فرمان یا از
طریق نام
مستعار
تقدم
ندارند.
مثال:
[filter@rtpin]
interleave=yes
این دستور
فیلتر
ورودی rtp را
وادار
میکند تا
بهطور
پیشفرض
همواره RTP را
بر بستر RTSP
درخواست
کند.
برای ایجاد
یک فایل
پیکربندی
با تمام
گزینههای
فیلتر به
صورت
سریالسازیشده،
از -wf
استفاده
کنید.
گزینههای عمومی فیلتر (Global filter options)
امکان
مشخص کردن
گزینههای
عمومی برای
چندین
فیلتر با
استفاده از
--OPTNAME=VAL وجود
دارد.
گزینههای
عمومی
گزینههای
فیلتر را
بازنویسی
نمیکنند
اما نسبت به
گزینههای
بارگذاریشده
از فایل
پیکربندی
تقدم دارند.
این کار
گزینه OPTNAME را
در صورت
وجود، در هر
فیلتر
بارگذاریشده
برابر با VAL
قرار
میدهد.
مثال:
--buffer=100 -i file vout aout
این معادل
مشخص کردن
vout:buffer=100 aout:buffer=100 است.
مثال:
--buffer=100 -i file vout aout:buffer=10
این معادل
مشخص کردن
vout:buffer=100 aout:buffer=10 است.
هشدار: این
نحو تنها
برای
گزینههای
معمولی
فیلتر
اعمال
میشود.
نمیتوان
از آن با
میانبرهای
توکار (gfreg، enc، ...)
استفاده
کرد.
گزینههای
فرا-فیلتر
را میتوان
به همین
ترتیب با
استفاده از
نحو --OPT_NAME=VAL
تنظیم کرد.
مثال:
--profile=Baseline -i file.cmp -o dump.264
این معادل مشخص کردن -o dump.264:profile=Baseline است.
برای هر دو
نحو، این
امکان وجود
دارد که نام
رجیستری
فیلترِ
گزینه را با
استفاده از
--FNAME:OPTNAME=VAL یا --FNAME@OPTNAME=VAL
مشخص کرد.
در این
حالت،
گزینه تنها
برای
فیلترهایی
تنظیم
خواهد شد که
نمونههایی
از رجیستری
FNAME هستند. این
قابلیت
زمانی
استفاده
میشود که
چندین
رجیستری از
نامهای
گزینه
یکسان
استفاده
میکنند.
مثال:
--flist@timescale=100 -i plist1 -i plist2 -o live.mpd
این دستور گزینه timescale را روی فیلترهای لیست پخش تنظیم میکند اما بر فیلتر dasher اعمال نخواهد کرد.
گزینههای هسته libgpac (libgpac core options):
- -tmp (string)
-
مشخص کردن دایرکتوری برای ایجاد فایلهای موقت به جای مدیریت فایلهای موقت پیشفرض سیستمعامل
- -noprog
-
غیرفعال کردن پیامهای پیشرفت
- -quiet
-
غیرفعال کردن تمام پیامها، از جمله خطاها
- -proglf
-
استفاده از خط جدید در هر پیام پیشرفت
- -strict-error,-se
-
خروج از برنامه پس از گزارش اولین خطا
- -store-dir (string)
-
تنظیم دایرکتوری ذخیرهسازی
- -mod-dirs (string list)
-
تنظیم دایرکتوریهای ماژول اضافی بهصورت یک فهرست جداشده با نقطه ویرگول (;)
- -js-dirs (string list)
-
تنظیم دایرکتوریهای جاوااسکریپت
- -no-js-mods (string list)
-
غیرفعال کردن بارگذاری ماژولهای جاوااسکریپت
- -ifce (string)
-
تنظیم رابط چندپخشی (multicast) پیشفرض (پیشفرض ANY است)، بهصورت یک آدرس IP یا نام دستگاه مطابق با فهرست ارائهشده توسط gpac -h net. پیشوند '+' استفاده از IPv6 را برای رابط دوگانه تحمیل میکند
- -lang (string)
-
تنظیم زبان ترجیحی
- -cfg,-opt (string)
-
دریافت یا تنظیم مقدار در فایل پیکربندی. پارامتر رشتهای میتواند در قالبهای زیر باشد:
* `section:key=val`: مقدار کلید را به یک مقدار جدید تنظیم میکند
* `section:key=null`, `section:key`: کلید را حذف میکند
* `section=null`: بخش را حذف میکند
* بدون آرگومان: کل فایل پیکربندی را چاپ میکند
* `section`: بخش مشخصشده را چاپ میکند
* `section:key`: کلید مشخصشده در بخش را چاپ میکند (بخش میتواند * باشد) - *:key: کلید مشخصشده را در تمام بخشها چاپ میکند
- -no-save
-
صرفنظر کردن از هرگونه تغییر اعمالشده روی فایل پیکربندی هنگام خروج
- -mod-reload
-
تخلیه از حافظه (unload) / بارگذاری مجدد (reload) کتابخانههای اشتراکی ماژول در زمانی که دیگر استفاده نمیشوند
- -for-test
-
غیرفعال کردن تمام تاریخهای ایجاد/تغییر و نسخههای GPAC در فایلها
- -old-arch
-
فعالسازی سازگاری با نسخههای قدیمی GPAC (پیش از معماری فیلترها)
- -ntp-shift (int)
-
شیفت ساعت NTP به میزان مقدار مشخصشده بر حسب ثانیه
- -bs-cache-size (int, default: 512)
-
اندازه کش برای خواندن و نوشتن جریان بیت (bitstream) از فایل (مقدار ۰ کش را غیرفعال میکند که منجر به I/O کندتر میشود)
- -no-check
-
غیرفعال کردن آزمونهای انطباق برای ورودیها (در حال حاضر ISOBMFF). این کار احتمالاً منجر به کرشهای تصادفی خواهد شد
- -unhandled-rejection
-
دامپ کردن رد وعدههای رسیدگینشده (unhandled promise rejections)
- -startup-file (string)
-
فایل راهاندازی ترکیبکننده (compositor) در حالت رابط گرافیکی (GUI)
- -docs-dir (string)
-
دایرکتوری پیشفرض اسناد (برای رابط گرافیکی در iOS و Android)
- -last-dir (string)
-
آخرین دایرکتوری کاری (برای رابط گرافیکی)
- -no-poll
-
غیرفعال کردن poll و استفاده از select برای گروههای سوکت
- -no-tls-rcfg
-
غیرفعال کردن پیکربندی مجدد خودکار TCP به TLS
- -no-fd
-
استفاده از I/O با بافر به جای توصیفکننده فایل (file descriptor) برای خواندن/نوشتن - این امر میتواند عملیات روی فایلهای کوچک را سریعتر کند
- -no-mx
-
غیرفعال کردن تمام میوتکسها، رشتهها (threads) و سمافورها (اگر از رشتههای مورداستفاده اطمینان ندارید، از این گزینه استفاده نکنید)
- -xml-max-csize (int, default: 100k)
-
حداکثر اندازه محتوا یا ویژگی XML
- -users (string)
-
فایل پیکربندی احراز هویت برای کاربران و گروهها
- -netcap (string)
-
تنظیم قوانین ضبط و فیلتر کردن بستهها با قالب [CFG][RULES]. هر آرگومان -netcap یک پیکربندی را تعریف میکند
بخش [CFG] فهرستی اختیاری و جداشده با کاما از موارد زیر است:
* id=ID: شناسه (رشته) برای این پیکربندی. اگر NULL باشد، پیکربندی بر تمام سوکتهایی که شناسه netcap مشخص نکردهاند اعمال میشود
* src=F: خواندن بستهها از F، آنگونه که توسط GPAC یا یک فایل pcap یا pcapng تولید شده است
* dst=F: خروجی دادن بستهها به F (فایل GPAC یا pcap/pcapng)؛ در صورت تنظیم بودن src نمیتواند تنظیم شود
* loop[=N]: تکرار فایل ضبطشده به تعداد N بار، یا نامحدود اگر N مشخص نشده یا منفی باشد
* nrt: غیرفعال کردن پخش بلادرنگ (real-time)
بخش [RULES] فهرستی اختیاری از [...OPT,OPT2] است که در آن OPT در موارد زیر قرار دارد:
* m=K: تنظیم حالت قانون - K میتواند r فقط برای دریافت (پیشفرض)، w فقط برای ارسال یا rw برای هر دو باشد
* s=K: تنظیم شروع بازه بسته روی K
* e=K: تنظیم پایان بازه بسته روی K - فقط برای قوانین r و f استفاده میشود؛ مقدار ۰ یا تنظیمنشده به معنی اعمال قانون تا انتها است
* n=K: تنظیم تعداد بستههایی که باید دور ریخته شوند روی K - در صورت تنظیم نشدن، ۰ یا ۱ به معنای یک بسته منفرد است
* r=K: دور ریختن تصادفی n بسته در هر K بسته
* f=K: دور ریختن n بسته اول در هر K بسته
* d=K: بازآرایی n بسته پس از K بسته بعدی؛ میتواند با قوانین f یا r استفاده شود
* p=K: فیلتر کردن بستهها فقط روی پورت K؛ در صورت تنظیم نشدن، قانون بر تمام بستهها اعمال میشود
* o=K: اصلاح (patch) بسته به جای دور ریختن آن (همیشه برای TCP صادق است)، با جایگزینی بایت در آفست K (مقدار ۰ اولین بایت است و کمتر از ۰ تصادفی است)
* v=K: تنظیم مقدار بایت اصلاحی روی K (هگزادسیمال) یا مقدار منفی برای تصادفی (پیشفرض)
* S=K: همانند s، اما تعداد بارگذاری مجدد/حلقه فایل ضبط را اضافه میکند
* E=K: همانند e، اما تعداد بارگذاری مجدد/حلقه فایل ضبط را اضافه میکندمثال
-netcap=dst=dump.gpcاین دستور بستهها را در dump.gpc ضبط میکند
مثال
-netcap=src=dump.gpc,id=NC1 -i session1.sdp:NCID=NC1 -i session2.sdpاین دستور بستهها را فقط برای session1.sdp از dump.gpc میخواند و به session2.sdp اجازه میدهد از سوکتهای عادی استفاده کند
مثال
-netcap=[p=1234,s=100,n=20][r=200,s=500,o=10,v=FE]این دستور از رابط شبکه عادی استفاده کرده و بستههای ۱۰۰ تا ۱۱۹ را روی پورت ۱۲۳۴ دور میریزد و یک بسته تصادفی را از هر ۲۰۰ بسته، با شروع از بسته ۵۰۰، با تنظیم بایت ۱۰ به FE اصلاح میکند
- -cache (string)
-
محل دایرکتوری کش
- -proxy (string)
-
تنظیم آدرس و پورت سرور پراکسی HTTP (اگر طرح پروتکل مشخص نشده باشد، از همان پروتکل مقصد استفاده میشود)
- -maxrate (int)
-
تنظیم حداکثر نرخ دانلود HTTP بر حسب بیت بر ثانیه. مقدار ۰ به معنای نامحدود است
- -no-cache
-
غیرفعال کردن ذخیرهسازی موقت (کش) HTTP
- -offline-cache
-
فعالسازی کش آفلاین HTTP (بدون اعتبارسنجی مجدد منابع موجود در کش)
- -clean-cache
-
مشخص میکند که آیا کش HTTP باید هنگام راهاندازی/خروج پاکسازی شود یا خیر
- -cache-size (int, default: 100M)
-
مشخص کردن حداکثر اندازه کش روی دیسک بر حسب بایت
- -cache-check (int, default: 60)
-
فاصله زمانی پاکسازی کش بر حسب ثانیه؛ مقدار ۰ فقط کش را هنگام راهاندازی پاکسازی میکند
- -tcp-timeout (int, default: 5000)
-
مدت زمان انتظار بر حسب میلیثانیه برای اتصال HTTP/RTSP پیش از اعلام خطا
- -req-timeout (int, default: 10000)
-
مدت زمان انتظار بر حسب میلیثانیه برای درخواست HTTP/RTSP پیش از اعلام خطا (مقدار ۰ مهلت زمانی را غیرفعال میکند)
- -no-timeout
-
نادیده گرفتن مهلت زمانی (timeout) در keep-alive پروتکل HTTP 1.1
- -broken-cert
-
فعال کردن پذیرش گواهیهای SSL نامعتبر یا معیوب
- -ca-bundle (string)
-
مسیر فایل بسته گواهیهای CA سفارشی
- -user-agent,-ua (string)
-
تنظیم نام عامل کاربر (user agent) برای HTTP/RTSP
- -user-profileid (string)
-
تنظیم شناسه نمایه کاربر (از طریق سربرگ X-UserProfileID) در درخواستهای HTTP
- -user-profile (string)
-
تنظیم نام فایل نمایه کاربر. محتوای فایل به عنوان بدنه به درخواستهای HTTP HEAD/GET ضمیمه میشود و Mime مربوطه text/xml است
- -query-string (string)
-
درج رشته پرسوجو (query string بدون علامت ?) در URL در هنگام درخواستها
- -dm-threads
-
اجبار به استفاده از رشتهها (threads) برای درخواستهای دانلود ناهمگام به جای زمانبند نشست
- -cte-rate-wnd (int, default: 20)
-
تنظیم طول پنجره تحلیل بر حسب میلیثانیه برای تخمین نرخ کدگذاری انتقال تکهای (chunk-transfer encoding)
- -cred (string)
-
مسیر کلید ۱۲۸ بیتی برای ذخیرهسازی اعتبارنامهها
- -no-h2
-
غیرفعال کردن HTTP2
- -no-h2c
-
غیرفعال کردن ارتقا به HTTP2 (یعنی روی اتصالات بدون TLS)
- -h2-copy
-
فعالسازی کپی میانی دادهها در nghttp2 (بهطور پیشفرض غیرفعال است اما ممکن است در wireshark به عنوان فریمهای خراب گزارش شود)
- -h2-max-frame (int, default: 1m)
-
تنظیم حداکثر اندازه فریم در HTTP2
- -h3-ack-threshold (int, default: 2)
-
آستانه ack پروتکل QUIC (مشاهده کنید: ngtcp2_settings.ack_thresh)
- -h3-algo (string, default: cubic, values: cubic|bbr|reno)
-
الگوریتم کنترل ازدحام برای QUIC
* cubic: CUBIC
* bbr: BBR v2
* reno: Reno
- -h3-mwnd (int, default: 0)
-
تنظیم حداکثر اندازه پنجره در QUIC/HTTP3 (مشاهده کنید: ngtcp2_settings.max_window)
- -h3-st-mwnd (int, default: 0)
-
تنظیم حداکثر اندازه پنجره جریان در QUIC/HTTP3 (مشاهده کنید: ngtcp2_settings.max_stream)
- -hx-max-st (int, default: 100)
-
تنظیم حداکثر تعداد جریانهای همروند HTTP2 یا QUIC/HTTP3
- -hx-iwnd (int, default: 64m)
-
تنظیم اندازه پنجره اتصال اولیه در HTTP2 یا QUIC/HTTP3
- -hx-st-iwnd (int, default: 32m)
-
تنظیم اندازه پنجره جریان اولیه در HTTP2 یا QUIC/HTTP3
- -curl
-
استفاده از CURL به جای پشته HTTP برنامه GPAC
- -h3 (Enum, default: auto)
-
تنظیم حالت HTTP/3
* no: غیرفعال کردن HTTP/3
* first: اجبار به تلاش اولیه با HTTP/3
* auto: اتصال با استفاده از HTTP 1 یا 2 و استفاده از HTTP/3 برای درخواست(های) بعدی در صورت اعلان
* only: فقط استفاده از HTTP/3
- -h3-trace
-
ردیابی (trace) پروتکلهای QUIC و HTTP3
- -dbg-edges
-
ثبت وضعیت یالها در گراف فیلتر قبل از حل دایکسترا (برای اشکالزدایی). یالها به صورت edge_source(status(disable_depth), weight, src_cap_idx -> dst_cap_idx) ثبت میشوند
- -full-link
-
پرتاب خطا در صورتی که هر PID در گراف فیلتر نتواند متصل شود
- -no-dynf
-
غیرفعال کردن فیلترهای بارگذاریشده به صورت پویا
- -no-block (Enum, default: no)
-
غیرفعال کردن حالت انسدادی (blocking) فیلترها
* no: فعالسازی حالت انسدادی
* fanout: غیرفعال کردن انسداد روی انشعاب خروجی (fan-out)، رفع انسداد PID به محض اینکه یکی از مقاصد آن به بستهای نیاز داشته باشد
* all: غیرفعال کردن انسداد
- -no-reg
-
غیرفعال کردن تنظیم سرعت (بدون sleep) در نشست
- -no-reassign
-
غیرفعال کردن تخصیص مجدد فیلتر منبع در تحلیل گراف PID
- -sched (Enum, default: lock)
-
تنظیم حالت زمانبند (scheduler)
* free: صفهای بدون قفل (lock-free) به جز برای لیست تسکها (پیشفرض در اکثر پلتفرمها)
* lock: استفاده از میوتکس برای صفها در هنگام وجود چندین رشته (پیشفرض در arm64/aarch64)
* freex: صفهای بدون قفل از جمله برای لیستهای تسک (آزمایشی)
* flock: استفاده از میوتکس برای صفها حتی در صورت نبود رشته (حالت اشکالزدایی)
* direct: بدون رشته و ارسال مستقیم تسکها تا جای ممکن (حالت اشکالزدایی)
- -max-chain (int, default: 6)
-
تنظیم حداکثر طول زنجیره هنگام تحلیل پیوندهای فیلتر. مقدار پیشفرض مسیر [ in -> ] dmx -> reframe -> decode -> encode -> reframe -> mx [ -> out] را پوشش میدهد. زنجیرههای فیلتر بارگذاریشده برای تطبیق (مانند تغییر قالب پیکسل) پس از تحلیل پیوند بارگذاری میشوند. تنظیم این مقدار روی ۰ تحلیل پویای پیوند را غیرفعال میکند و باید کل زنجیره را به صورت دستی مشخص کنید
- -max-sleep (int, default: 50)
-
تنظیم حداکثر شکاف زمانی خواب (sleep) بر حسب میلیثانیه در زمان فعال بودن تنظیم سرعت (regulation)
- -step-link
-
بارگذاری فیلترها یکی پس از دیگری هنگام حل پیوند به جای بارگذاری همه فیلترها برای مسیر حلشده
- -threads (int)
-
تنظیم N رشته اضافی برای نشست. مقدار ۱- به معنی استفاده از تمام هستههای موجود است
- -no-probe
-
غیرفعال کردن کاوش دادهها (data probing) روی منابع و تکیه بر پسوند فایل (بارگذاری سریعتر اما مستعد خطای بیشتر)
- -no-argchk
-
غیرفعال کردن ردیابی استفاده از آرگومانها (تمام آرگومانها به عنوان استفادهشده در نظر گرفته میشوند)
- -blacklist (string)
-
قرار دادن فیلترهای فهرستشده در رشته مشخصشده (فهرست جداشده با کاما) در لیست سیاه. اگر اولین نویسه '-' باشد، این یک لیست سفید خواهد بود، یعنی فقط فیلترهای ذکرشده در رشته مشخصشده مجاز خواهند بود
- -no-graph-cache
-
غیرفعال کردن کش داخلی اتصالات گراف فیلتر. در صورت غیرفعال بودن، گراف در هر تحلیل پیوند مجدداً محاسبه میشود (مصرف حافظه کمتر اما سرعت پایینتر)
- -no-reservoir
-
غیرفعال کردن بازیافت حافظه برای بستهها و ویژگیها. این گزینه حافظه بسیار کمتری مصرف میکند اما فشار بسیار بیشتری بر تخصیصدهنده حافظه سیستم وارد میسازد
- -buffer-gen (int, default: 1000)
-
اندازه بافر پیشفرض بر حسب میکروثانیه برای PIDهای عمومی
- -buffer-dec (int, default: 1000000)
-
اندازه بافر پیشفرض بر حسب میکروثانیه برای PIDهای ورودی رمزگشا (decoder)
- -buffer-units (int, default: 1)
-
اندازه بافر پیشفرض بر حسب فریم در زمانی که اطلاعات زمانبندی در دسترس نیست
- -check-props
-
بررسی انواع ویژگیهای شناختهشده هنگام انتساب و انواع PID در برابر بسته هنگام واکشی (در حالت تست، در صورت عدم تطابق با کد خطای ۵ خارج میشود)
- -gl-bits-comp (int, default: 8)
-
تعداد بیتها در هر مؤلفه رنگ در OpenGL
- -gl-bits-depth (int, default: 16)
-
تعداد بیتها برای بافر عمق در OpenGL
- -gl-doublebuf
-
فعالسازی بافر دوگانه (double buffering) در OpenGL
- -glfbo-txid (int)
-
تنظیم شناسه بافت (texture ID) خروجی هنگام استفاده از خروجی glfbo. زمینه (context) اوپنجیال باید مقداردهی اولیه شود و gf_term_process با زمینه فعال OpenGL فراخوانی گردد
- -video-output (string)
-
مشخص کردن نام ماژول خروجی ویدیویی مورداستفاده (مشاهده کنید: gpac -h modules). نام رزروشده glfbo در حالت پخشکننده برای ترسیم در بافت OpenGL مشخصشده با .I glfbo-txid استفاده میشود. در این حالت، برنامه مسئول ارسال رویداد به ترکیبکننده (compositor) است
- -audio-output (string)
-
مشخص کردن نام ماژول خروجی صوتی مورداستفاده
- -font-reader (string)
-
مشخص کردن نام ماژول فونتخوان
- -font-dirs (string)
-
مشخص کردن فهرست جداشده با کاما از دایرکتوریها جهت پویش برای یافتن فونتها
- -rescan-fonts
-
مشخص میکند که دایرکتوری فونت باید دوباره پویش شود
- -wait-fonts
-
انتظار برای بارگذاری فونتهای SVG پیش از نمایش فریمها
- -webvtt-hours
-
اجبار به نوشتن ساعت هنگام سریالسازی WebVTT
- -charset (string)
-
تنظیم مجموعه کاراکتر در زمانی که از ورودی تشخیص داده نمیشود. مقادیر ممکن عبارتند از:
* utf8: اجبار به UTF-8
* utf16: اجبار به UTF-16 با ترتیب بایت کمارزش (little endian)
* utf16be: اجبار به UTF-16 با ترتیب بایت پرارزش (big endian)
* other: تلاش برای تجزیه به هر صورت
- -srt-forced
-
فعالسازی SRT با پسوندهای زیرنویس اجباری (forced subtitles)
- -rmt
-
فعالسازی وبسرور پایش از راه دور (remote monitoring)
- -rmt-port (int, default: 6363)
-
تنظیم پورت وبسوکت rmt
- -rmt-localhost
-
محدود کردن وبسوکت rmt به پذیرش اتصال فقط از localhost
- -rmt-sleep (int, default: 10)
-
تنظیم زمان خواب (میلیثانیه) وبسوکت rmt بین بهروزرسانیهای سرور
- -rmt-cert (string)
-
فایل گواهی با فرمت PEM برای استفاده در حالت TLS وبسوکت rmt
- -rmt-pkey (string)
-
فایل کلید خصوصی با فرمت PEM برای استفاده در حالت TLS وبسوکت rmt
- -rmt-path (string, default: $GSHARE/scripts/rmt/server.js)
-
مسیر بکاند جاوااسکریپت وبسوکت rmt
- -rmt-log (string)
-
مسیر ضبط لاگ بکاند؛ در صورت NULL بودن از ضبط صرفنظر میشود
- -userws-port (int, default: 6364)
-
تنظیم پورت وبسوکت کاربر
- -userws-localhost
-
محدود کردن وبسوکت کاربر به پذیرش اتصال فقط از localhost
- -userws-sleep (int, default: 10)
-
تنظیم زمان خواب (میلیثانیه) وبسوکت کاربر بین بهروزرسانیهای سرور
- -userws-cert (string)
-
فایل گواهی با فرمت PEM برای استفاده در حالت TLS برای وبسوکت کاربر
- -userws-pkey (string)
-
فایل کلید خصوصی با فرمت PEM برای استفاده در حالت TLS برای وبسوکت کاربر
- -diso-nosize
-
صرفنظر کردن از اطلاعات اندازه باکس هنگام دامپ کردن ISOBMFF
- -m2ts-vvc-old
-
راهکار موقت (hack) برای جریانهای قدیمی TS که به جای 0x33 از 0x32 برای VVC استفاده میکنند
- -piff-force-subsamples
-
راهکار موقت برای فایلهای PIFF PSEC تولیدشده توسط نسخههای 0.9.0 و 1.0 ابزار MP4Box که subsample_count اشتباهی برای صدا درج کردهاند
- -vvdec-annexb
-
راهکار موقت برای ترکیب قدیمی vvdec+libavcodec که فقط از فرمت annexB پشتیبانی میکند
- -heif-hevc-urn
-
استفاده از URN مربوط به HEVC برای آلفا و عمق در HEIF به جای MPEG-B URN (ویرایش اول HEIF)
- -boxdir (string)
-
استفاده از تعاریف باکس در دایرکتوری مشخصشده برای دامپ XML
- -no-mabr-patch
-
غیرفعال کردن تجزیه باکسهای اصلاحشده isom از mabr توسط GPAC (مانند اکثر مرورگرها/پخشکنندهها رفتار خواهد کرد)
- -no-cdrf
-
غیرفعال کردن وابستگی نمونه cdrf
- -no-evp
-
غیرفعال کردن تمام شتابدهندههای سختافزاری OpenSSL
گزینههای لاگ libgpac (libgpac logs options):
- -noprog
-
غیرفعال کردن پیامهای پیشرفت
- -quiet
-
غیرفعال کردن تمام پیامها، از جمله خطاها
- -log-file,-lf (string)
-
تنظیم فایل لاگ خروجی
- -log-clock,-lc
-
ثبت زمان بر حسب میکروثانیه از زمان شروع GPAC پیش از هر خط لاگ به جز ابزار برنامه (app tool)
- -log-utc,-lu
-
ثبت زمان UTC بر حسب میلیثانیه پیش از هر خط لاگ به جز ابزار برنامه
- -logs (string)
-
تنظیم ابزارها و سطوح لاگ.میتوانید ابزارهای مختلف درگیر در یک نشست را به صورت مستقل ثبت کنید.
آرگومان log_args به صورت فهرستی از toolX[:toolZ]@levelX است که با دونقطه (':') از هم جدا شدهاند.
مقدار levelX میتواند یکی از موارد زیر باشد:
* quiet: صرفنظر کردن از لاگها
* error: فقط ثبت پیامهای خطا
* warning: ثبت پیامهای خطا + هشدار
* info: ثبت پیامهای خطا + هشدار + اطلاعاتی
* debug: ثبت تمام پیامها
* strict: خروج در صورت بروز خطا برای این ابزار گزارشگیری و استفاده از سطح لاگ پیشفرض در صورت ذکر ابزارمقدار toolX میتواند یکی از موارد زیر باشد:
* core: هسته libgpac
* mutex: ثبت تمام فراخوانیهای میوتکس
* mem: ردیاب حافظه GPAC
* module: ماژولهای GPAC (خروجی صوتی/تصویری، موتور فونت، رسترایزر دوبعدی)
* filter: اشکالزدایی نشست فیلتر
* sched: اشکالزدایی زمانبند نشست فیلتر
* codec: پیامهای کدک (مورد استفاده فیلترهای رمزگذار و رمزگشا)
* coding: فرمتهای جریان بیت (صوتی، تصویری، صحنه)
* container: فرمتهای کانتینر (ISO File، MPEG-2 TS، AVI، ...) و فیلترهای مالتیپلکسر/دیمالتیپلکسر
* network: سوکتهای TCP/UDP و TLS
* http: ترافیک HTTP
* cache: زیرسیستم کش HTTP
* rtp: ترافیک RTP
* dash: لاگهای پخش جریانی HTTP (DASH)
* route: اشکالزدایی پروتکل ROUTE (ATSC3)
* media: پیامهای فیلترهای عمومی و فیلترهای reframer/rewriter
* parser: تجزیهکنندههای متنی (svg، xmt، bt، ...)
* mmio: مدیریت I/O (دستگاههای AV، فایل، پایپها، OpenGL)
* audio: رندرکننده/میکسر/خروجی صوتی
* script: موتور اسکریپت به جز لاگ کنسول
* console: لاگ کنسول اسکریپت
* scene: گراف صحنه و مدیریت صحنه
* compose: موتور ترکیبکننده (2D، 3D و غیره)
* ctime: اطلاعات زمانبندی رسانه و SMIL از موتور ترکیب
* interact: پیامهای تعاملی (رویدادهای UI و رویدادهای راهاندازیشده DOM و مسیر VRML)
* rti: آمار زمان اجرای ترکیبکننده
* all: ثبت گزارش تمام ابزارها - ابزارهای دیگر را میتوان پس از آن مشخص کرد
کلمه کلیدی ویژه ncl میتواند برای غیرفعال کردن لاگهای رنگی تنظیم شود.
کلمه کلیدی ویژه strict میتواند برای خروج در اولین خطا روی هر ابزاری تنظیم شود.
مقدار levelX میتواند پسوند +strict را بپذیرد تا خطای سختگیرانه را فقط برای ابزار(های) گزارشگیری دادهشده اعمال کند.مثال
-logs=all@info:dash@debug:nclاین دستور تمام لاگها را به سطح info و لاگ dash را به سطح debug تغییر میدهد و لاگهای رنگی را غیرفعال میکند
- -proglf
-
استفاده از خط جدید در هر پیام پیشرفت
- -log-dual,-ld
-
ارسال خروجی هم به فایل و هم به stderr
نمای کلی (OVERVIEW)
فیلترها
واحدهای
پردازشی
قابلپیکربندی
هستند که
بستههای
داده را
مصرف و
تولید
میکنند.
این
بستهها از
طریق یک
کانال داده
به نام PID
میان
فیلترها
منتقل
میشوند. یک
PID مسئول
تخصیص/ردیابی
بستههای
داده و
ارسال
آنها به
فیلتر(های)
مقصد است. یک
PID خروجی
فیلتر
میتواند
به صفر یا
چند فیلتر
متصل شود.
این انشعاب
(fan-out) بهصورت
درونی توسط
GPAC مدیریت
میشود
(چیزی به نام
فیلتر tee در GPAC
وجود ندارد).
نکته:
هنگامی که
یک PID نتواند
به هیچ
فیلتری
متصل شود،
یک هشدار
صادر شده و
تمام
بستههای
ارسالشده
روی این PID
نابود
خواهند شد.
با این حال
نشست
همچنان
میتواند
اجرا شود،
مگر اینکه
-full-link تنظیم
شده باشد.
هر PID خروجی مجموعهای از ویژگیها را حمل میکند که دادههای تحویلی آن را توصیف مینمایند (مانند width، height، codec و...). ویژگیها میتوانند توکار (مشاهده gpac -h props) یا تعریفشده توسط کاربر باشند. هر PID تغییرات ویژگیهای خود را ردیابی کرده و در حین پردازش بسته، بازپیکربندی فیلتر را فعال میکند. این امر به زنجیره فیلتر اجازه میدهد در زمان اجرا مجدداً پیکربندی شود و بخشهایی از زنجیره را در صورت لزوم بازخوانی نماید (برای مثال، تخلیه یک رمزگشای ویدیو هنگام جابهجایی از منابع فشرده به غیرفشرده).
هر فیلتر مجموعهای از آرگومانها را برای پیکربندی خود ارائه میدهد، که از انواع ویژگیها و مقادیر توصیفشده بهصورت رشتههای قالببندیشده با جداکنندهها استفاده میکنند. این راهنما با مجموعههای جداکننده پیشفرض :=#,@ برای تعیین فیلترها، ویژگیها و گزینهها ارائه شده است. برای تغییر آنها از -seps استفاده کنید.
قالب ویژگی و گزینه فیلتر (Property and filter option format)
* بولین (boolean):
قالببندیشده
بهصورت yes،
true، 1 یا no، false، 0
* شمارش (enumeration)
(فقط برای
آرگومانهای
فیلتر): باید
از نحو
ارائهشده
در توضیحات
آرگومان
استفاده
شود، در غیر
این صورت
مقدار 0
(اولین مورد
در شمارش)
فرض میشود.
* یکبعدی
(اعداد،
ممیز
شناور،
اعداد
صحیح...):
قالببندیشده
بهصورت value[unit]،
که در آن unit
میتواند k، K
(ضربدر ۱۰۰۰)
یا m، M (ضربدر
۱۰۰۰۰۰۰) یا
g، G (ضربدر
۱۰۰۰۰۰۰۰۰۰)
یا sec (ضربدر
۱۰۰۰) یا min
(ضربدر
۶۰۰۰۰) باشد.
+I به معنی
حداکثر
مقدار float/int/uint و -I
به معنی
حداقل
مقدار float/int/uint
است.
* کسر (fraction):
قالببندیشده
بهصورت num/den
یا num-den یا num، که
در این حالت
مخرج در
صورتی که num
یک عدد صحیح
باشد 1، یا
اگر num یک
مقدار ممیز
شناور باشد
1000000 خواهد بود.
* عدد صحیح ۳۲
بیتی بدون
علامت:
قالببندیشده
بهصورت
عدد یا
هگزادسیمال
با استفاده
از قالب 0xAABBCCDD.
* چندبعدی
(بردارها):
قالببندیشده
بهصورت
مقادیر
DIM1xDIM2[xDIM3[xDIM4]]، بدون
ضریب واحد.
* برای
بردارهای
صحیح
دوبعدی،
نامهای
وضوح زیر
میتوانند
استفاده
شوند: 360, 480, 576, 720, 1080, hd, 2k, 2160,
4k, 4320, 8k
* رشته (string):
قالببندیشده
بهصورت:
* `value`: مقدار را
در رشته کپی
میکند.
* `file@FILE`: بارگیری
رشته از FILE
محلی (باز
شده در حالت
باینری).
* `bxml@FILE`:
باینریسازی
XML از FILE محلی و
تنظیم نوع
ویژگی به data -
مشاهده
https://wiki.gpac.io/xmlformats/NHML-Format
* داده (data):
قالببندیشده
بهصورت:
* `size@address`: بلوک
داده ثابت،
بدون کپی
درونی؛ size
اندازه
بلوک و address
اشارهگر
داده را
مشخص
میکند.
* `0xBYTESTRING`: بلوک
داده
تعیینشده
در
هگزادسیمال،
کپیشده
بهصورت
درونی.
* `file@FILE`: بارگیری
داده از FILE
محلی (باز
شده در حالت
باینری).
* `bxml@FILE`:
باینریسازی
XML از FILE محلی -
مشاهده
https://wiki.gpac.io/xmlformats/NHML-Format
* `b64@DATA`: بارگیری
داده از DATA
کدگذاریشده
با base-64.
* `FMT@val`: بارگیری
مقادیر از val
(فهرست
جداشده با
کاما) با FMT که
u8، s8، u16، s16، u32، s32،
u64، s64، flt، dbl، hex یا str
است.
* اشارهگر (pointer):
نشانی
اشارهگر
همانطور
که با %p در C
قالببندی
میشود.
* فهرستهای
رشته:
قالببندیشده
بهصورت val1,val2[,...].
هر مقدار
همچنین
میتواند
از نحو file@FILE
استفاده
کند.
* فهرستهای
عدد صحیح:
قالببندیشده
بهصورت val1,val2[,...]
نکته: نویسههای خاص در قالبهای ویژگی (0x,/,-,+I,-I,x) قابل پیکربندی نیستند.
اعداد و کسرها میتوانند بهصورت THH:MM:SS.ms، TMM:SS.ms، THH:MM:SS یا TMM:SS بیان شوند که به میلیثانیه تبدیل میگردند.
اعلان فیلتر [FILTER] (Filter declaration [FILTER])
اعلان عمومی (Generic declaration)
هر فیلتر
با نام خود
اعلان
میشود،
همراه با
آرگومانهای
اختیاری
فیلتر که
بهصورت
فهرستی از
جفتهای name=value
جداشده با
دونقطه
پیوست
میشوند.
نحو اضافی
برای موارد
زیر ارائه
شده است:
* بولین:
مقدار
میتواند
حذف شود که
پیشفرض آن
true است (مانند
:allt). استفاده
از ! قبل از
نام نتیجه
را نقیض
میکند
(مانند :!moof_first).
* شمارشها:
نام
میتواند
حذف شود،
برای مثال :disp=pbo
معادل با :pbo
است.
هنگامی که
پارامترهای
رشتهای
استفاده
میشوند
(مانند URLها)،
توصیه
میشود با
استفاده از
کلمه کلیدی
gpac رشته را
اسکیپ کنید.
مثال
filter:ARG=http://foo/bar?yes:gpac:opt=VAL
این دستور
URL را
بهدرستی
استخراج
خواهد کرد.
مثال
filter:ARG=http://foo/bar?yes:opt=VAL
این دستور
در استخراج
آن شکست
میخورد و :opt=VAL
را
بهعنوان
بخشی از URL
نگه
میدارد.
سازوکار
اسکیپ برای
منابع محلی
که وجود
فایل در طول
تجزیه
آرگومان
بررسی
میشود،
لازم نیست.
همچنین
برای
گردانندههای
پروتکل
توکار (avin://، video://،
audio://، pipe://) نیازی
به آن نیست.
برای
طرحوارههایی
(schemes) که از مسیر
سرور
استفاده
نمیکنند،
مانند tcp:// و udp://،
در صورتی که
یک / پایانی
بعد از
شماره پورت
اضافه شود،
نیازی به
اسکیپ نیست.
مثال
-i tcp://127.0.0.1:1234:OPT
این دستور
در استخراج
URL و
گزینهها
شکست خواهد
خورد.
مثال
-i tcp://127.0.0.1:1234/:OPT
این دستور
URL و
گزینهها
را استخراج
خواهد کرد.
نکته: یک
ترفند برای
اجتناب از
توالی
اسکیپ،
اعلان
گزینه URLها
در انتها
است، مانند
f1:opt1=foo:url=http://bar، به
شرطی که فقط
یک پارامتر
URL برای
تعیین در
فیلتر
داشته
باشید.
با دو
برابر کردن
جداکننده،
غیرفعال
کردن محلی
تجزیه
گزینه
(کاربردی
برای
گزینههای
رشتهای)
امکانپذیر
است.
مثال
filter::opt1=UDP://IP:PORT/:someopt=VAL::opt2=VAL2
این دستور UDP://IP:PORT/:someopt=VAL را بدون بررسی به opt1 و VAL2 را به opt2 ارسال میکند.
فیلترهای منبع و مقصد (Source and Sink filters)
فیلترهای
منبع (source) و
مقصد (sink)
نیازی به
مخاطب قرار
گرفتن با
نام فیلتر
ندارند؛
تعیین src= یا dst=
بهجای آن
کافی است.
همچنین
میتوانید
از نحو -src URL یا -i URL
برای منابع
و -dst URL یا -o URL برای
مقصدها
استفاده
کنید؛ این
امر امکان
تکمیل
خودکار در
پوسته را
فراهم
میکند.
مثال
"src=file.mp4" یا "-src file.mp4"
یا "-i file.mp4"
این دستور
فیلتری
(برای مثال fin)
را پیدا
میکند که
قادر به
بارگیری file.mp4
باشد. همین
نتیجه را
میتوان با
استفاده از
fin:src=file.mp4 به دست
آورد.
مثال
"dst=dump.yuv" یا "-dst dump.yuv"
یا "-o dump.yuv"
این دستور محتوای ویدیویی را در dump.yuv تخلیه میکند. همین نتیجه را میتوان با استفاده از fout:dst=dump.yuv به دست آورد.
فیلترهای خاص منبع یا مقصد همچنین میتوانند با استفاده از filterName:src=URL یا filterName:dst=URL مشخص شوند.
نحوهای src= و dst= همچنین میتوانند در نام مستعار (alias) برای شبیهسازی پویای آرگومان استفاده شوند (مشاهده gpac -hx alias).
اجبار فیلترهای خاص (Forcing specific filters)
گزینه
ویژهای به
نام gfreg وجود
دارد که
امکان
تعیین
فیلترهای
ترجیحی
برای
استفاده در
هنگام کار
با URLها را
فراهم
میکند.
مثال
src=file.mp4:gfreg=ffdmx,ffdec
این دستور
از ffdmx برای
خواندن file.mp4 و
از ffdec برای
رمزگشایی
آن استفاده
میکند.
این قابلیت
میتواند
برای
آزمایش یک
فیلتر خاص
در زمانی که
زنجیرههای
فیلتر
جایگزین
ممکن
هستند،
استفاده
شود.
تعیین رمزگذارها و رمزگشاها (Specifying encoders and decoders)
بهطور
پیشفرض در
صورتی که
مقصد قالب
مورد نظر را
بپذیرد،
زنجیره
فیلترها
بدون
هیچگونه
رمزگشایی/رمزگذاری
حلوفصل
خواهد شد. در
غیر این
صورت،
رمزگشاها/رمزگذارها
بهطور
پویا برای
انجام
تبدیل
بارگیری
میشوند،
مگر اینکه
حلوفصل
پویا
غیرفعال
شده باشد. یک
نام فیلتر
میانبر
ویژه برای
رمزگذارها
به نام enc
وجود دارد
که امکان
تطبیق با
فیلتری را
فراهم
میکند که
رمزگذاری
مورد نظر را
ارائه
میدهد.
پارامترهای
enc عبارتند
از:
* c=NAME: کدک مورد
نظر را مشخص
میکند. NAME
میتواند
نام کدک GPAC یا
نمونه
رمزگذار
برای ffmpeg/غیره
باشد.
* b=UINT، rate=UINT، bitrate=UINT: نرخ
بیت را بر
حسب بیت در
ثانیه نشان
میدهد.
* g=UINT، gop=UINT: اندازه
GOP را بر حسب
فریم نشان
میدهد.
* pfmt=NAME: نام قالب
پیکسل مقصد
منبع را
نشان
میدهد
(مشاهده
ویژگیها (-h
props))، در صورتی
که توسط کدک
پشتیبانی
شود.
* all_intra=BOOL: نشان
میدهد که
تمام
فریمها
باید
فریمهای
داخلی (intra)
باشند، در
صورتی که
توسط کدک
پشتیبانی
شود.
گزینههای
دیگر در
صورتی که
فیلتر
تجزیه
آرگومان
عمومی را
بپذیرد، به
آن ارسال
خواهند شد
(مانند آنچه
برای ffmpeg صدق
میکند).
نحو
میانبر c=TYPE
(مانند c=aac:opts)
نیز
پشتیبانی
میشود.
مثال
gpac -i dump.yuv:size=320x240:fps=25
enc:c=avc:b=150000:g=50:cgop=true:fast=true -o raw.264
این دستور یک جریان AVC با نرخ ۲۵ فریم در ثانیه و ۱۷۵ کیلوبیت بر ثانیه با طول دوره GOP برابر با ۲ ثانیه با استفاده از تنظیمات closed gop و رمزگذاری سریع برای ffmpeg ایجاد میکند.
عملیات
معکوس
(اجبار به
انجام
رمزگشایی)
با استفاده
از فیلتر reframer
امکانپذیر
است.
مثال
gpac -i file.mp4 reframer:raw=av -o null
این دستور رمزگشایی رسانه از file.mp4 را اجبار کرده و نتیجه را دور میریزد (به null ارسال میکند) (برای مثال انجام بنچمارک رمزگشا).
اسکیپ کردن جداکنندههای گزینهها (Escaping option separators)
هنگامی که
فیلتری از
گزینهای
استفاده
میکند که
بهعنوان
رشته با
همان نویسه
جداکننده gpac
تعریف شده
است،
میتوانید
مجموعه
جداکنندهها
را اصلاح
کنید یا با
دو برابر
کردن
جداکننده،
آن را اسکیپ
نمایید.
گزینههای
محصورشده
در
جداکننده
دو برابر
تجزیه
نمیشوند.
این قابلیت
بیشتر برای
متافیلترهایی
مانند ffmpeg به
منظور
ارسال
گزینهها
به
زیرفیلترهایی
چون libx264
استفاده
میشود (به
پارامتر x264opts
رجوع کنید).
همچنین
میتواند
برای اسکیپ
کردن مقدار
یک فهرست
حاوی نویسه
جداکننده
ویرگول
استفاده
شود.
مثال
f:a=foo:b=bar
این دستور
گزینه a را
برابر با foo و
گزینه b را
برابر با bar
روی فیلتر
تنظیم
میکند.
مثال
f::a=foo:b=bar
این دستور
گزینه a را
برابر با foo:b=bar
روی فیلتر
تنظیم
میکند.
مثال
f:a=foo::b=bar:c::d=fun
این دستور
گزینه a را
برابر با foo،
گزینه b را
برابر با bar:c و
گزینه d را
برابر با fun
روی فیلتر
تنظیم
میکند.
مثال
f:list=a,b1,,b2,c
این دستور مقادیر فهرست را برابر با a، b1,b2 و c قرار میدهد.
پیوند دادن فیلترها [LINK] (Filter linking [LINK])
هر فیلتر
یک یا چند
مجموعه از
قابلیتها
را ارائه
میدهد که
بسته
قابلیت (capability bundle)
نامیده
میشوند و
نوع ویژگی و
مقادیری
هستند که
باید توسط
PIDهای
متصلشونده
مطابقت
داشته
باشند یا
مستثنی
شوند.
برای بررسی
منابع و
مقصدهای
ممکن برای
فیلتر FNAME، از gpac
-h links FNAME استفاده
کنید.
حلکننده گراف فیلتر (filter graph resolver) از این اطلاعات همراه با ویژگیهای PID برای پیوند دادن فیلترهای مختلف استفاده میکند.
دستورالعملهای
پیوند، در
صورت
ارائه،
مشخص
میکنند که
یک فیلتر
میتواند
از کدام
منبع اتصال
بپذیرد.
آنها مشخص
نمیکنند
که یک فیلتر
میتواند
به کدام
مقصد متصل
شود.
پیوند پیشفرض فیلترها (Default filter linking)
هنگامی که
هیچ
دستورالعمل
پیوندی
داده نشده
باشد (به زیر
مراجعه
کنید)،
راهبرد
پیوند
پیشفرض
استفادهشده
یا حالت
ضمنی (implicit mode،
پیشفرض در
gpac) یا حالت
کامل (complete mode، در
صورتی که -cl
تنظیم شده
باشد) است.
هر PID برای
امکان
اتصال به
تمام
فیلترهای
تعریفشده،
به ترتیب
اعلان
آنها
بررسی
میشود.
برای هر
فیلتر DST که
اتصالی از PID
را
میپذیرد،
بهصورت
مستقیم یا
با
فیلترهای
واسط:
- اگر فیلتر DST
دارای
دستورالعملهای
پیوند
باشد، از
آنها برای
مجاز کردن
یا رد اتصال
PID استفاده
کنید.
- در غیر این
صورت، اگر
حالت کامل
فعال باشد،
اتصال را
مجاز کنید.
- در غیر این
صورت (حالت
ضمنی):
- اگر DST یک
فیلتر مقصد
(sink) نباشد و
اولین
فیلتر
منطبق بدون
دستورالعمل
پیوند
باشد،
اتصال را
مجاز کنید.
- در غیر این
صورت، اگر DST
یک فیلتر
مقصد نباشد
و اولین
فیلتر
منطبق بدون
دستورالعمل
پیوند
نباشد،
اتصال را رد
کنید.
- در غیر این
صورت (DST یک
فیلتر مقصد
است) و اتصال
قبلی به یک
فیلتر
غیرمقصد
وجود
نداشته
باشد،
اتصال را
مجاز کنید.
در تمام
حالتهای
پیوند، یک
فیلتر
میتواند
با تنظیم
گزینه RSID روی
فیلتر، از
پیوند داده
شدن به
فیلتری
بدون
دستورالعملهای
پیوند
جلوگیری
کند.
این کار
معمولاً
هنگام
درج/حذف
پویای
فیلترها در
یک نشست
موجود لازم
است که در آن
برخی
فیلترها
شناسهای
تعریفنشده
دارند و
برای
زنجیره
درجشده
مطلوب
نیستند.
فیلتری با RSID
تنظیمشده
قابل
شبیهسازی
نیست.
مثال
gpac -i file.mp4 c=avc -o output
با این
پیکربندی
در حالت
ضمنی:
- اگر فایل
دارای PID
ویدیو
باشد، به enc
متصل
میشود اما
به output متصل
نخواهد شد. PID
خروجی enc به output
متصل
میشود.
- اگر فایل
دارای PIDهایی
غیر از
ویدیو
باشد، به output
متصل
خواهند شد،
زیرا این
فیلتر enc فقط
ویدیو را
میپذیرد.
مثال
gpac -cl -i file.mp4 c=avc -o output
با این
پیکربندی
در حالت
کامل:
- اگر فایل
دارای PID
ویدیو
باشد، هم به
enc و هم به output
متصل
میشود، و PID
خروجی enc به output
متصل خواهد
شد.
- اگر فایل
دارای PIDهایی
غیر از
ویدیو
باشد، به output
متصل
خواهند شد.
علاوه بر
این در حالت
ضمنی،
اتصالات
فیلتر به
فیلترهای
تعریفشده
میان آخرین
منبع و
مقصد(ها)
محدود
میشوند.
مثال
gpac -i video1 reframer:saps=1 -i video2 ffsws:osize=128x72 -o output
این دستور
موارد زیر
را متصل
میکند:
- video1 به reframer و سپس reframer
به output، اما از
اتصال reframer به ffsws
جلوگیری
میکند.
- video2 به ffsws و سپس ffsws
به output، اما از
اتصال video2 به reframer
جلوگیری
میکند.
مثال
gpac -i video1 -i video2 reframer:saps=1 ffsws:osize=128x72 -o output
این دستور video1 و video2 را به reframer->ffsws->output متصل خواهد کرد.
حالت ضمنی
امکان
تعیین
زنجیرههای
پردازش خطی
(بدون
انشعاب PID
مگر برای
خروجی(های)
نهایی) را
بدون
دستورالعملهای
پیوند
فراهم
میکند و خط
فرمان را
برای موارد
رایج ساده
میسازد.
هشدار:
ترتیب
آرگومانها
در حالت
ضمنی
واقعاً
اهمیت
دارد!
مثال
gpac -i file.mp4 c=avc c=aac -o output
اگر فایل
دارای یک PID
ویدیو
باشد، به c=avc
متصل
میشود اما
به output وصل
نخواهد شد. PID
خروجی c=avc به output
متصل
میشود.
اگر فایل
دارای یک PID
صوتی باشد،
به c=aac متصل
میشود اما
به output وصل
نخواهد شد. PID
خروجی c=aac به output
متصل
میشود.
اگر فایل
دارای PIDهایی
غیر از صدا
یا تصویر
باشد، به output
متصل
خواهند شد.
مثال
gpac -i file.mp4 ffswf=osize:128x72 c=avc resample=osr=48k c=aac -o output
این دستور
موارد زیر
را اجبار
میکند:
- SRC(video)->ffsws->enc(video)->output و
جلوگیری از
اتصالات
SRC(video)->output، SRC(video)->enc(video) و
ffsws->output که در
حالت کامل
رخ
میدادند.
- SRC(audio)->resample->enc(audio)->output و
جلوگیری از
اتصالات
SRC(audio)->output، SRC(audio)->enc(audio) و
resample->output که در
حالت کامل
رخ
میدادند.
پیوندهای سریع (Quick links)
پیوند
میان
فیلترها
میتواند
بهصورت
دستی مشخص
شود. نحو آن
یک نویسه @
است که
اختیاری با
یک عدد صحیح
دنبال
میشود (در
صورت حذف 0
است).
این نشان
میدهد که
فیلتر بعدی
مشخصشده
در اعلان خط
فرمان فقط
باید به یک
فیلتر
فهرستشده
قبلی پیوند
داده شود.
عدد صحیح
اختیاری یک
نمایه
مبنای صفر
به
اعلانهای
فیلتر قبلی
است (0 اعلان
فیلتر قبلی
را نشان
میدهد، 1
فیلتر قبل
از اعلان
قبلی، ...).
اگر بهجای @
از @@ استفاده
شود، عدد
صحیح
اختیاری
نمایه
فیلتر را با
شروع از
اولین
فیلتر
(نمایه 0)
مشخصشده
در خط فرمان
نشان
میدهد.
چندین
دستورالعمل
پیوند
میتواند
برای یک
فیلتر داده
شود.
مثال
fA fB @1 fC
این نشان
میدهد که fC
ورودیها
را فقط از fA
میپذیرد.
مثال
fA fB fC @1 @0 fD
این نشان
میدهد که fD
ورودیها
را فقط از fB و fC
میپذیرد.
مثال
fA fB fC ... @@1 fZ
این نشان میدهد که fZ ورودیها را فقط از fB میپذیرد.
پیوندهای پیچیده (Complex links)
دستورالعمل
پیوند @
صرفاً یک
میانبر
سریع برای
تنظیم
آرگومانهای
فیلتر زیر
است:
* FID=name: شناسهای
را به فیلتر
اختصاص
میدهد
* SID=name1[,name2...]: فهرستی
از
شناسههای
فیلتر یا
sourceIDها را
تنظیم
میکند که
فهرست
ورودیهای
ممکن برای
یک فیلتر را
محدود
میسازد.
مثال
fA fB @1 fC
این دستور
معادل با fA:FID=1 fB
fC:SID=1 است.
مثال
fA:FID=1 fB fC:SID=1
این نشان
میدهد که fC
ورودی را
فقط از fA
میپذیرد،
اما fB ممکن
است
ورودیها
را از fA
بپذیرد.
مثال
fA:FID=1 fB:FID=2 fC:SID=1 fD:SID=1,2
این نشان
میدهد که fD
ورودی را
فقط از fA و fB، و fC
ورودی را
فقط از fA
میپذیرد.
نکته:
فیلتری با sourceID
تنظیمشده
نمیتواند
ورودی را از
فیلترهای
بدون شناسه
دریافت
کند.
نام یک sourceID
میتواند
با * پایان
یابد تا
بهجای نام
کامل بر
اساس
پیشوند
تطبیق داده
شود؛
پیشوند
شامل تمام
نویسهها
تا قبل از *
است.
مثال
fA:FID=AB1 fB:FID=ABCD fC:FID=B1 fD:SID=AB*
این نشان میدهد که fD ورودی را فقط از fA و fB میپذیرد اما از fC نمیپذیرد.
نام sourceID
میتواند
با استفاده
از شناسه
قطعه
(بهطور
پیشفرض #)
بیشتر
گسترش یابد:
* name#PIDNAME: فقط PID(های)
با نام PIDNAME را
میپذیرد
* name#TYPE: فقط PIDهای
با نوع
رسانه
منطبق را
میپذیرد. TYPE
میتواند
audio، video، scene، text، font، meta
باشد
* name#TYPEN: فقط Nمین
(نمایه
مبنای یک) PID
با نوع
منطبق را از
منبع
میپذیرد
(برای مثال video2
فقط دومین PID
ویدیو را
میپذیرد)
* name#TAG=VAL: در صورتی
که فیلتر
والد آن هیچ
برچسبی
نداشته
باشد یا
برچسبی
منطبق با VAL
داشته
باشد، PID را
میپذیرد
* name#ITAG=VAL: در صورتی
که فیلتر
والد آن هیچ
برچسب
ارثبریشدهای
نداشته
باشد یا
برچسب
ارثبریشدهای
منطبق با VAL
داشته
باشد، PID را
میپذیرد
* name#P4CC=VAL: فقط PIDهای
دارای
ویژگی
توکار از
نوع P4CC و
مقدار VAL را
میپذیرد.
* name#PName=VAL: مشابه
بالا، با
استفاده از
نام توکار
متناظر با
ویژگی.
* name#AnyName=VAL: مشابه
بالا، با
استفاده از
نام یک
ویژگی
غیرتوکار.
* name#Name=OtherPropName: مقدار
را با مقدار
ویژگی
دیگری از PID
مقایسه
میکند. در
صورتی که
مقدار مورد
مقایسه
وجود
نداشته
باشد یا با
مقدار مورد
بررسی
متفاوت
باشد،
تطبیق شکست
خواهد خورد.
ویژگی مورد
مقایسه
باید یک
ویژگی
توکار باشد.
اگر ویژگی
روی PID تعریف
نشده باشد،
ویژگی
منطبق در
نظر گرفته
میشود. در
غیر این
صورت،
مقدار آن در
برابر
مقدار
ارائهشده
بررسی
میشود.
تغییردهندههای
زیر برای
مقایسهها
مجاز هستند
(برای هر
قالب قطعه
با استفاده
از =):
* name#P4CC=!VAL: فقط PIDهای
با ویژگی
غیرمنطبق
با VAL را
میپذیرد.
* name#P4CC-VAL: فقط PIDهای
با ویژگی
اکیداً
کمتر از VAL را
میپذیرد
(فقط برای
ویژگیهای
عددی
یکبعدی).
* name#P4CC+VAL: فقط PIDهای
با ویژگی
اکیداً
بزرگتر از VAL
را
میپذیرد
(فقط برای
ویژگیهای
عددی
یکبعدی).
نام sourceID
همچنین
میتواند
از نویسه
عمومی (wildcard)
استفاده
کند یا خالی
باشد تا یک
ویژگی را
بدون در نظر
گرفتن
فیلتر منبع
تطبیق دهد.
مثال
fA fB:SID=*#ServiceID=2
fA fB:SID=#ServiceID=2
این نشان
میدهد که
اتصال میان fA
و fB فقط برای
PIDهای دارای
ویژگی ServiceID
برابر با 2
تطبیق داده
شود.
این
پسوندها
همچنین با
میانبر LINK @
کار
میکنند.
مثال
fA fB @1#video fC
این نشان
میدهد که fC
ورودیها
را فقط از fA و
از نوع video
میپذیرد.
مثال
gpac -i img.heif @#ItemID=200 vout
این نشان
میدهد که
به vout فقط PIDهای
با ویژگی ItemID
برابر با 200
متصل شوند.
مثال
gpac -i vid.mp4 @#PID=1 vout
این نشان
میدهد که
به vout فقط PIDهای
با ویژگی ID
برابر با 1
متصل شوند.
مثال
gpac -i vid.mp4 @#Width=640 vout
این نشان
میدهد که
به vout فقط PIDهای
با ویژگی Width
برابر با 640
متصل شوند.
مثال
gpac -i vid.mp4 @#Width-640 vout
این نشان
میدهد که
به vout فقط PIDهای
با ویژگی Width
کمتر از 640
متصل شوند.
مثال
gpac -i vid.mp4 @#ID=ItemID#ItemNumber=1 vout
این دستور به vout فقط PIDهای با ویژگی ID برابر با ویژگی ItemID (نگهداشتن آیتمها، دور انداختن ترکها) و شماره آیتم 1 (اولین آیتم) را متصل میکند.
برای
بررسی
چندین
ویژگی PID،
میتوان
چندین قطعه
را تعیین
کرد.
مثال
gpac -i vid.mp4 @#Width=640#Height+380 vout
این نشان میدهد که به vout فقط PIDهای با ویژگی Width برابر با 640 و Height بزرگتر از 380 متصل شوند.
هشدار: اگر
یک PID بهطور
مستقیم به
یک یا چند
فیلتر
بارگیریشده
صریح متصل
شود، هیچ
حلوفصل
پیوند
پویای
دیگری برای
اتصال آن به
فیلترهای
دیگر بدون
تنظیم sourceID
انجام
نخواهد شد.
دستورالعملهای
پیوند باید
با دقت
تنظیم شوند.
مثال
fA @ reframer fB
اگر fB
ورودیهای
ارائهشده
توسط fA را
بپذیرد اما
reframer نپذیرد،
این دستور PID
مربوط به fA
را به فیلتر
fB پیوند
میدهد
زیرا fB هیچ sourceID
ندارد.
از آنجا که PID
متصل است،
موتور
فیلتر سعی
در حل پیوند
میان fA و reframer
نخواهد
کرد.
یک استثنا
برای
فایلهای
محلی وجود
دارد:
بهطور
پیشفرض،
یک مقصد
فایل محلی،
مالتیپلکس
مجدد PIDهای
ورودی از یک
فایل محلی
را اجبار
میکند.
مثال
gpac -i file.mp4 -o dump.mp4
این دستور از اتصال مستقیم PID از نوع file به مقصد file.mp4 جلوگیری کرده و فایل را مجدداً مالتیپلکس میکند.
گزینه
ویژه nomux برای
اجازه دادن
به اتصالات
مستقیم
استفاده
میشود
(برای
فیلترهای
غیرمقصد
نادیده
گرفته
میشود).
مثال
gpac -i file.mp4 -o dump.mp4:nomux
این کار منجر به کپی مستقیم فایل خواهد شد.
این فقط
برای
مقصدهای
فایلهای
محلی اعمال
میشود.
برای
پایپها،
سوکتها یا
سایر
خروجیهای
فایل (HTTP، ROUTE):
- کپی مستقیم
بهطور
پیشفرض
فعال است
- nomux=0 میتواند
برای اجبار
به
مالتیپلکس
مجدد
استفاده
شود
برچسبگذاری زیرنشست (Sub-session tagging)
فیلترها
میتوانند
با استفاده
از :FS=N که در آن N
یک عدد صحیح
مثبت است،
به یک
زیرنشست
اختصاص
یابند.
فیلترهای
متعلق به
زیرنشستهای
مختلف فقط
در شرایط
زیر
میتوانند
به یکدیگر
پیوند داده
شوند:
- اگر صریحاً
از طریق
دستورالعملهای
sourceID (@ یا SID) مجاز
شده باشد
- یا اگر
شناسه
زیرنشست
یکسانی
داشته
باشند
این
قابلیت
بیشتر برای
حالت ضمنی
در gpac
استفاده
میشود: هر
اولین
فیلتر
منبعی که
بعد از یک
فیلتر مقصد
مشخص شود،
یک زیرنشست
جدید را
آغاز
میکند.
مثال
gpac -i in1.mp4 -i in2.mp4 -o out1.mp4 -o out2.mp4
این دستور
منجر به
مالتیپلکس
شدن هر دو
ورودی در هر
دو خروجی
خواهد شد.
مثال
gpac -i in1.mp4 -o out1.mp4 -i in2.mp4 -o out2.mp4
این دستور منجر به ترکیب in1 در out1 و in2 در out2 میشود؛ دو فیلتر اخیر به یک زیرنشست متفاوت تعلق دارند.
توارث آرگومانها (Arguments inheriting)
مگر اینکه
صریحاً
غیرفعال
شده باشد
(مشاهده -max-chain
)، موتور
فیلتر
اتصالات
ضمنی یا
صریح (LINK) میان
فیلترها را
حلوفصل
کرده و هر
زنجیره
فیلتری را
که برای
اتصال
فیلترها
لازم باشد
تخصیص
میدهد. در
حین انجام
این کار،
فیلترهای
جدید را با
آرگومانهای
ارثبریشده
از هر دو
منبع و مقصد
بارگیری
میکند.
مثال
gpac -i file.mp4:OPT -o file.aac -o file.264
این دستور
:OPT را به تمام
فیلترهای
بارگیریشده
میان منبع و
دو مقصد
ارسال
میکند.
مثال
gpac -i file.mp4 -o file.aac:OPT -o file.264
این دستور
:OPT را به تمام
فیلترهای
بارگیریشده
میان منبع و
مقصد file.aac
ارسال
میکند.
نکته:
آرگومانهای
مقصد
ارثبریشده
آرگومانهایی
هستند که پس
از گزینه dst=
قرار
میگیرند.
مثال
gpac -i file.mp4 fout:OPTFOO:dst=file.aac:OPTBAR
این دستور
:OPTBAR را به تمام
فیلترهای
بارگیریشده
میان منبع file.mp4
و مقصد file.aac
ارسال
میکند،
اما OPTFOO را
ارسال
نمیکند.
توارث
آرگومانها
میتواند
با استفاده
از کلمه
کلیدی gfloc
متوقف شود:
آرگومانهای
پس از این
کلمه کلیدی
ارثبری
نخواهند شد.
مثال
gpac -i file.mp4 -o file.aac:OPTFOO:gfloc:OPTBAR -o file.264
این دستور
:OPTFOO را به تمام
فیلترهای
بارگیریشده
میان منبع file.mp4
و مقصد file.aac
ارسال
میکند،
اما OPTBAR را
ارسال
نمیکند.
آرگومانها
بهطور
پیشفرض
ردیابی
میشوند تا
بررسی شود
که آیا توسط
زنجیره
فیلتر
استفاده
شدهاند یا
خیر، و اگر
چنین نباشد
یک هشدار
صادر
میشود.
ممکن است
تعیین
آرگومانهایی
که شاید
بسته به
حلوفصل
گراف مصرف
نشوند مفید
باشد؛ کلمه
کلیدی خاص gfopt
نشان
میدهد که
آرگومانهای
پس از کلمه
کلیدی
ردیابی
نخواهند شد.
مثال
gpac -i file.mp4 -o file.aac:OPTFOO:gfopt:OPTBAR -o file.264
این دستور در صورتی که OPTFOO مصرف نشود هشدار میدهد، اما OPTBAR را ردیابی نخواهد کرد.
یک فیلتر میتواند با استفاده از گزینه :N=name یک نام دریافت کند (برای اهداف بازرسی، ارثبری نمیشود). این نام در حلوفصل پیوند استفاده نمیشود و ممکن است در زمان اجرا توسط نمونه فیلتر تغییر کند.
یک فیلتر میتواند با استفاده از گزینه :TAG=name یک برچسب (هر رشتهای) دریافت کند. این برچسب نیازی نیست یکتا باشد و میتواند برای مستثنی کردن فیلتر در حلوفصل پیوند استفاده شود. برچسبها ارثبری نمیشوند، بنابراین فیلترهای بارگیریشده پویا هرگز برچسب ندارند.
یک فیلتر همچنین میتواند با استفاده از گزینه :ITAG=name یک برچسب ارثبریشده (هر رشتهای) دریافت کند. اینگونه برچسبها ارثبری میشوند و معمولاً برای ردیابی فیلترهای بارگیریشده پویا به کار میروند.
الگوسازی URL (URL templating)
URLهای مقصد
را میتوان
بهصورت
پویا با
استفاده از
الگوها
ساخت. الگوی
$KEYWORD$ در الگو با
مقدار
حلوفصلشده
جایگزین
میشود و $KEYWORD%%0Nd$
در الگو با
عدد صحیح
حلوفصلشده
جایگزین
میگردد،
که در صورت
نیاز با
حداکثر N صفر
پر (pad) میشود.
کلمه کلیدی
(KEYWORD) به بزرگ و
کوچک بودن
حروف حساس
است و ممکن
است چندین
بار در رشته
وجود داشته
باشد. کلمات
کلیدی
پشتیبانیشده:
* num: با شماره
فایل در
صورت تعریف
جایگزین
میشود، در
غیر این
صورت 0
* PID: شناسه PID
منبع
* URL: نشانی
اینترنتی (URL)
فایل منبع
* File: مسیر روی
دیسک برای
فایل منبع؛
اگر پیدا
نشد، در
صورت تنظیم
از URL یا در
غیر این
صورت از نام
PID استفاده
میشود
* Type: نام نوع
جریان PID (video، audio...)
* OType: مشابه Type
اما هنگام
رمزنگاری
جریان از
نوع اصلی
استفاده
میکند
(مانند
انتقال از crypt
به video)
* p4cc=ABCD: از ویژگی PID
با مقدار 4CC
برابر ABCD
استفاده
میکند
* pname=VAL: از ویژگی PID
با نام VAL
استفاده
میکند
* cts، dts، dur، sap: از
ویژگیهای
اولین بسته
در PID در زمان
حلوفصل
الگو
استفاده
میکند
* OTHER: ویژگی 4CC را
برای نام
ارائهشده
مکانیابی
میکند، یا
در صورت عدم
تطابق 4CC،
نام ویژگی
را
مکانیابی
مینماید.
$$ یک اسکیپ برای $ است. برای پوستههایی که بهطور خودکار $$ را با $ جایگزین میکنند، نحو $;$ میتواند برای بیان $$ استفاده شود.
الگوسازی
میتواند
هنگام
رمزگذاری
چندین
کیفیت در یک
مرحله مفید
باشد.
مثال
gpac -i dump.yuv:size=640x360 vcrop:wnd=0x0x320x180 c=avc:b=1M @2 c=avc:b=750k
-o dump_$CropOrigin$x$Width$x$Height$.264
این دستور یک نسخه برشخورده (crop) از منبع، رمزگذاریشده در AVC با نرخ 1M، و یک نسخه کامل از محتوا در AVC با نرخ 750k ایجاد خواهد کرد. خروجیها dump_0x0x320x180.264 برای نسخه برشخورده و dump_0x0x640x360.264 برای نسخه برشنخورده خواهند بود.
شبیهسازی فیلترها (Cloning filters)
هنگامی که
یک فیلتر یک
اتصال
منفرد را
میپذیرد و
دارای یک
ورودی متصل
است، دیگر
برای
حلوفصل
پویا در
دسترس نیست.
ممکن است
مواردی
وجود داشته
باشد که این
رفتار
مطلوب
نباشد. یک
فایل HEIF با N
آیتم را در
نظر بگیرید
و این کار را
انجام دهید:
gpac -i img.heif -o dump_$ItemID$.jpg
در این
حالت، تنها
یک آیتم
(احتمالاً
اولین آیتم
اعلانشده
در فایل) به
مقصد متصل
خواهد شد.
سایر
آیتمها
متصل
نخواهند شد
زیرا مقصد
فقط یک PID
ورودی را
میپذیرد.
مثال
gpac -i img.heif -o dump_$ItemID$.jpg
در این
حالت، مقصد
برای هر
آیتم
شبیهسازی
(clone) میشود و
به لطف
الگوسازی URL،
همگی به
JPEGهای
متفاوتی
صادر
خواهند شد.
مثال
gpac -i vid.mpd c=avc:FID=1 -o transcode.mpd:SID=1
در این حالت، رمزگذار برای هر PID ویدیویی در منبع شبیهسازی میشود و مقصد فقط از PIDهای برآمده از رمزگذارها استفاده خواهد کرد.
هنگامی که
پیوند ضمنی
فعال است،
تمام
فیلترها
بهطور
پیشفرض
قابل
شبیهسازی
هستند. این
امر امکان
تکرار
پردازش را
برای هر یک
از PIDهای با
نوع یکسان
فراهم
میکند.
مثال
gpac -i dual_audio resample:osr=48k c=aac -o dst
فیلتر
نمونهبرداری
مجدد (resampler)
برای هر PID
صوتی
شبیهسازی
میشود و
رمزگذار
برای هر
خروجی
نمونهبرداری
مجدد
شبیهسازی
خواهد شد.
میتوانید
دستورالعملهای
شبیهسازی
را صریحاً
غیرفعال
کنید:
gpac -i dual_audio resample:osr=48k:clone=0 c=aac -o dst
اولین صدا به فیلتر resample، دومین به فیلتر enc و خروجی resample به یک شبیه (clone) از فیلتر enc متصل خواهد شد.
الگوسازی زنجیرههای فیلتر (Templating filter chains)
ممکن است
مواردی
وجود داشته
باشد که
تعداد
خروجیهای
مطلوب به
محتوای
منبع بستگی
دارد، برای
مثال تخلیه
یک
مالتیپلکس
از N سرویس در
N فایل.
هنگامی که
مقصد شامل
مالتیپلکس
کردن PIDهای
ورودی است،
گزینه :clone
کافی نیست
زیرا
مالتیپلکسر
همیشه PIDهای
ورودی را
میپذیرد.
برای
مدیریت این
موضوع،
میتوان از
نام ویژگی PID
در sourceID یک
فیلتر با
مقدار * یا یک
مقدار خالی
استفاده
کرد. در این
حالت، هر
زمان که یک PID
جدید با
مقدار
جدیدی برای
ویژگی پیدا
شود، فیلتر
با چنین sourceID
بهطور
پویا
شبیهسازی
خواهد شد.
هشدار: این
ویژگی فقط
باید با یک
ویژگی
منفرد
تنظیمشده
روی * (یا
خالی) به
ازای هر source ID
فراخوانی
شود، در غیر
این صورت
نتایج
نامشخص
خواهد بود.
مثال
gpac -i source.ts -o file_$ServiceID$.mp4:SID=*#ServiceID=*
gpac -i source.ts -o file_$ServiceID$.mp4:SID=#ServiceID=
در این حالت، هر مقدار ServiceID جدید یافتشده هنگام اتصال PIDها به مقصد، یک فایل مقصد جدید ایجاد خواهد کرد.
شبیهسازی
در حالت
پیوند ضمنی
روی خروجی
نیز اعمال
میشود:
gpac -i dual_audio -o dst_$PID$.aac
هر ترک صوتی در aac تخلیه خواهد شد (در صورت نیاز همراه با رمزگذاری مجدد).
انتساب ویژگیهای PID (Assigning PID properties)
تعریف
ویژگیها
روی PIDهای
خروجی که
توسط یک
فیلتر
اعلان
میشوند،
امکانپذیر
است. این امر
امکان
برچسبگذاری
بخشهایی
از گراف با
ویژگیهای
متفاوت از
سایر
بخشها
(برای مثال
ServiceID) را فراهم
میکند. نحو
آن همانند
گزینه
فیلتر است و
از
جداکننده
قطعه برای
شناسایی
ویژگیها
استفاده
میکند،
مانند #Name=Value.
این کار
ویژگی PIDهای
خروجی (4cc،
نام توکار
یا هر نام
دیگری) را
روی مقدار
دادهشده
تنظیم
میکند.
مقدار
میتواند
برای بولین
حذف شود
(پیشفرض true
است، مانند
:#Alpha).
ویژگیهای
غیرتوکار
به شرح زیر
تجزیه
میشوند:
- file@FOO بهصورت
رشته با
مقداری
تنظیمشده
بر روی
محتوای FOO
اعلان
میشود.
- bxml@FOO بهصورت data
با مقداری
تنظیمشده
بر روی
محتوای
باینریشده
FOO اعلان
میشود.
- FOO بهصورت
رشته با
مقداری
تنظیمشده
بر روی FOO
اعلان
میشود.
- TYPE@FOO بر اساس TYPE
تجزیه
میشود. اگر
نوع شناخته
نشود، کل
مقدار
بهعنوان
رشته کپی
میشود.
برای انواع
تعریفشده
به gpac -h props
مراجعه
کنید.
ویژگیهای
PID
اختصاصیافته
توسط کاربر
روی فیلتر fA
توسط تمام
فیلترهایی
که برای حل
اتصال fA -> fB
بهطور
پویا
بارگیری
شدهاند
ارثبری
خواهد شد.
اگر fB نیز
دارای
ویژگیهای PID
اختصاصیافته
توسط کاربر
باشد، این
ویژگیها
فقط از
فیلتر fB به
بعد در
زنجیره
اعمال
میشوند و
توسط
فیلترهای
میان fA و fB
ارثبری
نمیشوند.
هشدار:
ویژگیها
پالایش
نمیشوند و
ویژگیهای
PIDهای خروجی
فیلتر را
بازنویسی (override)
میکنند؛
مراقب
باشید که
نشست را با
بازنویسی
ویژگیهای
اصلی مانند
width/height/samplerate/... مختل
نکنید!
مثال
gpac -i v1.mp4:#ServiceID=4 -i v2.mp4:#ServiceID=2 -o dump.ts
این دستور جریانها را در dump.ts مالتیپلکس میکند، با استفاده از ServiceID 4 برای PIDهای v1.mp4 و ServiceID 2 برای PIDهای v2.mp4.
ویژگیهای
PID ممکن است
با بررسی
سایر
ویژگیهای PID
بهصورت
مشروط
اختصاص
داده شوند.
نحو آن از
پرانتز
(غیرقابلپیکربندی)
پس از علامت
انتساب
ویژگی
استفاده
میکند:
#Prop=(CP=CV)VAL
این دستور
ویژگی Prop از PID
را برای
PIDهایی با
ویژگی CP
برابر با CV
روی VAL تنظیم
میکند.
#Prop=(CP=CV)VAL,(CP2=CV2)VAL2
این دستور
ویژگی Prop از PID
را برای
PIDهایی با
ویژگی CP
برابر با CV
روی VAL، و
برای PIDهایی
با ویژگی CP2
برابر با CV2
روی VAL2 تنظیم
میکند.
#Prop=(CP=CV)(CP2=CV2)VAL
این دستور
ویژگی Prop از PID
را برای
PIDهایی با
ویژگی CP
برابر با CV و
ویژگی CP2
برابر با CV2
روی VAL تنظیم
میکند.
#Prop=(CP=CV)VAL,()DEFAULT
این دستور
ویژگی Prop از PID
را برای
PIDهایی با
ویژگی CP
برابر با CV
روی VAL، یا
برای سایر
PIDها روی DEFAULT
تنظیم
میکند.
نحو شرط
همانند نحو
قطعه شناسه
منبع (source ID fragment)
است.
نکته: در
صورت
تنظیم،
مقدار
پیشفرض
(شرط خالی)
همیشه با PID
مطابقت
دارد،
بنابراین
باید در
انتهای
فهرست
شرایط قرار
گیرد.
مثال
gpac -i source.mp4:#MyProp=(audio)"Super Audio",(video)"Super
Video"
این دستور
ویژگی MyProp را
برای PIDهای
صوتی روی Super Audio
و برای PIDهای
ویدیویی
روی Super Video
تنظیم
میکند.
مثال
gpac -i source.mp4:#MyProp=(audio1)"Super Audio"
این دستور
ویژگی MyProp را
برای اولین
PID صوتی
اعلانشده
روی Super Audio
تنظیم
میکند.
مثال
gpac -i source.mp4:#MyProp=(Width+1280)HD
این دستور ویژگی MyProp را برای PIDهایی با ویژگی Width بزرگتر از 1280 روی HD تنظیم میکند.
مقدار
ویژگی
میتواند
از الگوها
با کلمات
کلیدی زیر
استفاده
کند:
* $GINC(init[,inc]) یا @GINC(...): به
ازای هر PID
خروجی جدید
فیلتر با یک
عدد صحیح
جایگزین
میشود
(برای
جزئیات نحو
به
گزینههای
خاص فیلتر
مراجعه
کنید)
* PROP (محصور بین `$`
یا `@`): با
مقدار
سریالیشده
ویژگی PROP (نام
یا 4CC) مربوط
به PID یا با
رشته خالی
در صورت عدم
وجود چنین
ویژگی
جایگزین
میشود
مثال
gpac -i source.ts:#ASID=$PID$
این دستور
شناسه AdaptationSet
مربوط به DASH
را روی
مقدار
شناسه PID
تنظیم
میکند.
مثال
gpac -i source.ts:#RepresentationID=$ServiceID$
این دستور شناسه Representation مربوط به DASH را روی مقدار ServiceID مربوط به PID تنظیم میکند.
یک ویژگی
همچنین
میتواند
با عدم
تعیین هیچ
مقداری حذف
شود. حذف
مشروط با
استفاده از
نحو بالا
امکانپذیر
است.
مثال
gpac -i source.ts:#FOO=
این دستور ویژگی FOO را روی PID خروجی حذف خواهد کرد.
استفاده از فایلهای گزینه (Using option files)
استفاده
از یک فایل
برای تعریف
گزینههای
یک فیلتر،
با تعیین
نام فایل
مقصد
بهعنوان
یک گزینه
بدون
مقدار،
یعنی :myopts.txt
امکانپذیر
است.
هشدار: فقط
فایلهای
محلی مجاز
هستند.
یک فایل
گزینه یک
فایل متنی
ساده شامل
یک یا چند
گزینه یا
ویژگی PID در
یک یا چند خط
است.
- خطی که با "//"
شروع
میشود یک
دیدگاه (comment)
است و
نادیده
گرفته
میشود
(غیرقابلپیکربندی).
- خطی که با ":"
شروع
میشود
نشاندهنده
یک گزینه
اسکیپشده
است (کل خط
بهعنوان
یک گزینه
واحد تجزیه
میشود).
گزینهها
در یک فایل
گزینه ممکن
است به
فایلهای
گزینه دیگر
اشاره
کنند، با
حداکثر سطح
تغییر مسیر
۵.
اعلان یک
فایل گزینه
(filter:myopts.txt) از همان
قوانین
توارث
گزینههای
عادی پیروی
میکند.
مثال
gpac -i source.mp4:myopts.txt:foo=bar -o dst
هر فیلتر بارگیریشده میان source.mp4 و dst هر دو گزینه myopts.txt و foo را به ارث میبرد و گزینهها و ویژگیهای PID ارائهشده در myopts.txt را حلوفصل خواهد کرد.
نادیده گرفتن فیلترها در زمان اجرا (Ignoring filters at run-time)
گزینه
ویژه ccp
میتواند
برای
جایگزینی
فیلترها با
یک فیلتر
همانی (identity filter) در
زمان اجرا
بر اساس
شناسه کدک
ورودی
استفاده
شود.
این گزینه
فهرستی از
شناسههای
کدک برای
بررسی است.
برای
فیلترهای
رمزگذار،
یک فهرست
خالی نوع
کدک
رمزگذار را
مجدداً
استفاده
میکند.
هنگامی که
شناسه کدک PID
با یکی از
کدکهای
تعیینشده
مطابقت
داشته
باشد،
فیلتر با یک
فیلتر reframer با
یک ورودی PID
منفرد و نام
و شناسه
یکسان
جایگزین
میشود.
مثال
-i src c=avc:b=1m:ccp -o mux
این دستور
در صورتی که
PID ورودی در
قالب AVC|H264
باشد،
فیلتر
رمزگذار را
با یک reframer
جایگزین
میکند، یا
از رمزگذار
برای سایر
PIDهای تصویری
استفاده
مینماید.
مثال
-i src c=avc:b=1m:ccp=avc,hevc -o mux
این دستور
در صورتی که
PID ورودی در
قالب AVC|H264 یا HEVC
باشد،
فیلتر
رمزگذار را
با یک reframer
جایگزین
میکند، یا
از رمزگذار
برای سایر
PIDهای تصویری
استفاده
مینماید.
مثال
-i src cecrypt:cfile=drm.xml:ccp=aac -o mux
این دستور در صورتی که PID ورودی در قالب AAC باشد، فیلتر رمزنگار (encryptor) را با یک reframer جایگزین میکند، یا از رمزنگار برای سایر PIDها استفاده مینماید.
گزینههای خاص فیلتر (Specific filter options)
برخی
کلمات
کلیدی خاص
هنگام
پردازش
گزینههای
فیلتر
جایگزین
میشوند.
هشدار: این
کلمات
کلیدی برای
ویژگیهای PID
اعمال
نمیشوند.
چند کلمه
کلیدی
نمیتواند
برای یک
گزینه واحد
تعریف شود.
کلمات
کلیدی
تعریفشده:
* $GSHARE: با مسیر
سیستمی به
دایرکتوری
اشتراکی GPAC
جایگزین
میشود
(مانند /usr/share/gpac)
* $GJS: با اولین
مسیر از
دایرکتوری
اشتراکی
سراسری و
مسیرهای
تنظیمشده
از طریق -js-dirs
که حاوی نام
فایل پس از
ماکرو است
جایگزین
میشود،
مانند $GJS/source.js
* $GDOCS: با مسیر
سیستمی به
موارد زیر
جایگزین
میشود:
- دایرکتوری
اسناد
برنامه
برای iOS
- متغیر
محیطی EXTERNAL_STORAGE در
صورت وجود،
یا در غیر
این صورت /sdcard
برای Android
- دایرکتوری
خانگی
کاربر برای
سایر
پلتفرمها
* $GCFG: با مسیر
سیستمی به
پوشه حاوی
پیکربندی GPAC
جایگزین
میشود
* $GLANG: با گزینه
زبان
پیکربندی
سراسری -lang
جایگزین
میشود
* $GUA: با گزینه
عامل کاربر
(user agent)
پیکربندی
سراسری -user-agent
جایگزین
میشود
* $GINC(init_val[,inc]): با init_val
جایگزین
شده و هر بار
که فیلتر
جدیدی با
استفاده از
این رشته
ایجاد شود،
init_val را به
مقدار inc (عدد
مثبت یا
منفی، در
صورت عدم
تعیین 1)
افزایش
میدهد.
سازه $GINC
میتواند
برای
اختصاص
پویای
اعداد در
زنجیرههای
فیلتر
استفاده
شود:
gpac -i source.ts tssplit @#ServiceID= -o dump_$GINC(10,2).ts
این دستور اولین سرویس را در dump_10.ts، دومین سرویس را در dump_12.ts و... تخلیه خواهد کرد.
همانطور
که پیشتر
مشاهده شد،
گزینههای
زیر ممکن
است روی هر
فیلتری
تنظیم
شوند، اما
در راهنمای
فیلترهای
فردی قابل
مشاهده
نیستند:
* FID: شناسه
فیلتر
(مقدار
رشتهای)
* SID: منبع(های)
فیلتر
(مقدار
رشتهای)
* N=NAME: نام فیلتر
(مقدار
رشتهای)
* FS: شناسه
زیرنشست
(مقدار عدد
صحیح بدون
علامت)
* RSID: الزام به
وجود sourceID در
فیلترهای
مقصد (بدون
مقدار)
* TAG: برچسب
فیلتر
(مقدار
رشتهای)
* ITAG: برچسب
ارثبریشده
فیلتر
(مقدار
رشتهای)
* FBT: زمان بافر
بر حسب
میکروثانیه
(مقدار عدد
صحیح بدون
علامت)
* FBU: واحدهای
بافر (مقدار
عدد صحیح
بدون علامت)
* FBD: زمان بافر
رمزگشایی
بر حسب
میکروثانیه
(مقدار عدد
صحیح بدون
علامت)
* clone:
فعالسازی/غیرفعالسازی
صریح فلگ
شبیهسازی
فیلتر (بدون
مقدار)
* nomux:
فعالسازی/غیرفعالسازی
کپی مستقیم
فایل (بدون
مقدار)
* gfreg: نامهای
ثبتی فیلتر
ترجیحی
برای حل
پیوند
(مقدار
رشتهای)
* gfloc:
گزینههای
زیر محلی
برای اعلان
فیلتر
هستند و
ارثبری
نمیشوند
(بدون مقدار)
* gfopt:
گزینههای
زیر ردیابی
نمیشوند
(بدون مقدار)
* gpac: جداکننده
آرگومان
برای URLها
(بدون مقدار)
* ccp: کنترل
جایگزینی
فیلتر
(مقدار
فهرست
رشتهای)
* NCID: شناسه
پیکربندی netcap
برای
استفاده
(رشته)
* LT: تنظیم
ابزارها و
سطوح
گزارشگیری
اضافی برای
فیلتر با
استفاده از
همان نحو -logs،
مانند :LT=filter@debug
(مقدار
رشتهای)
* DBG:
اشکالزدایی
ویژگی PID
ورودی
ناموجود (=pid)،
ویژگی بسته
ورودی
ناموجود (=pck)
یا هر دو (=all)
گزینههای
کنترل بافر
برای تغییر
بافرسازی
پیشفرض
PIDهای یک
فیلتر
استفاده
میشوند:
- FBT حداکثر
زمان بافر
PIDهای خروجی
یک فیلتر را
کنترل
میکند
- FBU حداکثر
تعداد
بستهها را
در بافر
PIDهای خروجی
یک فیلتر در
صورت در
دسترس
نبودن
زمانبندی
کنترل
میکند
- FBD حداکثر
زمان بافر
PIDهای ورودی
یک فیلتر
رمزگشا را
کنترل
میکند،
برای سایر
فیلترها
نادیده
گرفته
میشود
اگر فیلتر دیگری پیامهای الزامات بافر را ارسال کند، حداکثر مقدار FBT (بهترتیب FBD) و زمان بافر درخواستی کاربر برای زمان بافر خروجی (بهترتیب زمان بافر رمزگشایی) استفاده خواهد شد.
گزینههای
FBT، FBU، FBD و DBG
میتوانند
تنظیم شوند:
* به ازای هر
نمونه
فیلتر: fA reframer:FBU=2
* به ازای هر
کلاس فیلتر
برای اجرای
جاری: --reframer@FBU=2
* در فایل
پیکربندی GPAC
در بخش
مربوط به هر
فیلتر: [filter@reframer]FBU=2
مقادیر پیشفرض توسط پارامترهای پیشفرض نشست -buffer-gen، buffer-units و -buffer-dec تعریف میشوند.
فیلترهای خارجی (External filters)
نرمافزار GPAC همراه با مجموعهای از فیلترهای توکار در libgpac ارائه میشود. همچنین ممکن است فیلترهای خارجی را در کتابخانههای پویا، واقع در پوشه پیشفرض ماژولها یا پوشههای فهرستشده در گزینه -mod-dirs بارگیری کند. فایلها باید با gf_* نامگذاری شوند و یک تابع منفرد به نام RegisterFilter را صادر نمایند که یک ثبت فیلتر (filter register) را بازمیگرداند - برای جزئیات بیشتر به مستندات libgpac مراجعه کنید.
ویژگیهای توکار GPAC (GPAC Built-in properties)
انواع
ویژگیهای
توکار
- sint
-
عدد صحیح ۳۲ بیتی علامتدار
- uint
-
عدد صحیح ۳۲ بیتی بدون علامت
- lsint
-
عدد صحیح ۶۴ بیتی علامتدار
- luint
-
عدد صحیح ۶۴ بیتی بدون علامت
- bool
-
بولی (boolean)
- frac
-
کسر ۳۲/۳۲ بیتی
- lfrac
-
کسر ۶۴/۶۴ بیتی
- flt
-
عدد ممیز شناور ۳۲ بیتی
- dbl
-
عدد ممیز شناور ۶۴ بیتی
- v2di
-
بردار ۲ بعدی از اعداد صحیح ۳۲ بیتی
- v2d
-
بردار ۲ بعدی از اعداد ممیز شناور ۶۴ بیتی
- v3di
-
بردار ۳ بعدی از اعداد صحیح ۳۲ بیتی
- v4di
-
بردار ۴ بعدی از اعداد صحیح ۳۲ بیتی
- str
-
رشته UTF-8
- mem
-
بافر داده
- cstr
-
رشته ثابت UTF-8
- cmem
-
بافر داده ثابت
- ptr
-
اشارهگر ۳۲ یا ۶۴ بیتی
- strl
-
فهرست رشتههای UTF-8
- uintl
-
فهرست اعداد صحیح ۳۲ بیتی بدون علامت
- sintl
-
فهرست اعداد صحیح ۳۲ بیتی علامتدار
- v2il
-
فهرست بردارهای ۲ بعدی از اعداد صحیح ۳۲ بیتی
- 4cc
-
کد چهار نویسهای (Four character code)
- 4ccl
-
فهرست کدهای چهار نویسهای
- pfmt
-
قالب پیکسل خام
- afmt
-
قالب صوتی خام
- cprm
-
متغیرهای اولیه رنگ (color primaries)، مقدار رشتهای یا عددی صحیح از ISO/IEC 23091-2
- ctfc
-
مشخصات تبدیل رنگ (color transfer characteristics)، مقدار رشتهای یا عددی صحیح از ISO/IEC 23091-2
- cmxc
-
ضرایب ماتریس رنگ (color matrix coefficients)، مقدار رشتهای یا عددی صحیح از ISO/IEC 23091-2
- alay
-
پیکربندی چینش کانال، مقدار رشتهای یا عددی صحیح از ISO/IEC 23091-3ویژگیهای توکار برای PIDها و بستهها به صورت «نام (نوع FLAGS 4CC): توضیحات» فهرست شدهاند:
پرچمهای FLAGS میتوانند D (قابل صرفنظر کردن - راهنمای پالایه چندگانهساز GSF را ببینید) و P (ویژگی بسته) باشند
- ID (PIDI,uint, )
-
شناسه جریان (Stream ID)
- ESID (ESID,uint,D )
-
شناسه ESID استاندارد MPEG-4 مربوط به PID
- ItemID (ITID,uint, )
-
شناسه آیتم تصویر در HEIF، دارای همان مقدار ID
- ItemNumber (ITIX,uint, )
-
شماره (مبتنی بر ۱) آیتم تصویر در HEIF، به ترتیب اعلان در فایل
- TrackNumber (PIDX,uint, )
-
شماره (مبتنی بر ۱) ترک به ترتیب اعلان در فایل
- ServiceID (PSID,uint,D )
-
شناسه سرویس والد
- ClockID (CKID,uint,D )
-
شناسه PID مرجع ساعت
- DependencyID (DPID,uint, )
-
شناسه لایهای که به آن وابستگی وجود دارد
- SubLayer (DPSL,bool, )
-
مشخص میکند که PID به جای لایه ارتقا، یک زیرلایه از جریان وابسته است
- PlaybackMode (PBKM,uint,D )
-
حالت بازپخش پشتیبانیشده:
* 0: بدون کنترل زمان
* 1: پخش/مکث/پرش، سرعت=۱
* 2: پخش/مکث/پرش، سرعت>=۰
* 3: پخش/مکث/پرش، بازپخش معکوس
- Scalable (SCAL,bool, )
-
جریان مقیاسپذیر
- TileBase (SABT,bool, )
-
جریان پایه کاشی (Tile base stream)
- TileID (PTID,uint, )
-
شناسه کاشی برای PIDهای hvt1/hvt2
- Language (LANG,cstr, )
-
کد زبان: کد ۲ یا ۳ نویسهای ISO639 یا RFC 4646
- ServiceName (SNAM,str,D )
-
نام سرویس والد، اعلامشده به عنوان اطلاعات PID
- ServiceProvider (SPRO,str,D )
-
ارائهدهنده سرویس والد، اعلامشده به عنوان اطلاعات PID
- StreamType (PMST,uint, )
-
نوع جریان چندرسانهای
- StreamSubtype (PSST,4cc,D )
-
کد 4CC زیرنوع چندرسانهای (کمکی، توالی تصویر و غیره)، منطبق با نوع گرداننده (handler) در ISOM
- ISOMSubtype (PIST,4cc,D )
-
کد 4CC زیرنوع چندرسانهای ISOM (مانند avc1 avc2...)
- OrigStreamType (POST,uint, )
-
نوع اصلی جریان پیش از رمزگذاری
- CodecID (POTI,uint, )
-
شناسه کدک (MPEG-4 OTI یا ISOBMFF 4CC)
- InitialObjectDescriptor (PIOD,bool, )
-
مشخص میکند که PID در توصیفگر اولیه شیء (IOD) برای MPEG-4 تعریف شده است
- Unframed (PFRM,bool, )
-
دادههای چندرسانهای فریمبندی نشدهاند، یعنی هر بسته یک واحد دسترسی (AU) یا فریم کامل نبوده یا در قالب داخلی نمیباشد (مانند annexB برای avc/hevc، یا adts برای aac)
- UnframedAU (PFRF,bool, )
-
رسانه فریمبندینشده همچنان دارای مرزهای درست AU است: یک بسته معادل یک AU کامل است، اما ممکن است قالب بسته، قالب داخلی نباشد (مانند annexB برای avc/hevc، یا adts برای aac)
- LATM (LATM,bool, )
-
رسانه از نوع AAC فریمبندینشده در قالب LATM است
- USRT (USRT,bool, )
-
رسانه از نوع SRT فریمبندینشده است؛ سرایند درون بار مفید و با زمان شروع ۰ قرار دارد
- Duration (PDUR,lfrac, )
-
مدت زمان رسانه
- EstimatedDuration (EDUR,bool, )
-
مدت زمان رسانه یک مدت تخمینی بر اساس نرخ انتقال است
- NumFrames (NFRM,uint,D )
-
تعداد فریمهای موجود در جریان
- FrameOffset (FRMO,uint,D )
-
اندیس نخستین فریم در جریان (مورد استفاده در گزارشدهی)
- ConstantFrameSize (CFRS,uint, )
-
اندازه فریمها برای جریانهای با اندازه فریم ثابت
- TimeshiftDepth (PTSD,frac,D )
-
عمق بافر جابهجایی زمانی (timeshift)
- TimeshiftTime (PTST,dbl,D )
-
زمان در بافر جابهجایی زمانی بر حسب ثانیه - تغییرات از طریق اطلاعات PID اعلام میشوند (بدون پیکربندی مجدد)
- TimeshiftState (PTSS,uint,D )
-
وضعیت بافر جابهجایی زمانی: ۰ وضعیت عادی (OK)، ۱ سرریز منفی (underflow)، ۲ سرریز مثبت (overflow) - تغییرات از طریق اطلاعات PID اعلام میشوند (بدون پیکربندی مجدد)
- Timescale (TIMS,uint, )
-
مقیاس زمانی رسانه (تفاضل برچسب زمانی N معادل N/timescale ثانیه است)
- ProfileLevel (PRPL,uint,D )
-
نشانگر مشخصه (Profile) و سطح (Level)
- DecoderConfig (DCFG,mem, )
-
دادههای پیکربندی رمزگشا
- DecoderConfigEnhancement (ECFG,mem, )
-
دادههای پیکربندی رمزگشای لایه(های) ارتقا. همچنین توسط جریانهای متنی 3GPP/Apple برای ارائه جدول کامل توصیف نمونه مورد استفاده در SDP به کار میرود
- DSISuperset (DCFS,bool, )
-
پیکربندی رمزگشا ابرمجموعهای از پیکربندی قبلی رمزگشا است
- DecoderConfigIndex (ICFG,uint, )
-
اندیس مبتنی بر ۱ پیکربندی رمزگشا برای فایلهای رسانهای پایه ISO
- SampleRate (AUSR,uint, )
-
نرخ نمونهبرداری صوتی
- SamplesPerFrame (FRMS,uint, )
-
تعداد نمونههای صوتی در یک فریم کدگذاریشده
- NumChannels (CHNB,uint, )
-
تعداد کانالهای صوتی
- BPS (ABPS,uint, )
-
تعداد بیت در هر نمونه در منبع فشردهشده
- ChannelLayout (CHLO,luint, )
-
ماسک چینش کانالها
- AudioFormat (AFMT,afmt, )
-
قالب نمونه صوتی
- AudioPlaybackSpeed (ASPD,dbl,D )
-
سرعت بازپخش صوت، فقط برای پیکربندی مجدد خروجی صوتی استفاده میشود
- Delay (MDLY,lsint, )
-
تاخیر نمایش در مقایسه با برچسبهای زمانی ترکیب، در مقیاس زمانی رسانه. مقدار مثبت به معنای نگه داشتن (تاخیر انداختن) جریان است. مقدار منفی به معنای رد کردن ابتدای جریان است
- CTSShift (MDTS,uint, )
-
آفست CTS برای اعمال در صورت منفی بودن ctts
- SkipPriming (ASKP,bool, )
-
دادههای راهاندازی اولیه صوتی (priming) نباید هنگام آغاز رمزگشایی حذف شوند
- Width (WIDT,uint, )
-
عرض بصری (ویدیو / متن / گرافیک)
- Height (HEIG,uint, )
-
ارتفاع بصری (ویدیو / متن / گرافیک)
- PixelFormat (PFMT,pfmt, )
-
قالب پیکسل
- PixelFormatWrapped (PFMW,pfmt, )
-
قالب پیکسل زیرین جریان ویدیو در صورتی که قالب پیکسل بافت خارجی GL باشد
- Stride (VSTY,uint, )
-
گام سطری (stride) تصویر یا صفحه Y/alpha
- StrideUV (VSTC,uint, )
-
گام سطری (stride) صفحه UV یا صفحات U/V
- BitDepthLuma (YBPS,uint, )
-
عمق بیت برای مولفههای روشنایی (luma)
- BitDepthChroma (CBPS,uint, )
-
عمق بیت برای مولفههای رنگپذیری (chroma)
- FPS (VFPF,frac, )
-
نرخ فریم ویدیو
- Interlaced (VILC,bool, )
-
ویدیو درهمبافته (interlaced) است
- SAR (PSAR,frac, )
-
نسبت ابعاد نمونه (یعنی پیکسل) (مقادیر منفی به معنای نبود SAR و حذف اطلاعات در ظرفها است)
- MaxWidth (MWID,uint, )
-
حداکثر عرض (ویدیو / متن / گرافیک) تمامی لایههای ارتقا
- MaxHeight (MHEI,uint, )
-
حداکثر ارتفاع (ویدیو / متن / گرافیک) تمامی لایههای ارتقا
- ZOrder (VZIX,sint, )
-
ترتیب عمق (Z-order) ویدیو، از ۰ (اولین) تا بیشینه عدد صحیح (آخرین)
- TransX (VTRX,sint, )
-
انتقال افقی ویدیو (مقادیر مثبت به سمت راست)
- TransY (VTRY,sint, )
-
انتقال عمودی ویدیو (مقادیر مثبت به سمت بالا)
- TransXRight (VTRx,sint, )
-
آفست افقی ویدیو از سمت راست (مقادیر مثبت به سمت راست)، برای مواردی که عرض مرجع ناشناخته است
- TransYTop (VTRy,sint, )
-
انتقال عمودی ویدیو (۰ بالا است، مقادیر مثبت به سمت پایین)، برای مواردی که ارتفاع مرجع ناشناخته است
- Hidden (HIDE,bool, )
-
مشخص میکند که PID در رندر بصری/صوتی پنهان است
- CropOrigin (VCXY,v2di, )
-
موقعیت در پنجره منبع، X و Y نشاندهنده مختصات در منبع هستند (0,0 برای بالا-چپ)
- OriginalSize (VOWH,v2di, )
-
تفکیکپذیری اصلی ویدیو
- SRD (SRDI,v4di, )
-
موقعیت و اندازه ویدیو در دستگاه مرجع ارائهشده توسط SRDRef
- SRDRef (SRDR,v2di, )
-
عرض و ارتفاع دستگاه مرجع SRD
- SRDMap (SRDM,uintl, )
-
نگاشت ویدیوهای ورودی در ویدیوی بازسازیشده، بیانشده به صورت {Ox,Oy,Ow,Oh,Dx,Dy,Dw,Dh} به ازای هر ورودی، با:
* Ox,Oy,Ow,Oh: موقعیت و اندازه ویدیوی ورودی (معمولاً منطبق با ویژگی SRD آن)، بیانشده در دستگاه مرجع خروجی ارائهشده توسط SRDRef
* Dx,Dy,Dw,Dh: موقعیت و اندازه ویدیوی ورودی در خروجی بازسازیشده، بیانشده در دستگاه مرجع خروجی ارائهشده توسط SRDRef
- Alpha (VALP,bool, )
-
ویدیو در این PID یک نگاشت آلفا (alpha map) است
- Mirror (VMIR,uint, )
-
حالت آینهای (به صورت ماسک بیتی با پرچمهای ۰: بدون آینه، ۱: در راستای محور Y، ۲: در راستای محور X)
- Rotate (VROT,uint, )
-
چرخش ویدیو به صورت value*90 درجه پادساعتگرد
- ClapW (CLPW,frac, )
-
عرض روزنه تمیز (clean aperture) بر حسب پیکسلهای روشنایی (luma)
- ClapH (CLPH,frac, )
-
ارتفاع روزنه تمیز بر حسب پیکسلهای روشنایی
- ClapX (CLPX,frac, )
-
آفست افقی مرکز روزنه تمیز بر حسب پیکسلهای روشنایی، ۰ در مرکز تصویر
- ClapY (CLPY,frac, )
-
آفست عمودی مرکز روزنه تمیز بر حسب پیکسلهای روشنایی، ۰ در مرکز تصویر
- NumViews (PNBV,uint, )
-
تعداد نماهای بستهبندیشده در یک فریم (فقط بالا به پایین)
- Bitrate (RATE,uint, )
-
نرخ بیت بر حسب bps
- Maxrate (MRAT,uint, )
-
حداکثر نرخ بیت بر حسب bps
- TargetRate (TBRT,uint, )
-
نرخ بیت هدف بر حسب bps، برای تنظیم رمزگذارها
- DBSize (DBSZ,uint, )
-
اندازه بافر رمزگشایی بر حسب بایت
- MediaDataSize (MDSZ,luint,D )
-
اندازه دادههای رسانه بر حسب بایت
- DataRef (DREF,bool,D )
-
امکان ارجاع مستقیم به داده وجود دارد (هر فریم فشردهشده مجموعهای پیوسته از بایتها در منبع بدون هیچ تبدیلی است)
- URL (FURL,str,D )
-
نشانی URL منبع
- RemoteURL (RURL,str,D )
-
نشانی URL دوردست منبع - مورد استفاده در سیستمهای MPEG-4
- RedirectURL (RELO,str,D )
-
نشانی URL تغییر مسیر منبع
- SourcePath (FSRC,str,D )
-
مسیر فایل منبع در فایلسیستم
- FileAlias (FALI,str,D )
-
نام مستعار برای فایل منبع، جایگزین $URL$ و $File$ در الگوها
- MIMEType (MIME,str,D )
-
نوع MIME منبع
- Extension (FEXT,str,D )
-
پسوند فایل منبع
- Cached (CACH,bool,D )
-
فایل به طور کامل در حافظه نهان (کش) ذخیره شده است
- DownloadRate (DLBW,uint,D )
-
نرخ بارگیری منبع بر حسب بیت بر ثانیه - تغییرات از طریق اطلاعات PID اعلام میشوند (بدون پیکربندی مجدد)
- DownloadSize (DLSZ,luint,D )
-
اندازه منبع بر حسب بایت
- DownBytes (DLBD,luint,D )
-
تعداد بایتهای بارگیریشده - تغییرات از طریق اطلاعات PID اعلام میشوند (بدون پیکربندی مجدد)
- ByteRange (FBRA,lfrac,D )
-
محدوده بایتی منبع
- DisableProgressive (NPRG,uint, )
-
برخی بلوکها در فایل هنگام بستن نیاز به وصلهزنی (جایگزینی یا درج) دارند که احتمالاً بارگذاری تدریجی را غیرفعال میکند
- IsoAltBrands (ABRD,4ccl,D )
-
برندهای ISOBMFF مرتبط با PID/فایل
- IsoBrand (MBRD,4cc,D )
-
برند اصلی ساختار ISOBMFF مرتبط با PID/فایل
- MovieTime (MHTS,lfrac,D )
-
مدت زمان و مقیاس زمانی سرایند فیلم در ISOBMFF
- HasSync (PSYN,bool,D )
-
مشخص میکند که PID دارای نقاط همگامسازی است
- ServiceWidth (DWDT,uint,D )
-
عرض نمایشی سرویس
- ServiceHeight (DHGT,uint,D )
-
ارتفاع نمایشی سرویس
- IsDefault (PDEF,bool,D )
-
شناسه PID پیشفرض برای این نوع جریان
- CarouselRate (CARA,uint,D )
-
نرخ تکرار بر حسب میلیثانیه برای دادههای گردشی (carousel) سیستم
- AudioVolume (AVOL,uint,D )
-
بلندی صدای صوت
- AudioPan (APAN,uint,D )
-
توازن صوتی (Balance/Pan)
- AudioPriority (APRI,uint,D )
-
اولویت ریسه صوتی
- ProtectionScheme (SCHT,4cc, )
-
نوع طرح محافظت (4CC) مورد استفاده
- SchemeVersion (SCHV,uint, )
-
نسخه طرح محافظت مورد استفاده
- SchemeURI (SCHU,str, )
-
شناسه URI طرح محافظت
- KMS_URI (KMSU,str, )
-
شناسه URI برای سیستم مدیریت کلید (KMS)
- SelectiveEncryption (ISSE,bool, )
-
از رمزگذاری انتخابی ISMA/OMA استفاده شده است
- IVLength (ISIV,uint, )
-
اندازه بردار مقداردهی اولیه (IV) در ISMA
- KILength (ISKI,uint, )
-
اندازه KeyIndication در ISMA
- CryptType (OMCT,uint, )
-
نوع رمزگذاری OMA
- ContentID (OMID,str, )
-
شناسه محتوای OMA (محتوای Content ID)
- TextualHeaders (OMTH,str, )
-
سرایندهای متنی OMA
- PlaintextLen (OMPT,luint, )
-
اندازه دادههای متنساده در OMA
- CryptInfo (ECRI,str,D )
-
نشانی URL (فقط فایل محلی) فایل اطلاعات رمزگذاری برای این PID، برای اجبار به عبور مستقیم از clear استفاده کنید
- DecryptInfo (EDRI,str,D )
-
نشانی URL (فقط فایل محلی) فایل اطلاعات رمزگشایی برای این PID - راهنمای رمزگشا را ببینید
- SenderNTP (NTPS,luint,DP)
-
برچسب زمانی ۶۴ بیتی NTP در سمت فرستنده یا گیرنده داده
- ReceiverNTP (NTPR,luint,DP)
-
مقدار NTP گیرنده (برچسب زمانی ۶۴ بیتی) که معمولاً با ویژگی NTP فرستنده همراه است
- UTC (UTCD,luint,DP)
-
برچسب زمانی UTC (بر حسب میلیثانیه) مربوط به بسته والد
- Encrypted (EPCK,bool, )
-
بستههای این جریان به صورت پیشفرض رمزگذاری شدهاند (با این حال وضعیت رمزگذاری در پرچمهای crypt بسته مشخص میشود) - تغییرات از طریق اطلاعات PID اعلام میشوند (بدون پیکربندی مجدد)
- OMAPreview (ODPR,luint, )
-
محدوده پیشنمایش OMA
- CENC_PSSH (PSSH,mem, )
-
داده باینری PSSH برای CENC، قالببندیشده به صورت:
(u32)NbSystems [ (bin128)SystemID(u32)version(u32)KID_count[ (bin128)keyID ] (u32)priv_size(char*priv_size)priv_data]
- CENC_SAI (SAIS,mem, P)
-
داده CENC SAI برای بسته، قالببندیشده به صورت:
(char(IV_Size))IV(u16)NbSubSamples [(u16)ClearBytes(u32)CryptedBytes]
- KeyInfo (CBIV,mem, )
-
اطلاعات چندکلیدی قالببندیشده به صورت:
is_mkey(u8);
nb_keys(u16);
[
IV_size(u8);
KID(bin128);
if (!IV_size) {;
const_IV_size(u8);
constIV(const_IV_size);
}
] - CENCPattern (CPTR,frac, )
-
الگوی رمزگذاری CENC؛ پرش به اندازه frac.num و رمزگذاری به اندازه frac.den
- CENCStore (CSTR,4cc, )
-
محل ذخیرهسازی 4CC برای دادههای SAI
- CENCstsdMode (CSTM,uint, )
-
حالت توصیف نمونه CENC هنگام استفاده از نمونههای شفاف:
* 0: از یک توصیف نمونه واحد استفاده میشود
* 1: یک همزاد شفاف از توصیف نمونه ایجاد شده و پیش از توصیف نمونه CENC درج میشود
* 2: یک همزاد شفاف از توصیف نمونه ایجاد شده و پس از توصیف نمونه CENC درج میشود
- AMRModeSet (AMST,uint, )
-
مجموعه حالت (ModeSet) برای AMR و AMR-WideBand
- SubSampleInfo (SUBS,mem, P)
-
داده باینری توصیفکننده N زیرنمونه (subsample) از نمونه، با ساختار N [(u32)flags(u32)size(u32)codec_param(u8)priority(u8) discardable]. زیرنمونهها برای یک پرچم مشخص باید به ترتیب قرار گیرند، اما پرچمها میتوانند درهمتنیده (interleaved) باشند
- NALUMaxSize (NALS,uint, )
-
حداکثر اندازه واحدهای NAL در استریم - تغییرات از طریق اعلام تغییر اطلاعات PID مشخص میشوند (بدون پیکربندی مجدد)
- FileNumber (FNUM,uint, P)
-
اندیس پرونده هنگام ذخیرهسازی در پروندهها
- FileName (FNAM,str, P)
-
نام پرونده خروجی هنگام ذخیرهسازی / قطعهبندی DASH. باید روی اولین بسته متعلق به پرونده جدید تنظیم شود
- IDXName (INAM,str, P)
-
نام پرونده نمایه هنگام قطعهبندی MPEG-2 TS برای DASH. باید روی اولین بسته متعلق به پرونده جدید تنظیم شود
- FileSuffix (FSUF,str, P)
-
نام پسوند پرونده، جایگزین برای $FS$ در الگوهای کاشی (tile templates)
- EODS (EODS,bool, P)
-
پایان قطعه DASH
- CueStart (PCUS,bool, P)
-
روی بستههایی تنظیم میشود که شروع یک قطعه DASH/HLS را برای قطعهبندی مبتنی بر کیو (cue-driven) مشخص میکنند - راهنمای dasher را ببینید
- MediaTime (MTIM,dbl,DP)
-
زمان رسانهای متناظر بسته والد (۰ به عنوان مبدأ)
- MaxFrameSize (MFRS,uint,D )
-
حداکثر اندازه فریم در استریم - تغییرات از طریق اعلام تغییر اطلاعات PID مشخص میشوند (بدون پیکربندی مجدد)
- AvgFrameSize (AFRS,uint,D )
-
اندازه میانگین فریم در استریم (فقط ISOBMFF، ویژگی ایستا)
- MaxTSDelta (MTSD,uint,D )
-
حداکثر دلتای DTS بین فریمها (فقط ISOBMFF، ویژگی ایستا)
- MaxCTSOffset (MCTO,uint,D )
-
حداکثر آفست مطلق CTS (فقط ISOBMFF، ویژگی ایستا)
- ConstantDuration (SCTD,uint,D )
-
مدتزمان ثابت نمونهها، ۰ به معنای مدتزمان متغیر است (فقط ISOBMFF، ویژگی ایستا)
- TrackTemplate (ITKT,mem,D )
-
باکس ترک سریالایزشده ISOBMFF برای این PID، بدون هیچ اطلاعات نمونهای (stbl خالی و dref خالی)
- TrexTemplate (ITXT,mem,D )
-
باکس trex سریالایزشده ISOBMFF برای این PID
- STSDTemplate (ISTD,mem,D )
-
مدخل توصیف نمونه سریالایزشده ISOBMFF برای این PID
- MovieUserData (IMUD,mem,D )
-
باکسهای UDTA و دیگر باکسهای سطح moov سریالایزشده ISOBMFF (فهرست) برای این PID
- HandlerName (IHDL,str,D )
-
نام گرداننده (handler) ترک در ISOBMFF
- TrackFlags (ITKF,uint,D )
-
پرچمهای سرآیند ترک در ISOBMFF
- TrackMatrix (ITKM,sintl,D )
-
ماتریس سرآیند ترک در ISOBMFF
- AltGroup (IALG,uint,D )
-
شناسه گروه جایگزین (alt group) در ISOBMFF
- ForceNCTTS (IFNC,bool,D )
-
اجبار به استفاده از آفستهای منفی CTS در ISOBMFF
- Disable (ITKD,bool,D )
-
پرچم غیرفعالسازی در ISOBMFF
- Period (PEID,str,D )
-
شناسه دوره (Period) در DASH
- PStart (PEST,lfrac,D )
-
زمان شروع دوره DASH - راهنمای dasher را ببینید
- PDur (PEDU,lfrac,D )
-
مدتزمان دوره DASH - راهنمای dasher را ببینید
- Representation (DRID,str,D )
-
شناسه بازنمایی (Representation) در DASH
- ASID (DAID,uint,D )
-
شناسه مجموعه انطباق (Adaptation Set) والد در DASH
- SSR (SSRR,sint,D )
-
شناسه مجموعه انطباق (Adaptation Set):
* همان مقدار ASID: حالت SSR معمولی که برای جابهجایی بین مجموعهها (cross-AS switching) استفاده نمیشود
* شناسه یک مجموعه انطباق دیگر: فعالسازی جابهجایی بین این مجموعه و مجموعه ارجاعشده
* مقدار منفی: حالت سازگاری با LL-HLS
- ASQuery (ASQR,str,D )
-
رشته پرسوجو برای افزودن به این مجموعه انطباق هنگام درخواست قطعات
- MuxSrc (MSRC,str,D )
-
نام منبع (منابع) مالتیپلاکس، تنظیمشده توسط dasher برای هدایت خروجیهای خود
- DashMode (DMOD,uint,D )
-
حالت DASH مورد استفاده توسط مالتیپلکسر در صورت وجود، تنظیمشده توسط dasher. مقدار ۰ بدون DASH، مقدار ۱ DASH معمولی و مقدار ۲ VoD است
- InitBase64 (IB64,bool,D )
-
مشخص میکند مالتیپلکسر باید نسخه کدگذاریشده base64 قطعه آغازین را ارسال کند
- SegSync (DFSS,bool,D )
-
مشخص میکند قطعه پیش از ارسال رویدادهای اندازه قطعه/فرگمنت باید به طور کامل تخلیه (flush) شود
- DashDur (DDUR,frac,D )
-
مدتزمان هدف قطعه DASH بر حسب ثانیه
- FragDur (FDUR,frac,D )
-
مدتزمان هدف فرگمنت DASH بر حسب ثانیه
- DashMultiPid (DMSD,ptr,D )
-
اشارهگر به GF_List مربوط به PIDهای ورودی برای قطعات دارای چندین مدخل stsd، تنظیمشده توسط dasher
- DashMultiPidIdx (DMSI,uint,D )
-
اندیس مبتنی بر ۱ مربوط به PID در فهرست چند PID، تنظیمشده توسط dasher
- DashMultiTrack (DMTK,ptr,D )
-
اشارهگر به GF_List مربوط به PIDهای ورودی برای قطعات چندترکه، تنظیمشده توسط dasher
- Role (ROLE,strl,D )
-
فهرست نقشهای این PID، که در آن هر رشته نقش میتواند یک نقش DASH، یک مقدار URN:role-value یا هر رشته دیگری باشد (این حالت هشداری صادر کرده و از یک URI سفارشی برای نقش استفاده میکند)
- PDesc (PDES,strl,D )
-
فهرست توصیفگرها برای دوره DASH شامل این PID
- ASDesc (ACDS,strl,D )
-
فهرست توصیفگرهای شرطی برای مجموعه انطباق DASH شامل این PID. اگر یک PID با همان نوع ویژگی اما با مقدار متفاوت یافت شود، PIDها در مجموعههای انطباق متفاوتی قرار خواهند گرفت
- ASCDesc (AADS,strl,D )
-
فهرست توصیفگرهای مشترک برای مجموعه انطباق DASH شامل این PID
- RDesc (RDES,strl,D )
-
فهرست توصیفگرها برای بازنمایی DASH شامل این PID
- BUrl (BURL,strl,D )
-
فهرست نشانیهای وب پایه (Base URLs) برای این PID
- Template (DTPL,str, )
-
الگوی مورد استفاده برای تولید DASH برای این PID
- StartNumber (DRSN,uint, )
-
شماره شروع برای استفاده در این PID - راهنمای dasher را ببینید
- xlink (XLNK,str,D )
-
نشانی URL دوره دوردست برای DASH - راهنمای dasher را ببینید
- ClampDur (DCMD,lfrac,D )
-
حداکثر مدتزمان رسانه برای پردازش از PID در حالت DASH
- HLSPL (HLVP,str,D )
-
نام لیستپخش متغیر (variant playlist) در HLS برای این رسانه
- HLSGroup (HLGI,str,D )
-
نام گروه HLS یک استریم
- HLSRend (HLGR,strl,D )
-
فهرست گروههای HLS مجاز در رندر گروهی - در صورت عدم تنظیم، همه گروهها مجاز هستند
- HLSForce (HLFI,str,D )
-
اجبار به نوشتن EXT-X-STREAM-INF در صورتی که استریم در یک گروه رندر باشد؛ مقدار، نام گروههای مرتبط است (میتواند خالی باشد)
- HLSMExt (HLMX,strl,D )
-
فهرست پسوندهای الحاقی برای افزودن به لیستپخش اصلی (master playlist) برای این PID
- HLSVExt (HLVX,strl,D )
-
فهرست پسوندهای الحاقی برای افزودن به لیستپخش متغیر (variant playlist) برای این PID
- DCue (DCUE,str,D )
-
نام یک پرونده فهرست کیو (cue list) برای این PID - راهنمای dasher را ببینید
- DSegs (DCNS,uint,D )
-
تعداد قطعات DASH تعریفشده توسط اطلاعات کیو در DASH
- Codec (CODS,str,D )
-
رشته پارامتر کدک جهت تحمیل. اگر با '.' شروع شود، به کدپوینت ISOBMFF الحاق میگردد؛ در غیر این صورت جایگزین رشته کدک میشود
- SingleScale (DSTS,bool,D )
-
سرآیند ویدیو (Movie header) باید از مقیاس زمانی رسانهایِ اولین ترک اضافهشده استفاده کند
- RequireReorder (PUDP,bool,D )
-
بستههای PID از منبعی همراه با تلفات بسته و تغییر ترتیب دریافت میشوند (UDP)
- Primary (PITM,bool,D )
-
آیتم اصلی (Primary item) در ISOBMFF
- DFMode (DFWD,uint,D )
-
حالت هدایت DASH (forward mode) برای این PID استفاده میشود. اگر مقدار ۲ باشد، مانیفست نیز در ویژگی بسته حمل میشود
- DFManifest (DMPD,str,DP)
-
مقدار مانیفست در حالت هدایت (forward mode)
- DFVariant (DHLV,strl,DP)
-
مقدار لیستپخش متغیر در حالت هدایت (forward mode)
- DFVariantName (DHLN,strl,DP)
-
مقدار نام لیستپخش متغیر در حالت هدایت (forward mode)
- DFPStart (DPST,luint,D )
-
مقدار زمان شروع دوره فعال بر حسب میلیثانیه در حالت هدایت (forward mode)
- DFPckPStart (PDPS,bool,DP)
-
مشخصکننده شروع دوره جدید (فقط روی اولین بستههای دورههای غیر از دوره اول تنظیم میشود)
- HLSKey (HLSK,str, )
-
شناسههای URI، KEYFORMAT و KEYFORMATVERSIONS برای ایجاد رمزگذاری کامل قطعه HLS، در غیر این صورت نشانی کلید (Key URI) (رمزگشایی و sample-AES)
- HLSIV (HLSI,mem, )
-
بردار مقداردهی اولیه (Init Vector) برای رمزگشایی HLS
- CKUrl (CCKU,str, )
-
نشانی وب (URL) برای سرور مجوز ClearKey
- ColorPrimaries (CPRM,cprm,D )
-
رنگهای پایه (Color primaries)
- ColorTransfer (CTRC,ctfc,D )
-
ویژگیهای انتقال رنگ (Color transfer)
- ColorTransferAlternative (CATC,ctfc,D )
-
ویژگیهای جایگزین انتقال رنگ
- ColorMatrix (CMXC,cmxc,D )
-
ضریب ماتریس رنگ
- FullRange (CFRA,bool,D )
-
پرچم دامنه کامل رنگ (Full range)
- Chroma (CFMT,uint,D )
-
قالب کروما (کرومافرمت، استانداردهای ISO/IEC 23001-8 / 23091-2 را ببینید)
- ChromaLoc (CLOC,uint,D )
-
موقعیت کروما (استانداردهای ISO/IEC 23001-8 / 23091-2 را ببینید)
- ContentLightLevel (CLLI,mem,D )
-
سطح روشنایی محتوا، بارداده باکس clli (استاندارد ISO/IEC 14496-12 را ببینید)، میتواند به صورت فهرستی از ۲ عدد صحیح در تعریف فرگمنت تنظیم شود (مانند "=max_cll,max_pic_avg_ll")
- MasterDisplayColour (MDCV,mem,D )
-
اطلاعات رنگ نمایشگر مرجع، بارداده باکس mdcv (استاندارد ISO/IEC 14496-12 را ببینید)، میتواند به صورت فهرستی از ۱۰ عدد صحیح در تعریف فرگمنت تنظیم شود (مانند "=dpx0,dpy0,dpx1,dpy1,dpx2,dpy2,wpx,wpy,max,min")
- ICC (ICCP,mem,D )
-
پروفایل ICC (استاندارد ISO 15076-1 یا ICC.1 را ببینید)
- SrcMagic (PSMG,luint,D )
-
عدد جادویی برای ذخیره در ترک، فقط توسط واردکنندهها (importers) استفاده میشود
- MuxIndex (TIDX,uint,D )
-
اندیس ترک هدف در پرونده مقصد، ذخیرهشده به ترتیب از کمترین مقدار (توسط دیمالتیپلکسرها تنظیم نمیشود)
- NoTSLoop (NTSL,bool, )
-
برچسبهای زمانی روی این PID در صورت تکرار حلقه تنظیم میشوند (مورد استفاده در خروجی مالتیپلکسر TS)
- MHAProfiles (MHCP,uintl,D )
-
فهرست پروفایلهای سازگار برای این شیء صوتی MPEG-H Audio
- FragStart (PFRB,uint,DP)
-
بسته نشاندهنده شروع فرگمنت (مقدار ۱) یا شروع قطعه (مقدار ۲) است
- FragRange (PFRR,lfrac,DP)
-
موقعیت شروع و پایان فرگمنت بر حسب بایت، در صورتی که بسته شروع فرگمنت یا قطعه باشد
- FragTFDT (PFRT,luint,DP)
-
زمان رمزگشایی اولین بسته در فرگمنت
- SIDXRange (PFSR,lfrac,DP)
-
موقعیت شروع و پایان sidx بر حسب بایت در قطعه در صورت وجود
- VODSIDXRange (PRSR,lfrac,D )
-
موقعیت شروع و پایان sidx ریشه بر حسب بایت
- MoofTemplate (MFTP,mem,DP)
-
باکس moof سریالایزشده متناظر با شروع یک فرگمنت یا قطعه فیلم (همراه با styp و اختیاری sidx)
- InitSeg (PCKI,bool, P)
-
در صورتی که بسته یک پرونده کامل قطعه آغازین (init segment) در DASH باشد، روی true تنظیم میشود
- RawGrab (PGRB,uint,D )
-
مشخص میکند PID یک دریافتکننده رسانه خام (وبکم، میکروفون و غیره) است. مقدار ۲ برای دوربین جلو استفاده میشود
- KeepAfterEOS (PKAE,bool,D )
-
شناسه PID باید پس از پایان استریم (EOS) زنده نگه داشته شود (LASeR و BIFS)
- CoverArt (PCOV,mem,D )
-
دادههای تصویر کاور مربوط به PID. اگر داده مرتبط NULL باشد، داده درون PID حمل میشود
- BufferLength (PBPL,uint,D )
-
بافر پخش (playout buffer) بر حسب میلیثانیه
- MaxBuffer (PBMX,uint,D )
-
حداکثر اشغال بافر بر حسب میلیثانیه
- ReBuffer (PBRE,uint,D )
-
آستانه بافر مجدد (Rebuffer) بر حسب میلیثانیه، مقدار ۰ بافر مجدد را غیرفعال میکند
- ViewIdx (VIDX,uint,D )
-
اندیس نما برای چندنمایی (multiview) (مقدار ۱ نمای چپ است)
- FragURL (OFRA,str,D )
-
نشانی وب فرگمنت (بدون '#') از نشانی اصلی (مورد استفاده توسط برخی فیلترها جهت تنظیم ویژگی روی PIDهای رسانهای)
- MCASTIP (MSIP,str,D )
-
نشانی IP چندپخشی (Multicast) نشست برای ROUTE/MABR
- MCASTPort (MSPN,uint,D )
-
شماره درگاه (Port) نشست برای ROUTE/MABR
- MCASTName (MSFN,str,D )
-
نام (مکان) پرونده خام برای اعلان در نشست ROUTE/MABR
- MCASTCarousel (MSCR,frac,D )
-
دوره کاروسل (Carousel) بر حسب ثانیه برای پرونده خام یا مانیفست/قطعات آغازین با تاخیر کم در نشستهای ROUTE/MABR
- MCASTUpload (MSST,frac,D )
-
زمان بارگذاری (آپلود) بر حسب ثانیه برای پروندههای خام در نشستهای ROUTE/MABR
- Stereo (PSTT,uint,D )
-
نوع استریو در ویدیو
- Projection (PPJT,uint,D )
-
نوع تصویرنگاشت (Projection) ویدیو
- InitialPose (PPOS,v3di,D )
-
حالت اولیه برای ویدیوی ۳۶۰ درجه، بر حسب درجه به صورت ۱۶.۱۶ بیت (x زاویه yaw، y زاویه pitch و z زاویه roll است)
- CMPad (PCMP,uint,D )
-
تعداد پیکسلهای پدینگ از لبه هر وجه در نگاشت مکعبی (cube map)
- EQRClamp (PEQC,v4di,D )
-
محدودسازی (Clamping) فریم برای EQR به صورت ممیز ثابت ۰.۳۲ (x بالا، y پایین، z چپ و w راست است)
- SceneNode (PSND,bool, )
-
مشخص میکند PID یک رمزگشای گره صحنه است (AFX BitWrapper در BIFS)
- OrigCryptoScheme (POCS,4cc, )
-
طرح رمزنگاری اولیه روی یک PID رمزگشاییشده
- TSBSegs (PTSN,uint,D )
-
تغییر زمانی بر حسب تعداد قطعات برای استریمهای HAS، فقط توسط فیلترهای dashin و dasher تنظیم میشود
- IsManifest (PHSM,uint,D )
-
مشخص میکند PID یک مانیفست HAS است (بیت ۹ در صورت پخش زنده روی ۱ تنظیم میشود)، مقدار ۸ بیت پایین میتواند مقادیر زیر باشد:
* 0: مانیفست نیست
* 1: مانیفست DASH
* 2: مانیفست HLS
* 3: مانیفست GHI(X)
- Sparse (PSPA,bool,D )
-
شناسه PID احتمالا دارای فواصل زمانی خالی بین بستهها است (پراکنده / Sparse)
- CharSet (PCHS,str,D )
-
مجموعه نویسهها برای PID متنی ورودی
- ForcedSub (PFCS,uint,D )
-
زیرنویس اجباری (Forced sub) برای PID:
* 0: اجباری نیست
* 1: برخی فریمها اجباری هستند
* 2: همه فریمها اجباری هستند
- ChapTimes (CHPT,uintl,D )
-
زمانهای شروع فصلها
- ChapNames (CHPN,strl,D )
-
نامهای فصلها
- IsChap (PCHP,bool,D )
-
شناسه PID زیرنویس مربوط به فصلها است (برای فصلهای شبیه به QuickTime)
- SkipBegin (PCKS,uint, P)
-
میزان پرش از ابتدای بسته بر حسب مقیاس زمانی PID (هنگامی که روی PID تنظیم شود، نشان میدهد بستههای دارای پرش وجود خواهند داشت)
- SkipPres (PCKD,bool, P)
-
بسته و هر بسته پس از آن با CTS بزرگتر از این بسته نباید نمایش داده شوند (توسط reframer جهت ایجاد فهرستهای ویرایش استفاده میشود)
- OriginalDuration (PCOD,frac, P)
-
زمان سپریشده (.num) و مدتزمان اصلی (.den، مقدار ۰ اگر آخرین نسخه بسته باشد) برای بستههای زائد (redundant)
- HasSkipBegin (PSBP,bool, )
-
مشخص میکند آیا PID بستههایی با ویژگی SkipBegin را حمل خواهد کرد یا خیر
- HLSRef (PHLR,luint,D )
-
ارجاع لیستپخش HLS، یک شناسه یکتا برای شناسایی مالتیپلاکس رسانه ارائه میدهد و در بستههای حامل لیستهای پخش فرزند قید میشود
- PckHLSRef (HPLR,luint,DP)
-
مشابه HLSRef اما جهت انتقال پرونده ROUTE/MABR روی بستهها حمل میشود
- LLHAS (HLHS,uint,D )
-
حالت تاخیر کم برای DASH/HLS
- LLHASFragNum (HLSN,uint,DP)
-
شماره فرگمنت در DASH-SSR/LLHLS
- DownloadSession (GHTT,ptr,D )
-
اشارهگر به نشست دانلود
- HasTemi (PTEM,bool,D )
-
پرچم حضور TEMI
- XPSMask (PXPM,uint,DP)
-
ماسک مجموعه پارامترها
- RangeEnd (PCER,bool, P)
-
اعلام میکند که این بسته آخرین بسته در بازه پخش موردنظر است
- RefID (PKID,sint, P)
-
شناسه بسته برای وابستگی (معمولاً POC برای ویدیو)
- Refs (PRFS,sintl, P)
-
فهرست شناسههای بستههایی که این بسته به آنها وابسته است
- UDTA (PUDT,ptr,DP)
-
دادههای کاربر برای بسته
- Timecode (TCOD,mem, P)
-
نخستین تایمکد استخراجشده از SEI (در صورت وجود)
- DOVI (DOVI,mem, )
-
پیکربندی دالبی ویژن (DolbyVision)
- OutPath (FDST,str, )
-
نام پرونده خروجی PID مورد استفاده توسط برخی فیلترها که PIDهای خام اضافی ایجاد میکنند
- ACrypMeta (AMET,mem, )
-
متادیتا برای رمزگذاری Adobe
- HasCRoll (CROL,bool, )
-
مشخص میکند آیا چرخش کلید در CENC استفاده میشود یا خیر
- STSDAllTemplates (ISTA,mem,D )
-
باکس توصیف نمونه سریالایزشده ISOBMFF برای این PID
- STSDTemplateIdx (ISTI,uint,D )
-
اندیس STSDAllTemplates متناظر
- PremuxType (PPST,uint, )
-
نوع استریم اصلی PID پیش از مالتیپلاکس، فقط برای راهاندازی ROUTE/MABR استفاده میشود
- CodecMerge (PCMB,uint,D )
-
مشخص میکند PID میتواند با دیگر استریمهای دارای مقدار یکسان برای رمزگشایی واحد ادغام شود (در حال حاضر فقط HEVC)
- RelativePath (FNRL,bool,DP)
-
مشخص میکند نام پرونده بسته از مسیر نسبی استفاده میکند
- ClearKeyID (CCKI,mem,D )
-
شناسه کلید برای طرح ClearKey
- DashSparse (DSSG,bool,D )
-
مشخص میکند قطعات DASH در حالت پراکنده (sparse mode بر اساس زمینه) تولید میشوند
- DashDepGroup (DGDI,uint,D )
-
شناسه گروه وابستگی DASH را مشخص میکند
- SC35Ref (SC35,uint,D )
-
اطلاعات SCTE35 مربوط به این PID روی شماره PID مشخصشده حمل میشود
- NoInit (PNIN,bool,D )
-
شناسه PID از هیچ قطعه آغازینی در DASH استفاده نمیکند (حالت هدایت پرونده در dasher، فقط برای ROUTE/MABR استفاده میشود)
- ForceUnframe (PFUF,bool,D )
-
اجبار به ایجاد فیلتر بازنویس (فقط برای اجبار به تجزیه مجدد کدکهای مبتنی بر NALU استفاده میشود)
- MetaCodecID (MDCI,uint,D )
-
شناسه برای متارمزگذارها (FFmpeg، ...)
- MetaCodecName (MDCN,str,D )
-
نام مورد استفاده برای متارمزگذارها (FFmpeg، ...)
- MetaCodecOpaque (MDOP,uint,D )
-
ویژگی داخلی مورد استفاده برای دادههای مبهم کدک در دیمالتیپلکسرهای متا (FFmpeg، ...)
- HASSegStart (FMSS,lfrac,DP)
-
زمان شروع قطعه برای زمانبندی ROUTE/MABR
- SplitStart (PSPS,uint,DP)
-
زمان شروع تقسیم بسته بر حسب مقیاس زمانی PID، برای دشینگ مبتنی بر نمایه
- SplitEnd (PSPE,uint,DP)
-
زمان پایان تقسیم بسته بر حسب مقیاس زمانی PID، برای دشینگ مبتنی بر نمایه
- InitName (PINM,str,D )
-
نام قطعه آغازین هنگام دشینگ، مورد استفاده برای ROUTE/MABR
- SegURL (SURL,str,DP)
-
نشانی وب قطعه مبدأ (هنگام هدایت مرزهای فرگمنت)
- DynPSSH (PSHP,mem, P)
-
داده باینری PSSH برای CENC، با همان قالب CENC_PSSH، مورد استفاده هنگام استفاده از کلید اصلی و کلیدهای چرخشی، اعلامشده در اولین بسته از قطعهای که PSSH در آن تغییر میکند
- LLHASTemplate (PSRT,str, P)
-
الگو برای زیرقطعات DASH-SSR و LLHLS
- PartialRepair (PCPR,bool, P)
-
نشان میدهد دادههای مالتیپلاکس در دادههای مرتبط قابل تجزیه هستند اما دارای خطا میباشند (فقط روی بستههای آسیبدیده تنظیم میشود)
- SEILoaded (PSEI,bool,D )
-
مشخص میکند که PID در حال استخراج دادههای SEI/درونباندی (inband) از بستهها است
- Fake (PFAK,bool,D )
-
نشاندهنده استریمی است که در منبع وجود دارد اما به صورت PID تحویل داده نمیشود
- ContentLightLevel (CLLP,mem,DP)
-
سطح روشنایی محتوا، بارداده باکس clli (استاندارد ISO/IEC 14496-12 را ببینید)، میتواند به صورت فهرستی از ۲ عدد صحیح در تعریف فرگمنت تنظیم شود (مانند "=max_cll,max_pic_avg_ll")
- MasterDisplayColour (MDCP,mem,DP)
-
اطلاعات رنگ نمایشگر مرجع، بارداده باکس mdcv (استاندارد ISO/IEC 14496-12 را ببینید)، میتواند به صورت فهرستی از ۱۰ عدد صحیح در تعریف فرگمنت تنظیم شود (مانند "=dpx0,dpy0,dpx1,dpy1,dpx2,dpy2,wpx,wpy,max,min")
- SEILoaded (SEIP,bool,DP)
-
مشخص میکند که بسته دارای دادههای SEI/درونباندی در ویژگیهای خود است
- OriginalPTS (OPTS,luint,DP)
-
مشخصکننده PTS یا PCR اصلی هنگام نگاشت مجدد M2TS PCR
- OriginalDTS (ODTS,luint,DP)
-
مشخصکننده DTS اصلی هنگام نگاشت مجدد M2TS PCR
- MABRBaseURLs (MABU,strl,D )
-
نشانیهای اختیاری برای MABR - اگر اولین نشانی خالی باشد، سرور مبدأ به عنوان سرور ترمیم اعلان نمیشود
- Forced (PCFS,bool,DP)
-
مشخص میکند بسته یک زیرنویس اجباری است
- TimeDiscontinuity (PDIS,uint,D )
-
مشخصکننده ناپیوستگی زمانی در PID - مقدار با هر ناپیوستگی یک واحد افزایش مییابد
- AmbientIlluminance (AMIL,uint,D )
-
روشنایی محیطی استخراجشده از استریم را مشخص میکند
- AmbientLightX (AMLX,uint,D )
-
مختصات x نور محیطی استخراجشده از استریم را مشخص میکند
- AmbientLightY (AMLY,uint,D )
-
مختصات y نور محیطی استخراجشده از استریم را مشخص میکند
فرمتهای پیکسل (Pixel formats)
- yuv420 (ext *.yuv)
-
فرمت YUV 420 صفحهای (Planar) ۸ بیتی
- yvu420 (ext *.yvu)
-
فرمت YVU 420 صفحهای (Planar) ۸ بیتی
- yuv420_10 (ext *.yuvl)
-
فرمت YUV 420 صفحهای (Planar) ۱۰ بیتی
- yuv422 (ext *.yuv2)
-
فرمت YUV 422 صفحهای (Planar) ۸ بیتی
- yuv422_10 (ext *.yp2l)
-
فرمت YUV 422 صفحهای (Planar) ۱۰ بیتی
- yuv444 (ext *.yuv4)
-
فرمت YUV 444 صفحهای (Planar) ۸ بیتی
- yuv444_10 (ext *.yp4l)
-
فرمت YUV 444 صفحهای (Planar) ۱۰ بیتی
- uyvy (ext *.uyvy)
-
فرمت UYVY 422 بستهبندیشده (Packed) ۸ بیتی
- vyuy (ext *.vyuy)
-
فرمت VYUV 422 بستهبندیشده (Packed) ۸ بیتی
- yuyv (ext *.yuyv)
-
فرمت YUYV 422 بستهبندیشده (Packed) ۸ بیتی
- yvyu (ext *.yvyu)
-
فرمت YVYU 422 بستهبندیشده (Packed) ۸ بیتی
- uyvl (ext *.uyvl)
-
فرمت UYVY 422 بستهبندیشده (Packed) ۱۰ تا ۱۶ بیتی
- vyul (ext *.vyul)
-
فرمت VYUV 422 بستهبندیشده (Packed) ۱۰ تا ۱۶ بیتی
- yuyl (ext *.yuyl)
-
فرمت YUYV 422 بستهبندیشده (Packed) ۱۰ تا ۱۶ بیتی
- yvyl (ext *.yvyl)
-
فرمت YVYU 422 بستهبندیشده (Packed) ۱۰ تا ۱۶ بیتی
- nv12 (ext *.nv12)
-
فرمت YUV 420 نیمهصفحهای (Semi-planar) ۸ بیتی، صفحه Y و صفحه بستهبندیشده UV
- nv21 (ext *.nv21)
-
فرمت YVU 420 نیمهصفحهای (Semi-planar) ۸ بیتی، صفحه Y و صفحه بستهبندیشده VU
- nv1l (ext *.nv1l)
-
فرمت YUV 420 نیمهصفحهای (Semi-planar) ۱۰ بیتی، صفحه Y و صفحه UV
- nv2l (ext *.nv2l)
-
فرمت YVU 420 نیمهصفحهای (Semi-planar) ۸ بیتی، صفحه Y و صفحه VU
- yuva (ext *.yuva)
-
فرمت YUV+alpha 420 صفحهای (Planar) ۸ بیتی
- yuvd (ext *.yuvd)
-
فرمت YUV+depth 420 صفحهای (Planar) ۸ بیتی
- yuv444a (ext *.yp4a)
-
فرمت YUV+alpha 444 صفحهای (Planar) ۸ بیتی
- yuv444p (ext *.yv4p)
-
فرمت YUV 444 بستهبندیشده (Packed) ۸ بیتی
- v308 (ext *.v308)
-
فرمت VYU 444 بستهبندیشده (Packed) ۸ بیتی
- yuv444ap (ext *.y4ap)
-
فرمت YUV+alpha 444 بستهبندیشده (Packed) ۸ بیتی
- v408 (ext *.v408)
-
فرمت UYV+alpha 444 بستهبندیشده (Packed) ۸ بیتی
- v410 (ext *.v410)
-
فرمت UYV 444 بستهبندیشده (Packed) ۱۰ بیتی لیتلاندین (LE)
- v210 (ext *.v210)
-
فرمت UYVY 422 بستهبندیشده (Packed) ۱۰ بیتی لیتلاندین (LE)
- grey (ext *.grey)
-
مقیاس خاکستری (Greyscale) ۸ بیتی
- algr (ext *.algr)
-
آلفا + خاکستری (Alpha+Grey) ۸ بیتی
- gral (ext *.gral)
-
خاکستری + آلفا (Grey+Alpha) ۸ بیتی
- rgb8 (ext *.rgb8)
-
فرمت RGB 332، ۸ بیت به ازای هر پیکسل
- rgb4 (ext *.rgb4)
-
فرمت RGB 444، ۱۲ بیت (ذخیرهشده در ۱۶ بیت) به ازای هر پیکسل
- rgb5 (ext *.rgb5)
-
فرمت RGB 555، ۱۵ بیت (ذخیرهشده در ۱۶ بیت) به ازای هر پیکسل
- rgb6 (ext *.rgb6)
-
فرمت RGB 555، ۱۶ بیت به ازای هر پیکسل
- rgba (ext *.rgba)
-
فرمت RGBA ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- argb (ext *.argb)
-
فرمت ARGB ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- bgra (ext *.bgra)
-
فرمت BGRA ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- abgr (ext *.abgr)
-
فرمت ABGR ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- rgb (ext *.rgb)
-
فرمت RGB ۲۴ بیتی (۸ بیت به ازای هر مؤلفه)
- bgr (ext *.bgr)
-
فرمت BGR ۲۴ بیتی (۸ بیت به ازای هر مؤلفه)
- xrgb (ext *.xrgb)
-
فرمت xRGB ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- rgbx (ext *.rgbx)
-
فرمت RGBx ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- xbgr (ext *.xbgr)
-
فرمت xBGR ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- bgrx (ext *.bgrx)
-
فرمت BGRx ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- rgbd (ext *.rgbd)
-
فرمت RGB به همراه عمق (RGB+depth) ۳۲ بیتی (۸ بیت به ازای هر مؤلفه)
- rgbds (ext *.rgbds)
-
فرمت RGB به همراه عمق و بیت شکل (۸ بیت برای هر مؤلفه RGB، عمق ۷ بیتی (بیتهای پایین) + ۱ بیت شکل)
- extgl (ext *.extgl)
-
بافت خارجی OpenGL با فرمت نامشخص، برای استفاده با samplerExternalOES - uncv (ext *.uncv)
-
فرمت فشردهنشده عمومی ISO/IEC 23001-17
فرمتهای صوتی (Audio formats)
- u8 (ext *.pc8)
-
فرمت صوتی PCM هشت بیتی
- s16 (ext *.pcm)
-
فرمت صوتی PCM شانزده بیتی لیتلاندین
- s16b (ext *.pcmb)
-
فرمت صوتی PCM شانزده بیتی بیگاندین
- s24 (ext *.s24)
-
فرمت صوتی PCM بیست و چهار بیتی
- s24b (ext *.s24b)
-
فرمت صوتی PCM بیست و چهار بیتی بیگاندین
- s32 (ext *.s32)
-
فرمت صوتی PCM سی و دو بیتی لیتلاندین
- s32b (ext *.s32b)
-
فرمت صوتی PCM سی و دو بیتی بیگاندین
- flt (ext *.flt)
-
فرمت صوتی PCM ممیز شناور ۳۲ بیتی
- fltb (ext *.fltb)
-
فرمت صوتی PCM ممیز شناور ۳۲ بیتی بیگاندین
- dbl (ext *.dbl)
-
فرمت صوتی PCM ممیز شناور ۶۴ بیتی
- dblb (ext *.dblb)
-
فرمت صوتی PCM ممیز شناور ۶۴ بیتی بیگاندین
- u8p (ext *.pc8p)
-
فرمت صوتی PCM هشت بیتی صفحهای (Planar)
- s16p (ext *.pcmp)
-
فرمت صوتی PCM شانزده بیتی لیتلاندین صفحهای (Planar)
- s24p (ext *.s24p)
-
فرمت صوتی PCM بیست و چهار بیتی صفحهای (Planar)
- s32p (ext *.s32p)
-
فرمت صوتی PCM سی و دو بیتی لیتلاندین صفحهای (Planar)
- fltp (ext *.fltp)
-
فرمت صوتی PCM ممیز شناور ۳۲ بیتی صفحهای (Planar)
- dblp (ext *.dblp)
-
فرمت صوتی PCM ممیز شناور ۶۴ بیتی صفحهای (Planar)
انواع جریان (Stream types)
- Visual
-
جریان ویدیو یا تصویر
- Audio
-
جریان صوتی
- SceneDescription
-
جریان صحنه
- Text
-
جریان متن یا زیرنویس
- Metadata
-
جریان فراداده (Metadata)
- File
-
جریان فایل خام
- Encrypted
-
جریان چندرسانهای رمزگذاریشده
- ObjectDescriptor
-
جریان توصیفگر شیء (ObjectDescriptor) در MPEG-4
- ClockReference
-
جریان مرجع ساعت (Clock Reference) در MPEG-4
- MPEG7
-
جریان توصیف MPEG-7
- IPMP
-
جریان مدیریت حقوق دیجیتال (IPMP/DRM) در MPEG-4
- OCI
-
جریان اطلاعات محتوای شیء (OCI) در MPEG-4
- MPEGJ
-
جریان جاوا (MPEGJ) در MPEG-4
- Interaction
-
جریان حسگر تعاملی در MPEG-4
- Font
-
جریان فونت در MPEG-4
کدکها (Codecs)
- bifs
-
توصیف صحنه MPEG-4 BIFS نسخه ۱
- bifs2
-
توصیف صحنه MPEG-4 BIFS نسخه ۲
- bifsX
-
توصیف صحنه گسترشیافته MPEG-4 BIFS
- od
-
توصیفگر شیء MPEG-4 نسخه ۱
- od2
-
توصیفگر شیء MPEG-4 نسخه ۲
- interact
-
جریان تعاملی MPEG-4
- afx
-
جریان MPEG-4 AFX
- font
-
جریان فونت MPEG-4
- syntex
-
بافت ترکیبی (Synthetized Texture) در MPEG-4
- m4txt
-
متن جریانی MPEG-4
- laser
-
فرمت MPEG-4 LASeR
- saf
-
فرمت تجمیع ساده MPEG-4 (SAF)
- cmp|m4ve|m4v
-
ویدیوی MPEG-4 بخش ۲ (Visual part 2)
- 264|avc|h264
-
ویدیوی MPEG-4 AVC/H264
- avcps
-
مجموعه پارامترهای ویدیوی MPEG-4 AVC/H264
- svc|avc|264|h264
-
کدگذاری ویدیویی مقیاسپذیر MPEG-4 AVC/H264 (SVC)
- mvc
-
کدگذاری ویدیویی چندنمایی MPEG-4 AVC/H264 (MVC)
- hvc|hevc|h265
-
ویدیوی HEVC (H.265)
- lhvc|shvc|mhvc
-
افزونههای لایهای ویدیوی HEVC
- m2vs
-
ویدیوی MPEG-2 پروفایل ساده (Simple)
- m2v
-
ویدیوی MPEG-2 پروفایل اصلی (Main)
- m2v|m2vsnr
-
ویدیوی MPEG-2 پروفایل SNR
- m2v|m2vspat
-
ویدیوی MPEG-2 با تفکیکپذیری مکانی (Spatial)
- m2v|m2vh
-
ویدیوی MPEG-2 پروفایل بالا (High)
- m2v|m2v4
-
ویدیوی MPEG-2 پروفایل 422
- m1v
-
ویدیوی MPEG-1
- jpg|jpeg
-
تصویر JPEG
- png
-
تصویر PNG
- jp2|j2k
-
تصویر JPEG2000
- aac
-
صدای MPEG-4 AAC
- aac|aac2m
-
صدای MPEG-2 AAC پروفایل اصلی (Main)
- aac|aac2l
-
صدای MPEG-2 AAC با پیچیدگی کم (Low Complexity)
- aac|aac2s
-
صدای MPEG-2 AAC با نرخ نمونهبرداری مقیاسپذیر (SSR)
- mp3|m1a
-
صدای MPEG-1
- mp2
-
صدای MPEG-2
- mp1
-
صدای MPEG-1 لایه ۱
- h263
-
ویدیوی H263
- h263
-
ویدیوی H263
- hvt1
-
ویدیوی کاشیهای HEVC (HEVC tiles)
- evc|evrc
-
صدای گفتاری EVRC
- smv
-
صدای گفتاری SMV
- qcp|qcelp
-
صدای گفتاری QCELP
- amr
-
صدای AMR
- amr|amrwb
-
صدای پهنباند AMR (AMR WideBand)
- qcp|evrcpv
-
صدای EVRC (مالتیپلاکس PacketVideo)
- vc1
-
ویدیوی SMPTE VC-1
- dirac
-
ویدیوی Dirac
- ac3
-
صدای AC3
- eac3
-
صدای پیشرفته AC3 (Enhanced AC3)
- ac4
-
صدای AC4
- mlp
-
صدای Dolby TrueHD
- dra
-
صدای DRA
- g719
-
صدای G719
- dtsc
-
صدای DTS Coherent Acoustics و Digital Surround
- dtsh
-
صدای DTS-HD High Resolution و DTS-Master Audio
- dtsl
-
زیرجریان DTS-HD فقط شامل XLLAudio
- dtse
-
صدای با نرخ بیت پایین DTS Express
- dtsx
-
صدای DTS-X UHD پروفایل ۲
- dtsy
-
صدای DTS-X UHD پروفایل ۳
- opus
-
صدای Opus
- eti
-
اطلاعات رویداد DVB (DVB Event Information)
- svgr
-
فرمت گرافیکی SVG روی پروتکل RTP
- svgzr
-
فرمت گرافیکی فشرده SVG+gz روی پروتکل RTP
- dims
-
صحنه 3GPP DIMS
- vtt
-
متن WebVTT
- txt
-
جریان متنی ساده
- mtxt
-
جریان متنی فراداده
- mxml
-
جریان XML فراداده
- subs
-
جریان متنی زیرنویس
- subx
-
جریان XML زیرنویس
- tx3g
-
جریان زیرنویس/متن 3GPP/Apple
- ssa
-
زیرنویسهای SSA / ASS
- theo|theora
-
ویدیوی Theora
- vorb|vorbis
-
صدای Vorbis
- opus
-
صدای Opus
- iamf
-
مدل و فرمتهای صوتی فراگیر (AOM IAMF)
- flac
-
صدای Flac
- spx|speex
-
صدای Speex
- vobsub
-
زیرنویس VobSub
- vobsub
-
زیرنویس VobSub
- adpcm
-
فرمت صوتی AD-PCM
- csvd
-
فرمت IBM CSVD
- alaw
-
فرمت صوتی ALAW
- mulaw
-
فرمت صوتی MULAW
- okiadpcm
-
فرمت OKI ADPCM
- dviadpcm
-
فرمت DVI ADPCM
- digistd
-
فرمت DIGISTD
- yamadpcm
-
فرمت YAMAHA ADPCM
- truespeech
-
صدای گفتاری DSP TrueSpeech
- g610
-
فرمت صوتی GSM 610
- imulaw
-
فرمت IBM MULAW
- ialaw
-
فرمت IBM ALAW
- iadpcl
-
فرمت IBM ADPCL
- swf
-
فرمت ادوبی فلش (Adobe Flash)
- raw
-
رسانه خام (Raw media)
- uncv
-
ویدیوی خام (Raw Video)
- av1|ivf|obu|av1b
-
ویدیوی AOM AV1
- vp8|ivf
-
ویدیوی VP8
- vp9|ivf
-
ویدیوی VP9
- vp10|ivf
-
ویدیوی VP10
- avsv|avs3
-
ویدیوی AVS3
- avsa|avs3
-
صدای AVS3
- mhas
-
صدای MPEG-H
- mhas
-
مالتیپلاکس صوتی MPEG-H (AudioMux)
- iamf
-
مدل و فرمتهای صوتی فراگیر (AOM IAMF)
- prores|apch
-
ویدیوی ProRes 422 HQ
- prores|apco
-
ویدیوی ProRes 422 Proxy
- prores|apcn
-
ویدیوی ProRes 422 STD
- prores|apcs
-
ویدیوی ProRes 422 LT
- prores|ap4x
-
ویدیوی ProRes 4444 XQ
- prores|ap4h
-
ویدیوی ProRes 4444
- ffmpeg
-
کدک نگاشتنشده در FFmpeg
- tmcd
-
کد زمانی QuickTime (QT TimeCode)
- sc35
-
استاندارد نشانهگذاری SCTE35
- evte
-
پیامهای رویداد (Event Messages)
- vvc|266|h266
-
ویدیوی VVC (H.266)
- vvs1
-
ویدیوی زیرتصویر VVC (VVC Subpicture Video)
- usac|xheaac
-
صدای xHEAAC / USAC
- ffv1
-
کدک ویدیویی FFmpeg نسخه ۱ (FFV1)
- dvbs
-
زیرنویسهای DVB
- dvbs
-
تلهتکست DVB (DVB-TeleText)
- div3
-
کدک ویدیویی MS-MPEG4 V3
- caf
-
صدای بدون اتلاف اپل (ALAC / Apple Lossless Audio)
- dnx
-
کدک ویدیویی Avid DNxHD
انواع جریان (Stream types)
- mono (int 1)
-
چیدمان 0x0000000000000004
- stereo (int 2)
-
چیدمان 0x0000000000000003
- 3/0.0 (int 3)
-
چیدمان 0x0000000000000007
- 3/1.0 (int 4)
-
چیدمان 0x0000000000000407
- 3/2.0 (int 5)
-
چیدمان 0x0000000000000037
- 3/2.1 (int 6)
-
چیدمان 0x000000000000003f
- 5/2.1 (int 7)
-
چیدمان 0x000000000000003f
- 1+1 (int 8)
-
چیدمان 0x0000000000000003
- 2/1.0 (int 9)
-
چیدمان 0x0000000000000403
- 2/2.0 (int 10)
-
چیدمان 0x0000000000000033
- 3/3.1 (int 11)
-
چیدمان 0x000000000000043f
- 3/4.1 (int 12)
-
چیدمان 0x000000000000033f
- 11/11.2 (int 13)
-
چیدمان 0x000000003ffe67cf
- 5/2.1 (int 14)
-
چیدمان 0x000000000006003f
- 5/5.2 (int 15)
-
چیدمان 0x000000000606603f
- 5/4.1 (int 16)
-
چیدمان 0x000000000036003f
- 6/5.1 (int 17)
-
چیدمان 0x00000000023e003f
- 6/7.1 (int 18)
-
چیدمان 0x00000600023e003f
- 5/6.1 (int 19)
-
چیدمان 0x000000000036630f
- 7/6.1 (int 20)
-
چیدمان 0x000000600036630f
مثالها (EXAMPLES)
- مثالهای پایه و پیشرفته در نشانی https://wiki.gpac.io/Filters/Filters در دسترس هستند.
اطلاعات بیشتر (MORE)
نویسندگان:
توسعهدهندگان
GPAC، به
تاریخچه
مخزن گیت (-log)
مراجعه
کنید.
جهت گزارش
باگها،
درخواست
ویژگیهای
جدید،
اطلاعات
بیشتر و
مشاهده کد
منبع به
https://github.com/gpac/gpac
مراجعه
کنید.
نسخه ساخت: 26.07
حق نشر: © 2000-2024
متعلق به Telecom
Paris،
توزیعشده
تحت مجوز LGPL v2.1+ -
https://gpac.io
همچنین ببینید (SEE ALSO)
gpac-filters(1),MP4Box(1)
| 2019 | gpac |