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