最近在做局域網內屏幕分享方面的東西,要把錄制一台設備的屏幕然后實時推送給內網的一個或多個用戶。
做了很多實驗,效果還沒有達到要求,這里分享一下推rtmp流的實驗。
實驗使用到的各種工具:FFmpeg.exe、crtmp(推rtmp時需要其做為服務器)、vlcplayer。
一、 啟動crtmp推流服務

二、 使用命令行工具調用FFmpeg程序,所用命令如下(參數略有不同,每次使用一條即可):
ffmpeg -f gdigrab -video_size 1920x1080 -framerate 15 -i desktop -vcodec libx264 -f flv rtmp://127.0.0.1/live/mystream
ffmpeg -f dshow -i video="screen-capture-recorder" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1/live/mystream
注:第二條命令需要安裝Screen Capturer Recorder后才能使用。參見http://blog.csdn.net/leixiaohua1020/article/details/38284961
三、 推流穩定之后,使用vlcplayer播放錄制視頻
播放的地址為rtmp://127.0.0.1/live/mystream live=1,能正常播放
問題:
- 系統資源占用太多,CPU一直在9%左右(i7-4790),內容則吃掉了1G
- 延遲太大,本機播放延遲大約10秒(希望控制在2秒以內)
