使用FFMpeg命令行录屏推rtmp流

最近在做局域网内屏幕分享方面的东西,要把录制一台设备的屏幕然后实时推送给内网的一个或多个用户。

做了很多实验,效果还没有达到要求,这里分享一下推rtmp流的实验。

实验使用到的各种工具:FFmpeg.exe、crtmp(推rtmp时需要其做为服务器)、vlcplayer。

一、 启动crtmp推流服务

使用FFMpeg命令行录屏推rtmp流

二、 使用命令行工具调用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,能正常播放

问题:

  1. 系统资源占用太多,CPU一直在9%左右(i7-4790),内容则吃掉了1G
  2. 延迟太大,本机播放延迟大约10秒(希望控制在2秒以内)
上一篇:FFmpeg命令行工具学习(一):查看媒体文件头信息工具ffprobe


下一篇:Java之序列流SequenceInputStream