Некоторые дистрибутивы решили включить скрипты совместимости, чтобы команды старого стиля всё ещё работали. Например, в Debian 8.
root@matrix:~# which service
/usr/sbin/service
root@matrix:~# file /usr/sbin/service
/usr/sbin/service: POSIX shell script, ASCII text executable, with very long lines
root@matrix:~# grep upstart /usr/sbin/service
# Operate against system upstart, not session
&& initctl version 2>/dev/null | grep -q upstart \
# Upstart configuration exists for this job and we're running on upstart
# Action is a valid upstart action
root@matrix:~# grep systemd /usr/sbin/service
is_systemd=
if [ -d /run/systemd/system ]; then
is_systemd=1
# On systems using systemd, we just perform a normal restart:
# A restart with systemd is already a full restart.
if [ -n "$is_systemd" ]; then
# When this machine is running systemd, standard service calls are turned into
if [ -n "$is_systemd" ]
# the systemd service file does not (yet) support reload for a
Наконец-то я нашел время, чтобы попробовать ответ, предложенный @Mario G., но он показался мне чрезвычайно громоздким. Мне нужно сделать это много десятков раз. Я прочитал документацию ffmpeg
и обнаружил, что он намного мощнее, чем avconv
, включая затухание для аудио и видео, поэтому решение
ffmpeg -i input.mts -map 0:0 -map 0:3 -ss 0:0:07 -to 0:59:57.5 -vf 'fade=t=in:st=7:d=2,fade=t=out:st=3595.5:d=2,crop=out_h=692' -af 'afade=t=in:st=7:d=2,afade=t=out:st=3595.5:d=2' out.mov
Итак, st=
и d=
параметры для времени фейда в секундах, нет необходимости конвертировать в кадры.
Я также обнаружил опцию -to
для непосредственного получения конечного времени вместо вычисления длины.
Эта команда выполняет все шаги
-map
,-ss
и -to
,-vf
fade=t=in
и fade=t=out
,-af
afade=t=in
и afade=t=out
и-vf
урожая=
за один шаг .
Отделка:
ffmpeg -i input.mts -ss 00:00:20.0 -c copy -t 00:00:30.0 output.mkv
Ищите 20 секунд -(i )n input.mkv (и отбрасываете, по умолчанию )пусть играет 30 секунд и отбрасываете оттуда все остальное. Итак, у вас есть 30-секундное видео.
Исчезновение
Сначала вам нужно создать изображение для фейда. Вероятно, одно изображение *. png, полностью белое или полностью черное, в зависимости от вашего вкуса. Желательно в том же разрешении, в котором было записано ваше видео.
ffmpeg -r 1/2 -i black.png -c:v libx264 -r 50 -y -pix_fmt yuv420p fade2s.mkv
Это означает, что затемнение 2 секунды (-r ввод :1 / 2 x 50 кадров в секунду = 100 кадров в секунду ). Информацию об изображении вы можете найти в The Gimp или ImageMagick. Теперь у вас есть эффект затухания.
Постепенное появление:
ffmpeg -i fade2s.mkv -y -vf fade=in:0:50 fade_in.mkv
Нарастание от 0 до 50 кадров (1 секунда -50 кадров в секунду)
Постепенное появление + исчезновение:Возьмите последний ввод в качестве нарастания и добавьте немного затухания
ffmpeg -i fade_in.mkv -y -vf fade=out:120:50 fade_in_out.mkv
Готово.