.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "ROC-SEND" "1" "2024" "Roc Toolkit 0.4" "Roc Toolkit" .SH "نام (NAME)" roc-send \- ارسال بی‌درنگ جریان صوتی .SH "خلاصه دستور (SYNOPSIS)" .sp \fBroc\-send\fP \fIگزینه‌ها\fP .SH "توضیحات (DESCRIPTION)" .sp خواندن جریان صوتی از یک دستگاه یا فایل صوتی و ارسال آن به گیرندهٔ دوردست. .SS "گزینه‌ها (OPTIONS)" .INDENT 0.0 .TP .B \-h\fP,\fB \-\-help نمایش راهنما و خروج .TP .B \-V\fP,\fB \-\-version نمایش نسخه و خروج .TP .B \-v\fP,\fB \-\-verbose افزایش سطح جزئیات گزارش (می‌تواند چندین بار استفاده شود) .TP .B \-L\fP,\fB \-\-list\-supported فهرست کردن طرح‌واره‌ها (schemes) و قالب‌های پشتیبانی‌شده .TP .BI \-i\fP,\fB \-\-input\fB= IO_URI نشانی URI فایل یا دستگاه ورودی .TP .BI \-\-input\-format\fB= FILE_FORMAT اجبار قالب فایل ورودی .TP .BI \-s\fP,\fB \-\-source\fB= ENDPOINT_URI نقطه پایانی (endpoint) منبع دوردست .TP .BI \-r\fP,\fB \-\-repair\fB= ENDPOINT_URI نقطه پایانی ترمیم دوردست .TP .BI \-c\fP,\fB \-\-control\fB= ENDPOINT_URI نقطه پایانی کنترل دوردست .TP .B \-\-reuseaddr فعال‌سازی SO_REUSEADDR هنگام اتصال (bind) سوکت‌ها .TP .BI \-\-target\-latency\fB= STRING تأخیر هدف، در واحدهای زمانی TIME .TP .BI \-\-io\-latency\fB= STRING تأخیر هدف ضبط، در واحدهای زمانی TIME .TP .BI \-\-latency\-tolerance\fB= STRING حداکثر انحراف مجاز از تأخیر هدف، در واحدهای زمانی TIME .TP .BI \-\-nbsrc\fB= INT تعداد بسته‌های منبع در بلوک FEC .TP .BI \-\-nbrpr\fB= INT تعداد بسته‌های ترمیم در بلوک FEC .TP .BI \-\-packet\-len\fB= STRING طول بستهٔ خروجی، در واحدهای زمانی TIME .TP .BI \-\-frame\-len\fB= TIME مدت زمان فریم‌های داخلی، در واحدهای زمانی TIME .TP .BI \-\-max\-packet\-size\fB= SIZE حداکثر اندازهٔ بسته، در واحدهای SIZE .TP .BI \-\-max\-frame\-size\fB= SIZE حداکثر اندازهٔ فریم داخلی، در واحدهای SIZE .TP .BI \-\-rate\fB= INT بازنویسی نرخ نمونه‌برداری ورودی، به هرتز (Hz) .TP .BI \-\-latency\-backend\fB= ENUM تعیین اینکه کدام تأخیر در تنظیم‌کنندهٔ تأخیر استفاده شود (مقادیر ممکن=\(dqniq\(dq، پیش‌فرض=\(ganiq\(aq) .TP .BI \-\-latency\-profile\fB= ENUM نمایهٔ تنظیم تأخیر (مقادیر ممکن=\(dqresponsive\(dq، \(dqgradual\(dq، \(dqintact\(dq، پیش‌فرض=\(gaintact\(aq) .TP .BI \-\-resampler\-backend\fB= ENUM پشتانهٔ بازنمونه‌بردار (مقادیر ممکن=\(dqdefault\(dq، \(dqbuiltin\(dq، \(dqspeex\(dq، \(dqspeexdec\(dq، پیش‌فرض=\(gadefault\(aq) .TP .BI \-\-resampler\-profile\fB= ENUM نمایهٔ بازنمونه‌بردار (مقادیر ممکن=\(dqlow\(dq، \(dqmedium\(dq، \(dqhigh\(dq، پیش‌فرض=\(gamedium\(aq) .TP .B \-\-interleaving فعال‌سازی درهم‌بافی (interleaving) بسته‌ها (پیش‌فرض=خاموش) .TP .B \-\-profiling فعال‌سازی پروفایل‌بندی درونی (پیش‌فرض=خاموش) .TP .BI \-\-color\fB= ENUM تنظیم حالت گزارش رنگی برای خروجی stderr (مقادیر ممکن=\(dqauto\(dq، \(dqalways\(dq، \(dqnever\(dq، پیش‌فرض=\(gaauto\(aq) .UNINDENT.SS "شناسه URI نقطه پایانی (Endpoint URI)" .sp گزینه‌های \fB\-\-source\fP، \fB\-\-repair\fP و \fB\-\-control\fP نقاط پایانی شبکه‌ای را تعیین می‌کنند که ترافیک باید به آن‌ها ارسال شود. .sp مقدار \fIENDPOINT_URI\fP باید ساختاری به شکل زیر داشته باشد: .sp \fBprotocol://host[:port][/path][?query]\fP .sp مثال‌ها: .INDENT 0.0 .IP \(bu 2 \fBrtsp://localhost:123/path?query\fP .IP \(bu 2 \fBrtp+rs8m://localhost:123\fP .IP \(bu 2 \fBrtp://127.0.0.1:123\fP .IP \(bu 2 \fBrtp://[::1]:123\fP .IP \(bu 2 \fBrtcp://10.9.8.3:123\fP .UNINDENT .sp فهرست پروتکل‌های پشتیبانی‌شده را می‌توان با استفاده از گزینهٔ \fB\-\-list\-supported\fP دریافت کرد. .sp فیلد host باید یک FQDN (نام دامنه کامل)، نشانی IPv4، یا نشانی IPv6 درون قلاب‌ها (کروشه‌ها) باشد. .sp اگر پروتکل درگاه پیش‌فرضی را تعریف کرده باشد، فیلد port می‌تواند حذف شود؛ در غیر این صورت، الزامی است. .sp فیلدهای path و query تنها برای پروتکل‌هایی مجاز هستند که از آن‌ها پشتیبانی می‌کنند؛ برای نمونه RTSP. .sp اگر FEC فعال باشد، باید یک جفت نقطه پایانی مبدا (source) و تصحیح (repair) مشخص شود. این دو نقطه پایانی باید از پروتکل‌های سازگار استفاده کنند؛ برای مثال \fBrtp+rs8m://\fP برای نقطه پایانی مبدا، و \fBrs8m://\fP برای نقطه پایانی تصحیح. اگر FEC غیرفعال باشد، باید تنها یک نقطه پایانی مبدا ارائه شود. .sp پروتکل‌های مبدا و تصحیح پشتیبانی‌شده: .INDENT 0.0 .IP \(bu 2 مبدا \fBrtp://\fP، تصحیح none (RTP خام بدون FEC) .IP \(bu 2 مبدا \fBrtp+rs8m://\fP، تصحیح \fBrs8m://\fP (RTP با Reed\-Solomon FEC) .IP \(bu 2 مبدا \fBrtp+ldpc://\fP، تصحیح \fBldpc://\fP (RTP با LDPC\-Staircase FEC) .UNINDENT .sp علاوه بر این، پیشنهاد می‌شود که یک نقطه پایانی کنترلی مشخص شود. این نقطه برای تبادل داده‌های غیررسانه‌ای جهت شناسایی نشست، انتقال بازخورد و غیره به کار می‌رود. اگر هیچ نقطه پایانی کنترلی ارائه نشود، نشست در حالت تقلیل‌یافتهٔ جایگزین (fallback) کار می‌کند که ممکن است پایداری کمتری داشته باشد و از همهٔ قابلیت‌ها پشتیبانی نکند. .sp پروتکل‌های کنترلی پشتیبانی‌شده: .INDENT 0.0 .IP \(bu 2 \fBrtcp://\fP .UNINDENT .SS "شناسه URI ورودی/خروجی (IO URI)" .sp گزینهٔ \fB\-\-input\fP نیازمند یک شناسه URI برای دستگاه یا فایل در یکی از قالب‌های زیر است: .INDENT 0.0 .IP \(bu 2 \fBDEVICE_TYPE://DEVICE_NAME\fP \-\- دستگاه صوتی .IP \(bu 2 \fBDEVICE_TYPE://default\fP \-\- دستگاه صوتی پیش‌فرض برای نوع دستگاه مشخص‌شده .IP \(bu 2 \fBfile:///ABS/PATH\fP \-\- مسیر مطلق فایل .IP \(bu 2 \fBfile://localhost/ABS/PATH\fP \-\- مسیر مطلق فایل (حالت جایگزین؛ تنها میزبان \(dqlocalhost\(dq پشتیبانی می‌شود) .IP \(bu 2 \fBfile:/ABS/PATH\fP \-\- مسیر مطلق فایل (حالت جایگزین) .IP \(bu 2 \fBfile:REL/PATH\fP \-\- مسیر نسبی فایل .IP \(bu 2 \fBfile://\-\fP \-\- ورودی استاندارد (stdin) .IP \(bu 2 \fBfile:\-\fP \-\- ورودی استاندارد (stdin) (حالت جایگزین) .UNINDENT .sp مثال‌ها: .INDENT 0.0 .IP \(bu 2 \fBpulse://default\fP .IP \(bu 2 \fBpulse://alsa_input.pci\-0000_00_1f.3.analog\-stereo\fP .IP \(bu 2 \fBalsa://hw:1,0\fP .IP \(bu 2 \fBfile:///home/user/test.wav\fP .IP \(bu 2 \fBfile://localhost/home/user/test.wav\fP .IP \(bu 2 \fBfile:/home/user/test.wav\fP .IP \(bu 2 \fBfile:./test.wav\fP .IP \(bu 2 \fBfile:\-\fP .UNINDENT .sp فهرست طرح‌واره‌ها (schemes) و قالب‌های فایل پشتیبانی‌شده را می‌توان با استفاده از گزینهٔ \fB\-\-list\-supported\fP دریافت کرد. .sp اگر گزینهٔ \fB\-\-input\fP حذف شود، راه‌انداز (driver) و دستگاه پیش‌فرض انتخاب می‌شوند. .sp گزینهٔ \fB\-\-input\-format\fP می‌تواند برای اجبار قالب فایل ورودی به کار رود. اگر مشخص نشود، قالب فایل به‌طور خودکار تشخیص داده می‌شود. این گزینه هنگامی که ورودی stdin باشد، همواره الزامی است. .sp بخش مسیر در URI ارائه‌شده، \fI\%percent\-decoded\fP (رمزگشایی درصدی) می‌شود\&. برای راحتی، نویسه‌های کدگذاری‌نشده نیز مجاز هستند، به‌جز این‌که \fB%\fP باید همواره به‌صورت \fB%25\fP کدگذاری شود\&. .sp برای مثال، فایلی با نام \fB/foo/bar%/[baz]\fP می‌تواند با استفاده از هر یک از این URIها مشخص شود: \fBfile:///foo%2Fbar%25%2F%5Bbaz%5D\fP و \fBfile:///foo/bar%25/[baz]\fP\&..SS اسلات‌های چندگانه .sp می‌توان چندین مجموعه از نقاط پایانی را برای ارسال رسانه به چندین نشانی مشخص کرد. .sp این مجموعه‌های نقاط پایانی، اسلات (slot) نامیده می‌شوند. تمامی اسلات‌ها باید دارای مجموعه‌ای یکسان از انواع نقاط پایانی (source، repair و غیره) بوده و برای آن‌ها از پروتکل‌های یکسانی استفاده کنند. .SS SO_REUSEADDR .sp اگر گزینهٔ \fB\-\-reuseaddr\fP مشخص شود، گزینهٔ سوکت \fBSO_REUSEADDR\fP برای تمام سوکت‌ها فعال خواهد شد. .sp در TCP، این قابلیت امکان استفادهٔ مجدد و فوری از سوکت اخیراً بسته شده در وضعیت TIME_WAIT را فراهم می‌کند، که در صورت نیاز به راه‌اندازی سریع سرور می‌تواند مفید باشد. .sp در UDP، این قابلیت اجازه می‌دهد چندین فرایند به نشانی یکسانی متصل (bind) شوند، که در صورت استفاده از فعال‌سازی سوکت systemd می‌تواند کاربردی باشد. .sp صرف‌نظر از وضعیت این گزینه، \fBSO_REUSEADDR\fP هنگام اتصال به درگاه موقت (ephemeral port) همواره غیرفعال است. .SS واحدهای زمان .INDENT 0.0 .TP .B \fITIME\fP باید یکی از قالب‌های زیر را داشته باشد: 123ns; 1.23us; 1.23ms; 1.23s; 1.23m; 1.23h; .UNINDENT .SS واحدهای اندازه .INDENT 0.0 .TP .B \fISIZE\fP باید یکی از قالب‌های زیر را داشته باشد: 123; 1.23K; 1.23M; 1.23G; .UNINDENT .SH "مثال‌ها (EXAMPLES)" .SS مثال‌های نقطه پایانی .sp ارسال فایل به گیرنده با یک نقطه پایانی RTP ساده: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-i file:./input.wav \-s rtp://192.168.0.3:10001 .ft P .fi .UNINDENT .UNINDENT .sp ارسال فایل به گیرنده با نقاط پایانی منبع (source)، ترمیم (repair) و کنترل (control) مبتنی بر IPv4: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-i file:./input.wav \-s rtp+rs8m://192.168.0.3:10001 \e \-r rs8m://192.168.0.3:10002 \-c rtcp://192.168.0.3:10003 .ft P .fi .UNINDENT .UNINDENT .sp ارسال فایل به گیرنده با نقاط پایانی منبع (source)، ترمیم (repair) و کنترل (control) مبتنی بر IPv6: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-i file:./input.wav \-s rtp+rs8m://[2001:db8::]:10001 \e \-r rs8m://[2001:db8::]:10002 \-r rtcp://[2001:db8::]:10003 .ft P .fi .UNINDENT .UNINDENT .sp ارسال فایل به دو گیرنده، هر یک با سه نقطه پایانی: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \e \-i file:./input.wav \e \-s rtp+rs8m://192.168.0.3:10001 \-r rs8m://192.168.0.3:10002 \e \-c rtcp://192.168.0.3:10003 \e \-s rtp+rs8m://198.214.0.7:10001 \-r rs8m://198.214.0.7:10002 \e \-c rtcp://198.214.0.7:10003 .ft P .fi .UNINDENT .UNINDENT.SS "مثال‌های ورودی/خروجی (I/O)" .sp ضبط صدا از دستگاه پیش‌فرض (حذف \fB\-i\fP): .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 .ft P .fi .UNINDENT .UNINDENT .sp ضبط صدا از دستگاه پیش‌فرض ALSA: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-i alsa://default .ft P .fi .UNINDENT .UNINDENT .sp ضبط صدا از یک دستگاه مشخص PulseAudio: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-i pulse://alsa_input.pci\-0000_00_1f.3.analog\-stereo .ft P .fi .UNINDENT .UNINDENT .sp ارسال فایل WAV (تشخیص قالب بر اساس پسوند): .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-i file:./input.wav .ft P .fi .UNINDENT .UNINDENT .sp ارسال فایل WAV (تعیین دستی قالب): .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-i file:./input.file \-\-input\-format wav .ft P .fi .UNINDENT .UNINDENT .sp ارسال WAV از stdin: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-i file:\- \-\-input\-format wav <./input.wav .ft P .fi .UNINDENT .UNINDENT .sp ارسال فایل WAV (تعیین مسیر مطلق): .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-i file:///home/user/input.wav .ft P .fi .UNINDENT .UNINDENT.SS "مثال‌های تنظیم (Tuning examples)" .sp اجبار یک نرخ مشخص برای دستگاه ورودی: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \-\-rate=44100 .ft P .fi .UNINDENT .UNINDENT .sp انتخاب طرح FEC از نوع LDPC\-Staircase و اندازه بلوک بزرگ‌تر: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-i file:./input.wav \-s rtp+ldpc://192.168.0.3:10001 \e \-r ldpc://192.168.0.3:10002 \-c ldpc://192.168.0.3:10003 \e \-\-nbsrc=1000 \-\-nbrpr=500 .ft P .fi .UNINDENT .UNINDENT .sp انتخاب طول بسته کوچک‌تر: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-i file:./input.wav \-s rtp+ldpc://192.168.0.3:10001 \e \-\-packet\-len 2500us .ft P .fi .UNINDENT .UNINDENT .sp انتخاب تاخیر I/O کمتر و طول فریم کوتاه‌تر: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \e \-\-io\-latency=20ms \-\-frame\-len 4ms .ft P .fi .UNINDENT .UNINDENT .sp تعیین دستی پارامترهای نمونه‌برداری مجدد (resampling): .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-send \-vv \-s rtp://192.168.0.3:10001 \e \-\-resampler\-backend=speex \-\-resampler\-profile=high .ft P .fi .UNINDENT .UNINDENT .sp انجام تنظیم تاخیر روی فرستنده به جای گیرنده: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ roc\-recv \-vv \-o pulse://default \-s rtp+rs8m://0.0.0.0:10001 \e \-r rs8m://0.0.0.0:10002 \-c rtcp://0.0.0.0:10003 \e \-\-latency\-profile=intact \-\-target\-latency=200ms $ roc\-send \-vv \-i file:./input.wav \-s rtp+rs8m://192.168.0.3:10001 \e \-r rs8m://192.168.0.3:10002 \-c rtcp://192.168.0.3:10003 \e \-\-latency\-profile=gradual \-\-target\-latency=200ms .ft P .fi .UNINDENT .UNINDENT.SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .sp متغیرهای محیطی زیر پشتیبانی می‌شوند: .INDENT 0.0 .TP .B NO_COLOR به‌طور پیش‌فرض، رنگ‌آمیزی ترمینال به‌صورت خودکار تشخیص داده می‌شود. این متغیر محیطی می‌تواند روی یک رشتهٔ غیرخالی تنظیم شود تا رنگ‌آمیزی ترمینال غیرفعال گردد. تقدم آن از گزینهٔ \fB\-\-color\fP کمتر است. .TP .B FORCE_COLOR به‌طور پیش‌فرض، رنگ‌آمیزی ترمینال به‌صورت خودکار تشخیص داده می‌شود. این متغیر محیطی می‌تواند روی یک عدد صحیح مثبت تنظیم شود تا رنگ‌آمیزی ترمینال فعال/اجباری گردد. تقدم آن از متغیر \fBNO_COLOR\fP و گزینهٔ \fB\-\-color\fP کمتر است. .UNINDENT .SH "همچنین ببینید (SEE ALSO)" .sp \fBroc\-recv(1)\fP و وب‌سایت Roc در \fI\%https://roc\-streaming.org\fP .SH "گزارش باگ‌ها (BUGS)" .sp لطفاً هرگونه باگ پیدا شده را از طریق GitHub گزارش دهید (\fI\%https://github.com/roc\-streaming/roc\-toolkit\fP). .SH "نویسندگان (AUTHORS)" .sp برای مشاهدهٔ فهرست نگهدارندگان و مشارکت‌کنندگان، صفحهٔ نویسندگان را در وب‌سایت ببینید (\fI\%https://roc\-streaming.org/toolkit/docs/about_project/authors.html\fP). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2024، نویسندگان Roc Streaming .\" Generated by docutils manpage writer. .