スクリプトを使用して動画を揺さぶる


11

ビデオをシェイクするにはどうすればよいですか?

私はトランスコードを使用しようとします:

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

しかし、それはセグメンテーション違反を引き起こします。

ffmpegフィルターを使用しようとしています:

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

ただし、常に「そのようなフィルターはありません」というエラーが発生します。

このための簡単なnautilusスクリプトを作成したいと思います。


トランスコードはsegfaultしてはならず、オプションで遊んでください。チュートリアルへのリンクを使用して、askubuntu.com / questions / 228841 /…に回答する場合があります。
Takkat 2014年

回答:


19

現在、ffmpegリポジトリーからは、より単純なdeshakeフィルターのみがサポートされていますが、より優れたvidstabフィルターはサポートされていません。

vidstabサポートを取得するには、いくつかのオプションがあります。PPAをコンパイルまたは使用します。


コンパイル

これをカスタマイズしffmpegたり、最新バージョンを使用したりする場合は、これが最適なオプションです。

まず、libvidstabをコンパイルするか、libvidstab-devパッケージを使用する必要があります。現在、19.04ディスコDingo以降のみがこのパッケージを提供しています。または、16.04 Xenial Xerusユーザーは、mc3man PPAの libvidstab-devパッケージを使用できます。

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

UbuntuでFFmpegをコンパイルする方法に従ってください。ffmpegが構成されているステップに到達したら--enable-libvidstab、構成オプションのリストに追加します。


mc3man PPA

FFmpegの現在のリリースと 16.04 Xenial Xerusのgit PPA

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

ここで実行しますffmpeg2 (「2」に注意してください)。


使用法

vid.stabの使用方法をご覧ください。


また見なさい


configffmpegをビルドするステップがで失敗しますERROR: vidstab not found using pkg-config。何が欠けていますか?
エキスパート

また、DougのPPAにはlibvidstab-devがありません
エキスパート、

1
@guettliすべきではない。それはタイプミスでした。指摘してくれてありがとう。答えを編集しました。
llogan 2017年

あまりにも速く読むすべての人(私のように)には、ffmpeg 2
guettli

はubuntu 17.04では動作しないようです
wotanii

3

他の人が前述したように、DougのPPAはZesty(17.04)をサポートしていません-08/19/2017現在。17.10が10月にリリースされるので、16.04のソリューションはますます時代遅れになります。Zestyユーザーのための2つの可能なソリューション:

  1. よりシンプル:静的ビルドを使用するだけですhttps://www.johnvansickle.com/ffmpeg/
  2. より多くの作業:vid.stabgithubからをインストールし(https://github.com/georgmartius/vid.stabはコンパイル手順を読む、非常に簡単です)、次にhttps://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntuをコンパイルしffmpeg ます

時間があまりないので、最初の解決策が好きで、完璧に機能しました。

vidstabの最初のパスは1コアでのみ機能しますが、私のGoProフッテージは多くのチャンクに分かれているため、100%のシステム負荷が必要な場合は、4つのビデオを同時に処理できます。2番目のパスは4つのコアすべてを利用します。

私のラップトップi7-6820HKですが、どちらのパスも約0.12倍の速度でしか進行しません。だからかなり遅いですが、結果が良いかどうかは気にしません。


更新:ヘルメットマウントの映像は非常に不安定で、揺れ10では不十分です。どうすればいいかわからない、それが最高だ...


1
deshakeヘルメットに取り付けられたGoPro自転車の映像を試してみましたが、ほとんど何もしなかったようです。Deshakeは、Ubuntuの公式バージョンffmpegの一部です。おそらく、いくつかのパラメータの組み合わせがうまく機能すると思いますが、ネット上で読むvid.stab方が良いようです。
Csaba Toth

はい、vidstabの方が優れていますが、より複雑です。
llogan

1

フィルターでffmpegを使用するだけで、多くの人(私を含む)がこの質問を見つけたと思います。

コンパイルについてのこれらの答えは素晴らしいですが、時間がかかり、一部の人にとっては難しいかもしれません。

現在、多くのフィルター、コーデックなどで既に構築されているDockerイメージを使用する簡単なオプションがあります。

個人的に、私はこの画像を使用しましたhttps://github.com/jrottenberg/ffmpeg

デシェイクフィルターの使用例は非常に簡単です。

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所有者がいるため、変更する必要があることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.