We're using the MPEG2 video encoder to encode SD video in real-time. Our application uses GStreamer 1.0.6, which uses libav v0.8.5 and runs under Windows 7/MinGW with an I7.
For most content, the encoder threads take less than 1/2 of one core. However, for some content, it needs 8 times as much. The expensive scenes have lots of texture and panning. We'd like to find a combination of parameters that delivers reasonable quality, while reducing the peak CPU use. Another possibility is to dynamically reduce quality for the hard scenes. Any advice on parameter values and what can be done dynamically would be greatly appreciated. Here are our current parameters (in GStreamer terms): bitrate 3500000 interlaced TRUE max-bframes 1 gop-size 15 me-method epzs rtp-payload-size 0 pass cbr quantizer 0.01 mb-decision simple mb-cmp sad me-pre-cmp sad me-cmp sad me-sub-cmp sad ildct-cmp vsad dct-algo auto idct-algo auto quant-type h263 qmin 2 qmax 31 max-qdiff 3 lmin 2 lmax 31 qcompress 0.5 qblur 0.5 rc-qsquish 1 rc-qmod-amp 0 rc-qmod-freq 0 rc-buffer-size 1835008 rc-buffer-aggressivity 1 rc-max-rate 3500000 rc-min-rate 3500000 rc-initial-cplx 0 rc-eq tex^qComp b-quant-factor 1.25 b-quant-offset 1.25 i-quant-factor 0.8 i-quant-offset 0 max-key-interval 0 luma-elim-threshold 0 chroma-elim-threshold 0 lumi-masking 0 dark-masking 0 temporal-cplx-masking 0 spatial-cplx-masking 0 p-masking 0 dia-size 0 pre-dia-size 0 last-predictor-count 0 pre-me key me-subpel-quality 8 me-range 0 intra-quant-bias 999999 inter-quant-bias 999999 noise-reduction 1500 intra-dc-precision 0 flags 0 trellis 1 thread-count 10 Thanks, Michael -- * Michael **Rubinstein *| * w:* *e:* [email protected] _______________________________________________ libav-api mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-api
