I'm trying to use ffmpeg to receive an h264 stream over RTSP and forward that stream as a muliticast rtp stream. I can receive the stream, and output it as a multicast rtp stream using the following command:
ffmpeg -i rtsp://10.255.11.203/ProfileToken_1_1 -vcodec copy -an -f rtp rtp://230.255.10.25:50000
The incoming stream contains SPS PPS and SEI packets. I can't make ffmpeg to output those as well.
I have experimented with the -flags global_header
parameter to enable and disable global header, And I have tried adding -bsf h264_mp4toannexb
which does not work since the incoming stream is already Annex-B.
Best Answer
Does the incoming stream contain them, or were they just not needed?
If you're receiving the stream via RTSP, you're probably receiving an RTP stream that doesn't have those packets. Your client would have connected via RTCP to get the SDP describing those streams, because PPS and SPS are usually once-per-stream unless you're changing resolutions, framerates, etc.
Run the command you've been running, but in the ffmpeg output you'll see a section like this:
Everything after the SDP line needs to be saved into a filename.sdp. To connect to the stream, someone would just need to open the file:
If you put the file on a server, they could open the address: