Deshaking videos usando script

11

¿Cómo puedo deshacer mi video?

Intento usar transcode:

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

Pero causa una segfault.

Intentando usar filtros ffmpeg:

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

Pero siempre tiene un error "No existe ese filtro".

Quiero crear un simple script nautilus para esto.

Crantisz
fuente
Transcode no debe segfault, jugar con opciones. Consulte puede responder a askubuntu.com/questions/228841/… con enlaces a tutoriales.
Takkat

Respuestas:

19

Actualmente, ffmpegdesde el repositorio solo admite el filtro deshake más simple , pero no admite los mejores filtros vidstab .

Tiene algunas opciones para obtener soporte de vidstab: compilar o usar un PPA.


Compilando

Esta es la mejor opción si también desea personalizar su ffmpego usar la última versión.

Primero tendrá que compilar libvidstab o usar el paquete libvidstab-dev . Actualmente, solo 19.04 Disco Dingo y más nuevos proporcionan este paquete. Alternativamente, los usuarios de 16.04 Xenial Xerus pueden usar el paquete libvidstab-dev del 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

Ahora siga Cómo compilar FFmpeg en Ubuntu . Cuando llegue al paso donde ffmpegestá configurado, agregue --enable-libvidstaba la lista de opciones de configuración.


mc3man PPA

Versión actual de FFmpeg más git PPA para 16.04 Xenial Xerus:

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

Ahora ejecute ffmpeg2 (tenga en cuenta el "2").


Uso

Consulte las instrucciones de uso de vid.stab .


Ver también

lema
fuente
configEl paso de construir ffmpeg me falla ERROR: vidstab not found using pkg-config. Qué me estoy perdiendo ?
experto
También el PPA de Doug no tiene libvidstab-dev
experto
1
@guettli No debería. Eso fue un error tipográfico. Gracias por mencionarlo. Edité la respuesta.
llogan
Para todos (como yo), que leen demasiado rápido: necesitas usar ffmpeg 2
guettli
no parece funcionar con ubuntu 17.04
wotanii
3

Como otros mencionan anteriormente, el PPA de Doug no es compatible con Zesty (17.04) , a partir del 19/08/2017. Como 17.10 saldrá el 16 de octubre, las soluciones serán cada vez más obsoletas. Dos posibles soluciones para los usuarios de Zesty:

  1. Más simple: solo use una compilación estática https://www.johnvansickle.com/ffmpeg/
  2. Más trabajo: instale vid.stabfrom github ( https://github.com/georgmartius/vid.stab lea las instrucciones de compilación, muy simple), y luego compile ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Como no tengo mucho tiempo, me gusta la primera solución, funcionó a la perfección.

El primer paso de vidstab funciona solo en 1 núcleo, pero dado que mi metraje de GoPro está en muchos fragmentos, podría procesar 4 videos simultáneamente si quisiera una carga del sistema del 100%. El segundo pase utiliza los 4 núcleos.

Mi laptop i7-6820HK pero ambas pasa solo progresa con una velocidad de aproximadamente 0.12x. Así que es bastante lento, pero no me importará si el resultado será bueno.


Actualización: el material de montaje de mi casco parece ser tan inestable que Shakiness 10 no es suficiente. No sé qué hacer, ese es el máximo ...

Csaba Toth
fuente
1
Intenté deshakeusar las monturas de bicicleta GoPro montadas en mi casco, pero parecía que casi no hacía nada. Deshake es parte de la versión oficial de Ubuntu ffmpeg, tal vez hay alguna combinación de parámetros que funcionaría mejor, pero leer en la red suena vid.stabmejor.
Csaba Toth
Sí, vidstab es mejor, pero más complicado.
llogan
1

Supongo que muchas personas (incluido yo) encontraron esta pregunta, tratando de usar ffmpeg con el filtro.

Esas respuestas sobre la compilación son excelentes, pero lleva mucho tiempo y puede ser difícil para algunas personas.

Hoy en día hay una opción simple para usar la imagen de Docker que ya está construida con muchos filtros, códecs y más.

Personalmente, usé esta imagen https://github.com/jrottenberg/ffmpeg

El uso de la muestra es muy simple para deshake filter:

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

También para el 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

Solo tenga en cuenta que el archivo creado "out.avi" tendrá rootpropietario y eso debería cambiarse.

atay
fuente