[vdr] How to convert a JPEG image to an I-frame?

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Sun Nov 11 17:22:17 CET 2007


On 11/11/07 16:54, Reinhard Nissl wrote:
> Hi,
> 
> Klaus Schmidinger schrieb:
> 
>>> Hhm, if you set -n 3 for ppmtoy4m, mpeg2enc should detect, that there
>>> are no changes.
>> The command sequence I use now looks like this:
>>
>>   pnmscale $S $TMP1 | \
>>   pnmpad -black -width 704 -height 576 | \
>>   ppmntsc --pal | \
>>   ppmtoy4m -F 25:1 -A 4:3 -I p -r -S 420mpeg2 -v 2 -n 3 | \
>>   mpeg2enc -f 7 -a 2 -q 1 -n p -I 0 -T 120 -R 2 -g 10 -G 12 -o "$TMP2"
>>   mplex -f 7 -o "$MPG" "$TMP2"
>>
>> and results in a file with three I-frames:
>>
>>    INFO: [mplex] VIDEO_STATISTICS: e1
>>    INFO: [mplex] Video Stream length:      316949 bytes
>>    INFO: [mplex] Sequence headers:        3
>>    INFO: [mplex] Sequence ends   :        2
>>    INFO: [mplex] No. Pictures    :        3
>>    INFO: [mplex] No. Groups      :        3
>>    INFO: [mplex] No. I Frames    :        3 avg. size105649 bytes
>>    INFO: [mplex] No. P Frames    :        0 avg. size     0 bytes
>>    INFO: [mplex] No. B Frames    :        0 avg. size     0 bytes
>>
>> So it's a step forward, but we need to make this one I- and two (or more)
>> P-frames.
> 
> Try these options:
> 
> mpeg2enc -f 8 -a 2 -q 1 -n p -I 0 -T 120 -R 0 -g 10 -G 12 -o noSignal.mpg

Doing this (with both -f8 and -f7) didn't show anything when
sent via DeviceStillPicture(). I then ran it through mplex
and sent it via PlayPes(), and then I got a picture, but again it was
jagged.

> But I still think that there is no need to repeat anything. Sending a
> progressive I-frame as still image should be sufficient, no matter what
> size the file has. Don't know whether the DVB-API has some limitations
> regarding image size of still frames.



More information about the vdr mailing list