手机推流到电脑(ubuntu18)

整体思路:使用PC作为中转服务器,手机端需要连接PC热点并通过APP推流,然后PC端拉流,支持ffplay,网络播放器,python-opencv等,类似的读取网络视频流应该都可以

安装nginx

参考ffmpeg+nginx+rtmp+web实现视频直播网站
需要注意的几点:

  1. 严格遵照原文的路径要求,在执行下述命令时
    ./configure --prefix=/usr/local/nginx --add-module=~/nginx-rtmp-module --with-http_ssl_module
    由于我的~可能与原文有出入,所以提示找不到nginx-rtmp-module。因为按照原文,下载后module和nginx在同一父路径下,所以改成
    ./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
  2. 由于APP限制,之前写的时候出了bug,推流的ip和端口无法修改,所以其他配置需要配套更改,下文的修改无线热点同理。
    在添加rtmp服务时,端口号必须指定为1935,其他都不变
    这里的application live中的live是后面要用的一个项目名,也可以自定义。
rtmp {    
    server {  
        listen 1935;  #这里做了修改,其他的都不变
        application live {  
        	live on;
    	}  
        application hls_alic{
		live on;
		hls  on;
		hls_path /tmp/hls;
	}
}  
  1. 原文给出的sudo ./nginx是启动服务,sudo ./nginx -s quit为退出服务,其他的可以查看nginx -h

推流

  1. 由于我的环境是ubuntu18,没有找到百度经验中的设置图,所以参考ubuntu 18.04 设置wifi热点的手机端接收解决方案以及开机自启动命令的第一个命令,电脑开启热点后终端中输入nm-connection-editor打开网络连接管理,第一个Hotspot就是热点
    《手机推流到电脑(ubuntu18)》
    修改IPV4地址为192.168.137.1,子网掩码为24(由于怕设置错误,所以网关没填,竟然没报错…)
    《手机推流到电脑(ubuntu18)》
    操作成功后,在手机端查看无线连接的IP地址应该在同一网段下。
  2. 这里用的是一个HBuilder写的APP,使用一个支持rtmp的插件,安装后应该会需要摄像头的权限,只支持推流到rtmp://192.168.137.1:1935/live(这里的live就是之前定义的项目名),由于后来不用HBuilder写代码了就删了源码。(没有开后门!!不放心的话可以PC在断网下操作,但是无线热点必须开)下载链接
    《手机推流到电脑(ubuntu18)》
  3. 参考使用ffmpeg for linux 录屏推流可以将桌面推流到服务器上,测试时电脑上必须有一个摄像头才能使用,不太清楚为什么,感兴趣的可以搜一下关于ffmpeg用法的其他博客

拉流

  1. 网络摄像头按网上要求操作即可,VLC亲测可用
    《手机推流到电脑(ubuntu18)》
  2. 终端输入ffplay rtmp://192.168.137.1:1935/live,效果同网络浏览器
  3. python环境参考python+opencv读取视频,调用摄像头,创建摄像头对象时使用string类型参数”rtmp://192.168.137.1:1935/live”即可(需要在推流下运行python,而且在推流下结束python程序,不然python会无响应)
    《手机推流到电脑(ubuntu18)》
    win10下原理和安装类似,注意需要安装nginx-rtmp-module,很多基础的教程里没有安装这个模块的相关部分,百度时需要注意一下这里。
    原文作者:ZhYC99
    原文地址: https://blog.csdn.net/weixin_42658707/article/details/109565990
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