ffmpeg编码:xavc 42210bit+mxf

       AVC是高级视频编码的简称(Advanced Video Coding),也被叫做H264。代表产品有x264库。AVC有四种配置(profile)。分别是:Baseline、Extended、Main、High。XAVC符合H.264 Level 5.2标准。

      官网ffmpeg.exe执行如下命令可以生成AVC的mxf文件,本人自编译64位ffmepg(带x264,x265)也可以生成mxf文件。命令如下:

ffmpeg -i prores.mov -pix_fmt yuv422p10le -r 50 -c:v libx264 -b:v 500M -level 5.2 -x264opts colorprim=bt2020 -x264opts transfer=bt2020 -x264opts colormatrix=bt2020 -x264opts avcintra-flavor=sony -c:a pcm_s24le out500.mxf

若源文件不是mov,本人试的mp4文件,提示无法写文件头

本人自编译32位ffmepg(带x264)提示video encoding失败

代码实现几个关键地方:

avcodec_context->codec_id = bH265 ? AV_CODEC_ID_HEVC : AV_CODEC_ID_H264;

avcodec_context->pix_fmt = b10bit? AV_PIX_FMT_YUV422P10LE : AV_PIX_FMT_YUV420P;

// 设置帧率50fps
avcodec_context->time_base.num = 1;

avcodec_context->time_base.den = fps;

avcodec_context->bit_rate = 200000000;  //平均码率200M/b

av_dict_set(&param, "preset", "ultrafast", 0);

av_video_stream->time_base = avcodec_context->time_base;

int flush_encoder(){//编码器中剩余的frame还需继续编码成packet

 while (true)
        {
            ret = avcodec_send_frame(avcodec_context, NULL);
            ret = avcodec_receive_packet(avcodec_context, av_packet);

。。。

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

步基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值