عیب‌یابی

اگر با OpenShot مشکلی مانند توقف ناگهانی، کرش یا پیام خطا مواجه هستید، روش‌های مختلفی برای عیب‌یابی این مشکل وجود دارد.

استفاده از گزارش‌ها برای عیب‌یابی یک مشکل

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

OpenShot دو فایل گزارش را در پوشه .openshot_qt داخل پوشه خانگی شما نگه می‌دارد. در لینوکس و macOS، این مسیر به صورت ~/.openshot_qt/ نوشته می‌شود. این پوشه ممکن است در مدیریت فایل شما مخفی باشد.

دو فایل گزارش

فایل

آنچه ثبت می‌کند

openshot-qt.log

فعالیت در ویرایشگر: راه‌اندازی OpenShot، بارگذاری پروژه‌ها، تغییر تنظیمات و استفاده از رابط کاربری. معمولاً این بهترین نقطه شروع برای بررسی یک مشکل است.

libopenshot.log

فعالیت در موتور ویدئو و صدا OpenShot، بخشی که رسانه‌ها را می‌خواند و تصاویر و صداهای استفاده شده در پیش‌نمایش‌ها و ویدئوهای صادر شده را می‌سازد. گزارش دقیق موتور می‌تواند به بررسی مشکلات پخش و صادر کردن کمک کند.

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

انتخاب کنید کدام بخش از OpenShot ثبت شود

برای یافتن این دو تنظیم، به ویرایش → تنظیمات → پیشرفته بروید:

تنظیمات و گزینه‌های متناظر در ترمینال

تنظیم

آرگومان متناظر

فایل گزارش

ثبت اشکال‌زدایی رابط کاربری

--debug-ui

openshot-qt.log

ثبت اشکال‌زدایی موتور ویدئو و صدا

--debug-engine

libopenshot.log

هر دو تنظیم به طور پیش‌فرض خاموش هستند که پیام‌های خلاصه معمول را حفظ می‌کند. روشن کردن یکی، جزئیات را بلافاصله به فایل گزارش مربوطه اضافه می‌کند. این کار فایل گزارش دیگر را تغییر نمی‌دهد و پیامی به ترمینال اضافه نمی‌کند. تنظیمات تا زمانی که خودتان آنها را خاموش کنید، بین اجراها فعال باقی می‌مانند.

ثبت اشکال‌زدایی رابط کاربری نقطه شروع خوبی برای مشکلات راه‌اندازی، بارگذاری پروژه، تنظیمات یا رابط کاربری است. ثبت اشکال‌زدایی موتور ویدئو و صدا جزئیاتی درباره پردازش ویدئو و صدا اضافه می‌کند که می‌تواند به بررسی مشکلات پخش و صادر کردن کمک کند. گزارش‌های موتور می‌توانند بسیار سریع رشد کنند و ممکن است OpenShot را کند کنند. این تنظیم را کمی قبل از تکرار مشکل روشن کنید و پس از آن خاموش نمایید.

تنظیم موتور قبلاً با نام حالت اشکال‌زدایی (جزئیات بیشتر) شناخته می‌شد. تنظیم روشن/خاموش ذخیره شده آن به نام جدید منتقل شده است.

استفاده از ترمینال برای یک اجرا

ترمینال پنجره‌ای است که در آن دستورات را تایپ می‌کنید. آرگومان‌های متناظر همان جزئیات اضافی تنظیمات را فعال می‌کنند و همچنین آن را در ترمینال نمایش می‌دهند:

openshot-qt --debug-ui

این جزئیات رابط کاربری را برای یک اجرا ثبت می‌کند. گزینه‌های آشنا --debug و کوتاه‌تر -d دقیقاً همان معنی --debug-ui را دارند. برای جزئیات موتور ویدئو و صدا، استفاده کنید:

openshot-qt --debug-engine

برای جمع‌آوری هر دو نوع جزئیات با هم:

openshot-qt --debug-ui --debug-engine

مراحل ایجاد مشکل را تکرار کنید، سپس OpenShot را ببندید و گزارش‌ها را جمع‌آوری کنید. این آرگومان‌ها تنظیمات ذخیره شده شما را تغییر نمی‌دهند. شروع معمولی OpenShot به تنظیمات ثبت معمول شما بازمی‌گردد.

