windows下nginx+ffmpeg进行屏幕录制直播

2019-01-15 10:53:45

概述

  1. nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流。
  2. (一)下载已经集成了rmtp模块的nginx,下载链接 https://github.com/illuspas/nginx-rtmp-win32
  3. 已安装的nginx可以自主集成rtmp模块,下载 https://github.com/arut/nginx-rtmp-module
  4. 修改conf文件:
  5. rtmp {
  6. server {
  7. listen 1935;
  8. chunk_size 4000;
  9. # TV mode: one publisher, many subscribers
  10. application wstv{
  11. # enable live streaming
  12. live on;
  13. # record first 1K of stream
  14. record all;
  15. record_path /tmp/av;
  16. record_max_size 1K;
  17. # append current timestamp to each flv
  18. record_unique on;
  19. # publish only from localhost
  20. allow publish 127.0.0.1;
  21. deny publish all;
  22. #allow play all;
  23. }
  24. 编译nginx载入rtmp模块
  25. ./configure --add-module=/path/to/nginx-rtmp-module
  26. make
  27. make install
  28. ps:我是直接下载已经集成好的,偷懒
  29. (二)启动测试nginx
  30. (三)安装ffmpeg 参见: https://www.cnblogs.com/new-ass/p/7704040.html
  31. (四)以上步骤全部完成之后可以进行推流到服务器,客户端进行拉流(拉流可以使用vlc播放器等)
  32. 推流命令: ffmpeg -f gdigrab -i desktop -f flv rtmp://ip:port/applicationName(nginx配置文件配置的rtmp模块名字)/2(随意取)
  33. ![](https://javaweb-community.oss-cn-beijing.aliyuncs.com/2019/0115/f47ff70bc25145689ce15a4d894da279.png)
  34. 命令 gdigrab
  35. gdigrabFFmpeg专门用于抓取Windows桌面的设备。非常适合用于屏幕录制。它通过不同的输入URL支持两种方式的抓取:
  36. 1)“desktop”:抓取整张桌面。或者抓取桌面中的一个特定的区域。
  37. 2)“title={窗口名称}”:抓取屏幕中特定的一个窗口(目前中文窗口还有乱码问题)。
  38. gdigrab另外还支持一些参数,用于设定抓屏的位置:
  39. offset_x:抓屏起始点横坐标。
  40. offset_y:抓屏起始点纵坐标。
  41. video_size:抓屏的大小。
  42. framerate:抓屏的帧率。
  43. 简单示例:ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y 20 -video_size 640x480 -f flv rtmp://ip:port/applicationName(nginx配置文件配置的rtmp模块名字)/2(随意取)

1
2
0

添加评论

正在回复:
取消
1
1
2
0