3

ビデオを生のh264ファイルに変換する小さなツールを書いています。これらのファイルは、後で SIP 電話によって再生されます。次のコードがあります。

  eccx->pix_fmt = PIX_FMT_YUV420P;
  eccx->width = VIDEO_FRAME_WIDTH;
  eccx->height = VIDEO_FRAME_HEIGHT;
  eccx->time_base.num = 1;
  eccx->time_base.den = VIDEO_FRAMES_PER_SEC;
  eccx->max_b_frames = 0;

  eccx->rtp_payload_size = VIDEO_RTP_PAYLOAD_SIZE;

  eccx->bit_rate = VIDEO_BIT_RATE;
  eccx->rc_max_rate = VIDEO_BIT_RATE;
  eccx->rc_buffer_size = VIDEO_BIT_RATE * 2;

  eccx->flags |= CODEC_FLAG_QP_RD;
  eccx->flags |= CODEC_FLAG_LOW_DELAY;
  eccx->flags |= CODEC_FLAG_QSCALE;
  eccx->flags |= CODEC_FLAG_EMU_EDGE;

  eccx->mb_decision = FF_MB_DECISION_SIMPLE;

  switch(video){
  case H263:
    break;
  case H263P:
    eccx->flags |= CODEC_FLAG_H263P_SLICE_STRUCT;
    break;
  case H264:
    av_dict_set(&options, "vprofile", "baseline", 0);
    eccx->flags2 = CODEC_FLAG2_FASTPSKIP;
    eccx->profile = FF_PROFILE_H264_BASELINE;
    eccx->level = 13;
    break;
  }

このプログラムを実行すると、libx264 から次の出力が得られました。

[libx264 @ 0x10fad60] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
[libx264 @ 0x10fad60] profile Main, level 1.3

明示的にベースラインに設定しているのに、これがまだメイン プロファイルのままなのはなぜですか?

さらに、SIP 通話にどのような h264 設定が役立つかについて誰かがメモを追加できれば、私は本当にクールです。どうもありがとうございました!

4

2 に答える 2

1

vprofile-profile:vは avconv オプションです (文書化されていない/非推奨/推奨されていませんが、代わりに使用してください)。avconv はそれを解析し、実際に送信されるオプション名libavcodecprofile. それがあなたが使うべきものです。

于 2013-10-14T09:44:45.543 に答える