openshot-qt.log وقتی به حدود ۲۵ مگابایت می‌رسد، یک فایل جدید ایجاد می‌کند و سه نسخه قدیمی‌تر را نگه می‌دارد. libopenshot.log همچنان با اضافه شدن پیام‌ها رشد می‌کند. پس از ذخیره هر گزارشی که نیاز دارید، می‌توانید فایل‌های گزارش قدیمی را در حالی که OpenShot بسته است حذف کنید.

گزینه‌های دیگر خط فرمان

اکثر کاربران فقط به دو کنترل بالا نیاز دارند. گزینه‌های زیر به شما اجازه می‌دهند میزان جزئیات وارد شده در فایل‌ها یا نمایش داده شده در ترمینال را انتخاب کنید. در اینجا، کنسول به خروجی ترمینال اشاره دارد.

گزینه‌های ثبت

گزینه

کارکرد آن

--debug-ui, --debug، یا -d

ثبت اشکال‌زدایی رابط کاربری را در فایل و ترمینال فعال می‌کند.

--debug-engine

ثبت اشکال‌زدایی موتور ویدئو و صدا را در فایل و ترمینال فعال می‌کند.

--debug-file

جزئیات ویرایشگر را به openshot-qt.log اضافه می‌کند بدون اینکه جزئیات ترمینال را اضافه کند.

--debug-console

جزئیات ویرایشگر را در ترمینال اضافه می‌کند بدون اینکه جزئیات فایل را اضافه کند.

--log-level LEVEL

سطح جزئیات را برای هر دو گزارش و خروجی ترمینال آنها تنظیم می‌کند.

--log-file-level LEVEL

سطح جزئیات را برای هر دو فایل گزارش تنظیم می‌کند و تنظیمات ترمینال را تغییر نمی‌دهد.

--log-console-level LEVEL

سطح جزئیات در ترمینال را برای هر دو ویرایشگر و موتور تنظیم می‌کند، بدون تغییر تنظیمات فایل.

جایگزین LEVEL با debug برای پیام‌های دقیق یا info برای خلاصه معمولی. warning هشدارها و خطاها را نشان می‌دهد؛ error خطاها و شکست‌های بحرانی را نشان می‌دهد؛ critical فقط شکست‌های بحرانی را نشان می‌دهد. off پیام‌های عادی لاگ را متوقف می‌کند، اما تشخیص‌های خرابی موجود ممکن است هنوز نوشته شوند. نام‌های بزرگ مانند DEBUG نیز کار می‌کنند.

برای مثال، برای جمع‌آوری پیام‌های دقیق در هر دو فایل در حالی که سطح ترمینال را در حالت معمولی نگه می‌دارید:

openshot-qt --log-file-level debug

این همچنین لاگ بزرگ موتور را فعال می‌کند، بنابراین آن را به طور مختصر استفاده کنید. گزینه‌های قدیمی --debug-file و --debug-console هنوز کار می‌کنند حتی اگر در --help ذکر نشده باشند.

متغیرهای محیطی

متغیر محیطی یک تنظیم نام‌گذاری شده است که هنگام شروع برنامه به آن داده می‌شود. این‌ها هنگام اجرای OpenShot از یک اسکریپت یا زمانی که پشتیبانی از شما می‌خواهد تنظیم خاصی را امتحان کنید، مفید هستند. برای استفاده عادی نیازی به تنظیم آن‌ها ندارید.

تنظیمات اختیاری محیطی

متغیر

کنترل چه چیزی را دارد

OPENSHOT_LOG_LEVEL

جزئیات در هر دو فایل و ترمینال.

OPENSHOT_LOG_FILE_LEVEL

فقط جزئیات در هر دو فایل.

OPENSHOT_LOG_CONSOLE_LEVEL

فقط جزئیات در ترمینال، برای هر دو بخش OpenShot.

LIBOPENSHOT_LOG_LEVEL

جزئیات برای موتور ویدئو و صدا، در فایل و ترمینال آن.

LIBOPENSHOT_LOG_FILE_LEVEL

فقط جزئیات در libopenshot.log.

LIBOPENSHOT_LOG_CONSOLE_LEVEL

جزئیات موتور فقط در ترمینال.

برای مثال، این دستور ترمینال لینوکس/macOS درخواست لاگ دقیق موتور در فایل آن برای یک اجرا را می‌دهد:

LIBOPENSHOT_LOG_FILE_LEVEL=debug openshot-qt

