app直播源代码需要通过网页观看直播,无插件方案就是移动端使用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,却能正常观看,遂认为是app直播源代码的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浏览器能看则应该是因为内嵌了一个播放器用于播放视频及流媒体,播放器能掩盖很多小问题。
app直播源代码的推流命令换成这个,问题解决:

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

但是由于重编码可能耗费一点服务器性能,所以我们还是决定处理app直播源代码的rtsp流

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

如何实现app直播源代码,通过HLS进行直播观看相关推荐

  1. 直播源代码中关于手机直播平台开发的登陆注册介绍

    一套完整的手机直播平台,需要有一套完善的直播源代码.开发一套符合大众需求,得到市场认可的直播平台,是需要开发公司经过不断优化调整更新的.只有开发出符合大众需求的直播平台,才能快速在市场当中得到认可和使 ...

  2. app直播源代码是如何实现直播间小游戏的

    为了应对不同需求的客户,我们对app直播源代码中的功能不断地进行拓展,例如将网页游戏加进App,为了快捷的实现这一功能,我们只需要对Android提供的Webview进行简单的配置,便可轻松实现app ...

  3. HTTP Live Streaming直播源代码软件开发(iOS直播)技术分析与实现

    HLS技术要点分析 HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备( ...

  4. LiveQing直播点播流媒体如何关闭指定类型的流播放HTTP-FLV直播流|WS-FLV直播流|HLS(m3u8)直播流|RTMP直播流

    流媒体服务可以分发输出,HTTP-FLV直播流.WS-FLV直播流.HLS(m3u8)直播流.RTMP直播流,在某些场景下,我们不希望用户播放指定类型的流,那么如何做呢? RTMP直播点播流媒体服务 ...

  5. Android 端app直播源代码,解决系统启动黑屏

    前言 相信做过app直播源代码的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏到底是怎么一回事呢?它的最好的解决方案 ...

  6. 使用socket,实现app直播源代码用户评论功能

    最近公司在做app直播源代码,项目经理要我们用socket长连接实现在线聊天,下面是使用socket实现app直播源代码用户互动的简单原理. 代码复制粘贴可以直接运行. //首先是服务器端packag ...

  7. 实现app直播源代码开发,完成短视频切换功能

    讲下大概思路,app直播源代码使用recycleview配合自定义LinearLayoutManager来实现这个功能,这里着重说下自定义LinearLayoutManager的实现 可以看到每当下一 ...

  8. app直播源代码如何实现直播间红包功能

    红包功能是app直播源代码直播间中的重要功能,红包功能的实现,可以帮助主播快速提高直播间氛围,让用户对直播产生兴趣,app直播源代码可以怎样实现红包功能呢? 软件简介 yaf项目快速开发(兼容php7 ...

  9. android记账软件开发源代码_如何开发直播软件?直播软件开发的具体流程有哪些?...

    知乎视频​ 随着互联网的发展和智能手机的迅速普及,对直播软件的需求也在增加.开发直播软件和直播app开发都属于直播软件开发的服务.那么直播平台的发展过程是怎样的呢?在软件开发期间需要注意什么?小编来说 ...

最新文章

  1. bzoj1131[POI2008]Sta*
  2. 我们一般的前端开发流程
  3. LintCode: Single Number II
  4. Java循环案例-银行存钱问题
  5. sublime插件调用第三方程序
  6. volatile可以保证原子性吗
  7. 常用SQL语句优化技巧
  8. java configuration类_使用@Configuration编写自定义配置类
  9. 自定义线程池-c#的简单实现
  10. python网易云_小白都懂的Python爬虫之网易云音乐下载
  11. 饭后Android 第四餐-BRVAH(最好用的数据适配器)(BRVAH简介,使用方法,item的点击事件,列表加载动画,添加头部、尾部,自定义ViewHolder)
  12. 大学计算机课程学习路线(左飞老师)
  13. 上百套房子装修样板!
  14. Mac使用Aria2下载百度网盘,突破下载限速的方法教程
  15. scanf()函数用法规则探索——c语言,以及%c和%s的语法特性
  16. 判断是否为回文字符串(Java)
  17. Docker 安装 (完整版)
  18. (转)深入详细理解矩阵 (矩阵的加减乘、转置、共轭、共轭转置)
  19. 用ps将图片背景设置为透明
  20. 【Lua编程基础】实测Lua中点和冒号的区别

热门文章

  1. 前端和后端哪个工资高?前端工程师的工资,比后端低吗?
  2. nltk中文分句_如何改进NLTK的分句技术?
  3. html标签onload,支持onload事件的HTML标签有哪些
  4. 原神申鹤四星武器选哪个
  5. 全球域名商域名增量Top15:51DNS排名降至第十二
  6. 07-HTML通用属性
  7. C++基础编程题(28)猴子吃桃问题
  8. 两台电脑大文件传输的详细教程
  9. 算法之红黑树/JAVA
  10. 软件工程作业一:从产品经理人角度分析微信求职招聘小程序