[gmail] Dynamic framerate, framesize change for stream over RTP

Icarus Alive icarus.alive at gmail.com
Wed Oct 26 03:39:55 PDT 2011


On Thu, Oct 20, 2011 at 2:02 AM, Marc Leeman <marc.leeman at gmail.com> wrote:
>> Wondering, if it is possibly to dynamically change framerate,
>> framesize, encoding parameters -- on-the-fly, i.e. within a stream,
>> that is being pushed out over RTP ?
>
> Yes.
>
>> Some pointers in this direction would help.
>
> The timestamp on RTP stands for the sampling instance; so they have
> little to do with each other.
>
> You can even switch in the compressed domain without visual artifacts,
> just use the parsers and check the DELTA_FLAG flag on the buffers.
>

Thanks Marc.

If I may as what is probably a very naive question -- does RTP
timestamps indicating sampling-instances mean, that just dropping
frames periodically, is enough to get the framerate (drop) effect ? An
external protocol like SDP is not needed to renegotiate framerate at
application level ?

Also, when you say "...switch in the compressed domain..", is there
someplace I could find an elaboration ? Are you saying that
"restreaming" with say a framerate change is possible without even
needing to do frame-by-frame decoding ?

The way I envisage the pipeline (roughly) is:

(Video:H.264 @ VGA at 30fps, Audio: AAC stream) [fixed parameters] --->
demux (A/V)-->
    A: decode --> resample --> filter (gain / noise redn) --> encode ---> M
    V: decode --> colorspacefix --> (filter , drop X frames) --> encode --> M
 M= mux --> rtp udp-stream


More information about the gstreamer-devel mailing list