質問

私のDebian whezy sytemにあるNexus 4と撮影したビデオを回転させる方法を探しています。動画は肖像モードで撮影されています、そして私はそれらを横切るモードに回転させたいです。好ましくは回転はコマンドライン駆動源である。

私は良い解決策でヒントしている以前のいくつかの質問を見つけましたが、それを働くことができないようです。

この質問がありました: ffmpeg

しかし、FFMPEGが古く、AVCONVを使用する必要があることを示しています。私はこの質問を見つけるための方法を詳述しました。 https://askubuntu.com/questions/269429/ HOW-i-rotate-video-by-180-gite-with-avconv

次のコマンドを使用して説明しました:

avconv -i original.mp4 -vf "transpose=1" -codec:v libx264 -preset slow -crf 25 -codec:a copy flipped.mp4
.

しかし、これは虚弱なゆっくりとしています(最後のテストは6時間以上映像を6時間以上かかりました)、そしてプレイ可能な映画をもたらさない。また、MB Rate> Level Limitを示すロギング出力にもエラーが発生します。

再符号化を用いてここに問題がありますか?私は最初に私の電話から別の動画を再エンコードして、回転を適用する前に、より「作業可能」エンコーディングに再エンコードする必要がありますか?それとももう1つの重要な点がありませんか?

役に立ちましたか?

解決

Metadataを変更したい場合に、フラグが回転するファイルを再生するようなメディアプレイヤーが回転させるようにしてください。

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
.

href="https://stackoverflow.com/a/19336581"> stackOverflow 。

他のヒント

回転= 0私の問題を修正しました。私はポートレートモードでビデオを録音し始め、私の間違いを実現し、すぐに私の携帯電話を撮影を続けてください。私のiPhoneはビデオ全体の肖像としてビデオをマークしました。

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
.

それを固定しました。

FFmpegと同様のプログラムメタデータを変更する -map_metadataオプションでも。 exiftoolは回転行列と回転フラグを読み取ることができ、バージョン10.89も以下の説明のようにそれを書き込むことができます。

真実の無損失(メタデータ)の回転を得るために、私は解決策を見つけることができなかったので、私は16進編集者をつかみました(例えば、 HXD )および回転したビデオファイルを分析しました。

MP4の真の無損失回転:

  • HEXエディタでMP4を開き、videを検索してビデオトラックのメタデータを見つける
  • 上記の行(私のファイルのために最も9、時には12)のtrak...\tkhd
  • を見るべきです。
  • は、@記号(Hex 40)
  • がある必要があります。
  • 回転行列が保存される前の2行の
  • 回転なし:

    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 180°:

    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 90°CW:

    00 00 00 00 00 01 00 00 00 00 00 00 FF FF 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40 
    
  • 90°CCW:

    00 00 00 00 FF FF 00 00 00 00 00 00 00 01 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40
    

必要なときにファイルを変更し、回転フラグをサポートするプレイヤーで回転させる必要があります(ほとんどのプレーヤーは行います)。

ステレオオーディオが表示されている場合は、これは明らかに切り替えられないように、サウンドがビデオの回転(180°)と一致する場合は、左右のチャンネルを切り替える必要があります。

あなたの質問に触れたことがいくつかあります:

  1. 再符号をしながら回転できる可能性がほとんどありません。その規則(MJPEGコーデック)の例外はすでに指摘されていますが、それを使用しているのはほとんどありませんので、この質問の範囲を超えています。この能力の理由は、JPEGをメタデータを介して変換できることを説明します。したがって、メタデータの回転を持つコンテナを見つけることができると、これまでに存在しない(または幅が広く広がっています)。
  2. ビデオの3分間回転させて再象徴するのに時間がかかった場合、問題は巨大解像度にあることができます。そして私は巨大を意味します! avprobe original.mp4の出力を確認できるようにしてください。
  3. libav対ffmpegの議論は非常に生産的です(あなたはすでにここに掲載されたFUDの量によってそれを見ることができます)。基本的に何が起こったのかは、いくつかの開発者が一方の方法で行われたプロジェクトの分割であり、FFMPEGプロジェクトが名前を維持することができたという事実は単なるフローークであり、それは1つのプロジェクトの原稿と別のフォークを呼び出すことは意味がありません。プロジェクト間の違いは主に開発スタイルと哲学にあります。よりフリーソフトウェアとしてのよりオープンソースとライバップとしてFFMPEGを特徴付ける場合は、誤っていることすべてではありません。合理的な人々は最終的に開発者が彼らの感覚に来ることを願っています、そして、プロジェクトをマージしないかもしれませんが、それほど協力します。 Ubuntuが元々出てきたとき、すべてのDebian GNU / Linuxチャットでは、「UbuntuはDebunではありません。もう一つの

この答えは、SprimeNeckBeardによって提供されるコメントの概要です。

エンコードなしで回転

再符号化なしの回転はできない限り:

  • あなたの入力はmjpeg
  • です
  • 再生時に回転

正しいFFMPEG

を用いて符号化で回転する

これに必要な手順を正しく理解するには、この質問を読んでいるか、少なくともスキミングすることから始めるべきです:

ffmpeg、libav、およびavconvの違いと類似点は何ですか?

概要:AVConvはFFMPEGのフォークです、Debian MausterはAVConvを選択し、ソースから正しいFFMPEGをコンパイルする必要があります。

次のステップは、ここに詳述されているように、正しいFFMPEGをソースからコンパイルすることです:

DebianのFFMPEGのコンパイルガイド

最後のステップは他の投稿にあるコマンドを使用しています:

FFMPEGでビデオを弾く方法(垂直/上下) または ffmpeg

概要:ffmpeg -vfilters "Rotate= 90" -i Input.mp4 Output.mp4

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top