私は、ウェブカメラからmp4ファイル(H264)にリアルタイムでビデオをエンコードするC++ライブラリを持っています。次のように私が持っている設定は、次のとおりです。Androidで再生するためにffmpegでビデオをエンコードする方法は?
codecContex->profile=FF_PROFILE_H264_BASELINE; //Baseline
codecContex->gop_size=250;
codecContex->max_b_frames=0;
codecContex->max_qdiff=4;
codecContex->me_method=libffmpeg::ME_HEX;
codecContex->me_range=16;
codecContex->qmin=10;
codecContex->qmax=51;
codecContex->qcompress=0.6;
codecContex->keyint_min=10;
codecContex->trellis=0;
codecContex->level=13; //Level 1.3
codecContex->weighted_p_pred = 2;
codecContex->flags2|=CODEC_FLAG2_WPRED+CODEC_FLAG2_8X8DCT;
これは、iOSデバイスとWindows Phoneで7つのデバイスではなく、Androidデバイスで再生MP4ファイルを作成します。私は、Androidはベースラインプロファイルでエンコードされた映画のみをサポートしていると読んでいます。これらの設定ではベースラインムービーが生成されるはずですが、生成されたMP4ファイルをMediaInfoで見るとAVC(High @ L1.3)と表示されます。その後
codecContex->flags2|=CODEC_FLAG2_WPRED+CODEC_FLAG2_8X8DCT;
:私は最後の行を削除する場合これは...
なぜそれが動作していないが、私はそれはAVC([email protected])で何かを生成するように見えることはできませんかもしれませんMediaInfoはそのファイルを代わりに "AVC(Main @ L1.3)"としてレポートしますが、これらのフラグはベースラインプロファイルの一部です!