begeekmyfriend / yasea

RTMP live streaming client for Android
MIT License
4.86k stars 1.32k forks source link

Network weak #831

Closed DoubleCcc closed 2 years ago

DoubleCcc commented 2 years ago

您好,请问为什么在AndroidStudio里或者安卓模拟器可以连接上nginx并推流成功,在手机上则显示Network weak,电脑与手机在同一个wifi,地址都为 rtmp://(nginx所在linux虚拟机ip):1935/mylive/xxx nginx.conf 部分配置:application mylive{ live on; hls on; hls_path /usr/local/m3u8File;
hls_fragment 2s; hls_playlist_length 16s; recorder myRecord { record all manual; recordsuffix .flv; record_path /tmp/rec; } }

listen 80; server_name localhost;

begeekmyfriend commented 2 years ago

显示Network weak表示由于网络堵塞,FLV缓存满了,RTMP包一直发不出去,你可以在SrsEncoder.java里面看到这个逻辑。

DoubleCcc commented 2 years ago

显示Network weak表示由于网络堵塞,FLV缓存满了,RTMP包一直发不出去,你可以在SrsEncoder.java里面看到这个逻辑。

请问是否可以教一下,我不知道具体怎么做,谢谢

begeekmyfriend commented 2 years ago

你自己用ffmpeg在同样的网络下推流看看能否成功,这是网络问题。

DoubleCcc commented 2 years ago

你自己用ffmpeg在同样的网络下推流看看能否成功,这是网络问题。

在linux用ffmpeg命令是可以推流文件里的视频的。

begeekmyfriend commented 2 years ago

但你现在用的WiFi

begeekmyfriend commented 2 years ago

有一个办法是将VGOP改大一点,我把FLV缓存设成VGOP大小了,你可以将它改成96(4秒帧,1秒就是上面的VFPS),代价是延迟可能会大一点

DoubleCcc commented 2 years ago

改了还是不行。https://github.com/DoubleCcc/zhibo 这是我之前上传的文件,方便的话可以看一下嘛,感谢

begeekmyfriend commented 2 years ago

这是网络环境问题,给我看代码没啥意义,我只能说RTMP那边发送太慢,你可以取消注释看看Log.d体会一下,里面是Android SDK API的写网络,我这边也只有不断调整VGOP大小调整,你可以改这里这里代码,将VGOP / 2改成VGOP

DoubleCcc commented 2 years ago

我没有改代码,手机连接了电脑360wifi分享的网络 ,然后就能推流成功了 谢谢!

begeekmyfriend commented 2 years ago

是挺不容易的,祝好