opusenc(1) opus-tools opusenc(1)

opusenc - کدگذاری صوت در قالب Opus

opusenc [ -h ] [ -V ] [ --help-picture ] [ --quiet ] [ --bitrate kbit/s ] [ --vbr ] [ --cvbr ] [ --hard-cbr ] [ --music ] [ --speech ] [ --comp complexity ] [ --framesize 2.5, 5, 10, 20, 40, 60 ] [ --expect-loss pct ] [ --downmix-mono ] [ --downmix-stereo ] [ --no-phase-inv ] [ --max-delay ms ] [ --title 'track title' ] [ --artist author ] [ --album 'album title' ] [ --tracknumber 'track number' ] [ --genre genre ] [ --date YYYY-MM-DD ] [ --comment tag=value ] [ --picture filename|specification ] [ --padding n ] [ --discard-comments ] [ --discard-pictures ] [ --raw ] [ --raw-bits bits/sample ] [ --raw-rate Hz ] [ --raw-chan N ] [ --raw-endianness flag ] [ --ignorelength ] [ --serial serial number ] [ --save-range file ] [ --set-ctl-int ctl=value ] input.wav output.opus

دستور opusenc داده‌های صوتی را در قالب‌های Wave، AIFF، FLAC، Ogg/FLAC یا PCM خام می‌خواند و آن را در یک جریان Ogg Opus کدگذاری می‌کند. اگر فایل ورودی "-" باشد، داده‌های صوتی از ورودی استاندارد (stdin) خوانده می‌شوند. به همین ترتیب، اگر فایل خروجی "-" باشد، جریان Ogg Opus در خروجی استاندارد (stdout) نوشته می‌شود.

مگر در حالت بی‌صدا (quiet)، opusenc آمار دقیق و مناسبی را درباره پیشرفت کدگذاری نمایش می‌دهد.

نمایش راهنمای دستور
نمایش شماره نگارش
نمایش راهنما درباره پیوست تصویر جلد آلبوم
فعال‌سازی حالت بی‌صدا. هیچ پیامی نمایش داده نمی‌شود.

تنظیم نرخ بیت (bitrate) هدف بر حسب kbit/s (بین ۶ تا ۲۵۶ برای هر کانال)

در حالت VBR این گزینه میانگین نرخ را برای مجموعه‌ای بزرگ و متنوع از اصوات تعیین می‌کند. در حالت CVBR و Hard-CBR نرخ بیت خروجی مشخص را تعیین می‌کند.

مقدار پیش‌فرض برای ورودی با نرخ نمونه‌برداری ۴۴.۱ کیلوهرتز یا بالاتر برابر ۶۴ کیلوبیت بر ثانیه برای هر جریان مونو و ۹۶ کیلوبیت بر ثانیه برای هر جفت جفت‌شده (استریو) است.

استفاده از کدگذاری با نرخ بیت متغیر (پیش‌فرض)

در حالت VBR نرخ بیت ممکن است بسته به محتوا آزادانه بالا و پایین برود تا کیفیت پایدارتری حاصل شود.

استفاده از کدگذاری با نرخ بیت متغیر محدودشده (constrained variable bitrate).

خروجی را در یک نرخ بیت مشخص تولید می‌کند. این حالت مشابه CBR در کدگذارهای AAC/MP3 و حالت مدیریت‌شده در کدگذارهای Vorbis است. این حالت کیفیتی با پایداری کمتر نسبت به حالت VBR اما نرخ بیت پایداری ارائه می‌دهد.

استفاده از کدگذاری با نرخ بیت ثابت سخت‌گیرانه (hard constant bitrate).

با hard-cbr هر فریم دقیقاً هم‌اندازه خواهد بود، شبیه به نحوه عملکرد کُدک‌های گفتار. این حالت کیفیت کلی پایین‌تری ارائه می‌دهد اما در مواردی که تغییرات نرخ بیت ممکن است داده‌ها را در کانال‌های رمزگذاری‌شده یا روی انتقال‌های همگام فاش کند، مفید است.

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

بهینه‌سازی بر نرخ‌های بیت پایین‌تر اثر می‌گذارد که شامل موازنه‌ای میان وضوح گفتار و دقت موسیقی است، و هیچ اثری بر نرخ‌های بیتی که معمولاً برای کدگذاری باکیفیت موسیقی استفاده می‌شوند ندارد.

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

