WIKI:https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEGgit
listen 1935;github
max_connections 1000;app
#定義一個默認的vhostui
vhost __defaultVhost__ {編碼
}spa
#定義一個名爲v.flyfn.com的vhost,這樣只對v.flyfn.com這個vhost中全部流進行轉碼線程
vhost v.flyfn.com {日誌
transcode {code
enabled on; #開始實時轉碼orm
ffmpeg ./objs/ffmpeg/bin/ffmpeg; #ffmpeg的執行文件
engine sd { #這裏經過engine定義轉一個名爲sd的轉碼引擎,這個名稱在下面輸出流的時候用到
enabled on; #開始,設置爲off就是關閉
vfilter { #對應ffmpeg中的濾鏡參數,能夠在這裏寫
v quiet; #減小ffmpeg的輸出日誌
}
vcodec libx264; #視頻編碼器
vbitrate 500; #視頻比特率
vfps 25; #視頻幀率
vwidth 768; #寬
vheight 320; #高
vthreads 12; #使用ffmpeg線程數
vprofile main; #編碼等級,high、main、baseline
vpreset medium; #視頻預設
vparams { #ffmpeg的其餘視頻參數
g 100; # 指定gop時長爲4秒=100 / 25(vfps)
}
acodec libfdk_aac; #音頻編碼器
abitrate 70; #音頻比特率
asample_rate 44100; #音頻採樣率
achannels 2; #聲道
aparams { #ffmpeg中的其餘音頻參數
}
#轉碼後的流輸出到那裏,這裏是輸出到本機了。另一種推流到vhost的方法:
#rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]
#[vhost] 輸入流的vhost
#[port] 輸入流的端口
#[app] 輸入流的app
#[stream] 輸入流的流名稱
#[engine] 轉碼引擎的名稱
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
}
#能夠定義多個engine
engine ld {
enabled on;
vfilter {
}
vcodec libx264;
vbitrate 300;
vfps 25;
vwidth 640;
vheight 480;
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];
}
}
}
./ffmpeg -re -i 'abc.rmvb' -f flv -y rtmp://v.flyfn.com:1935/live?vhost=v.flyfn.com/test
原始視頻播放:rtmp://v.flyfn.com/live/test
轉碼流1(sd):rtmp://v.flyfn.com/live/test_sd
轉碼流2(ld):rtmp://v.flyfn.com/live/test_ld
rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]
listen 1935;
vhost v.flyfn.com {
transcode live{ #對形如rtmp://srs_ip:1935/live下的流進行轉碼
......
}
}
listen 1935;
vhost v.flyfn.com {
transcode live/livestream { #對形如rtmp://srs_ip:1935/live/livestream進行轉碼
......
}
}