Можно использовать ffmpeg
сделать это. Существует несколько примеров, законченных на ffmpeg веб-сайте.
Вот несколько из них:
Это будет создавать одно изображение миниатюр каждую минуту, названный img001.jpg
, img002.jpg
, img003.jpg
, ... (%03d
средства, что порядковое число каждого изображения миниатюр должно быть отформатировано с помощью 3 цифр),
$ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
Это будет создавать одно изображение миниатюр каждые 10 минут, названный thumb0001.bmp
, thumb0002.bmp
, thumb0003.bmp
, ...
$ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
Если Вы хотите превратить их в короткое видео, можно снова включить в список справку ffmpeg
. Это обсуждено на этой странице их веб-сайта.
Вот еще несколько примеров:
Здесь, каждое изображение будет иметь продолжительность 5 секунд (инверсия 1/5 кадров в секунду). Говоря FFmpeg установить входную опцию FPS файла (кадры в секунду) на некоторую очень низкую стоимость, мы сделали дублированные кадры FFmpeg в выводе, и таким образом мы достигли для отображения каждого изображения в течение некоторого времени на экране:
$ ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -r 30 out.mp4
Если у Вас нет изображений пронумерованными и заказанными последовательно (img001.jpg
, img002.jpg
, img003.jpg
) а скорее случайный набор изображений, ffmpeg также поддерживает стиль удара globbing (*, представляет любое количество любых символов):
$ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
или для изображений png:
$ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.png' -c:v libx264 out.mp4
Для превращения получающегося видео в анимированный gif, Вы могли использовать шаги, обрисовал в общих чертах интервал его ТАК названные Вопросы и ответы: Как генерировать gif от avi, использующего ffmpeg?:
$ ffmpeg -i video.avi -t 10 out%02d.gif
затем:
$ gifsicle --delay=10 --loop *.gif > anim.gif
Вот ссылка на инструмент gifsicle
.
Я полагаю, если вы установите / etc / selinux / config
на отключено
перезагрузка. Затем установите для него принудительное применение
и перезагрузитесь, он изменит метку, если у вас возникли проблемы с его изменением в противном случае. Странно, что restorecon не сработал.
Если вы хотите сбросить настройки жестким способом, сам каталог / home должен быть:
system_u:object_r:home_root_t
, а домашний каталог каждого пользователя (и файлы в нем) должны быть:
unconfined_u:object_r:user_home_dir_t:s0
Вы можете установить их с помощью chcon
, или используя комбинацию semanage
и restorecon
chcon -t home_root_t /home
chcon -Rt user_home_dir_t /home/*
или
semanage fcontext -a -t home_root_t /home
semanage fcontext -a -t user_home_dir_t /home/*
restorecon -R /home
, обратите внимание, что вообще говоря chcon
используется для принудительно выполнить немедленное изменение, оставив значения по умолчанию на месте, чтобы команда restorecon
восстановила контексты по умолчанию. В вашем случае, похоже, по какой-то причине это пошло не так.
Как правило, semanage fcontext
предназначен для записи локального файла контекста в /etc/selinux/targeted/contexts/files/file_contexts.local
с большим количеством информации о текущем контексте, и контексты по умолчанию можно найти в:
/etc/selinux/targeted/contexts/default_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.homedirs
Возможно, что каким-то образом эти файлы были каким-то образом повреждены, и в целом есть много подконтекстов, которые не могут быть полностью восстановлены с помощью вышеуказанных действий в зависимости от того, как эти файлы были изменены. Было бы неплохо изучить эти файлы и посмотреть, сможете ли вы найти добавленное сопоставление контекста и удалить его таким же образом.
Теоретически вы также можете взять виртуальную машину или другую машину (или, возможно, просто найти их в сети) и скопировать известные хорошие значения по умолчанию в соответствующие каталоги и позволить системе изменить метку, чтобы получить правильные значения по умолчанию. Тем не менее, это тоже будет иметь некоторые недостатки.
В конце концов, потребуется немного проб и ошибок, команды chcon / semanage, перечисленные выше, должны дать вам общие сведения, но, возможно, некоторые из ваших подкаталогов будут иметь свой собственный контекст.
Некоторые дополнительные контексты, которые могут быть полезны (все они находятся в / home / username:
ls -laZ / home / username
##context########################### Directory##
unconfined_u:object_r:cache_home_t:s0 .cache
unconfined_u:object_r:config_home_t:s0 .config
unconfined_u:object_r:dbus_home_t:s0 .dbus
unconfined_u:object_r:gconf_home_t:s0 .gconf
unconfined_u:object_r:gconf_home_t:s0 .gconfd
unconfined_u:object_r:gpg_secret_t:s0 .gnupg
unconfined_u:object_r:gconf_home_t:s0 .local
unconfined_u:object_r:ssh_home_t:s0 .ssh
Обратите внимание, что это основано на моем домашнем каталоге, там будет больше, что вам, возможно, придется выследить, но если вы поймете большинство из них правильно, вы должны более или менее вернуться на правильный путь.