| GPU-SCREEN-RECORDER(1) | GPU Screen Recorder Manual | GPU-SCREEN-RECORDER(1) |
نام (NAME)
gpu-screen-recorder - سریعترین ابزار ضبط صفحه نمایش برای لینوکس
خلاصه دستور (SYNOPSIS)
gpu-screen-recorder -w window_id|monitor|focused|portal|region|v4l2_device_path [گزینهها] -o output_file
gpu-screen-recorder --help | --version | --info | --list-capture-options | --list-monitors | --list-v4l2-devices | --list-audio-devices | --list-application-audio
توضیحات (DESCRIPTION)
gpu-screen-recorder سریعترین ابزار ضبط صفحه نمایش برای لینوکس است. این برنامه منحصراً از پردازنده گرافیکی (GPU) برای ضبط صفحه استفاده میکند تا تأثیر منفی بر کارایی و عملکرد سیستم را به حداقل برساند. این ابزار از ضبط ویدیو، پخش زنده (استریمینگ)، بازپخش آنی (مشابه قابلیت ShadowPlay در NVIDIA) و ثبت اسکرینشات پشتیبانی میکند. این برنامه در هر دو محیط X11 و Wayland با کارتهای گرافیک AMD، Intel و NVIDIA کار میکند.
ویژگیهای کلیدی شامل موارد زیر است:
- کدگذاری با شتابدهنده سختافزاری GPU با استفاده از کدکهای H264، HEVC، AV1، VP8 یا VP9
- پشتیبانی از ضبط HDR (شامل HEVC HDR و AV1 HDR)
- بافر بازپخش آنی (ضبط N ثانیه گذشته)
- قابلیتهای پخش زنده (استریمینگ)
- ضبط صدا از دستگاهها و برنامهها (برای صدای برنامهها به PipeWire نیاز است)
- سیستم افزونه برای روکش گرافیکی سفارشی (Overlay)
- حداقل افت کارایی در مقایسه با ابزارهای سنتی ضبط صفحه نمایش
گزینهها (OPTIONS)
گزینههای تصویربرداری (Capture Options)
- -w window_id|monitor|focused|portal|region|v4l2_device_path
- مشخص کردن موردی که باید ضبط شود. قالبها:
- window - ضبط یک پنجره خاص (با استفاده از شناسه پنجره) (فقط در X11)
- screen - ضبط اولین مانیتور یافتشده
- screen-direct - فقط برای NVIDIA X11، جهت پشتیبانی از VRR/G-SYNC (به دلیل مشکلات درایور توصیه نمیشود)
- focused - ضبط پنجرهای که اکنون فوکوس روی آن است (فقط در X11) (همراه با گزینه -s استفاده شود)
- portal - استفاده از xdg-desktop-portal با PipeWire (فقط در Wayland)
- region - ضبط یک ناحیه مشخص (همراه با گزینه -region استفاده شود)
- نام مانیتور (مانند DP-1) - ضبط مانیتور مشخصشده
- مسیر
دستگاه V4L2
(مانند /dev/video0) -
ضبط از
دستگاه
دوربین (V4L2).
زمانی که GPU Screen Recorder در حال استفاده از دوربین است، برنامههای دیگر نمیتوانند از دوربین استفاده کنند و در صورتی که برنامه دیگری در حال حاضر از دوربین استفاده کند، ممکن است GPU Screen Recorder نتواند به آن دسترسی داشته باشد.
- ترکیب منابع با | (مانند monitor:screen|v4l2:/dev/video0)
برای مشاهده فهرست منابع تصویربرداری موجود، دستور زیر را اجرا کنید: --list-capture-options
با جدا
کردن منبع
تصویربرداری
با کاراکتر
; میتوان
گزینههای
اضافی را به
هر منبع
ارسال کرد؛
به عنوان
مثال: screen;x=50;y=50.
این
گزینهها
برای تمام
منابع
تصویربرداری
در دسترس
هستند
(اختیاری):
- x - موقعیت افقی (X) بر حسب پیکسل. اگر عدد با % خاتمه یابد، موقعیت X را نسبت به عرض ویدیو تنظیم میکند (درصد عدد صحیح که 100 = 100% است)
- y - موقعیت عمودی (Y) بر حسب پیکسل. اگر عدد با % خاتمه یابد، موقعیت Y را نسبت به ارتفاع ویدیو تنظیم میکند (درصد عدد صحیح که 100 = 100% است)
- width - عرض بر
حسب پیکسل.
اگر عدد با %
خاتمه
یابد، عرض
را نسبت به
عرض ویدیو
تنظیم
میکند
(درصد عدد
صحیح که 100 = 100%
است).
مقدار 0 به این معنی است که منبع تصویربرداری مقیاسبندی نشود و در عوض از عرض اصلی استفاده شود.
- height - ارتفاع
بر حسب
پیکسل. اگر
عدد با %
خاتمه
یابد،
ارتفاع را
نسبت به
ارتفاع
ویدیو
تنظیم
میکند
(درصد عدد
صحیح که 100 = 100%
است).
مقدار 0 به این معنی است که منبع تصویربرداری مقیاسبندی نشود و در عوض از ارتفاع اصلی استفاده شود.
- halign - تراز
افقی، باید
یکی از
مقادیر start،
center یا end
باشد.
در صورت استفاده از یک منبع تصویربرداری، بهطور پیشفرض برابر با center است؛ در غیر این صورت بهطور پیشفرض روی start تنظیم میشود.
- valign - تراز
عمودی،
باید یکی از
مقادیر start،
center یا end
باشد.
در صورت استفاده از یک منبع تصویربرداری، بهطور پیشفرض برابر با center است؛ در غیر این صورت بهطور پیشفرض روی start تنظیم میشود.
- hflip - تعیین اینکه آیا منبع باید بهصورت افقی معکوس (آینهای) شود یا خیر؛ باید true یا false باشد. بهطور پیشفرض روی false تنظیم است.
- vflip - تعیین اینکه آیا منبع باید بهصورت عمودی معکوس شود یا خیر؛ باید true یا false باشد. بهطور پیشفرض روی false تنظیم است.
گزینههای اضافی موجود برای منابع دوربین (V4L2) (اختیاری):
- pixfmt - فرمت پیکسل، باید یکی از مقادیر auto، yuyv یا mjpeg باشد. بهطور پیشفرض روی auto تنظیم است.
- camera_fps - نرخ
فریم (fps)
دوربین.
باید با نرخ
فریم
دوربین
برگرداندهشده
در --info یا --list-v4l2-devices
برای آن
دستگاه
مطابقت
داشته باشد.
مقدار 0 به معنای استفاده از بهترین گزینه موجود است.
- camera_width - عرض
دوربین بر
حسب پیکسل.
باید با عرض
دوربین
برگرداندهشده
در --info یا --list-v4l2-devices
برای آن
دستگاه
مطابقت
داشته باشد.
مقدار 0 به معنای استفاده از بهترین گزینه موجود است.
- camera_height - ارتفاع
دوربین بر
حسب پیکسل.
باید با
ارتفاع
دوربین
برگرداندهشده
در --info یا --list-v4l2-devices
برای آن
دستگاه
مطابقت
داشته باشد.
مقدار 0 به معنای استفاده از بهترین گزینه موجود است.
- -region WxH+X+Y
- مشخص کردن
ناحیه برای
ضبط هنگام
استفاده از
-w region. قالب به
صورت عرض x
ارتفاع +
آفست X + آفست Y
است. برای
ضبط کل
مانیتوری
که این
موقعیت را
در بر دارد،
عرض و
ارتفاع را
روی 0 قرار
دهید.
این گزینه با ابزارهایی مانند slop (در X11) و slurp (در Wayland) سازگار است.
- -c container_format
- فرمت کانتینر (mp4، mkv، flv، webm). مقدار پیشفرض از پسوند نام فایل در -o تعیین میشود.
- -s WxH
- محدودیت وضوح خروجی (مانند 1920x1080). محتوای ضبطشده برای جا گرفتن در این وضوح با حفظ نسبت تصویر مقیاسبندی میشود و ابعاد ویدیو برای تناسب با محتوای مقیاسشده کاهش مییابد. برای وضوح اصلی از 0x0 استفاده کنید. برای -w focused الزامی است (که در آن وضوح ویدیو دقیقاً برابر با همین مقدار خواهد بود).
- -f fps
- نرخ فریم (پیشفرض: 60). در حالت نرخ فریم متغیر، این مقدار حداکثر FPS است.
- -cursor yes|no
- ضبط نشانگر ماوس (پیشفرض: yes).
- -restore-portal-session yes|no
- بازیابی نشست قبلی پرتال (همراه با گزینه -w portal استفاده میشود، پیشفرض: no).
گزینههای صوتی (Audio Options)
- -a audio_source
- دستگاه صوتی یا برنامهای که صدای آن ضبط میشود. میتواند چندین بار مشخص شود. قالبها:
- default_output - دستگاه خروجی پیشفرض
- default_input - دستگاه ورودی پیشفرض
- device:name - دستگاه مشخص
- app:name - صدای برنامه (بدون حساسیت به بزرگی و کوچکی حروف)
- app-inverse:name - تمام برنامهها به جز برنامه مشخصشده
- ترکیب منابع با | (مانند default_output|app:firefox)
برای
مشاهده
فهرست
دستگاههای
صوتی
موجود،
دستور زیر
را اجرا
کنید: --list-audio-devices
برای
مشاهده
فهرست
برنامههای
موجود جهت
ضبط صدا،
دستور زیر
را اجرا
کنید: --list-application-audio
- -ac aac|opus|flac
- کدک صوتی (پیشفرض: opus برای mp4/mkv، در غیر این صورت aac). کدک FLAC موقتاً غیرفعال است.
- -ab bitrate
- بیتریت صدا بر حسب kbps (پیشفرض: 128 برای opus/flac، و 160 برای aac). مقدار 0 = خودکار.
گزینههای کیفیت ویدیو (Video Quality Options)
- -k codec
- کدک ویدیو:
auto, h264, hevc, av1, vp8, vp9,
hevc_hdr, av1_hdr, hevc_10bit, av1_10bit,
h264_vulkan, hevc_vulkan, hevc_10bit_vulkan,
av1_vulkan, av1_hdr_vulkan, av1_10bit_vulkan
گزینههای HDR در X11 یا ضبط از پرتال در دسترس نیستند. ضبط ۱۰ بیتی پدیده نواربندی رنگ (Banding) را کاهش میدهد، اما ممکن است به درستی توسط تمام پخشکنندههای ویدیو پشتیبانی نشود.
گزینههای کدک Vulkan آزمایشی هستند و ممکن است به دلیل مشکلات درایور GPU در سیستم شما به درستی کار نکنند.
استفاده از کدکهای Vulkan ممکن است در درایورهای قدیمیتر NVIDIA به عملکرد بهتر در بازیها منجر شود، زیرا رمزگذاری ویدیویی Vulkan از مشکلی به نام "cuda p2 state" رنج نمیبرد
که در آن هنگام استفاده از nvenc (کدکهای ویدیویی معمول در NVIDIA)، فرکانس کاری GPU کاهش مییابد.(پیشفرض: auto ← h264).
- -q quality
- پریست کیفیت (medium، high، very_high، ultra) برای حالت QP/VBR، یا بیتریت (kbps) برای حالت CBR (پیشفرض: very_high).
- -bm auto|qp|vbr|cbr
- حالت
بیتریت
(پیشفرض: auto ←
qp). حالت CBR برای
بافر
بازپخش و
پخش زنده
توصیه
میشود.
حالت QP به معنای ضبط با کیفیت ثابت حتی در صحنههای پرتحرک است، در حالی که VBR و CBR به معنای ضبط با حجم ثابت هستند.
- -fm cfr|vfr|content
- حالت نرخ
فریم: cfr
(ثابت)، vfr
(متغیر)، یا
content (منطبق بر
محتوا)
(پیشفرض: vfr).
حالت content فقط
در X11 یا ضبط
پرتال در
دسترس است.
حالت content (با -fm content) ویدیو را با محتوای در حال ضبط همگام میکند و برای دستیابی به روانترین ویدیو در حالتی که بازی با نرخ فریم برابر یا کمتر از نرخ فریم هدف اجرا میشود، توصیه میشود.
حالت نرخ فریم ثابت (با -fm cfr) تضمین میکند که نرخ فریم ویدیو در سرتاسر فایل همانطور که با گزینه -f تنظیم شده ثابت بماند. این حالت ممکن است برای برخی از نرمافزارهای ویرایش ویدیو مورد نیاز باشد.
این گزینه توصیه نمیشود؛ زیرا برای مثال اگر قصد ضبط با نرخ ۶۰ فریم بر ثانیه را داشته باشید و بازی سنگینی انجام دهید که با کمتر از ۶۰ فریم بر ثانیه اجرا میشود، ضبط نیز ممکن است با همان نرخ فریم پایین تصویربرداری کند،
که انکودر را دچار اضافه بار کرده و ممکن است در نهایت ضبط با نرخ ۱ تا ۲ فریم بر ثانیه انجام شود و توانایی بازیابی نداشته باشد.
در این شرایط، سعی کنید در حالت نرخ فریم متغیر (با -fm vfr) در قالب فایل mkv ضبط کنید، زیرا نرمافزار Kdenlive از ویدیوهای با نرخ فریم متغیر در صورت قرار داشتن در کانتینر mkv پشتیبانی میکند. - -cr limited|full
- دامنه رنگ (پیشفرض: limited). دامنه کامل (full) ممکن است در برخی پخشکنندههای ویدیو یا وبسایتها مشکل ایجاد کند.
- -tune performance|quality
- تنظیم بهینهسازی رمزگذاری (پیشفرض: performance). در حال حاضر فقط برای NVIDIA.
- -keyint seconds
- فاصله فریمهای کلیدی (Keyframe) بر حسب ثانیه (پیشفرض: 2.0). بر دقت پرش زمانی در ویدیو تأثیر میگذارد.
- -encoder gpu|cpu
- دستگاه رمزگذاری (پیشفرض: gpu). رمزگذاری با CPU فقط برای H264 است.
- -fallback-cpu-encoding yes|no
- بازگشت به رمزگذاری CPU در صورت در دسترس نبودن شتابدهنده سختافزاری GPU (پیشفرض: no).
گزینههای بافر بازپخش (Replay Buffer Options)
- -r seconds
- مدت زمان بافر بازپخش (۲ تا ۸۶۴۰۰ ثانیه). هنگام تنظیم، ویدیو تنها با دستور کاربر ذخیره میشود.
- -replay-storage ram|disk
- محل ذخیرهسازی بافر (پیشفرض: ram). حالت دیسک ممکن است طول عمر حافظه SSD را کاهش دهد.
- -restart-replay-on-save yes|no
- پاک کردن بافر پس از ذخیره بازپخش (پیشفرض: no).
- -df yes|no
- سازماندهی بازپخشها در پوشههای مبتنی بر تاریخ (پیشفرض: no).
گزینههای پیشرفته (Advanced Options)
- -p plugin.so
- بارگذاری افزونه (فایل .so). میتواند چندین بار مشخص شود.
- -sc script_path
- اسکریپتی که پس از ذخیره ویدیو اجرا میشود. مسیر فایل و نوع آن ("regular"، "replay"، "screenshot") را دریافت میکند.
- -portal-session-token-filepath path
- فایل توکن نشست پرتال (پیشفرض: ~/.config/gpu-screen-recorder/restore_token).
- -ffmpeg-opts options
- آرگومانهای
اضافی برای
ارسال به FFmpeg
برای فایل
به صورت
فهرستی از
جفتهای
کلید-مقدار
در قالب
"key=value;key=value"،
برای مثال: -ffmpeg-opts "hls_list_size=3;hls_time=1;hls_flags=delete_segments".
نکته: این تنظیمات گزینههای همنام تعیینشده توسط GPU Screen Recorder را بازنویسی میکنند. - -ffmpeg-video-opts options
- آرگومانهای
اضافی برای
ارسال به FFmpeg
برای ویدیو
به صورت
فهرستی از
جفتهای
کلید-مقدار
در قالب
"key=value;key=value"،
برای مثال: -ffmpeg-video-opts "codec=cabac;rc_mode=CQP;qp=16".
نکته: این تنظیمات گزینههای همنام تعیینشده توسط GPU Screen Recorder را بازنویسی میکنند. - -ffmpeg-audio-opts options
- آرگومانهای
اضافی برای
ارسال به FFmpeg
برای صدا به
صورت
فهرستی از
جفتهای
کلید-مقدار
در قالب
"key=value;key=value"،
برای مثال: -ffmpeg-audio-opts "aac_coder=fast;aac_pce=true".
نکته: این تنظیمات گزینههای همنام تعیینشده توسط GPU Screen Recorder را بازنویسی میکنند. - -auth token
- توکن حامل (Bearer)
اختیاری
جهت احراز
هویت هنگام
پخش زنده،
برای مثال
هنگام
استفاده از
پروتکل whip
(گزینه -c whip).
برای سرورهایی با احراز هویت نام کاربری/رمز عبور، توکن میتواند به صورت "username:password" تنظیم شود. استریم با پروتکل Whip نیازمند نسخه ۸.۰ یا بالاتر FFmpeg است.
همچنین میتوان توکن را در متغیر محیطی GSR_AUTH قرار داد تا در خط فرمان فرآیند نمایش داده نشود. گزینه -auth بر متغیر محیطی اولویت دارد.
هنگام استریم با whip، گزینه ماکسر ts_buffer_size به طور پیشفرض روی 4194304 تنظیم است. این مقدار را میتوان با -ffmpeg-opts "ts_buffer_size=<value>" بازنویسی کرد.
هسته سیستمعامل (کرنل) اندازه بافر را بر اساس متغیر sysctl مربوط به net.core.wmem_max محدود میکند (که معمولاً فقط حدود ۲۰۸ کیلوبایت است). اگر استریم whip با خطای "UDP send blocked" متوقف شد، این مقدار را افزایش دهید؛ برای مثال: sysctl -w net.core.wmem_max=8388608 - -gl-debug yes|no
- خروجی خطایابی (دیباگ) OpenGL (پیشفرض: no).
- -v yes|no
- چاپ اطلاعات FPS و آسیب دیدگی تصویر (damage info) (پیشفرض: yes).
- -low-power yes|no
- اجرا در
حالت
کممصرف.
این گزینه
در حال حاضر
تنها بر
کارتهای AMD
تأثیر دارد
(چون این
مسئله فقط
در AMD وجود
دارد) و به GPU
اجازه
میدهد
هنگام ضبط
به حالت
مصرف توان
کمتر برود
(پیشفرض: no).
تنظیم این گزینه روی yes ممکن است همیشه به دلیل مشکلات درایور AMD ایدهآل نباشد؛ جایی که پس از پخش یک ویدیو با VAAPI در سیستم، عملکرد رمزگذاری ویدیو نیز کاهش مییابد که بر GPU Screen Recorder اثر منفی میگذارد.
توصیه میشود هنگام فعال بودن این گزینه، از گزینه -fm content نیز استفاده کنید تا فریمها تنها زمانی که محتوای صفحه بهروز میشود رمزگذاری شوند و در زمان بیکاری سیستم، مصرف پردازنده گرافیکی و انکودر ویدیو کاهش یابد. - -exclude-metadata yes|no
- حذف فرادادههای (متادیتا) شخصی از فایل ویدیو، مانند عنوان ترک صوتی که به طور پیشفرض از نام دستگاه صوتی تشکیل شده است (پیشفرض: no).
- -write-first-frame-ts yes|no
- در صورت
فعال بودن،
یک فایل
برچسب
زمانی (Timestamp) با
پسوند
اضافی .ts در
کنار
ویدیوی
خروجی
ایجاد
میکند که
شامل موارد
زیر است:
monotonic_microsec realtime_microsec <monotonic_microsec> <realtime_microsec>
(پیشفرض: no). برای پخش زنده و زمانی که خروجی پایپ میشود نادیده گرفته میشود. - -ipc socket_path
- شنود دستورات روی یک سوکت یونیکس در مسیر socket_path به جای پذیرش صرف سیگنالها. سوکت با شروع به کار GPU Screen Recorder ایجاد و هنگام خروج برنامه حذف میشود. برای مشاهده پروتکل به بخش IPC مراجعه کنید. هنگام ثبت اسکرینشات تأثیری ندارد.
گزینههای خروجی (Output Options)
- -o output
- مسیر فایل خروجی (یا پوشه در حالت بازپخش). به جز در حالت خروجی به stdout الزامی است.
- -ro directory
- پوشه خروجی برای ضبطهای معمولی در حین حالت بازپخش/استریم.
دستورات اطلاعاتی (Information Commands)
- --help
- نمایش پیام راهنما.
- --version
- نمایش نسخه (5.10.2).
- --info
- نمایش اطلاعات سیستم (کدکها، گزینههای تصویربرداری).
- --list-capture-options
- فهرست کردن منابع تصویربرداری موجود (پنجره، مانیتورها، پرتال، مسیر دستگاه v4l2).
- --list-monitors
- فهرست کردن مانیتورهای موجود.
- --list-v4l2-devices
- فهرست کردن دستگاههای دوربین موجود (V4L2).
- --list-audio-devices
- فهرست کردن دستگاههای صوتی موجود.
- --list-application-audio
- فهرست کردن برنامههای موجود برای ضبط صدا.
سیگنالها (SIGNALS)
برنامه GPU Screen Recorder را میتوان از طریق سیگنالها کنترل کرد:
- SIGINT (Ctrl+C)
- توقف و ذخیره ضبط (توقف بدون ذخیره در حالت بازپخش).
- SIGUSR1
- ذخیره بازپخش (فقط در حالت بازپخش).
- SIGUSR2
- مکث/ادامه ضبط (برای استریم/بازپخش کاربرد ندارد).
- SIGRTMIN
- شروع/توقف ضبط معمولی در حین بازپخش/استریم.
- SIGRTMIN+1
- ذخیره ۱۰ ثانیه گذشته (حالت بازپخش).
- SIGRTMIN+2
- ذخیره ۳۰ ثانیه گذشته (حالت بازپخش).
- SIGRTMIN+3
- ذخیره ۶۰ ثانیه گذشته (حالت بازپخش).
- SIGRTMIN+4
- ذخیره ۵ دقیقه گذشته (حالت بازپخش).
- SIGRTMIN+5
- ذخیره ۱۰ دقیقه گذشته (حالت بازپخش).
- SIGRTMIN+6
- ذخیره ۳۰ دقیقه گذشته (حالت بازپخش).
برای ارسال سیگنالها از pkill استفاده کنید (مانند pkill -SIGUSR1 -f "^gpu-screen-recorder").
ارتباط بینفرآیندی (IPC)
هنگامی که گزینه -ipc استفاده میشود، GPU Screen Recorder همچنین روی یک سوکت دامنه یونیکس به دستورات گوش میدهد. این قابلیت همان امکانات کنترلی سیگنالها را فراهم میکند، با این تفاوت که بازپخش را میتوان با هر تعداد ثانیه دلخواه ذخیره کرد. این سوکت تنها توسط کاربری که GPU Screen Recorder را اجرا کرده قابل استفاده است و با خروج برنامه حذف میشود.
دستور gsr-cli(1) برنامهای است که این دستورات را ارسال کرده و پاسخ را گزارش میدهد؛ بنابراین پروتکل زیر تنها توسط برنامههایی نیاز به پیادهسازی دارد که قصد ارتباط مستقیم با سوکت را دارند.
درخواستها و پاسخها اشیاء JSON هستند که با خط جدید (newline) خاتمه مییابند. به هر درخواست یک پاسخ داده میشود. یک درخواست دارای این فیلدها است:
- id
- عددی که شناسه درخواست است. پاسخ مربوط به این درخواست دارای همین id خواهد بود.
- name
- رشتهای حاوی نام درخواست.
- data
- اختیاری است؛ نوع آن به نوع درخواست بستگی دارد.
یک پاسخ دارای این فیلدها است:
- id
- شناسه درخواستی که این پیام پاسخ آن است، یا 0 در صورتی که درخواست شناسه معتبری نداشته باشد.
- result
- یکی از دو مقدار ok یا error.
- data
- اختیاری است. برای نتیجه error یک رشته شامل شرح خطا است. برای نتیجه ok در دستورات stop، save-replay یا stop-replay-recording یک رشته حاوی مسیر فایل ذخیرهشده است.
درخواستهای stop، save-replay و stop-replay-recording یک فایل را ذخیره میکنند و پاسخ آنها زمانی ارسال میشود که فایل ذخیره شده و اسکریپت تعیینشده با گزینه -sc اجرا شده باشد. سایر درخواستها به محض پذیرفته شدن پاسخ داده میشوند.
درخواستهای زیر در دسترس هستند:
- stop
- توقف و ذخیره ضبط (توقف بدون ذخیره در حالت بازپخش). پاسخ شامل مسیر فایل ذخیرهشده است، مگر در حالت بازپخش که فایلی ذخیره نمیشود.
- save-replay
- ذخیره بازپخش (فقط در حالت بازپخش). فیلد data یک شیء با این فیلدهای اختیاری است:
- seconds
- تعداد ثانیهها برای ذخیره، که باید بزرگتر از 0 باشد.
- restart-replay
- مقدار true/false، که گزینه -restart-replay-on-save را برای این ذخیرهسازی بازنویسی میکند. همانند آن گزینه، بافر بازپخش تنها زمانی پاک میشود که کل بافر بازپخش ذخیره گردد.
- زمانی که data یا seconds مشخص نشود یا null باشد، کل بافر بازپخش ذخیره میشود. پاسخ حاوی مسیر فایل ذخیرهشده است.
- toggle-pause
- مکث/ادامه ضبط (برای استریم/بازپخش کاربرد ندارد).
- set-paused
- مکث/ادامه ضبط (برای استریم/بازپخش کاربرد ندارد). فیلد data باید برای مکث true و برای ادامه false باشد. برخلاف toggle-pause اگر ضبط از قبل در حالت مکث/ادامه باشد، این دستور با خطا مواجه نمیشود.
- toggle-replay-recording
- شروع/توقف ضبط معمولی در حین بازپخش/استریم، که نیازمند گزینه -ro است.
- start-replay-recording
- شروع ضبط معمولی در حین بازپخش/استریم، که نیازمند گزینه -ro است. اگر ضبطی از قبل در حال اجرا باشد، کاری انجام نمیدهد.
- stop-replay-recording
- توقف ضبط معمولی در حال اجرا در حین بازپخش/استریم. اگر ضبطی در حال اجرا نباشد، با خطا مواجه میشود. پاسخ شامل مسیر فایل ذخیرهشده است.
مثال:
gpu-screen-recorder -w screen -f 60 -c mp4 -r 60 -o ~/Videos -ipc "$XDG_RUNTIME_DIR/gsr.sock" &
echo '{"id":1,"name":"save-replay","data":{"seconds":30}}' | socat - "UNIX-CONNECT:$XDG_RUNTIME_DIR/gsr.sock"
{"id":1,"result":"ok","data":"/home/user/Videos/Replay_2026-08-05_14-04-22.mp4"}
مثالها (EXAMPLES)
ضبط مانیتور با نرخ ۶۰ فریم بر ثانیه به همراه صدای دسکتاپ:
gpu-screen-recorder -w screen -f 60 -a default_output -o video.mp4
ضبط مانیتور با نرخ ۶۰ فریم بر ثانیه به همراه صدای دسکتاپ و میکروفون:
gpu-screen-recorder -w screen -f 60 -a "default_output|default_input" -o video.mp4
ضبط پنجره مشخص (فقط در X11):
gpu-screen-recorder -w $(xdotool selectwindow) -f 60 -o video.mp4
بازپخش آنی (۶۰ ثانیه گذشته):
gpu-screen-recorder -w screen -c mp4 -r 60 -o ~/Videos
بازپخش آنی با نرخ فریم ثابت (توصیهشده برای مصرف حافظه رم پیشبینیپذیر):
gpu-screen-recorder -w screen -c mp4 -r 60 -bm cbr -q 40000 -o ~/Videos
ضبط ناحیه با استفاده از slop:
gpu-screen-recorder -w $(slop) -o video.mp4
ضبط ناحیه با استفاده از slurp:
gpu-screen-recorder -w $(slurp -f "%wx%h+%x+%y") -o video.mp4
بازپخش آنی و اجرای یک اسکریپت هنگام ذخیره بازپخش:
gpu-screen-recorder -w screen -c mp4 -r 60 -sc ./script.sh -o ~/Videos
استریم در Twitch با حالت بیتریت ثابت:
gpu-screen-recorder -w screen -c flv -a default_output -bm cbr -q 8000 -o "rtmp://live.twitch.tv/app/stream_key"
ثبت اسکرینشات:
gpu-screen-recorder -w screen -o screenshot.jpg
ضبط صفحه و دوربین:
gpu-screen-recorder -w "screen|/dev/video0" -o video.mp4
ضبط صفحه و دوربین (دوربین در پایین سمت راست قرار گرفته و افقی معکوس شده است):
gpu-screen-recorder -w "screen|/dev/video0;halign=end;valign=end;hflip=true;width=30%;height=30%" -o video.mp4
ضبط دو مانیتور در کنار هم (با فرض اینکه مانیتور اول وضوح 1920x1080 دارد):
gpu-screen-recorder -w "DP-1|DP-2;x=1920" -o video.mp4
استریم با پروتکل whip به همراه کلید احراز هویت:
gpu-screen-recorder -w screen -bm cbr -q 3500 -auth "streamtest" -c whip -o https://b.siobud.com/api/whip
فایلها (FILES)
- ~/.config/gpu-screen-recorder/gpu-screen-recorder.env
- متغیرهای محیطی برای سرویس systemd (اختیاری).
- /usr/lib/modprobe.d/gsr-nvidia.conf
- رفع مشکل تعلیق/ازسرگیری (Suspend/Resume) در NVIDIA.
- ~/.config/gpu-screen-recorder/restore_token
- محل ذخیره توکن نشست پرتال (مسیر پیشفرض).
نکات (TIPS)
- برخی
نرمافزارهای
ویرایش
ویدیو از
ویدیوها در
حالت نرخ
فریم متغیر
پشتیبانی
نمیکنند.
برای دور زدن این مشکل، کانتینر ویدیو را به .mkv تغییر دهید یا در حالت نرخ فریم ثابت ضبط کنید.
- نرخ فریم متغیر ممکن است در برخی پخشکنندههای ویدیو مشکل ایجاد کند (از MPV استفاده کنید).
- فرمت H.265/HEVC در مرورگرها/دیسکورد پشتیبانی نمیشود (برای اشتراکگذاری از H264 استفاده کنید).
- برخی توزیعها کدکهای سختافزاری را غیرفعال میکنند (از نسخه Flatpak استفاده کنید).
- برای بافر بازپخش از حالت CBR (با -bm cbr ) استفاده کنید تا مصرف حافظه RAM کنترل شود.
نکات عملکردی (PERFORMANCE TIPS)
- ویدیوها را روی SSD ذخیره کنید (حافظه HDD ممکن است بیش از حد کند باشد).
- سایر برنامههای ضبط صفحه را ببندید (از جمله OBS در حالت بیکار).
مشکلات شناختهشده (KNOWN ISSUES)
- در NVIDIA: قابلیت CUDA پس از تعلیق (Suspend) از کار میافتد (وصله gsr-nvidia.conf را نصب کنید).
- در AMD: احتمال ایجاد خطوط سیاه در ویدیوی خروجی با HEVC/AV1 (از H264 یا FFmpeg نسخه ۸ یا بالاتر استفاده کنید).
نویسندگان (AUTHORS)
توسعهیافته توسط dec05eba و مشارکتکنندگان.
گزارش باگها (REPORTING BUGS)
گزارش
اشکالات به:
dec05eba@protonmail.com.
مشاهده
اطلاعات
بیشتر
درباره
گزارش
اشکالات در
وبسایت
gpu-screen-recorder: https://git.dec05eba.com/?p=about
لطفاً پیش
از گزارش
باگ، بخش FAQ
در فایل README را
بررسی کنید:
https://git.dec05eba.com/gpu-screen-recorder/about
اشکال ممکن
است قبلاً
گزارش شده
باشد یا به
gpu-screen-recorder مرتبط
نباشد
(مانند
مشکلات
درایور).
حق نشر (COPYRIGHT)
حق نشر © dec05eba. تحت مجوز GPL-3.0-only.
همچنین ببینید (SEE ALSO)
صفحه
اصلی
پروژه
فایل
راهنمای
پروژه (README) با
اطلاعات
بیشتر
نسخه
رابط
گرافیکی GTK
(منسوخشده)
رابط
کاربری به
سبک ShadowPlay
xdotool(1)، slop(1)، slurp(1)
| 2026-08-18 | 6.0.1 |