<div dir="ltr">Hi Hendrik,<div><br></div><div>I had a quick test, and seems it doesn't work.</div><div><br></div><div>I guess that's because crf is longer a member of AVCodecContext. I'll try to set AVOptions when opening codecs.</div>
<div><br></div><div>Thanks</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/20 YIRAN LI <span dir="ltr"><<a href="mailto:mrfun.china@gmail.com" target="_blank">mrfun.china@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks Hendrik!<div><br></div><div>And I found that member variable crf has been removed from AVCodecContext, so I assume that unless I add that back to AVCodecConetxt, using av_option_set is the only way to set that.</div>

<div><br></div><div>Great thanks!</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/20 Hendrik Leppkes <span dir="ltr"><<a href="mailto:h.leppkes@gmail.com" target="_blank">h.leppkes@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On Mon, May 20, 2013 at 10:23 AM, YIRAN LI <<a href="mailto:mrfun.china@gmail.com" target="_blank">mrfun.china@gmail.com</a>> wrote:<br>


> Hi guys,<br>
><br>
> I've downloaded latest libvpx code and built it into ffmpeg, so that my<br>
> application can use ffmpeg dlls.<br>
><br>
> Vp8 encoding works correctly and my application can generate webm videos.<br>
><br>
> But what I want to know is, how can I set crf when encoding?<br>
><br>
> What I do in my application is just calling ffmpeg interface<br>
> 1. AVStream* pVideoStream = av_new_stream(pFormatCtx, 0);<br>
> 2. AVCodec* pVideoCodec = avcodec_find_encoder(AVCODE_ID_VP8)<br>
> 3. AVCodecContext* pVideoCodecCtx = pVideoStream->codec;<br>
><br>
>    pVideoCodexCtx->bit_rate =<br>
>                            ->rc_min_rate=<br>
>                            ->rc_max_rate=   (set all these bit rate control<br>
> param)<br>
><br>
>   I checked libvpxenc.c under libavcodec and seems when initing the encoder,<br>
> it doesn't directly refer to any member<br>
>  of AVCodecContext to set crf.<br>
><br>
>  So could anyone tell me, how to set crf when open vp8 encoder<br>
> programmatically?<br>
><br>
>  Great thanks!<br>
><br>
<br>
</div></div>This should do it:<br>
av_opt_set_int(pVideoCodexCtx, "crf", 10, AV_OPT_SEARCH_CHILDREN)<br>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>