FFmpeg with Wowza Server MPEG-TS

To get started, download and install FFmpeg for your platform on the same machine running Wowza Media Server 2. We will be re-streaming the sample file sample.mp4. The following tutorial is for Windows only. I used the most recent daily build of FFmpeg from this site:

 http://ffmpeg.arrozcru.org/autobuilds/

 FFmpeg Setup (Windows)

In the root the C: drive create the following directory structure:

Code:

C:/usr/local/share/ffmpeg

Copy all the files from the presets folder of the FFmpeg package into this new directory.

Open a command prompt and change directory to the FFmpeg bin folder.

Enter the following FFmpeg command which will re-streaming the file sample.mp4 from the [install-dir]/content folder of the Wowza Media Server 2 installation:

Code:

ffmpeg -i “%WMSAPP_HOME%/content/sample.mp4” -re -vcodec libx264 -vpre default -vpre baseline -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://127.0.0.1:10000?pkt_size=1316

 

Next, follow the instructions in the following tutorial article:

 

How to publish and play a live stream (MPEG-TS based encoder)

 

 

 

See Also:

FFmpeg website

FFmpeg Documentation

 

Note: The sample.mp4 file is about 6 minutes long. FFmpeg will stop when it hits the end of this file. So you may have to re-start FFmpeg several times during configuration and testing.

 

Note: The above FFmpeg command lines will produce a low bitrate, low complexity, low quality stream that should be playable on most playback devices and systems. The following is a higher quality version just to provide a glimpse of what VLC can do:

 

Code:

ffmpeg -i “%WMSAPP_HOME%/content/sample.mp4” -re -vcodec libx264 -vpre default -vpre main -g 60 -vb 500000 -strict experimental -acodec aac -ab 128000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://127.0.0.1:10000?pkt_size=1316

Note: FFmpeg can also be used to transcode a RTSP, native RTP or MPEG-TS stream. Simply change the first argument of each of the command lines (the path to the sample.mp4 file) to the desired source to be transcoded and remove the -re command line option. Here are a few examples:

 

Code:

RTSP/RTP camera:

ffmpeg -i “rtsp://192.168.1.22/mycamera” -vcodec libx264 -vpre default -vpre baseline -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://127.0.0.1:10000?pkt_size=1316

 

MPEG-TS stream:

ffmpeg -i “udp://localhost:1234” -vcodec libx264 -vpre default -vpre baseline -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://127.0.0.1:10000?pkt_size=1316

 

Native RTP stream:

ffmpeg -i “unicast.sdp” -vcodec libx264 -vpre default -vpre baseline -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://127.0.0.1:10000?pkt_size=1316

Note: If you would like to host FFmpeg on a different machine as the server hosting Wowza Media Server, you can modify any of the command lines above by changing udp://127.0.0.1:10000 to the IP address of the server running Wowza Media Server 2 and any destination UDP port. Be sure the specified UDP port is open on any routers or firewalls between the server running VLC and the server running Wowza Server.

 

Note: FFmpeg can publish stream using other outgoing protocols such as RTMP and RTSP/RTP (QuickTime ANNOUNCE).

 

To send a stream using RTMP, change the destination portion of the FFmpeg URL:

 

Code:

from:

-f mpegts udp://127.0.0.1:10000?pkt_size=1316

 

to:

-f flv rtmp://127.0.0.1/live/myStream

The format of the RTMP URL portion is:

 

Code:

rtmp://[wowza-ip-address]/[application]/[streamName]

To send a stream using RTSP/RTP, change the destination portion of the FFmpeg URL:

 

Code:

from:

-f mpegts udp://127.0.0.1:10000?pkt_size=1316

 

to:

-f rtsp rtsp://127.0.0.1:1935/live/myStream.sdp

The format of the RTMP URL portion is:

 

Code:

rtsp://[wowza-ip-address]:1935/[application]/[streamName]

 

Click here, if you are having problems or would like to discuss this article.

Leave a comment below, if there is some aspect of this article you would like to see changed or improved.