一.前端推流
1.推流可以采用命令: ffmpeg -i input -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/cgstream0input 可以是實(shí)時(shí)流,也可以是文件,如果是文件 需要加上-re。運(yùn)用中需要將127.0.0.1換成rtmp所在機(jī)器的ip地址。
用命令推流時(shí)間戳信息不能任意修改,想要達(dá)到一個(gè)滿意的結(jié)果還是要用代碼實(shí)現(xiàn)。
主要方法代碼如下:
1.打開(kāi)視頻流,filename可以文件名稱也可以是實(shí)時(shí)流url.
2.創(chuàng)建輸出上下文以及輸出流,輸出流的格式需要設(shè)置成flv
從輸入流中讀取音視頻包
二。服務(wù)端可以選擇crtmpserver,crtmpserver開(kāi)源,在windows平臺(tái)以及l(fā)inux平臺(tái)下都可以運(yùn)行。
隨著人們對(duì)視頻質(zhì)量要求的提高,基本上視頻的分辨率都是高清(1080p),碼率基本會(huì)在4M以上。試想如果服務(wù)器網(wǎng)卡選擇千兆網(wǎng)卡,單個(gè)網(wǎng)卡最多也就支持兩百多路。一般來(lái)講,服務(wù)器的cpu配置會(huì)比普通電腦高很多,支持幾百路并發(fā)是不會(huì)出現(xiàn)性能問(wèn)題。
三. 播放端
如果在網(wǎng)頁(yè)上播放(IE),可以選擇JwPlayer,如果用插件的也是可以。Android端播放器如果底層基于ffmpeg,也可以播放CrtmpServer
轉(zhuǎn)發(fā)的音視頻流(ffmpeg需要引入librtmp庫(kù)),IOS系統(tǒng) 同理。播放的url是rtmp:/
四. 如何搭建
1.首先 下載CrtmpServer服務(wù)(可以直接從群里下載),運(yùn)行雙擊文件夾下的crtmpserver.exe,如果沒(méi)有閃退,說(shuō)明運(yùn)行成功.
2.下載ffmpeg.exe (可以從群里直接下載),在命令行執(zhí)行 ffmpeg -i input -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/cgstream0 127.0.0.1改成crtmpserver.exe所在服務(wù)器的地址.如果你在linux下推流,需要linux版本的ffmpeg。cgstream0可以根據(jù)需要任意修改。在 windows平臺(tái)下如果推流成功ffmpeg會(huì)一直打印信息,出錯(cuò)也會(huì)有相應(yīng)的提示。
3.播放:播放可以用ffplayer.exe(可以從群里下載,這個(gè)工具對(duì)rtmp流支持不是很好 ,播放的地址是rtmp://127.0.0.1/live/cgstream0 live=1),還可以用CGPlayer播放器。