MPEG4 video over RTP

Hart, James James.Hart at
Tue Jul 30 13:23:18 PDT 2013

Hi, I have an application which needs to stream MPEG4 video data over RTP to a very specific client.  I have programatically setup a pipeline with the video test source => avenc_mpeg4 => rtpmp4vpay => tee => udpsink*. This successfully streams RTP data.  However, the client, which I can't change, seems to want the mpeg start codes to be removed because it will add it's own.  I think this is similar to the H264 use case where you can send a byte-stream, or not.  However I don't see such an option for the MPEG4 rtp stream?  

I have tried using rtpmp4gpay instead of rtpmp4vpay but caps negotiations fails with rtpmp4gpay. First, I am actually not sure if this plugin changes is what I need?  Second, I tracked down the CAPS navigation issue from the rtmp4gpay source.  The CAPS issue happens because there is no codec_data structure on the negotiated caps so the media type is never set which causes the caps negotiation to fail.  rtpmp4vpay did not have this requirement.  I would have expected the codec_data to be set via the avenc_mpeg4 plugin, but it does not.  I don't know how to force a codec_data structure, or if I even should?

We have had to create a custom plugin to modify buffers in the past, so that is an acceptable solution. However, I'd rather not if there is a better way to solve our use case.

Does anyone have any insight for my use case and/or issues I am seeing?  


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list