| recordMyDesktop(1) | General Commands Manual | recordMyDesktop(1) |
نام (NAME)
recordMyDesktop - ضبط نشستهای میزکار در یک فایل ویدیویی Ogg Theora با صدای Vorbis
خلاصه دستور (SYNOPSIS)
recordmydesktop
recordmydesktop output-filename
recordmydesktop --rescue path-to-data
recordmydesktop {image-options|sound-options|encoding-options|miscellaneous-options| ... }
recordmydesktop {-h|--help}
recordmydesktop --version
recordmydesktop --print-config
توضیحات (DESCRIPTION)
recordMyDesktop یک فایل (out.ogv بهطور پیشفرض) حاوی ضبط ویدیو و صدای یک نشست X Window System تولید میکند.
برای یک سناریوی معمول، ضبط نشست به سادگی اجرای دستور زیر است:
برای پایان دادن به ضبط، کلیدهای Control+C را فشار دهید. (این عمل یک سیگنال SIGINT به recordMyDesktop ارسال میکند.)
برای مشخص کردن ناحیهای از صفحه جهت ضبط میتوانید دستور زیر را وارد کنید:
نکته: اگر از هر گزینهای استفاده شود و بخواهید نام فایلی غیر از نام پیشفرض را برای خروجی به کار ببرید، باید آن را با گزینه -o مشخص کنید.
از نسخه 0.3 برنامه recordMyDesktop، کدگذاری بلافاصله پس از پایان ضبط انجام میشود. اگرچه این رفتار تا حد زیادی در مصرف پردازنده (CPU) صرفهجویی میکند، با مشخص کردن گزینه --on-the-fly-encoding میتوانید به رفتار قبلی بازگردید.
رفتار پیشفرض ضبط این است که نواحی تغییریافته (طبق تشخیص افزونه X Damage) علامتگذاری شده و فریم بهروزرسانی شود. این رفتار را میتوان از طریق گزینه --full-shots تغییر داد تا نتیجه دقیقتری تولید شود یا پنجرههایی که هنگام تغییر رویدادهای X ایجاد نمیکنند (مانند پنجرههای با کانتکست سهبعدی شتابیافته) ضبط شوند، اما این کار بار پردازشی را به میزان قابل توجهی افزایش خواهد داد.
برنامه recordMyDesktop به معنای مرسوم دارای رابط کاربری نیست. پس از راهاندازی، تنها از طریق سیگنالهای زیر قابل کنترل است:
- SIGUSR1
- در صورتی که برنامه در حال حاضر مشغول ضبط باشد باعث مکث (توقف موقت) میشود، و بالعکس.
- SIGTERM
- SIGINT
- باعث خاتمه عادی ضبط میشوند.
- SIGABRT
- برنامه را متوقف کرده و فایل خروجی را حذف میکند.
این سیگنالها همچنین میتوانند با پیکربندی میانبرهای صفحهکلید به برنامه ارسال شوند. به --pause-shortcut و --stop-shortcut در زیربخش گوناگون (Miscellaneous) از بخش گزینهها (OPTIONS) در ادامه مراجعه کنید.
برای اعمال تغییرات و تنظیمات بیشتر روی نتیجه نهایی، به بخشهای گزینهها (OPTIONS) و یادداشتها (NOTES) در ادامه مراجعه کنید..SH "گزینهها (OPTIONS)" اگر و تنها اگر هیچ گزینهای مشخص نشده باشد، recordMyDesktop یک عملوند منفرد را میپذیرد که آن را به عنوان نام فایل خروجی تفسیر میکند.
دستور recordMyDesktop گزینههای خط فرمان متعددی را میپذیرد. توضیحات زیر آنها را در دستهبندیهایی گروهبندی میکند.
عمومی (General)
- -h یا --help
- چاپ خلاصهای از نحوه استفاده و خروج.
- --version
- چاپ نسخه برنامه و خروج.
- --print-config
- چاپ اطلاعات مربوط به گزینههای انتخابشده در زمان کامپایل و خروج. در حال حاضر مشخص میکند که آیا ضبط Jack فعال است و اینکه آیا ALSA یا OSS استفاده میشود؛ ممکن است در آینده اطلاعات بیشتری را گزارش دهد.
تصویر (Image)
- --windowid wid
- ضبط ناحیهای از صفحه نمایش که با پنجره X به شناسه wid در زمان شروع به کار recordMyDesktop مطابقت دارد. ضبط یک پنجره خود پنجره را دنبال نمیکند، بلکه ناحیهای را که میپوشاند ضبط میکند؛ اگر پنجره جابهجا شود، recordMyDesktop آن را دنبال نمیکند. اگر پنجره توسط پنجره دیگری پوشانده شود، محتویات پنجره پوشاننده درون ناحیه ضبط ثبت خواهند شد. شناسه پنجره یک کلاینت X را میتوان با برنامه xwininfo(1) بهدست آورد؛ بخش یادداشتها (Notes) در ادامه را ببینید.
- --display x-display
- اتصال به نمایشگر سامانه پنجره X در x-display. بهطور پیشفرض، مقدار متغیر محیطی DISPLAY برای تعیین نمایشگر استفاده میشود.
- -x x-offset
- محدود کردن ناحیه ضبط به شروع از x-offset پیکسل از لبه چپ صفحه نمایش یا شناسه پنجره X تعیینشده با --windowid. مقدار پیشفرض 0 است.
- -y y-offset
- محدود کردن ناحیه ضبط به شروع از y-offset پیکسل از لبه بالای صفحه نمایش یا شناسه پنجره X تعیینشده با --windowid. مقدار پیشفرض 0 است.
- --width w
- محدود کردن عرض ناحیه ضبط به w پیکسل. مقدار پیشفرض، کل عرض صفحه نمایش یا شناسه پنجره X تعیینشده با --windowid است.
- --height h
- محدود کردن ارتفاع ناحیه ضبط به h پیکسل. مقدار پیشفرض، کل ارتفاع صفحه نمایش یا شناسه پنجره X تعیینشده با --windowid است.
- --dummy-cursor color
- رسم یک مکاننمای ساختگی به جای مکاننمای عادی. مقدار color دادهشده باید یک رشته باشد، یا “black” یا “white”.
- --no-cursor
- غیرفعال کردن رسم مکاننما.
- --no-shared
- عدم استفاده از افزونه حافظه مشترک MIT (MIT-SHM). استفاده از این گزینه توصیه نمیشود.
- --full-shots
- گرفتن یک تصویر کامل از صفحه نمایش در هر فریم. استفاده از این گزینه توصیه نمیشود.
- --follow-mouse
- هنگامی که این گزینه فعال باشد، ناحیه ضبط مکاننمای ماوس را دنبال میکند. این مورد تنها زمانی معنا دارد که ناحیه انتخابشده زیرمجموعهای از کل صفحه نمایش باشد. این گزینه بهطور ضمنی --full-shots را نیز فعال میکند.
- --quick-subsampling
- زیرنمونهبرداری از صفحات کروما با دور ریختن پیکسلهای اضافی.
- --fps n
- تلاش برای ضبط n فریم در ثانیه، که در آن n عددی مثبت است و میتواند یک عدد صحیح یا ممیز شناور باشد. نرخ فریم قابل دستیابی توسط سختافزار سیستم و بار کاری آن محدود میشود. مقدار پیشفرض 15 است..SS "صدا (Sound)"
- --channels n
- ضبط حداکثر تا n کانال، که در آن n یک عدد صحیح مثبت است. پیشفرض 2 (استریو) است.
- --freq n
- ضبط با نرخ نمونهبرداریِ n هرتز، که در آن n یک عدد صحیح مثبت است. پیشفرض 22050 (22.05 کیلوهرتز) است.
- --buffer-size n
- بافر کردن n بایت از دادههای صوتی هنگام استفاده از سامانههای صوتی ALSA یا OSS، که در آن n یک عدد صحیح مثبت است. پیشفرض 4096 (4 کیبیبایت) است.
- --ring-buffer-size n
- تنظیم اندازه بافر حلقهای JACK بر حسب ثانیه، که در آن n یک عدد اعشاری مثبت است. پیشفرض 3.0 است.
- اندازه کل
بافر بر حسب
بایت را
میتوان به
صورت یک
عبارت به
زبان C بیان
کرد:
ring_buffer_size * sample_rate * number_of_ports * sizeof(jack_default_audio_sample_t),که در آن sizeof(jack_default_audio_sample_t) معمولاً 4 است.
- --device sound-device
- ضبط صدا از sound-device. پیشفرض بسته به اینکه از ALSA یا OSS استفاده شود، به ترتیب default یا /dev/dsp است.
- --use-jack port ...
- ضبط صدا از فهرست مشخصشدهای از درگاههای JACK که با فاصله از هم جدا شدهاند. هنگام استفاده از این گزینه، سایر گزینههای مرتبط با صدا (بهجز --no-sound) نادیده گرفته میشوند.
- --no-sound
- صدا ضبط نشود.
کدگذاری (Encoding)
- --on-the-fly-encoding
- کدگذاری دادههای صوتی/تصویری همزمان با ضبط. پیشفرض این است که کدگذاری تا پس از اتمام ضبط به تعویق بیفتد.
- --v_quality n
- تنظیم کیفیت ویدیوی دلخواه روی n، یک عدد صحیح بین 0 تا 63 (شامل هر دو)؛ مقادیر بالاتر بهتر است. پیشفرض 63 است. بخش Notes در ادامه را ببینید.
- --v_bitrate n
- تنظیم نرخ بیت دلخواه ویدیوی کدگذاریشده روی n بیت در ثانیه. محدوده مجاز برای n بین 0 تا 200,000,000 (شامل هر دو) است؛ پیشفرض 0 است. (جداکننده هزارگان در اینجا برای وضوح نشان داده شده است؛ از آن در آرگومان گزینه استفاده نکنید.)
- --s_quality n
- تنظیم کیفیت صدای دلخواه روی n، یک عدد صحیح بین -1 تا 10 (شامل هر دو)؛ مقادیر بالاتر بهتر است. پیشفرض 10 است..SS "متفرقه (Miscellaneous)"
- --rescue path-to-data
- دادههای حافظهٔ نهان (cache) از یک نشست پیشین را در قالب یک فایل Ogg Theora کدگذاری میکند. نام فایل همان نامی خواهد بود که در ابتدا انتخاب شده بود. هر گزینهٔ دیگری که همراه با این گزینه مشخص شود، بهطور ضمنی نادیده گرفته شده و recordMyDesktop پس از پایان کدگذاری خارج خواهد شد. این گزینه در نسخهٔ 0.3.7 برنامهٔ recordMyDesktop اضافه شده است و با فایلهای حافظهٔ نهان ایجادشده توسط نسخههای پیشین کار نخواهد کرد. هنگام استفاده از این گزینه، توجه داشته باشید که حافظهٔ نهان recordMyDesktop از نظر اندازهٔ انواع داده و ترتیب بایتها (endianness) ایمن نیست. برای یافتن دادههای ذخیرهشده در حافظهٔ نهان، گزینهٔ --workdir در زیر را ببینید.
- --no-wm-check
- هنگامی که یک مدیر پنجرهٔ ترکیبی سهبعدی (3D compositing window manager) شناسایی شود، برنامه به گونهای عمل میکند که گویی گزینهٔ --full-shots مشخص شده است. این گزینه این بررسی را غیرفعال میکند.
- --no-frame
- بهطور معمول، فریمی دور ناحیهٔ ضبط کشیده میشود تا به کاربر در تشخیص آنچه ضبط میشود و آنچه ضبط نمیشود کمک کند. هنگامی که گزینهٔ --follow-mouse داده شود، این فریم نشانگر ماوس را نیز دنبال خواهد کرد. با این حال، ممکن است این فریم برای عملیات کشیدن و رها کردن (drag-and-drop) مشکلاتی ایجاد کند. اگر تمایلی ندارید که این فریم نمایش داده شود، از این گزینه استفاده کنید.
- --pause-shortcut mod+key
- یک ترکیب کلید را برای تغییر وضعیت مکث (pause) ضبط تعیین میکند. mod میتواند هر ترکیبی از کلیدهای تبدیلگر (modifier) زیر باشد: Control، Shift و Mod1 تا Mod5. تبدیلگرها میتوانند با هر نویسهای (به جز فاصله) یا اصلاً بدون هیچ نویسهای از یکدیگر جدا شوند. key میتواند هر کلیدی باشد که در /usr/include/X11/keysymdef.h. تعریف شده است. پیشوند XK_ را از نام کلیدهای موجود در آن فایل حذف کنید. فهرست تبدیلگرها باید با علامت جمع “+” از کلید جدا شود. پیشفرض Control+Mod1+p است (Mod1 معمولاً متناظر با کلید Alt چپ است).
- --stop-shortcut mod+key
- یک ترکیب کلید را برای متوقف کردن ضبط تعیین میکند. برای جزئیات بیشتر، گزینهٔ --pause-shortcut در بالا را ببینید. پیشفرض Control+Mod1+s است.
- --compress-cache
- دادههای تصویری با یک فشردهسازی سبک در حافظهٔ نهان ذخیره میشوند.
- --workdir dir
- recordMyDesktop یک دایرکتوری موقت در dir برای ذخیرهٔ فایلهای میانی در حافظهٔ نهان ایجاد میکند. در صورت مقداردهی، مقدار پیشفرض از متغیر محیطی TMPDIR خوانده میشود، در غیر این صورت از /tmp استفاده خواهد شد.
- --delay n[H|h|M|m]
- پیش از آغاز ضبط، به مدت n واحد زمانی (اگر مشخص نشود، ثانیه) صبر میکند، که در آن n یک مقدار عددی صحیح غیرمنفی یا ممیز شناور است. پسوند اختیاری H یا h، M یا m بهترتیب نشاندهندهٔ واحدهای زمانی ساعت یا دقیقه است. پیشفرض بدون تأخیر است.
- --overwrite
- اگر فایل خروجی از قبل وجود داشته باشد، آن را حذف میکند. حالت پیشفرض، خودداری از رونویسی و درج یک شناسهٔ عددی تفکیککننده در نام فایل است (بخش Files در زیر را ببینید).
- -o filename
- ویدئوی کدگذاریشده را در filename مینویسد. پیشفرض out.ogv است..SH "وضعیت خروج (EXIT STATUS)" وضعیت خروج 0 بر اساس قراردادهای معمول یونیکس نشاندهنده موفقیت است.
وضعیت خروج غیرصفر به این معناست که خطایی رخ داده است؛ این وضعیتها با پیامهای عیبیابی در خطای استاندارد همراه هستند. علاوه بر این، چندین وضعیت استثنایی با وضعیتهای خروج مشخص تفکیک شدهاند.
- 1
- تجزیه آرگومان با شکست مواجه شد یا آرگومان ورودی نامفهوم بود.
- 2
- راهاندازی اولیه انکودر با شکست مواجه شد (Vorbis یا Theora).
- 3
- امکان باز کردن یا پیکربندی دستگاه صوتی وجود نداشت.
- 4
- افزونه XDamage موجود نیست.
- 5
- افزونه MIT-SHM موجود نیست.
- 6
- افزونه XFixes موجود نیست.
- 7
- فراخوانی XInitThreads(3) با شکست مواجه شد.
- 8
- متغیر محیطی DISPLAY تنظیم نشده است و هیچ گزینهٔ --display مشخص نگردیده است.
- 9
- امکان اتصال به سرور X وجود نداشت.
- 10
- عمق رنگ پنجره ریشه (root window) برابر ۳۲، ۲۴ یا ۱۶ بیت بر پیکسل نیست.
- 11
- مشخصات پنجره ضبط نامعتبر بود.
- 12
- امکان پیوست کردن حافظه مشترک به فرایند وجود نداشت.
- 13
- امکان باز کردن فایل برای نوشتن وجود نداشت.
محیط (ENVIRONMENT)
فایلها (FILES)
recordMyDesktop پسوند .ogv را به نام هر فایل خروجی که از قبل آن را نداشته باشد (با هر حالت بزرگی یا کوچکی حروف) اضافه میکند.
اگر سعی کنید در فایلی که از پیش موجود است ذخیره کنید، یک تمایزدهنده عددی به شکل -n پیش از پسوند .ogv در نام فایل درج میشود. عدد n از ۱ آغاز میشود و در صورتی که فایلی با آن تمایزدهنده از قبل وجود داشته باشد، افزایش مییابد.
برای نمونه، در صورت مشخص نکردن نام، اگر out.ogv وجود داشته باشد، فایل جدید out-1.ogv خواهد بود، و اگر آن هم موجود باشد، از out-2.ogv استفاده میشود و به همین ترتیب ad infinitum (نه واقعاً بینهایت، بلکه بیشتر شبیه به ad unsigned short)..SHنکات (NOTES)
ضبط با استفاده از شناسه پنجره X
هنگام استفاده از گزینهٔ --windowid شرح آن را در بخش گزینهها (OPTIONS) در بالا، و همچنین شرح گزینههای -x، -y، --width و --height را به دقت مطالعه کنید.
یک راه آسان برای یافتن شناسه یک پنجره، استفاده از برنامهٔ xwininfo(1) است. اجرای دستوری مانند
تنظیم کیفیت ویدیو
هر چه کیفیت انتخابی شما در یک ضبط ویدیویی پایینتر باشد (با استفاده از گزینهٔ --v_quality)، به توان پردازشی CPU بیشتری نیاز خواهید داشت. بنابراین اگر همزمان از گزینهٔ --on-the-fly-encoding نیز استفاده میکنید، بهتر است کار را با مقادیر پیشفرض آغاز کرده و نتیجهٔ نهایی را با برنامهٔ دیگری پردازش کنید. یک مبدل بسیار عالی، پخشکنندهٔ رسانهٔ vlc(1) است که میتواند عملیات گوناگون تبدیل کد (transcoding) را چه با استفاده از رابط گرافیکی و چه از طریق خط فرمان انجام دهد. vlc نرمافزار پیچیدهای است؛ پیش از استفاده باید مستندات آن را مطالعه کنید. در ادامه مثالی آمده است که اندازهٔ ویدیوی ضبطشدهای به نام out.ogv را به 512×384 تغییر اندازه میدهد.
اگر مایلید کیفیت ویدیو را تغییر دهید، میتوانید گزینهٔ --sout-theora-quality=n، را اضافه کنید که در آن n در بازهٔ [1,10] است؛ برای مثال،
گزینهٔ دیگر ffmpeg2theora(1) است که—برخلاف نامش—یک مبدل Theora-به-Theora نیز هست. تغییر کیفیت یک فایل ضبطشده به کمک آن میتواند به همین سادگی باشد:
- اگر --full-shots مشخص نشده باشد، پنجرههای سهبعدی ضبط نمیشوند.
- ذخیره کردن ۶۵۵۳۶ فایل با نام یکسان منجر به رفتاری غیرقابلپیشبینی خواهد شد، که ممکن است به شکل یک حلقهٔ بیپایان یا خطای دسترسی به حافظه (segmentation fault) بروز کند.
نویسندگان (AUTHORS)
John Varouhakis
همچنین ببینید (SEE ALSO)
| 2017-04-05 |