Deshaking videos usando script

11

Como deshake meu vídeo?

Eu tento usar transcode:

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

Mas isso causa um segfault.

Tentando usar filtros ffmpeg:

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

Mas sempre tenha o erro "Não existe esse filtro".

Eu quero criar um script simples do nautilus para isso.

Crantisz
fonte
A transcodificação não deve ser segfault, brinque com as opções. Veja pode responder a askubuntu.com/questions/228841/… com links para tutoriais.
Takkat 14/01

Respostas:

19

Atualmente, ffmpego repositório suporta apenas o filtro deshake mais simples , mas não suporta os melhores filtros de vidstab .

Você tem algumas opções para obter suporte ao vidstab: compilar ou usar um PPA.


Compilando

Essa é a melhor opção se você também quiser personalizar ffmpegou usar a versão mais recente.

Primeiro você terá que compilar o libvidstab ou usar o pacote libvidstab-dev . Atualmente, apenas o disco Dingo 19.04 e mais recente fornece este pacote. Como alternativa, os usuários do 16.04 Xenial Xerus podem usar o pacote libvidstab-dev do mc3man PPA ).

Para compilar 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

Agora siga Como compilar o FFmpeg no Ubuntu . Quando você chegar à etapa em que ffmpegestá configurado, adicione --enable-libvidstabà lista de opções de configuração.


mc3man PPA

Versão atual do FFmpeg mais PPA do git para 16.04 Xenial Xerus:

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

Agora corra ffmpeg2 (observe o "2").


Uso

Veja as instruções de uso do vid.stab .


Veja também

llogan
fonte
configetapa de construção do ffmpeg falha para mim ERROR: vidstab not found using pkg-config. O que estou perdendo ?
expert
Também o PPA de Doug não possui libvidstab-dev
expert
11
@ guettli Não deveria. Isso foi um erro de digitação. Obrigado por apontar isso. Eu editei a resposta.
Llogan 01/03/19
Para todos (como eu), que leu muito rápido: você precisa usar ffmpeg 2
guettli
parece não funcionar com o ubuntu 17.04
wotanii
3

Como outros mencionam acima, o PPA de Doug não suporta Zesty (17.04) - a partir de 19/08/2017. Como 17.10 será lançado em 16 de outubro, as soluções serão cada vez mais obsoletas. Duas soluções possíveis para usuários do Zesty:

  1. Mais simples: basta usar uma compilação estática https://www.johnvansickle.com/ffmpeg/
  2. Mais trabalho: instale o vid.stabfrom github ( https://github.com/georgmartius/vid.stab, leia as instruções de compilação, muito simples) e, em seguida, compile ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Como não tenho muito tempo, gosto da primeira solução, que funcionou perfeitamente.

A primeira passagem do vidstab funciona apenas em 1 núcleo, mas, como minhas filmagens da GoPro estão em muitos pedaços, eu poderia processar 4 vídeos simultaneamente, se quisesse 100% da carga do sistema. A segunda passagem utiliza todos os 4 núcleos.

Meu laptop i7-6820HK, mas ambos passam apenas com cerca de 0,12x de velocidade. Então é bem lento, mas não vou me importar se o resultado será bom.


Atualização: minha montagem no capacete parece tão instável que o tremor 10 não é suficiente. Eu não sei o que fazer, esse é o máximo ...

Csaba Toth
fonte
11
Eu tentei o deshakepara o meu capacete montado em filmagens de bicicleta GoPro, mas parecia que quase não fiz nada. Deshake faz parte da versão oficial do Ubuntu ffmpeg, talvez haja alguma combinação de parâmetros que funcione melhor, mas ler na rede parece que vid.stabserá melhor.
precisa saber é o seguinte
Sim, o vidstab é melhor, mas mais complicado.
Llogan 22/08/19
1

Eu acho que muitas pessoas (incluindo eu) encontraram essa pergunta, tentando usar o ffmpeg com o filtro.

Essas respostas sobre a compilação são ótimas, mas consomem tempo e podem ser difíceis para algumas pessoas.

Atualmente, existe uma opção simples de usar a imagem do Docker que já foi criada com muitos filtros, codecs e muito mais.

Pessoalmente, usei esta imagem https://github.com/jrottenberg/ffmpeg

O uso da amostra é muito simples para o filtro deshake:

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

Também para o filtro 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

Apenas lembre-se de que o arquivo criado "out.avi" terá um rootproprietário e isso deve ser alterado.

atay
fonte