web-dev-qa-db-ja.com

avconvでビデオを180度回転させる方法

ビデオ(mp4)を180度回転させたいが、反転させたくない。 avconvで実行できますか?

24
sobi

transposeビデオフィルターを使用することができます。 180度回転することはできませんが、90度回転してフィルターをチェーンすることはできます。

avconv -i video.mp4 -vf transpose=1,transpose=1 out.mkv

transposeマンページのavconvを参照してください。 http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.html

31
phoibos

はい。ただし、コマンドが適切に機能するには、コマンドにいくつかの追加オプションを追加する必要があります。転置とvflip/hflipでうまくいくはずですが、必要なものについてavconvに詳細を伝えなければ、おそらく非常に低品質の出力が試されます:

 avconv -i original.mp4 -vf "hflip,vflip" -codec:v libx264 -preset slow -crf 20 -codec:a copy flipped.mp4

-crfオプションに注意してください。それが出力品質を設定します。 0(損失なし)から対数的に上向きになります。ほとんどの場合、おそらく19〜25の値が必要です。 -presetは、「低速」、「中」、「高速」のいずれかのエンコーディングの速度を設定します。遅いと、明らかなトレードオフを伴う小さなファイルサイズになります。 -codec:vを調整して、オリジナルと一致させる必要があります。これらのオプションを設定しないと、デフォルトが使用されますが、iPhoneビデオを反転させるとうまく機能しません。

15
lunchboxer

Avconvでの追加の方法は、vflipおよびhflipフィルターを使用することです。より速く、おそらくより良い品質で実行する必要があります:

avconv -i video.mp4 -vf vflip,hflip out.mp4
6
wcarlson

14.04以降のavconvまたはffmpegの場合

この質問に対する@phoibosの質の高い回答以来、libavのドキュメントにはいくつかの変更が加えられています。ビデオを180度回転させるには、2つの90度コマンドを(コンマで区切って)連鎖させて、完全に反転することを避けます。

avconv -i inputfile -vf transpose = clock、transpose = clock outputfile

時計回りに回転します。

ffmpegの構文は同じです。

ffmpeg -i inputfile -vf transpose = clock、transpose = clock outputfile

ここで、inputfileはサポートされている入力ビデオファイルで、outputfileは目的の出力ファイルです。

反時計回りに回転するには、時計をcclockに置き換えます

ソース:

https://libav.org/avconv.html#transpose

Ubuntu 14.04.5および16.04 LTSでのテスト

1
Elder Geek

これは私がしました:

avconv -i invertedOne.mp4 -c:a copy -vf "hflip,vflip" rightOne.mp4

フルHDビデオ、知覚できない品質損失で素晴らしい結果

1
jap1968