Ubuntuと、できればffmpegなどの標準パッケージを使用して、.3gpビデオファイルを任意の方向に90度回転したいと思います。できればコマンドラインまたはPythonスクリプト。
どうやってやるの?
[〜#〜] vlc [〜#〜] を使用すると、[ツール] >> [設定...]に移動してビデオを回転できます。
ショーの設定で「すべて」を選択します。次に移動します:ビデオ>>フィルター>>回転
必要な次数を設定したら、[ツール]> [効果とフィルタ]> [ビデオ効果]> [ジオメトリ]に移動して回転できます。
私がテストしたのはmp4ですが、 [〜#〜] vlc [〜#〜] は3gpもサポートできると思います。お役に立てれば。 :)
コマンドラインから、ffmpegを使用:
ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
transpose=1
はビデオを時計回りに90度回転します。反時計回りに回転するには、transpose=2
を使用します。詳細については、 transposeのドキュメント を参照してください。
-metadata:s:v rotate=""
は、既存のビデオストリームローテーションメタデータをすべて削除します。そうでない場合、ffmpeg
はそれをコピーし、プレーヤーに不要なローテーションを追加させる可能性があります。
こちらのビデオエンコーディング設定の詳細については、 このH.264エンコーディングガイド と AACエンコーディングガイドストリームコピー の代わりにオーディオを再エンコードする場合。
Avidemux がこれを実行できるはずです。
Video->Filters->Rotate(x degrees)->Close
を実行してからFile->Save->Save Video
この質問が最初に回答されたときから、libavにいくつかの変更が加えられています。これを最新かつ有用な状態に保つために、以下を提供します。
転置ビデオフィルターを使用して、ffmpeg
およびavconv
の最近のバージョンでこれを実現できます。
avconv -i inputfile -vf transpose=clock outputfile
時計回りの回転。
ffmpegの構文は同じです。
ffmpeg -i inputfile -vf transpose=clock outputfile
ここで、inputfileはサポートされている入力ビデオファイルで、outputfileは必要な出力ですファイル。
反時計回りに回転するには、clockをcclockに置き換えます
ドキュメントからの抜粋です:
‘cclock_flip’
Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’
Rotate by 90 degrees clockwise.
‘cclock’
Rotate by 90 degrees counterclockwise.
‘clock_flip’
Rotate by 90 degrees clockwise and vertically flip.
出典:
https://libav.org/avconv.html#transpose
https://ffmpeg.org/ffmpeg-filters.html#transpose-1
Ubuntu 14.04.5 LTS、Ubuntu 16.04、Ubuntu 18.04でのテスト
私は同様の問題を解決しました。正しい設定にしたい.MOVを逆さまに(つまり、180度回転して)撮影しました。
私のUbuntu 14.04システムでは、avconv
に対して evilsoup's answer で指定されたものと基本的に同じコマンドラインオプションを使用してffmpeg
を実行しました。どうやら、180度回転のtranspose
オプションをサポートしていないので、時計回りに90度(つまり、transpose=1
)2回。
最小限のオプションを試したところ、次のようなメッセージが表示されました。
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it.
出力ファイルの長さがゼロだったので、-strict experimental
。
機能したコマンドラインは次のとおりです。
avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV
結果は満足のいくもので、説明できない副作用がありました:
私が不満を言っているわけではありません。これらは望ましいです。彼らがなぜ起こったのか私には理解できません...