Устранение неполадок
Если у вас возникли проблемы с OpenShot, такие как зависание, сбой или сообщение об ошибке, существует множество различных методов, которые могут помочь в их устранении.
Использование журналов для устранения проблем
Журнал — это текстовый файл, который записывает действия OpenShot, а также предупреждения и ошибки. Эти файлы могут помочь службе поддержки понять проблему, даже если вы не видите сообщения об ошибке на экране.
OpenShot хранит два файла журнала в папке .openshot_qt внутри вашей домашней папки. В Linux и 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 создаёт новый файл при достижении примерно 25 МБ и сохраняет три старые копии. libopenshot.log продолжает расти по мере добавления сообщений. После сохранения нужных журналов вы можете удалить старые файлы журналов, пока OpenShot закрыт.
Другие параметры командной строки
Большинству пользователей нужны только два вышеуказанных параметра. Следующие опции позволяют выбрать, сколько деталей записывать в файлы или отображать в терминале. Здесь console означает вывод в терминал.
Опция |
Что она делает |
|---|---|
|
Включает отладочное логирование интерфейса пользователя в файл и терминал. |
|
Включает отладочное логирование видео- и аудиодвижка в файл и терминал. |
|
Добавляет детали редактора в |
|
Добавляет детали редактора в терминал без добавления деталей в файл. |
|
Устанавливает уровень детализации для обоих журналов и их вывода в терминал. |
|
Устанавливает уровень детализации для обоих файлов журналов, не изменяя настройки терминала. |
|
Устанавливает уровень детализации в терминале для редактора и движка, не изменяя настройки файлов. |
Замените LEVEL на debug для подробных сообщений или на info для обычного сводного отчёта. warning показывает предупреждения и ошибки; error — ошибки и критические сбои; critical — только критические сбои. off отключает обычные сообщения журнала, но диагностика сбоев может продолжать записываться. Работают также имена в верхнем регистре, например DEBUG.
Например, чтобы собирать подробные сообщения в обоих файлах, сохраняя обычный уровень терминала:
openshot-qt --log-file-level debug
Это также включает большой журнал движка, поэтому используйте его недолго. Старые опции --debug-file и --debug-console всё ещё работают, хотя и не указаны в --help.
Переменные окружения
Переменная окружения — это именованная настройка, передаваемая программе при запуске. Они полезны при запуске OpenShot из скрипта или если служба поддержки просит вас попробовать определённую настройку. Для обычного использования их задавать не нужно.
Переменная |
Что контролирует |
|---|---|
|
Детализация в обоих файлах и терминале. |
|
Детализация только в обоих файлах. |
|
Детализация только в терминале для обеих частей OpenShot. |
|
Детализация для видео- и аудиодвижка, в его файле и терминале. |
|
Детализация только в |
|
Детализация движка только в терминале. |
Например, эта команда терминала Linux/macOS запрашивает подробное ведение журнала движка в его файле для одного запуска:
LIBOPENSHOT_LOG_FILE_LEVEL=debug openshot-qt
Если настройки пересекаются, приоритет имеют параметры командной строки, затем переменные окружения, потом настройки, и наконец обычные значения по умолчанию. Каждая настройка влияет только на описанный ею вывод: --debug не переопределяет предпочтения движка. Временные переопределения не меняют сохранённые настройки. Наведите курсор на любой флажок, чтобы увидеть, управляет ли другой параметр этим файлом журнала.
В настройках окружения значения с префиксом LIBOPENSHOT_ имеют приоритет над OPENSHOT_ для движка. В каждой группе уровень только для файла или только для консоли имеет приоритет над общим уровнем. Параметры командной строки следуют тому же правилу для файла/консоли. Конфликтующие уровни командной строки для одного и того же вывода отклоняются; недопустимые уровни окружения сообщаются и игнорируются.
Для старых скриптов LIBOPENSHOT_DEBUG по-прежнему включает подробные сообщения движка в терминале, если переменная присутствует, даже если её значение 0. Новые настройки уровней имеют приоритет над ней. LIBOPENSHOT_LOG_FILE предназначен для программ, использующих движок отдельно; сам OpenShot использует указанный выше каталог журналов. Изменение настроек ведения журнала не меняет ваши предпочтения по отчётам об ошибках.
Windows 11 не отвечает
Если на Windows 11 происходит зависание, это известная проблема с PyQt5 и Windows 11, связанная с функциями доступности в Qt. Она возникает при нажатии Ctrl+C в OpenShot (только на Windows 11). OpenShot перестанет отвечать, и при этом возникает утечка памяти (чем дольше OpenShot не отвечает, тем больше утечка памяти, пока OpenShot не завершится аварийно или пользователь не завершит процесс).
Простое решение — избегать использования Ctrl+C на Windows 11 и вместо этого использовать контекстное меню копирования/вставки. Другой способ — переназначить «Копировать» с Ctrl+C на другую комбинацию, например Alt+C. Вы можете изменить настройки клавиатуры в настройках OpenShot. См. Клавиатура.
Отладка Windows с помощью GDB
Если у вас происходит сбой или зависание OpenShot на Windows 10/11, следующие пошаговые инструкции помогут определить причину сбоя. Эти инструкции покажут стек вызовов исходного кода OpenShot в месте сбоя. Эта информация очень полезна для нашей команды разработчиков и полезна для прикрепления к отчетам об ошибках (для более быстрого решения).
Установите последнюю ежедневную сборку
Перед подключением отладчика загрузите последнюю версию OpenShot: https://www.openshot.org/download#daily. Установите эту версию OpenShot в папку по умолчанию: C:\Program Files\OpenShot Video Editor\. Подробные инструкции по отладке OpenShot на Windows смотрите в этой вики.
Установите MSYS2
Версия OpenShot для Windows скомпилирована с использованием среды 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 в Windows
В Windows OpenShot округляет коэффициент масштабирования до ближайшего целого значения для сохранения визуальной целостности. Это помогает избежать визуальных артефактов в интерфейсе и сохраняет элементы интерфейса четкими и хорошо выровненными. Из-за такого округления некоторые варианты масштабирования могут приводить к большему размеру шрифтов и элементов интерфейса, чем ожидалось.
Масштабирование 125% округляется до 100%
Масштабирование 150% округляется до 200%
Обходные пути для точной настройки
Хотя округление помогает поддерживать чистый интерфейс, существуют обходные пути для пользователей, которым требуется более точный контроль масштабирования. Эти методы не рекомендуются из-за возможных визуальных артефактов:
QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough
Установка этой переменной окружения может отключить округление и позволить более точное масштабирование.
Примечание: Это может вызвать визуальные артефакты, особенно на временной шкале, и не рекомендуется.
QT_SCALE_FACTOR=1.25 (или похожее значение)
Ручная установка коэффициента масштабирования может обеспечить более точную настройку размера шрифта и масштабирования интерфейса.
Это также можно настроить через Предпочтения (Масштаб интерфейса), но ожидайте проблем с границами/линиями в Windows при дробных масштабах.
Примечание: Этот метод также может привести к визуальным артефактам и усложнить использование OpenShot.
Для получения дополнительной информации о настройке этих переменных окружения, пожалуйста, посетите https://github.com/OpenShot/openshot-qt/wiki/OpenShot-UI-too-large.