بهینه‌سازی بر نرخ‌های بیت پایین‌تر اثر می‌گذارد که شامل موازنه‌ای میان وضوح گفتار و دقت موسیقی است، و هیچ اثری بر نرخ‌های بیتی که معمولاً برای کدگذاری باکیفیت موسیقی استفاده می‌شوند ندارد.

تنظیم پیچیدگی محاسباتی کدگذاری (۰ تا ۱۰، پیش‌فرض: ۱۰). مقدار صفر سریع‌ترین کدگذاری اما با کیفیت پایین‌تر را ارائه می‌دهد، در حالی که ۱۰ بالاترین کیفیت اما کدگذاری کندتر را فراهم می‌سازد.
تنظیم بیشینه اندازه فریم به میلی‌ثانیه (2.5, 5, 10, 20, 40, 60، پیش‌فرض: 20)
اندازه‌های فریم کوچک‌تر به تأخیر کمتر اما کیفیت کمتری در یک نرخ بیت معین دست می‌یابند.
اندازه‌های بزرگ‌تر از ۲۰ میلی‌ثانیه تنها در نرخ‌های بیت بسیار پایین جالب توجه هستند.
تنظیم درصد اتلاف بسته مورد انتظار (پیش‌فرض: ۰)
تبدیل و میکس کانال‌ها به مونو (تک‌کاناله)
تبدیل و میکس کانال‌ها به استریو (اگر ورودی بیش از ۲ کانال داشته باشد)
غیرفعال کردن استفاده از وارونگی فاز برای استریوی شدتی. این گزینه مقداری از کیفیت استریو را فدای کیفیت بالاتر در تبدیل به مونو می‌کند و هنگام کدگذاری صوتی استریویی که احتمالاً پس از رمزگشایی به مونو تبدیل می‌شود، مفید است.
تنظیم بیشینه تأخیر کانتینر به میلی‌ثانیه (۰ تا ۱۰۰۰، پیش‌فرض: ۱۰۰۰)

تنظیم فیلد توضیح عنوان قطعه روی title
تنظیم فیلد توضیح هنرمند روی artist. این گزینه می‌تواند چندین بار برای درج جداگانه هنرمندان همکار استفاده شود. توجه داشته باشید که برخی از نرم‌افزارهای پخش، چند هنرمند را به خوبی نمایش نمی‌دهند.
تنظیم فیلد عنوان آلبوم یا مجموعه روی album
تنظیم فیلد توضیح شماره قطعه روی N
تنظیم فیلد توضیح تاریخ روی YYYY-MM-DD. این فیلد می‌تواند به YYYY-MM یا YYYY خلاصه شود.
تنظیم فیلد توضیح ژانر روی genre. این گزینه می‌تواند چندین بار برای برچسب‌گذاری یک قطعه با چند ژانر هم‌پوشان مشخص شود.
افزودن یک توضیح اضافه. این گزینه می‌تواند چندین بار استفاده شود. آرگومان باید به شکل "tag=value" باشد. برای نام‌های برچسب شناخته‌شده، به مشخصات vorbis-comment مراجعه کنید: https://www.xiph.org/vorbis/doc/v-comment.html
پیوست کردن تصویر جلد آلبوم برای قطعه.

می‌توان از یک filename برای اثر هنری یا قالب کامل‌تر specification استفاده کرد. تصویر به یک فیلد توضیح METADATA_BLOCK_PICTURE شبیه آنچه در FLAC استفاده می‌شود اضافه می‌گردد. مقدار specification یک رشته است که بخش‌های آن با نویسه | (خط عمودی) از هم جدا شده‌اند. برخی بخش‌ها ممکن است خالی رها شوند تا از مقادیر پیش‌فرض استفاده شود. ارسال یک نام فایل ساده صرفاً کوتاه‌نوشتی برای مشخصه "||||filename" است.

قالب specification به صورت [type]|[media-type]|[description]|[widthxheightxdepth[/colors]]|filename است.

مقدار type عددی اختیاری است که ماهیت تصویر را شرح می‌دهد. مقادیر تعریف‌شده از یکی از موارد زیر هستند:


0: Other
1: 32x32 pixel 'file icon' (فقط PNG)
2: Other file icon
3: Cover (front)
4: Cover (back)
5: Leaflet page
6: Media (مانند برچسب روی CD)
7: Lead artist/lead performer/soloist
8: Artist/performer
9: Conductor
10: Band/Orchestra
11: Composer
12: Lyricist/text writer
13: Recording location
14: During recording
15: During performance
16: Movie/video screen capture
17: A bright colored fish
18: Illustration
19: Band/artist logotype
20: Publisher/studio logotype

