我试图让我的Android设备将其相机直播到网络浏览器。 我在androidhive上阅读了一篇关于使用wowza的精彩教程。但是,我正在寻找一个免费的解决方案。 我决定在我的本地机器上安装一个带有rtmp模块的nginx服务器,可以从局域网外部访问。 我能够毫无问题地使用OBS流式传输我的屏幕。
MY SETTINGS:
在nginx中,我正在使用以下内容:
rtmp {
server {
listen 1935;
allow play all;
chunk_size 4000;
application live {
live on;
allow publish all;
allow play all;
exec_pull c:/nginx/ffmpeg -i "rtsp://127.0.0.1:1935/live/test" -f flv -r -s -an "rtmp://127.0.0.1:1935/live/pc"
#enable HLS
hls on;
hls_path "c:/nginx/www/hls";
hls_fragment 3;
hls_playlist_length 60;
}
}
}
我真的不确定关于ffmpeg ......
的界限在我的android应用程序中,它很简单,我在这里从androidhive教程中学习了这个类:http://www.androidhive.info/2014/06/android-streaming-live-camera-video-to-web-page/ 我正在使用libstreaming for android:https://github.com/fyhertz/libstreaming
因此,我只需使用以下行创建RTSP客户端:
Matcher m = uri.matcher("rtsp://127.0.0.1:1935/live/test");
它应创建一个RTSP客户端,使用RTSP协议连接到127.0.0.1:1935,并将摄像机流式传输到“测试”通道中的“实时”应用程序。 所以我的nginx应该在端口1935上收到一些东西并使用ffmpeg将RTSP转换为RTMP吗?
我缺少什么使整个工作有效?我真的陷入了困境并试图尝试
谢谢!
答案 0 :(得分:0)
使用10.0.2.2 - 主机环回接口(127.0.0.1)的特殊别名
更改
Matcher m = uri.matcher("rtsp://127.0.0.1:1935/live/test");
到
Matcher m = uri.matcher("rtsp://10.0.2.2:1935/live/test");