私は過去数日間、AndroidでのMP4ファイルのローテーションに関して解決しようとしています。私は現在、別のデバイスで再生されるバイトストリームとして、アンドロイドデバイスからMP4ファイルを送信するアプリケーションに取り組んでいます。メタデータローテーションタグを使用せずにアンドロイドでMp4を回転
私が抱えている問題は、アンドロイドデバイスのポートレートモードで記録された動画が、ストリームを受信するプレーヤーで90度回転して表示されていることです。私は回転して、元のから新しいMP4を作成しようとした
はMP4Parserを使用して変更しました。私はまた、メディアフォーマットで鍵回転を変更する新しいMP4を作成してローテーションを変更しようとしましたが、新しいMuxerを作成するときにはの方向ヒントを変更しようとしました。
これらのメソッドはすべて動作しますが、回転メタデータは変更されているようです。一部のプレーヤーでは、このメタデータが読み取られ、ローテーションが適用されています。ただし、アプリケーションで使用されているターゲットプレーヤーで使用されているプレーヤーは、このメタデータを読み取ることができません。
私の唯一の解決策は、ビデオデータをローテーションさせて代わりに送信する一時的なMP4を作成することです。私は個別のYUV image framesをMP4内で回転させるためのリソースを見つけましたが、私の質問は入力されたMP4からこれらのフレームを取得し、変更したものを新しいファイルに書き込むにはどうすればいいですか?
注:私はXamarinでアプリケーションを構築していると私はFFMPEGを使用しますが、プロジェクトが大きくなりすぎますバイナリを追加しようとしたと私はまた、ライセンスについての懸念を持っています。