اگر تنظیمات همپوشانی داشته باشند، گزینه‌های خط فرمان اولویت دارند، سپس متغیرهای محیطی، سپس تنظیمات ترجیحی، و در نهایت پیش‌فرض‌های معمولی. هر کنترل فقط خروجی‌ای را که توصیف می‌کند تحت تأثیر قرار می‌دهد: --debug تنظیمات موتور را لغو نمی‌کند. تغییرات موقت تنظیمات ترجیحی ذخیره شده شما را تغییر نمی‌دهد. برای دیدن اینکه آیا تنظیم دیگری آن فایل لاگ را کنترل می‌کند، روی هر کادر انتخابی نگه دارید.

در تنظیمات محیطی، مقادیر LIBOPENSHOT_ برای موتور اولویت دارند نسبت به مقادیر OPENSHOT_. در هر گروه، سطح فقط فایل یا فقط کنسول بر سطح عمومی اولویت دارد. گزینه‌های خط فرمان از همان قانون فایل/کنسول پیروی می‌کنند. سطوح متضاد خط فرمان برای همان خروجی رد می‌شوند؛ سطوح نامعتبر محیطی گزارش شده و نادیده گرفته می‌شوند.

برای اسکریپت‌های قدیمی‌تر، LIBOPENSHOT_DEBUG همچنان پیام‌های دقیق موتور را در ترمینال فعال می‌کند هر زمان که وجود داشته باشد، حتی اگر مقدار آن 0 باشد. تنظیمات سطح جدیدتر بر آن اولویت دارند. LIBOPENSHOT_LOG_FILE برای برنامه‌هایی است که موتور را جداگانه استفاده می‌کنند؛ خود OpenShot از پوشه لاگ بالا استفاده می‌کند. تغییر تنظیمات لاگ‌گیری، ترجیح گزارش خطای شما را تغییر نمی‌دهد.

عدم پاسخگویی در ویندوز ۱۱

اگر در ویندوز ۱۱ با توقف برنامه مواجه شدید، این یک مشکل شناخته‌شده در PyQt5 و ویندوز ۱۱ است که به ویژگی‌های دسترسی در Qt مربوط می‌شود. این مشکل با فشردن Ctrl+C در OpenShot ایجاد می‌شود (فقط در ویندوز ۱۱). در این حالت OpenShot پاسخگو نخواهد بود و نشت حافظه نیز رخ می‌دهد (یعنی هرچه OpenShot بیشتر پاسخگو نباشد، نشت حافظه بزرگ‌تر می‌شود تا اینکه OpenShot کرش کند یا کاربر فرآیند را متوقف کند).

راه‌حل ساده این است که در ویندوز ۱۱ از Ctrl+C استفاده نکنید و به جای آن از منوی راست‌کلیک کپی/پیست استفاده کنید. راه‌حل دیگر این است که کلید «کپی» را از Ctrl+C به کلید دیگری مانند Alt+C تغییر دهید. می‌توانید تنظیمات صفحه‌کلید را در تنظیمات OpenShot تغییر دهید. به صفحه‌کلید مراجعه کنید.

اشکال‌زدایی ویندوز با GDB

اگر در ویندوز ۱۰/۱۱ با کرش یا توقف OpenShot مواجه هستید، دستورالعمل‌های گام به گام زیر به شما کمک می‌کند علت کرش را پیدا کنید. این دستورالعمل‌ها یک ردپای پشته از کد منبع OpenShot در محل کرش نمایش می‌دهند. این اطلاعات برای تیم توسعه ما بسیار مفید است و برای پیوست به گزارش‌های باگ (برای حل سریع‌تر) بسیار کاربردی است.

نصب آخرین نسخه روزانه

قبل از اتصال اشکال‌زدای برنامه، لطفاً جدیدترین نسخه OpenShot را از https://www.openshot.org/download#daily دانلود کنید. این نسخه را در محل پیش‌فرض نصب کنید: C:\Program Files\OpenShot Video Editor\. برای دستورالعمل‌های دقیق درباره اشکال‌زدایی OpenShot در ویندوز، به این ویکی مراجعه کنید.

نصب MSYS2

نسخه ویندوز OpenShot با استفاده از محیطی به نام MSYS2 کامپایل شده است. برای اتصال اشکال‌زدای GDB به فایل اجرایی ما، openshot-qt.exe, ابتدا باید MSYS2 را نصب کنید. این مرحله فقط یک بار لازم است.

  1. دانلود و نصب MSYS2: http://www.msys2.org/

  2. اجرای خط فرمان MSYS2 MinGW x64 (برای مثال: C:\msys64\msys2_shell.cmd -mingw64)

  3. به‌روزرسانی همه بسته‌ها (دستور زیر را کپی/پیست کنید):

    pacman -Syu
    
  4. نصب اشکال‌زدای GDB (دستور زیر را کپی/پیست کنید):

    pacman -S --needed --disable-download-timeout mingw-w64-x86_64-toolchain
    

