Вы можете запустить скрипт, используя start-stop-daemon. start-stop-daemon может разветвлять поток, выполняемый как разные uid и gid, следовательно, решая вашу проблему.
Что вам нужно сделать, так это написать скрипт задания, размещенный в системе PATH, например /usr/bin, и создайте дополнительный сценарий демона в /etc/pm/sleep.d. Соответствующее действие pm-suspend, например resume или thaw, сценарий демона выполняет скрипт задания через
start-stop-daemon --start $ARGs --name nm-rtvt--exec /usr/bin/job_script
, где ARGs может быть --chuid 1001:1001 или просто --user your_username.
И для обеспечения целостности вы можете также попытаться, чтобы сценарий демона остановил дамона с именем nm-rtvt перед тем, как приостановить с помощью
start-stop-daemon --stop <...>
соответствующие pm-suspend действия, такие как suspend или hibernate.
Подробнее см. man start-stop-daemon. И есть много других примеров из /etc/init.d сценариев демона.
Изменение частоты кадров в заголовке видео (контейнера) не влияет на сам видеопоток (или аудиопоток). Reencoding - единственный вариант.
Видеопотоки имеют временные метки, а в большинстве видеофрагментов взаимозависимы друг от друга из-за межкадрового сжатия. Некоторые игроки могут ускорить и замедлить видео, но не встроенными командами или чем-то еще. Ни один игрок не может изменить частоту кадров на лету, когда контейнерная команда попросит об этом. Видеофайл окажется вне спецификации (т. Е. Не соответствует стандартам), и 99,9% игроков откажутся от этого. Совершенно невозможно сделать то, что вы хотите, без перекодировки. Конечно, вы можете подождать с перекодировкой до последнего шага редактирования.
В том случае, если ваше основное намерение состоит в том, чтобы воспроизвести его в замедленном режиме, а не для того, чтобы сохранить файл как MP4, вы можете использовать инструмент GUI MQVmerge, чтобы перевести его в контейнер Matroska, который может легко изменить частоту кадров.
Сначала вы устанавливаете пакет
sudo apt-get install mkvtoolnix-gui
Затем вы запускаете MKVmerge GUI. Вы столкнетесь с таким окном
Просто нажмите кнопку добавления и выберите свой файл или просто перетащите файл в папку «Входные файлы». На этом этапе вы сможете выбрать видеопоток в своем видео. Вы также можете удалить другие потоки, так как они будут как-то мешать.
После того, как вы его выбрали, вы увидите, что нижние вкладки становятся активными:
[ ! d4]
Изменить на «Форматировать конкретные действия»
Вы можете увидеть, что есть поле «FPS», где вы можете ввести значение кадров в секунду. Похоже, вы планировали замедлить работу в четыре раза, поэтому ваша цель составит около 7 кадров в секунду. Вы также можете использовать опцию «Stretch by».
После этого вы можете просто изменить имя выходного файла (если хотите) и нажать «Start muxing».
Программа и вы должны иметь свой файл.
Я также хотел без потерь замедлить мои 120 фильмов FPS до 30 FPS. Я сделал скрипт, который делает это, изменяя темп звука и изменяя FPS непосредственно в контейнере MP4. Необходимы следующие инструменты:
avconv для преобразования аудиопотоков sondstretch для замедления темпа звука gpac, чтобы MP4Box изменил FPSСценарий, используемый для преобразования, приведен здесь:
Этот скрипт создает копию MP4 с постпостером _slow.