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