Publish stream to wowza via ffmpeg


In this article I try to tell the rtp or rtsp based encoder output is streaming over wowza and can be saved with as3 . This can be also used to stream Axis or other security cam  over lan .

In rtsp based encoder there is no problem to stream it over wowza , cause  wowza is directly supporting the rtsp input and ready to stream it with rtmp .

To setting up it , in wowza Directory / conf folder , and find the startupstream.xml  and you can see the examples that rtsp , .sdp and .stream .

for Rtsp first you have to learn which port the camera or rtsp based encoder out . Where is it announcing to ?


This is an example of rtsp output and wowza will re-stream it over rtmp , so you can play it with osmf player .

Using the live application , we can reach the stream , stream name is the same rtsp output link.


Rtsp is easiest .However how about the rtp ? If your rtp based encoder (like edbox virgo) out single port and two map {one of them video = h264 and the audio with two channels aac}

is a problem . If encoder supports double port so we can reach video and audio via different port .

ie : my rtp based encoder gives that to the video and to the audio , so we can easily create sdp file to stream it in wowza.

In wowza Directory / content folder to place .sdp file , it include that video and audio session description . Like

m=video 1234 RTP/AVP 96

c=IN IP4

a=rtpmap:96 H264/90000


m=audio 1236  RTP/AVP 97

c=IN IP4


a=rtpmap:97 PCMU/48000/2

you can easily create sdp if u know that audio is PCMU or MPEG4-GENERIC and bitrate and channels .

But generally we dont know which format it is .
To create sdp

in ffmpeg

ffmpeg -i "rtp://" -vcodec libx264 -b:v 500k -tune zerolatency -strict experimental -f rtp "rtp://" > video.sdp

this will generate the video .sdp folder in ffmpeg bin folder {where ffmpeg.exe exists.} if you setting up the encoder to output Ts over Rtp and
the video out with h264


o=- 0 0 IN IP4

s=No Name

t=0 0

a=tool:libavformat 54.25.104

m=video 1234 RTP/AVP 96

c=IN IP4

a=rtpmap:96 H264/90000

a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AH5ZWBaED58BUIAAAfSAAHUwcTAAECegACBPf4xxiYAAgT0AAQJ7/GOHaECE4,aOkJNSA=; profile-level-id=4D401F

and in wowza startup stream if u write yourSdpFilename.sdp

and restart wowza ,

you can watch the output over


For audio

the same step for that , if u want , merge codes in ffmpeg

like two input

ffmpeg -i “rtp://”  -videoConfig ….. video out rtp://…. where you wanna out  -i “rtp://” -audioCOnfig(like -ar 48k -ac 2 -acodec aac ) ….

audio out -f rtp rtp://…. > new.sdp

still there is no problem .

However if encoder has a single port ?

In This case

in map 0:0 the video

in map 0:1 or 1:0 the audio stream will exist .

And we can split them with ffmpeg or vlc .

in ffmpeg

ffmpeg -i “rtp://” -videoConfig -audioConfig -f rtp first out -f rtp second out the syntax .

ffmpeg -i “rtp://” -vcodec copy -acodec copy -ar 96k -bufsize 5Mi -r 59.99 -b:v 500k -maxrate 512k -minrate 448k -map 0:0 -an -f rtp rtp://

-map 0:1 -vn -f rtp rtp:// > newSdp.sdp

or in vlc for single port rtp based encoder

vlc -vvv -I rc “rtp://” –sout “#transcode{venc=x264{keyint=60,profile=baseline,level=3.0,nocabac,qpmax=36,qpmin=10,me=hex,merange=24,subme=9,qcomp=0.6},vcodec=x264,vb=500,scale=1,acodec=mp4a,ab=96,channels=2,samplerate=48000}:rtp{dst=,port-video=10000,port-audio=10002,sdp= file://C:/vlc.sdp}”

and repeating the same step for wowza , in content folder place the sdp

in live application you can reach the stream with sdp name .

-> also you can wonder what about the .stream file ?

If you dont wanna mapping the stream

u can take the rtp input and

in mpegts out it over udp .


ffmpeg -i input -codecSConfigEtc ….. -f mpegts udp://

and in .stream file content is


and to start this place it startStream.xml

and restart wowza .

reach this stream in live app





Leave a Comment

Your email address will not be published. Required fields are marked *