公司的产品,有直播功能,需要通过网页观看直播,无插件方案就是移动端使用HLS

方法为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流

网上查了很多资料,包括国外的,也没见提到这点,没认真看文档,或者说没留意到这个问题,可能就走了很多弯路,所以写上来,提醒遇到同样问题的人

Android无法通过浏览器观看HLS直播的问题相关推荐

  1. 【Android RTMP】NV21 图像旋转处理 ( 快速搭建 RTMP 服务器 Shell 脚本 | 创建 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图像旋转效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 编写快速搭建 RTMP 服务器 Shell 脚本 二. RTMP 快速搭建方法 三.创建阿里云 RTMP 服务器镜像 四.浏览器查看直播内容 五.前置 / 后 ...

  2. php安卓直播抓取,hls,android_安卓大部分浏览器播放HLS协议直播流会从头开始,hls,android,ffmpeg,m3u8 - phpStudy...

    安卓大部分浏览器播放HLS协议直播流会从头开始 遇到的问题 HLS直播流在iOS系统中表现正常, 但在安卓使用大部分浏览器(UC浏览器除外)播放ffmpeg生成的HLS直播流都会发生从头播放的问题, ...

  3. android hls检测,安卓大部分浏览器播放HLS协议直播流会从头开始

    遇到的问题 HLS直播流在iOS系统中表现正常, 但在安卓使用大部分浏览器(UC浏览器除外)播放ffmpeg生成的HLS直播流都会发生从头播放的问题, 即不管何时播放直播流,都会从直播开头的内容开始播 ...

  4. OBS如何配置推流到RTMP流媒体服务直播视频文件直播桌面操作让微信手机端电脑浏览器无插件直播观看

    OBS如何配置推流到RTMP流媒体服务直播视频文件直播桌面操作让微信手机端电脑浏览器无插件直播观看 1.下载安装OBS 1.1.官网下载 1.2.应用搜索下载 2.下载安装RTMP流媒体服务 3.获得 ...

  5. 音视频开发(15)---IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播

    海康IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播 研究摄像头直播有一个月了,最终领导决定使用HLS协议进行摄像头实时预览,原因是HLS对移动端和Web端 ...

  6. FFmpeg入门详解之87:HLS直播协议详解

    引言与效果演示 ----------------------------------------- FFmpeg431的官方地址已经无法打开, 我将ffmepg4.3.1的开发包和源码上传到了百度云: ...

  7. FFmpeg入门详解之102:HLS直播协议详解

    引言与效果演示 ----------------------------------------- FFmpeg431的官方地址已经无法打开, 我将ffmepg4.3.1的开发包和源码上传到了百度云: ...

  8. 使用Nginx-rtmp-module搭建hls直播

    HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议.是苹果公司QuickTime X和iPhone软件系统的一部分.它的工作原理是把整个流分 ...

  9. php与hls,转: 基于nginx的hls直播系统

    标签: 转自:http://blog.csdn.net/cjsafty/article/details/9108587 看点: 1. 详细解解答了 nginx rtmp配置过程. 前写了一篇基于ngi ...

最新文章

  1. 【Java学习笔记之二十九】Java中的equals和==的用法及区别
  2. 噪声dba是什么单位_在职DBA : 工作多年为什么还是选择报读工商管理博士
  3. 机器学习入门资源不完全汇总
  4. JScrollPane实现自动滚动到底部
  5. 作为一名后端开发者,你需要学习和掌握的技术栈都有哪些呢?
  6. Uncaught SyntaxError: Unexpected token in body onload
  7. object.__new__
  8. Hbase安装及配置
  9. android double转string_如何使用Java程序将Double转换为String
  10. plsql去除字段中空格_Python3中strip()、lstrip()、rstrip()用法详解
  11. Atitit 算法之道 attilax著 1. 第二部分(Part II) 排序与顺序统计(Sorting and Order Statistics) 1 2. 第六章 堆排序(Heapsort)
  12. Steam家庭共享教程
  13. cmd - 批量重命名文件
  14. 保山高考成绩查询2021,2021年保山高考状元名单公布,保山文理科状元是谁多少分...
  15. 基于R语言结构方程模型
  16. 啊哈算法 --对冒泡排序python写法
  17. ps保存html和图像格式不显示,photoshop保存web格式不能显示该怎样解决
  18. Python读取Word文档内容
  19. 解决最新版discuz安装模板插件提示“对不起,您安装的不是正版应用”
  20. 超全的Java基础面经

热门文章

  1. 《AngularJS深度剖析与最佳实践》一2.13 端到端测试
  2. 呆呆和你谈谈入职CVTE一个月的感受
  3. 广东惠州港口吞吐量稳中有升
  4. Three.js加载动画模型并控制播放
  5. 【计算思维题】少儿编程 蓝桥杯青少组计算思维题真题及解析第2套
  6. 怎么看自己电脑的是几位的操作系统的
  7. 利用计算机网络实现OA的功能,oa系统是什么,oa系统功能介绍
  8. PHP+MYSQL实现个人博客网站,PHP动态网页设计
  9. 2021五款头戴式蓝牙耳机分享,高清音质超轻超舒适,平价最强推荐
  10. 微信内测推出新功能,朋友圈“修改可见范围”