Odhaczanie filmów za pomocą skryptu

12

Jak mogę usunąć moje wideo?

Próbuję użyć transkodowania:

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

Ale powoduje awarię.

Próba użycia filtrów ffmpeg:

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

Ale zawsze pojawia się błąd „Brak takiego filtra”.

Chcę w tym celu stworzyć prosty skrypt nautilus.

Crantisz
źródło
Transkodowanie nie powinno segregować, grać z opcjami. Zobacz odpowiedź na askubuntu.com/questions/228841/... z linkami do samouczków.
Takkat

Odpowiedzi:

20

Obecnie ffmpegz repozytorium obsługuje tylko prostszy filtr deshake , ale nie obsługuje lepszych filtrów vidstab .

Masz kilka opcji, aby uzyskać wsparcie vidstab: skompiluj lub użyj PPA.


Kompilacja

Jest to najlepsza opcja, jeśli chcesz również dostosować swoją ffmpeglub użyć najnowszej wersji.

Najpierw będziesz musiał skompilować libvidstab lub użyć pakietu libvidstab-dev . Obecnie tylko 19.04 Disco Dingo i nowsze zapewniają ten pakiet. Alternatywnie, użytkownicy Xenial Xerus 16.04 mogą korzystać z pakietu libvidstab-dev z mc3man PPA ).

Aby skompilować 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

Teraz śledź Jak skompilować FFmpeg na Ubuntu . Po przejściu do kroku, w którym ffmpegjest skonfigurowany, dodaj --enable-libvidstabdo listy opcji konfiguracji.


mc3man PPA

Obecna wersja FFmpeg plus git PPA dla Xenial Xerus 16.04:

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

Teraz uruchom ffmpeg2 (zwróć uwagę na „2”).


Stosowanie

Zobacz instrukcje użytkowania vid.stab .


Zobacz także

Llogan
źródło
configkrok budowania ffmpeg kończy się dla mnie niepowodzeniem ERROR: vidstab not found using pkg-config. Czego mi brakuje ?
ekspert
Również PPA Douga nie ma libvidstab-dev
eksperta z
1
@guettli Nie powinno. To była literówka. Dzięki za zwrócenie na to uwagi. Zredagowałem odpowiedź.
llogan
Dla wszystkich (takich jak ja), którzy czytają zbyt szybko: musisz użyć ffmpeg 2
guettli
wydaje się nie współpracować z Ubuntu 17.04
wotanii
3

Jak inni wspominają powyżej, PPA Douga nie obsługuje Zesty (17.04) - od 19.08.2017. Ponieważ 17.10 pojawi się w październiku 16.04, rozwiązania będą coraz bardziej przestarzałe. Dwa możliwe rozwiązania dla użytkowników Zesty:

  1. Prostsze: wystarczy użyć kompilacji statycznej https://www.johnvansickle.com/ffmpeg/
  2. Więcej pracy: zainstaluj vid.stabz github ( https://github.com/georgmartius/vid.stab przeczytaj instrukcje kompilacji, bardzo proste), a następnie skompiluj ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Ponieważ nie mam zbyt wiele czasu, podoba mi się pierwsze rozwiązanie, działające bezbłędnie.

Pierwszy przebieg vidstab działa tylko na 1 rdzeniu, ale ponieważ mój materiał GoPro jest w wielu częściach, mógłbym przetwarzać 4 wideo jednocześnie, jeśli chciałbym 100% obciążenia systemu. Drugi przebieg wykorzystuje wszystkie 4 rdzenie.

Mój laptop i7-6820HK, ale oba mija tylko postęp z prędkością około 0,12x. Więc jest dość powolny, ale nie obchodzi mnie, czy wynik będzie przyjemny.


Aktualizacja: moje ujęcia z kasku wydają się tak chwiejne, że chwiejność 10 nie wystarczy. Nie wiem co robić, to maksimum ...

Csaba Toth
źródło
1
Próbowałem deshakezamontować na kasku stopki rowerowe GoPro, ale wyglądało na to, że prawie nic nie zrobiłem. Deshake jest częścią oficjalnej wersji Ubuntu ffmpeg, być może istnieje jakaś kombinacja parametrów, która działałaby lepiej, ale czytanie w sieci brzmi jak vid.stablepiej.
Csaba Toth,
Tak, vidstab jest lepszy, ale bardziej skomplikowany.
llogan
1

Myślę, że wiele osób (łącznie ze mną) znalazło to pytanie, próbując po prostu użyć ffmpeg z filtrem.

Te odpowiedzi na temat kompilacji są świetne, ale są czasochłonne i mogą być trudne dla niektórych osób.

Obecnie istnieje prosta opcja użycia obrazu Docker, który jest już zbudowany z wieloma filtrami, kodekami i nie tylko.

Osobiście użyłem tego obrazu https://github.com/jrottenberg/ffmpeg

Przykładowe użycie jest bardzo proste dla filtra deshake:

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

Podobnie jak w przypadku filtra 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

Pamiętaj, że utworzony plik „out.avi” będzie miał rootwłaściciela i należy go zmienić.

atay
źródło