guochongxin / windows-screen-master

windows下屏幕分享例子,包括录制屏幕到本地的功能

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

快速开始

点击release文件夹下屏幕分享例程.exe,然后访问 http://127.0.0.1:8000 即可看到如下,在release目录下可看到录屏文件save.h264(使用vlc播放器等即可播放,或使用ffmpeg转码)

20190325145758

介绍

该程序实现windows的录屏,投屏功能。

  • 屏幕复制 连接到同一个局域网,查看本机ip,然后使用其他设备访问。例如,我的本机ip是192.168.253.1,所以我的平板访问192.168.253.1:8000 1553494000066

  • 拓展屏投屏

    拓展屏是使用一款软件开启的一个虚拟屏幕

    1553494228778

  • 屏幕录制

    使用ffmpeg开发库,录制的视频编码格式可指定为h264或者mpeg,会在本地生成文件,使用vlc播放器即可播放,或者使用 ffmpeg -i save.h264 -codec copy save.mp4

    命令转换为mp4格式。

  • SDL播放器播放测试

    SDL为windows下的一个播放器,实现实时查看录制的内容。

1553494687354

编译环境

VS2017 + ffmpeg

其中我已经提供了x86平台下的ffmpeg开发库。

TODO

  • 浏览器上使用javascript库播放h264/mpeg视频流(试过几个库,例如Broadway库,出现花屏等情况,不知道是哪方面出问题)
  • rtsp推流(试过用nginx来推流,效果不是特别好,不知道怎么优化,所以没把代码放上)

代码介绍

  • MonitorMaster.cpp 枚举显示器,查看显示器的一些信息
  • SDLMaster.cpp 封装一个简单的SDL播放器
  • ffmpegEncoder.cpp 使用ffmpeg库实现mpeg和x264视频编码的功能
  • libx264Master.cpp 使用libx264库实现x264视频编码
  • web_stream.cpp 实现一个简单的web服务器,该服务器传输照片流形成视频(目前视频流还没有做好,因为找不到一款合适的javascript编码解码工具)

About

windows下屏幕分享例子,包括录制屏幕到本地的功能


Languages

Language:C 84.0%Language:C++ 15.9%Language:Objective-C 0.1%