обрезка и постепенное появление / исчезновение видео и звука с помощью avconv (или другого инструмента)

Некоторые дистрибутивы решили включить скрипты совместимости, чтобы команды старого стиля всё ещё работали. Например, в 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
3
19.06.2017, 10:20
2 ответа

Наконец-то я нашел время, чтобы попробовать ответ, предложенный @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,
  • видео затухание с опцией -vffade=t=inи fade=t=out,
  • затухание звука с опцией -afafade=t=inи afade=t=outи
  • обрезка с опцией -vfурожая=

за один шаг .

4
27.01.2020, 21:30

Отделка:

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

Готово.

1
27.01.2020, 21:30

Теги

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