عیبیابی
اگر با OpenShot مشکلی مانند توقف ناگهانی، کرش یا پیام خطا مواجه هستید، روشهای مختلفی برای عیبیابی این مشکل وجود دارد.
استفاده از گزارشها برای عیبیابی یک مشکل
گزارش یک فایل متنی است که فعالیتهای OpenShot را همراه با هشدارها و خطاها ثبت میکند. این فایلها میتوانند به تیم پشتیبانی در درک مشکل کمک کنند، حتی زمانی که پیغام خطایی روی صفحه نمایش داده نمیشود.
OpenShot دو فایل گزارش را در پوشه .openshot_qt داخل پوشه خانگی شما نگه میدارد. در لینوکس و macOS، این مسیر به صورت ~/.openshot_qt/ نوشته میشود. این پوشه ممکن است در مدیریت فایل شما مخفی باشد.
فایل |
آنچه ثبت میکند |
|---|---|
|
فعالیت در ویرایشگر: راهاندازی OpenShot، بارگذاری پروژهها، تغییر تنظیمات و استفاده از رابط کاربری. معمولاً این بهترین نقطه شروع برای بررسی یک مشکل است. |
|
فعالیت در موتور ویدئو و صدا OpenShot، بخشی که رسانهها را میخواند و تصاویر و صداهای استفاده شده در پیشنمایشها و ویدئوهای صادر شده را میسازد. گزارش دقیق موتور میتواند به بررسی مشکلات پخش و صادر کردن کمک کند. |
این فایلها بخشهای مختلفی از همان برنامه را ثبت میکنند. هنگام گزارش یک مشکل، در صورت امکان هر دو فایل را ضمیمه کنید. نیازی نیست که خودتان هر خط را بفهمید.
انتخاب کنید کدام بخش از OpenShot ثبت شود
برای یافتن این دو تنظیم، به ویرایش → تنظیمات → پیشرفته بروید:
تنظیم |
آرگومان متناظر |
فایل گزارش |
|---|---|---|
ثبت اشکالزدایی رابط کاربری |
|
|
ثبت اشکالزدایی موتور ویدئو و صدا |
|
|
هر دو تنظیم به طور پیشفرض خاموش هستند که پیامهای خلاصه معمول را حفظ میکند. روشن کردن یکی، جزئیات را بلافاصله به فایل گزارش مربوطه اضافه میکند. این کار فایل گزارش دیگر را تغییر نمیدهد و پیامی به ترمینال اضافه نمیکند. تنظیمات تا زمانی که خودتان آنها را خاموش کنید، بین اجراها فعال باقی میمانند.
ثبت اشکالزدایی رابط کاربری نقطه شروع خوبی برای مشکلات راهاندازی، بارگذاری پروژه، تنظیمات یا رابط کاربری است. ثبت اشکالزدایی موتور ویدئو و صدا جزئیاتی درباره پردازش ویدئو و صدا اضافه میکند که میتواند به بررسی مشکلات پخش و صادر کردن کمک کند. گزارشهای موتور میتوانند بسیار سریع رشد کنند و ممکن است 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 بسته است حذف کنید.
گزینههای دیگر خط فرمان
اکثر کاربران فقط به دو کنترل بالا نیاز دارند. گزینههای زیر به شما اجازه میدهند میزان جزئیات وارد شده در فایلها یا نمایش داده شده در ترمینال را انتخاب کنید. در اینجا، کنسول به خروجی ترمینال اشاره دارد.
گزینه |
کارکرد آن |
|---|---|
|
ثبت اشکالزدایی رابط کاربری را در فایل و ترمینال فعال میکند. |
|
ثبت اشکالزدایی موتور ویدئو و صدا را در فایل و ترمینال فعال میکند. |
|
جزئیات ویرایشگر را به |
|
جزئیات ویرایشگر را در ترمینال اضافه میکند بدون اینکه جزئیات فایل را اضافه کند. |
|
سطح جزئیات را برای هر دو گزارش و خروجی ترمینال آنها تنظیم میکند. |
|
سطح جزئیات را برای هر دو فایل گزارش تنظیم میکند و تنظیمات ترمینال را تغییر نمیدهد. |
|
سطح جزئیات در ترمینال را برای هر دو ویرایشگر و موتور تنظیم میکند، بدون تغییر تنظیمات فایل. |
جایگزین LEVEL با debug برای پیامهای دقیق یا info برای خلاصه معمولی. warning هشدارها و خطاها را نشان میدهد؛ error خطاها و شکستهای بحرانی را نشان میدهد؛ critical فقط شکستهای بحرانی را نشان میدهد. off پیامهای عادی لاگ را متوقف میکند، اما تشخیصهای خرابی موجود ممکن است هنوز نوشته شوند. نامهای بزرگ مانند DEBUG نیز کار میکنند.
برای مثال، برای جمعآوری پیامهای دقیق در هر دو فایل در حالی که سطح ترمینال را در حالت معمولی نگه میدارید:
openshot-qt --log-file-level debug
این همچنین لاگ بزرگ موتور را فعال میکند، بنابراین آن را به طور مختصر استفاده کنید. گزینههای قدیمی --debug-file و --debug-console هنوز کار میکنند حتی اگر در --help ذکر نشده باشند.
متغیرهای محیطی
متغیر محیطی یک تنظیم نامگذاری شده است که هنگام شروع برنامه به آن داده میشود. اینها هنگام اجرای OpenShot از یک اسکریپت یا زمانی که پشتیبانی از شما میخواهد تنظیم خاصی را امتحان کنید، مفید هستند. برای استفاده عادی نیازی به تنظیم آنها ندارید.
متغیر |
کنترل چه چیزی را دارد |
|---|---|
|
جزئیات در هر دو فایل و ترمینال. |
|
فقط جزئیات در هر دو فایل. |
|
فقط جزئیات در ترمینال، برای هر دو بخش OpenShot. |
|
جزئیات برای موتور ویدئو و صدا، در فایل و ترمینال آن. |
|
فقط جزئیات در |
|
جزئیات موتور فقط در ترمینال. |
برای مثال، این دستور ترمینال لینوکس/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 را نصب کنید. این مرحله فقط یک بار لازم است.
دانلود و نصب MSYS2: http://www.msys2.org/
اجرای خط فرمان
MSYS2 MinGW x64(برای مثال:C:\msys64\msys2_shell.cmd -mingw64)بهروزرسانی همه بستهها (دستور زیر را کپی/پیست کنید):
pacman -Syuنصب اشکالزدای 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
نمایش اطلاعات اشکالزدایی
پس از اجرای موفق OpenShot با اتصال GDB، کافی است یک کرش یا توقف در OpenShot ایجاد کنید. وقتی کرش رخ داد، به ترمینال MSYS2 MinGW64 بازگردید و یکی از دستورات زیر را اجرا کنید (با تایپ و زدن ENTER). معمولاً اولین دستور bt است که به معنی backtrace میباشد. دستورات بیشتری در ادامه آمده است.
(gdb) run (launch openshot-qt.exe)
(gdb) CTRL + C (to manually break out OR wait for a crash / segmentation fault)
(gdb) bt (Print stack trace for the current thread #)
(gdb) info threads (to view all threads, and what they are doing. Look for `__lll_lock_wait` for Mutex/deadlocks)
(gdb) thread 35 (Switch to thread number, for example thread 35)
نمایشگرهای با 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 مراجعه کنید.