шаг 1 :запустить команду проверки для default.target
systemd-analyze verify default.target
шаг 2 :наблюдайте за тем, какая служба или цель упоминается в сообщении «Systemd прерывает цикл упорядочения путем удаления задания» и отображает полный список зависимостей
systemctl show -p Requires,Wants,Requisite,BindsTo,PartOf,Before,After <service or target name mentioned in the "breaking cycle" message>
шаг 3 :просмотреть группы «после» и «до» внутри службы или целевого файла, обычно определяемые в
/lib/systemd/system
и найти службы или цели, которые, как известно, являются последовательными, но находятся в исходящем порядке для этой службы.
пример:
dbus.service
обычно обозначается «после»
multi-user.target
но "до"
sockets.target
такую зависимость можно легко наблюдать, вызывая
systemctl list-dependencies default.target
однако, если файл
/lib/systemd/system/dbus.service
содержит такие строки, как:
Before=multi-user.target
или
After=sockets.target
или и то, и другое одновременно означает, что dbus.service определен как исходящий и вызывает бесконечный цикл systemd.
лечение простое -заменить слово "После" на "До" и наоборот -наоборот, если необходимо.
пока устройство открыто, его разрешение (и формат )фиксированы.
так что ответ на ваш вопрос :нет, вы не можете изменить эти настройки на лету.
(если вы не выйдете из всех потребителей (в вашем случае :VLC )перед запуском нового ffmpeg
; но это не то, что я бы назвал "на лету")
Это ограничение API V4L2, при котором вы не можете сообщать об изменении разрешения/формата любому подключенному приложению.
похоже, что есть проблема с ffmpeg
, которая должна либо
(это также может быть ошибка в модуле v4l2loopback
(, который не сообщает должным образом о том, что размер кадра не изменился ), но с GStreamer, похоже, он работает должным образом,так что я в этом не уверен)