2017-12-24 10 views
0

私はCamera2 APIを使用しています。私のアプリでは、録画中にカメラを切り替えることが重要です。各カメラの切り替え後、ビデオフラグメントをディスクに保存し、録画を停止した後、ビデオを-f concat -safe 0 -i listPath -c copy finalPathコマンドFFmpeg for Androidを使用して1つにマージします。別のビデオフラグメントを開くと、正しく表示されますが、マージされたビデオを開くと、バックカメラに記録されたビデオは180度回転します。この問題は、マージされたビデオでのみ発生します。Camera2 API録画中にカメラを切り替える

動画のメタタグでは、動画をバックカメラに記録した場合、「回転」タグは90度、それ以外の場合は270度です。

ffmpegが動画をマージすると、メタタグ内に別の「回転」タグがあると自動的に動画が回転します。

どうすればこの問題を解決できますか?

P.Sまた、私はマージするためMP4Parser Libraryを使用しようとしましたが、それは同じ問題を抱えています。
P.P.S. -noautorotate ffmpegのparamは私を助けません。

答えて

0

逆に、ffmpegは、それらを一緒にマージするときの入力フラグメントの向きを無視しました。 -c copyを使用すると、これは避けられません。カメラの1つから来るビデオを回転させてから、結果に追加することができます。パフォーマンス面では、残念ながらフルトランスコードと同等です。

代わりの方法は、レコーダーの代わりにMediaCodecを使用することです。これはあなたの側でもっとコードですが、あなたはffmpegを捨てて、映画を後処理することができます。

関連する問題