پیش‌فرض مقدار ۳ (جلد رو / front cover) است. بیش از یک گزینه --picture را می‌توان برای پیوست کردن چندین تصویر مشخص کرد. در هر فایل تنها یک تصویر از نوع ۱ و ۲ می‌تواند وجود داشته باشد.

مقدار media-type اختیاری است و در حال حاضر نادیده گرفته می‌شود.

مقدار description اختیاری است. مقدار پیش‌فرض یک رشته خالی است.

بخش بعدی اطلاعات وضوح تصویر و رنگ را مشخص می‌کند، اما در حال حاضر نادیده گرفته می‌شود.

مقدار filename مسیر فایل تصویری است که باید وارد شود.

رزرو کردن n بایت اضافی برای برچسب‌های فراداده. این کار می‌تواند ویرایش بعدی برچسب‌ها را بهینه‌تر کند. پیش‌فرض ۵۱۲ است.
عدم انتقال برچسب‌های فراداده از فایل ورودی.
عدم انتقال تصاویر یا اثر هنری از فایل ورودی.

تفسیر ورودی به عنوان داده‌های خام PCM بدون هدر
تنظیم بیت/نمونه برای ورودی خام (پیش‌فرض: ۱۶)
تنظیم نرخ نمونه‌برداری برای ورودی خام (پیش‌فرض: ۴۸۰۰۰)
تنظیم تعداد کانال‌ها برای ورودی خام (پیش‌فرض: ۲)
تنظیم ترتیب بایت‌ها برای ورودی خام: ۱ برای big endian و ۰ برای little (پیش‌فرض: ۰)
نادیده گرفتن طول داده در هدرهای Wave. دستور opusenc به صورت خودکار زمانی که طول نامعقول باشد (بسیار کوچک یا بسیار بزرگ) آن را نادیده می‌گیرد اما برخی موارد استفاده از STDIN همچنان ممکن است برای جلوگیری از برش داده‌ها به این گزینه نیاز داشته باشند.

اجبار به استفاده از یک شماره سریال مشخص برای جریان، به جای شماره‌ای که به صورت تصادفی تولید می‌شود. این گزینه برای قطعی کردن رفتار کدگذار جهت آزمون استفاده می‌شود و در حالت کلی توصیه نمی‌شود.
ذخیره مقادیر بررسی برای هر فریم در یک فایل
ارسال کنترل کدگذار x با مقدار y (پیشرفته). استفاده از پیشوند s: برای هدایت ctl به چندجریانی s
این گزینه می‌تواند چندین بار استفاده شود

ساده‌ترین کاربرد. دریافت ورودی به صورت input.wav و تولید خروجی به صورت output.opus:

opusenc input.wav output.opus

تولید کدگذاری با کیفیت بسیار بالا با نرخ هدف ۱۶۰ کیلوبیت بر ثانیه:

opusenc --bitrate 160 input.wav output.opus

ضبط و ارسال یک جریان زنده به سرور جاری‌سازی HTTP در Icecast با استفاده از oggfwd:

arecord -c 2 -r 48000 -twav - | opusenc --bitrate 96 - - | oggfwd icecast.somewhere.org 8000 password /stream.opus

در حالی که استفاده از opusenc برای جاری‌سازی با تأخیر اندک امکان‌پذیر است (مثلاً با تنظیم --max-delay روی 0 و netcat به جای Icecast)، ولی در عین حال این ابزار واقعاً برای این هدف طراحی نشده است، و کانتینر Ogg و انتقال بر بستر TCP بهترین ابزارها برای آن کاربرد نیستند. خط‌لوله‌های پوسته خود اغلب بافر بالایی دارند. قابلیت تنظیم اندازه فریم تا حد ۲.۵ میلی‌ثانیه در opusenc بیشتر برای آزمودن کیفیت قالب با تنظیمات تأخیر اندک وجود دارد و نه واقعاً برای استفاده عملیاتی در تأخیر کم.
استفاده تعاملی باید مستقیماً از UDP/RTP استفاده کند.

Gregory Maxwell <greg@xiph.org>

opusdec(1), opusinfo(1), oggfwd(1)

2012-08-31 Xiph.Org Foundation