RTP streaming from ffmpeg 0.9 or 0.10

We have been streaming RTP from ffmpeg 0.5 to Wowza 2.x for a couple of years with great success. We have Flash clients connect to that stream using RTMP and iOS clients using HLS.

We recently built some new encoders and decided to use the latest ffmpeg. The syntax has changed greatly since version 0.5. I think we’ve got the syntax right, but when we connect to the stream, we get black video and “jumpy” audio. Interestingly, if we only send the video, it streams to RTMP perfectly.

If we capture to an MP4 file, the resulting file is fine. The problem seems to be in the RTP stream.

I’m hoping that somebody here may have enough familiarity with

ffmpeg -re -f rawvideo -pix_fmt yuv422p \
    -s 960x540 -r 29.97 \
    -i /Media/vpipe-1 \
    -re -ar 48000 -f s16le -ac 2 -i /Media/apipe-1 \
    -map 0:0 \
    -c:v libx264 -vprofile baseline -qmax 51 -threads 0 \
    -pix_fmt yuv420p \
    -vf 'crop=in_w-16:in_h-9:8:5,scale=576:324' \
    -r 15 -g 45 \
    -b:v 448k -minrate 448k -maxrate 528k -bufsize 50Mi \
    -f rtp rtp://127.0.0.1:9204 \
    -map 1:0 \
    -vol 1024 \
    -c:a libfaac -ac 2 -b:a 96k -ar 22050 \
    -async 1 \
    -flags +global_header \
    -f rtp rtp://127.0.0.1:9206

The SDP that is generated is below. It’s interesting that I don’t see any sprop-parameter-sets like I do with version 0.5 of ffmpeg. I don’t really understand the intricacies of SDP files and these sprop values, so I don’t know how crucial they are.

v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
t=0 0
a=tool:libavformat 53.31.100
m=video 9204 RTP/AVP 96
c=IN IP4 127.0.0.1
b=AS:448
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
m=audio 9206 RTP/AVP 97
c=IN IP4 127.0.0.1
b=AS:96
a=rtpmap:97 MPEG4-GENERIC/22050/2
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1390

Any guidance would be greatly appreciated!

I would try TS output from ffmpeg rather than RTP. See these two articles:

https://www.wowza.com/docs/how-to-use-ffmpeg-with-wowza-media-server-mpeg-ts

https://www.wowza.com/docs/how-to-publish-and-play-a-live-stream-mpeg-ts-based-encoder

Charlie

I am not sure. I might try adding a sort buffer on the Wowza Server side to see if that helps. It could be that the audio and video are shifted (#1):

https://www.wowza.com/docs/troubleshoot-live-streaming

Charlie

I was afraid of that. We’ve built our 12-encoder farm around RTP – we’d have to reconfigure all the servers at our CDN and our existing encoders to make the jump to MPEG-TS.

Is there anything offhand that might cause the symptoms I described (black video, choppy audio)? If I could coerce ffmpeg to do RTP for now, I could plan my migration to MPEG-TS at a future date…