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.
From all I saw today, it only works if the file is not much larger than 40KB,
and if I send it continuously. If I send it only once (even if it has only 40KB) it is jagged.
Klaus