Как я могу сократить видео сегмент линии с FFMPEG?

Довольно просто... больше не разделяйте / и /usr . Это бессмысленная головная боль. Если у вас есть раздел для всего, / в любом случае будет почти пустой файловой системой. Объедините их в один.

Пример объединения / в /usr :

mount /dev/sda1 /mnt/root
mount /dev/sda2 /mnt/usr
cp -a /mnt/root/usr /mnt/usr/usr
mv /mnt/usr/* /mnt/usr/usr/
cp -a /mnt/root/. /mnt/usr/.

Наконец, измените командную строку на root =/dev/sda2 . Не забудьте соответствующим образом адаптировать /etc/fstab .

-121--289148-

Забудьте о rc.local .

Вы используете CentOS 7. У вас есть systemd. /etc/rc.local является двойным механизмом обратной совместимости в systemd, поскольку он является механизмом обратной совместимости для механизма, который был сам механизмом совместимости в System 5 rc . И как показано беспорядком в AskUbuntu вопрос гиперссылка ниже, использование /etc/rc.local может пойти ужасно неправильно. Так что сделайте правильный системный сервисный блок.

Сначала создайте шаблонную единицу обслуживания . В качестве примера назовем его /etc/systemd/system/custom-readahead @ .service :

[Unit]
Documentation=https://unix.stackexchange.com/questions/247436/
Description=Set custom read-ahead on storage device %I
BindsTo=dev-%i.device

[Service]
Type=oneshot
ExecStart=/sbin/blockdev --setra 128 /dev/%I

По прибытии соответствующих устройств организуем запуск этого сервисного блока менеджером устройств plug-and-play (udev). Ваше правило, которое вам придется адаптировать к вашим конкретным потребностям, будет выглядеть примерно так:

SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ENV{SYSTEMD_WANTS}="custom-readahead@%k"

SYSTEMD _ WANTS настроек заставляет udev запустить именованную службу - экземпляр шаблона против устройства % k . Затем эта служба запускает blockdev .

Очевидно, есть другой способ сделать это, который опирается на способность удева устанавливать эти настройки напрямую. Для этого не требуется системное шаблонное устройство или создаваемые службы. Вместо этого просто проинструктируйте udev прямо в его правиле:

SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="128"

Обратите внимание на разницу между = = и = .

Нигде нет rc.local , как и путь.

Далее читать

-121--122965-

Вы определенно можете хранить изображения с метаданными (например, тэги) в базе данных. Это довольно тривиальная вещь. Это не решит вашу проблему, хотя, как вы должны будете посетить каждый картинный в вашей коллекции, чтобы классифицировать их (назначить тэги к нему, такие как кошка, осень, вода и т.д.).

Если все, что вам действительно нужно знать, это сколько лиц есть в каждой фотографии, вы можете проверить библиотеку OpenCV (чтобы сделать обнаружение лиц, а не распознавание лиц, так как все, что вам нужно, это число).

Если вы находитесь после более общей классификации, такой как объекты, животные, события - вам понадобится гораздо более сложное решение из области машинного обучения (проверьте Кибулу для этого).

Практически, хотя вам, скорее всего, будет быстрее пройти через вашу коллекцию из нескольких тысяч картин и назначить тэги вручную с помощью какого-либо приложения диспетчера картин (Picasa раньше была в состоянии сделать это), а позже сделать поиск по тэгам.

1
07.09.2018, 10:48
1 ответ

Согласно руководству ffmpeg, опция -t— это продолжительность , а не время окончания .

Я думаю, вы ищете вариант -to:

 -to position (output)
           Stop writing the output at position.  position must be a time duration specification, see the Time
           duration section in the ffmpeg-utils(1) manual.

           -to and -t are mutually exclusive and -t has priority.

Итак, в вашем случае команда будет:

ffmpeg -i /home/nantembo/VideoPerl/1.mp4 -f avi -vcodec copy -acodec copy -ss 0:14:47 -to 0:58:55 /home/nantembo/VideoPerl/2.mp4
1
27.01.2020, 23:42

Теги

Похожие вопросы