[Libav-user] how to set crf for vp8 encoder in ffmpeg programmatically?
h.leppkes at gmail.com
Mon May 20 10:39:34 CEST 2013
On Mon, May 20, 2013 at 10:23 AM, YIRAN LI <mrfun.china at gmail.com> wrote:
> Hi guys,
> I've downloaded latest libvpx code and built it into ffmpeg, so that my
> application can use ffmpeg dlls.
> Vp8 encoding works correctly and my application can generate webm videos.
> But what I want to know is, how can I set crf when encoding?
> What I do in my application is just calling ffmpeg interface
> 1. AVStream* pVideoStream = av_new_stream(pFormatCtx, 0);
> 2. AVCodec* pVideoCodec = avcodec_find_encoder(AVCODE_ID_VP8)
> 3. AVCodecContext* pVideoCodecCtx = pVideoStream->codec;
> pVideoCodexCtx->bit_rate =
> ->rc_max_rate= (set all these bit rate control
> I checked libvpxenc.c under libavcodec and seems when initing the encoder,
> it doesn't directly refer to any member
> of AVCodecContext to set crf.
> So could anyone tell me, how to set crf when open vp8 encoder
> Great thanks!
This should do it:
av_opt_set_int(pVideoCodexCtx, "crf", 10, AV_OPT_SEARCH_CHILDREN)
More information about the Libav-user