0

XDCAM HD422 MXF を FFMPEG でエンコードしようとしていますが、encoder/format/mux の特定の設定がわかりません。サンプル コードを見せたり、アドバイスをくれたりできますか?

4

1 に答える 1

2

コンテナやコーデックの設定方法が正確にわからない場合avformat_alloc_output_context2()は、ファイル拡張子 (この場合は「mxf」) から形式を推測するために常に を使用してください。これにより、開始点が得られます。

AVFormatContext * formatContext( 0 );
avformat_alloc_output_context2( &formatContext, 0, 0, "anything.mxf" );

これを行うformatContextと、デフォルトのコーデックがすでに設定されているので、次のものを使用します。

  • m_formatContext->oformat->video_codec
  • m_formatContext->oformat->audio_codec

「mxf」の場合、デフォルトのオーディオ/ビデオ コーデックAV_CODEC_ID_MPEG2VIDEOおよびAV_CODEC_ID_PCM_S16LE

ただし、この場合、デフォルトのセットアップでは十分ではありません。特定のカメラ モデルがあります。したがって、いくつかのサンプルビデオを使用して、正確なフォーマット/コーデックを確認できますffprobe some_sample.mxf

ここでサンプルを見つけました: http://www.hamburgpromedia.com/Testfiles/MXF_MPEG_Testfiles.php

  • XDCAM_HD422_720p50.mf
  • XDcam_HD4221080i50.mf

FFprobe は、ビデオ コーデックが "mxf" ( AV_CODEC_ID_MPEG2VIDEO ) のデフォルトと同じであると教えてくれますが、オーディオ コーデックはAV_CODEC_ID_PCM_S24LEです。

それで、今何をすべきですか?audio_codec を変更するだけです。

m_formatContext->oformat->audio_codec = AV_CODEC_ID_PCM_S24LE;

準備!カメラのフォーマットとコーデックは同じです。続けて、オーディオ/ビデオストリームを作成し、コーデックを開くなど...

于 2013-10-09T05:38:19.760 に答える