WF-RECORDER(1) General Commands Manual WF-RECORDER(1) نام (NAME) wf-recorder – برنامه‌ای ساده برای ضبط صفحه‌نمایش در کامپوزیتورهای مبتنی بر wlroots خلاصه دستور (SYNOPSIS) wf-recorder [-abcCdDefFghlmopPrRvxX] [-a, --audio [=DEVICE]] [-b, --bframes max_b_frames] [-B, --buffrate buffrate] [-c, --codec output_codec] [-r, --framerate framerate] [-d, --device encoding_device] [--no-dmabuf] [-D, --no-damage] [-f, --file filename.ext] [-F filter_string] [-g, --geometry geometry] [-h, --help] [-l, --log] [-m, --muxer muxer] [-L, --list-output] [-o, --output output] [-p, --codec-param [option_param=option_value]] [-v, --version] [-x, --pixel-format] [--audio-backend audio_backend] [-C, --audio-codec output_audio_codec] [-P, --audio-codec-param [option_param=option_value]] [-R, --sample-rate sample_rate] [-X, --sample-format sample_format] [-y, --overwrite] توضیحات (DESCRIPTION) wf-recorder ابزاری است که برای ضبط صفحه‌نمایش در کامپوزیتورهای Wayland ساخته شده است. این ابزار از wlr-screencopy برای ضبط ویدیو و از ffmpeg(1) برای رمزگذاری آن استفاده می‌کند. در ساده‌ترین حالت، wf-recorder را برای آغاز ضبط اجرا کرده و از ‘Ctrl+C’ برای توقف آن استفاده کنید. این کار فایلی با نام ‘recording.mp4’ را در دایرکتوری کاری فعلی با استفاده از codec پیش‌فرض ایجاد می‌کند. گزینه‌ها به شرح زیر هستند: -a, --audio [=DEVICE] ضبط صفحه‌نمایش همراه با صدا را آغاز می‌کند. آرگومان DEVICE اختیاری است. در صورتی که می‌خواهید دستگاه PulseAudio ضبط‌کننده صدا را مشخص کنید، می‌توانید این دستور را همراه با نام آن دستگاه اجرا نمایید. می‌توانید دستگاه خود را با اجرای دستور زیر پیدا کنید: $ pactl list sources | grep Name -b, --bframes max_b_frames حداکثر تعداد B-Frameهای مورد استفاده را تنظیم می‌کند. -B, --buffrate buffrate یک پیش‌بینی از نرخ فریم مورد انتظار را به انکودر اعلام می‌کند. این کار VFR را حفظ کرده و مشکل محدودیت FPS برخی از انکودرها (مانند svt-av1) را حل می‌کند. باید روی همان نرخ فریم نمایشگر تنظیم شود. -c, --codec output_codec کدک ویدیوی خروجی را مشخص می‌کند. از خروجی GIF نیز پشتیبانی می‌کند. برای تغییر پارامترهای کدک، از -p option_name=option_value استفاده کنید. -r, --framerate framerate یک نرخ فریم ثابت (CFR) سخت‌گیرانه تنظیم می‌کند. برای رسیدن به آن، فریم‌ها تکرار خواهند شد. این کار ویدیوی حاصل را CFR می‌کند و مشکل محدودیت FPS برخی از انکودرها را رفع می‌کند. -d, --device encoding_device دستگاه مورد استفاده هنگام رمزگذاری ویدیو را انتخاب می‌کند. برخی از درایورها پشتیبانی از داده‌های ‘rgb0’ را برای ورودی vaapi گزارش می‌دهند، اما در واقع تنها از yuv پشتیبانی می‌کنند. علاوه بر گزینه‌های vaapi، از گزینه -x yuv420 استفاده کنید تا داده‌ها پیش از ارسال به GPU، به‌صورت نرم‌افزاری تبدیل شوند. --no-dmabuf به‌طور پیش‌فرض، wf-recorder در صورت استفاده از انکودر GPU تلاش می‌کند تنها از بافرها و کپی‌های GPU استفاده کند. با این حال، این امر می‌تواند در برخی سیستم‌ها باعث بروز مشکلاتی شود. در چنین مواردی، این گزینه کپی GPU را غیرفعال کرده و استفاده از پردازنده (CPU) را اجباری می‌کند. -D, --no-damage به‌طور پیش‌فرض، wf-recorder تنها زمانی فریم جدیدی را از کامپوزیتور درخواست می‌کند که صفحه‌نمایش به‌روزرسانی شود. این امر منجر به ایجاد فایل خروجی بسیار کوچک‌تری می‌شود، هرچند که دارای نرخ نوسازی متغیر خواهد بود. زمانی که این گزینه فعال باشد، wf-recorder از این بهینه‌سازی استفاده نکرده و حتی اگر هیچ به‌روزرسانی در صفحه رخ ندهد، به‌طور پیوسته فریم‌های جدید را ضبط می‌کند. -f, --file filename.ext با استفاده از گزینه -f ، فایل خروجی نام filename.ext را خواهد داشت و قالب فایل بر اساس پسوند ارائه‌شده تعیین می‌شود. اگر پسوند توسط ماکسرهای ffmpeg(1) شما شناخته نشود، دستور با شکست مواجه خواهد شد. می‌توانید ماکسرهایی را که نصب ffmpeg(1) شما پشتیبانی می‌کند با اجرای دستور زیر بررسی کنید: $ ffmpeg -muxers -F, --filter filter_string فیلتر ffmpeg مورد استفاده را تنظیم می‌کند. VAAPI برای عملکرد صحیح نیازمند `scale_vaapi=format=nv12:out_range=full` است. -g, --geometry screen_geometry بخش خاصی از صفحه‌نمایش را انتخاب می‌کند. ساختار آن به صورت "x,y WxH" است. -h, --help صفحه راهنما را چاپ می‌کند. -l, --log یک گزارش (لاگ) روی ترمینال جاری تولید می‌کند. برای مقاصد اشکال‌زدایی. -m, --muxer muxer قالب خروجی را به‌جای تشخیص از روی نام فایل، روی یک ماکسر مشخص تنظیم می‌کند. -L, --list-output خروجی‌های (نمایشگرهای) موجود را فهرست می‌کند. -o, --output خروجی‌ای که ویدیو باید از آن ضبط شود را مشخص می‌کند. -p, --codec-param [option_name=option_value] یک پارامتر کدک را تغییر می‌دهد. می‌تواند چندین بار استفاده شود: -p option_name_1=option_value_1 -p option_name_2=option_value_2 -v, --version نسخه wf-recorder را چاپ می‌کند. -x, --pixel-format pixel_format قالب پیکسل خروجی را تعیین می‌کند. فهرست قالب‌های موجود را با دستور زیر مشاهده کنید: $ ffmpeg -pix_fmts --audio-backend audio_backend بک‌اند صوتی مورد استفاده در زمان تنظیم بودن a- را مشخص می‌کند. -C, --audio-codec output_audio_codec کدک صدا را مشخص می‌کند. -P, --audio-codec-param [option_name=option_value] پارامترهای کدک صدا را تغییر می‌دهد. -R, --sample-rate sample_rate نرخ نمونه‌برداری صدا را بر حسب هرتز (HZ) تغییر می‌دهد. مقدار پیش‌فرض 48000 است. -X, --sample-format sample_format قالب نمونه صدای خروجی را تعیین می‌کند. فهرست قالب‌های موجود را با دستور زیر مشاهده کنید: $ ffmpeg -sample_fmts -y, --overwrite رونویسی فایل خروجی را بدون تایید خواستن اجبار می‌کند. مثال‌ها (EXAMPLES) برای انتخاب بخش خاصی از صفحه می‌توانید از --g geometry استفاده کنید یا از https://github.com/emersion/slurp برای انتخاب تعاملی ناحیه‌ای از صفحه که ضبط خواهد شد بهره ببرید: $ wf-recorder -g "$(slurp)" می‌توانید صفحه‌نمایش و صدا را به‌طور همزمان ضبط کنید با: $ wf-recorder --audio --file=recording_with_audio.mp4 برای تعیین دستگاه صوتی، از گزینه‌های --a یا ---audio= استفاده کنید. برای مشخص کردن یک codec از گزینه -c codec استفاده کنید. برای تغییر پارامترهای کدک، از گزینه -p استفاده کنید: $ wf-recorder -c libx264 -p preset=slow -p crf=18 برای تنظیم یک قالب خروجی خاص، از گزینه -m, --muxer استفاده کنید. به‌عنوان مثال، برای خروجی دادن به یک لوپ‌بک video4linux2 می‌توانید از دستور زیر استفاده کنید: $ wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2 برای استفاده از انکودینگ GPU، از یک کدک VAAPI (به‌عنوان مثال ‘h264_vaapi’ ) استفاده کرده و یک دستگاه GPU را با گزینه -d مشخص نمایید: $ wf-recorder -f test-vaapi.mkv -c h264_vaapi -d /dev/dri/renderD128 برخی درایورها پشتیبانی از داده‌های ‘rgb0’ را برای ورودی ‘vaapi’ اعلام می‌کنند اما در واقعیت تنها از فرمت‌های سطحی (planar) yuv پشتیبانی می‌کنند. در این حالت، علاوه بر گزینه‌های ‘vaapi’ از گزینه -x yuv420p استفاده کنید تا داده‌ها پیش از ارسال به GPU به داده‌های سطحی yuv تبدیل شوند. همچنین ببینید (SEE ALSO) ffmpeg(1), pactl(1) Linux 6.12.107+deb13-amd64 July 30, 2022 Linux 6.12.107+deb13-amd64