Удаление видео с использованием сценария

Как я могу отказаться от своего видео?

Я пытаюсь использовать транскод:

transcode  -J stabilize --mplayer_probe -i "input.MTS"

Но это вызывает segfault.

Попытка использовать фильтры ffmpeg:

ffmpeg -i "input.MTS" -vf vidstabdetect=shakiness=5:show=1 out.avi
ffmpeg -i "input.MTS" -vf deshake out.avi

Но всегда есть ошибка "Нет такого фильтра".

Я хочу создать для этого простой скрипт наутилуса.

3 ответа

Решение

В настоящее время, ffmpeg из репозитория поддерживает только более простой фильтр deshake, но не поддерживает лучшие фильтры vidstab.

У вас есть несколько вариантов получения поддержки vidstab: скомпилируйте или используйте PPA.


составление

Это лучший вариант, если вы также хотите настроить свой ffmpeg или используйте последнюю версию.

Сначала вам нужно скомпилировать libvidstab или использовать пакет libvidstab-dev. В настоящее время этот пакет предоставляется только 19.04 Disco Dingo и новее. Кроме того, 16.04 пользователи Xenial Xerus могут использовать пакет libvidstab-dev из PPA mc3man).

Чтобы скомпилировать libvidstab:

$ sudo apt-get install build-essential cmake
$ mkdir ~/ffmpeg_sources ~/ffmpeg_build
$ cd ~/ffmpeg_sources
$ wget -O https://github.com/georgmartius/vid.stab/archive/master.zip
$ unzip master.zip
$ cd vid.stab-master
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=~/ffmpeg_build .
$ make
$ make install

Теперь следуйте инструкциям Как скомпилировать FFmpeg в Ubuntu. Когда вы дойдете до шага, где ffmpeg настроен потом добавить --enable-libvidstab к списку параметров настройки.


mc3man PPA

FFmpeg текущий выпуск плюс git PPA для 16.04 Xenial Xerus:

sudo add-apt-repository ppa:mc3man/ffmpeg-test
sudo apt-get update
sudo apt-get install ffmpeg-static

Теперь беги ffmpeg2 (обратите внимание на "2").


использование

Смотрите инструкции по использованию vid.stab.


Также см

Как уже упоминалось выше, PPA Дуга не поддерживает Zesty (17.04) - по состоянию на 19.08.2017. Поскольку 17.10 выйдет в октябре, 16.04 решения будут все более и более устаревшими. Два возможных решения для пользователей Zesty:

  1. Проще: просто используйте статическую сборку https://www.johnvansickle.com/ffmpeg/
  2. Больше работы: установите vid.stab из github ( https://github.com/georgmartius/vid.stab прочитайте инструкции по компиляции, очень просто), а затем скомпилируйте ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Так как у меня не так много времени, мне нравится первое решение, сработало безупречно.

Первый проход vidstab работает только на 1 ядре, но так как мои кадры GoPro состоят из множества блоков, я мог бы обрабатывать 4 видео одновременно, если бы я хотел 100% загрузки системы. Второй проход использует все 4 ядра.

Мой ноутбук i7-6820HK, но оба пропускают только прогресс со скоростью около 0,12x. Так что это довольно медленно, но мне все равно, будет ли результат хорошим.


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

Я думаю, что многие люди (включая меня) нашли этот вопрос, пытаясь просто использовать ffmpeg с фильтром.

Эти ответы о компиляции отличные, но они отнимают много времени и могут быть трудными для некоторых людей.

В настоящее время существует простой способ использовать образ Docker, который уже собран со многими фильтрами, кодеками и многим другим.

Лично я использовал это изображение https://github.com/jrottenberg/ffmpeg

Пример использования очень прост для фильтра deshake:

docker run -v $PWD:/temp/ \
    jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf deshake \
    /temp/out.avi

А также для фильтра vidstab:

# create vectors from input file
docker run -v $PWD:/temp/ jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=/temp/transform_vectors.trf -f null -

# process file using vectors from step 1
docker run -v $PWD:/temp/ jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf vidstabtransform=input=/temp/transform_vectors.trf:zoom=1:smoothing=30,unsharp=5:5:0.8:3:3:0.4 \
    /temp/out.avi

Просто учтите, что созданный файл "out.avi" будет иметь root владелец и это должно быть изменено.

Другие вопросы по тегам