اجرای OpenShot با اشکال‌زدای GDB

اجرای خط فرمان MSYS2 MinGW x64 (برای مثال: C:\msys64\msys2_shell.cmd -mingw64)

به‌روزرسانی PATH (دستورات زیر را کپی/پیست کنید):

export PATH="/c/Program Files/OpenShot Video Editor/lib:$PATH"
export PATH="/c/Program Files/OpenShot Video Editor/lib/PyQt5:$PATH"

بارگذاری OpenShot در اشکال‌زدای GDB (دستورات زیر را کپی/پیست کنید):

cd "/c/Program Files/OpenShot Video Editor"/
gdb openshot-qt.exe

اجرای OpenShot از خط فرمان GDB (دستور زیر را کپی/پیست کنید):

run --debug

نمایشگرهای با DPI بالا / 4K

OpenShot Video Editor پشتیبانی قوی از نمایشگرهای با DPI بالا (نقاط در اینچ) ارائه می‌دهد تا اطمینان حاصل شود که رابط کاربری واضح و به راحتی روی نمایشگرهای با تنظیمات مختلف DPI قابل خواندن است. این پشتیبانی به ویژه برای نمایشگرهای 4K و سایر نمایشگرهای با وضوح بالا مفید است.

آگاهی DPI به ازای هر نمایشگر

OpenShot به صورت جداگانه برای هر نمایشگر از DPI آگاه است، به این معنی که می‌تواند مقیاس‌بندی خود را به طور پویا بسته به تنظیمات DPI هر نمایشگر متصل شده تنظیم کند. این به ارائه تجربه‌ای یکنواخت در نمایشگرهای مختلف کمک می‌کند.

مقیاس‌بندی DPI در ویندوز

در ویندوز، OpenShot عامل مقیاس‌بندی را به نزدیک‌ترین عدد صحیح گرد می‌کند تا یکپارچگی بصری حفظ شود. این کار به جلوگیری از ایجاد اشکالات بصری در رابط کاربری کمک می‌کند و عناصر رابط را واضح و مرتب نگه می‌دارد. به دلیل این گرد کردن، برخی گزینه‌های مقیاس‌بندی ممکن است منجر به فونت‌ها و عناصر رابط بزرگ‌تر از حد انتظار شوند.

  • مقیاس‌بندی ۱۲۵٪ به ۱۰۰٪ گرد می‌شود

  • مقیاس‌بندی ۱۵۰٪ به ۲۰۰٪ گرد می‌شود

راه‌حل‌هایی برای تنظیم دقیق‌تر

اگرچه گرد کردن به حفظ رابط کاربری تمیز کمک می‌کند، اما راه‌حل‌هایی برای کاربرانی که نیاز به کنترل دقیق‌تر بر مقیاس‌بندی دارند وجود دارد. این روش‌ها به دلیل احتمال ایجاد اشکالات بصری توصیه نمی‌شوند:

  • QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough

    • تنظیم این متغیر محیطی می‌تواند گرد کردن را غیرفعال کرده و امکان مقیاس‌بندی دقیق‌تر را فراهم کند.

    • توجه: این ممکن است باعث ایجاد اشکالات بصری شود، به ویژه در جدول زمانی، و توصیه نمی‌شود.

  • QT_SCALE_FACTOR=1.25 (یا مقدار مشابه)

    • تنظیم دستی عامل مقیاس می‌تواند تنظیمات دقیق‌تری برای فونت و مقیاس‌بندی رابط کاربری فراهم کند.

    • این مورد همچنین می‌تواند از طریق تنظیمات (مقیاس رابط کاربری) تنظیم شود، اما در ویندوز با مقیاس‌های کسری ممکن است مشکلاتی در خطوط و حاشیه‌ها پیش بیاید.

    • توجه: این روش نیز ممکن است باعث ایجاد اشکالات بصری شود و استفاده از OpenShot را دشوارتر کند.

برای اطلاعات بیشتر درباره تنظیم این متغیرهای محیطی، لطفاً به https://github.com/OpenShot/openshot-qt/wiki/OpenShot-UI-too-large مراجعه کنید.