Android无法通过浏览器观看HLS直播的问题
2016-12-20 15:16
465 查看
公司的产品,有直播功能,需要通过网页观看直播,无插件方案就是移动端使用HLS
方法为FFMPEG推流到带Nginx-RTMP-Module的Nginx上,转出RTMP流和HLS流
所用命令为:
其他浏览器上无法观看,点击播放后,只能显示一帧画面,播放按钮灰色。点击全屏按钮则提示“抱歉,此视频无法播放”。
而视频点播我们也使用的Nginx,却能正常观看,遂认为是我们的rtsp流有问题(之前还研究过是否配置问题,MIME问题,等等)
而后测试使用ffmpeg分别推视频文件和rtsp流到nginx,然后在nginx的temp/hls文件夹获取切片文件(.ts)
分析之后发现了区别:
左边是推视频文件的切片文件的信息,右边是流的
可以看到,音频都是AAC,但是视频的是LC-AAC,流的是Main-AAC
Apple关于HLS的资料
查阅资料后发现HLS支持的音频编码为:
HE-AAC or AAC-LC, stereo
MP3 (MPEG-1 Audio Layer 3), stereo
所以应该是AAC编码导致的问题,至于iOS能看,应该是因为iOS上播放都是使用了自带播放器,而Android上的微信、QQ浏览器、UC浏览器能看则应该是因为内嵌了一个播放器用于播放视频及流媒体,播放器能掩盖很多小问题。
推流命令换成这个,问题解决:
但是由于重编码可能耗费一点服务器性能,所以我们还是决定处理我们的rtsp流
网上查了很多资料,包括国外的,也没见提到这点,没认真看文档,或者说没留意到这个问题,可能就走了很多弯路,所以写上来,提醒遇到同样问题的人
方法为FFMPEG推流到带Nginx-RTMP-Module的Nginx上,转出RTMP流和HLS流
所用命令为:
ffmpeg.exe -ss 0 -rtsp_transport tcp -i rtsp://192.168.1.1/stream/0 -vcodec copy -acodec copy -f flv rtmp://127.0.0.1:1935/hls/hlstest结果发现,HLS流在iOS上观看正常,在Android的微信、QQ浏览器、UC浏览器上观看正常。
其他浏览器上无法观看,点击播放后,只能显示一帧画面,播放按钮灰色。点击全屏按钮则提示“抱歉,此视频无法播放”。
而视频点播我们也使用的Nginx,却能正常观看,遂认为是我们的rtsp流有问题(之前还研究过是否配置问题,MIME问题,等等)
而后测试使用ffmpeg分别推视频文件和rtsp流到nginx,然后在nginx的temp/hls文件夹获取切片文件(.ts)
分析之后发现了区别:
左边是推视频文件的切片文件的信息,右边是流的
可以看到,音频都是AAC,但是视频的是LC-AAC,流的是Main-AAC
Apple关于HLS的资料
查阅资料后发现HLS支持的音频编码为:
HE-AAC or AAC-LC, stereo
MP3 (MPEG-1 Audio Layer 3), stereo
所以应该是AAC编码导致的问题,至于iOS能看,应该是因为iOS上播放都是使用了自带播放器,而Android上的微信、QQ浏览器、UC浏览器能看则应该是因为内嵌了一个播放器用于播放视频及流媒体,播放器能掩盖很多小问题。
推流命令换成这个,问题解决:
ffmpeg.exe -ss 0 -rtsp_transport tcp -i rtsp://192.168.1.1/stream/0 -vcodec copy -acodec aac -f flv rtmp://127.0.0.1:1935/hls/hlstest
但是由于重编码可能耗费一点服务器性能,所以我们还是决定处理我们的rtsp流
网上查了很多资料,包括国外的,也没见提到这点,没认真看文档,或者说没留意到这个问题,可能就走了很多弯路,所以写上来,提醒遇到同样问题的人
相关文章推荐
- android2.2中默认浏览器无法使用手势放大缩小页面的问题定位
- Android某些浏览器下载的apk无法通过状态栏直接安装
- 关于程序退出无法关闭所有界面问题 通过广播使Android程序完全退出
- Android WebView无法播放视频或直播,关闭界面后任在播放的问题;
- android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题
- android 通过浏览器启动app,如果本地app先启动了,会出现启动两次的问题
- android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题
- android2.2中默认浏览器无法使用手势放大缩小页面的问题定位
- android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题
- Android自定义控件无法通过代码修改大小、高宽,setMinimumHeight无效的问题
- android通过设置ctl.start=bootanim无法启动开机画面的问题
- 弱智问题及原因No.1——android应用无法通过4g连接本地服务器之原因探究
- 通过android:descendantFocusability解决listview每一项或项中view无法获取焦点的问题
- eclipse通过android layour editor无法查看布局文件问题解决
- 解决Android下Google Maps无法通过GSM基站定位问题
- android 模拟器无法上网问题解决(环境为家庭通过路由共享上网,即ip 为局域网ip,dns 为192.168.1.1)
- 监控物联网直播时遇到iOS无法播放HLS流的问题解决
- 以前很少遇到这样的问题。。。就是浏览器无法访问apache下的swf
- 解决了gcc 4.3.2 无法编译通过的问题
- VS2005 出问题了。。在浏览器中查看。。无法使用