Back to Srs

Transcode Deploy

trunk/3rdparty/srs-docs/doc/sample-ffmpeg.md

6.0.482.7 KB
Original Source

Transcode deploy example

FFMPEG can used to transcode the live stream, output the other RTMP server. For detail, read FFMPEG.

Suppose the server ip is 192.168.1.170

Step 1, get SRS

For detail, read GIT

bash
git clone https://github.com/ossrs/srs
cd srs/trunk

Or update the exists code:

bash
git pull

Step 2, build SRS

For detail, read Build

bash
./configure --ffmpeg-tool=on && make

Step 3, config file

For detail, read FFMPEG

Save the bellow as config file, or use conf/ffmpeg.transcode.conf instead:

bash
# conf/ffmpeg.transcode.conf
listen              1935;
max_connections     1000;
vhost __defaultVhost__ {
    transcode {
        enabled     on;
        ffmpeg      ./objs/ffmpeg/bin/ffmpeg;
        engine ff {
            enabled         on;
            vfilter {
            }
            vcodec          libx264;
            vbitrate        500;
            vfps            25;
            vwidth          768;
            vheight         320;
            vthreads        12;
            vprofile        main;
            vpreset         medium;
            vparams {
            }
            acodec          libfdk_aac;
            abitrate        70;
            asample_rate    44100;
            achannels       2;
            aparams {
            }
            output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
        }
    }
}

Step 4, start SRS

For detail, read FFMPEG

bash
./objs/srs -c conf/ffmpeg.conf

Step 5, start encoder

For detail, read FFMPEG

Use FFMPEG to publish stream:

bash
    for((;;)); do \
        ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.flv \
        -c copy \
        -f flv rtmp://192.168.1.170/live/livestream; \
        sleep 1; \
    done

Or use FMLE to publish:

bash
FMS URL: rtmp://192.168.1.170/live
Stream: livestream

The stream in SRS:

  • Stream publish by encoder: rtmp://192.168.1.170:1935/live/livestream
  • Play the original stream: rtmp://192.168.1.170:1935/live/livestream
  • Play the transcoded stream: rtmp://192.168.1.170:1935/live/livestream_ff

Step 6, play the stream

For detail, read FFMPEG

RTMP url is: rtmp://192.168.1.170:1935/live/livestream

User can use vlc to play the RTMP stream.

Note: Please replace all ip 192.168.1.170 to your server ip.

Step 7, play the transcoded stream

For detail, read FFMPEG

RTMP url is: rtmp://192.168.1.170:1935/live/livestream_ff

User can use vlc to play the RTMP stream.

Note: Please replace all ip 192.168.1.170 to your server ip.

Winlin 2014.11