前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Web flash推流的一些问题以及示例demo

关于Web flash推流的一些问题以及示例demo

原创
作者头像
frankqpfu
发布2019-03-16 12:39:35
2.7K1
发布2019-03-16 12:39:35
举报
文章被收录于专栏:音视频应用音视频应用

在使用flash推流的时候使用的demo一般是参考的如下地址:

https://young-cowboy.github.io/gallery/rtmp_client/index.html,网页界面如下:

这个地址配置简单,用来做flash的测试推流感觉很方便,不过使用这个网页推出来的问题是使用的视频编码默认是flv1,现在主流常见视频编码使用的基本是H264,音频的编码为nellymoser,一般主要的音频编码使用为AAC。这种推出来的流会遇到一些很多的问题,比如有的HLS就播放不了,或者CDN终端用户无法正常观看流等。

音频编码在这里无法修改,flash SDK在这方面没有提供修改的接口,只能依靠CDN厂商后端进行音频的编码转换,毕竟HLS的播放目前基本只支持AAC和MP3.

这里主要提供一下如何修改flv1编码为H264的修改方式以及其他的一些问题:

原始的github代码为:

https://github.com/chxj1992/rtmp-streamer

在其中有H264的setting相关的部分,请把这部分代码打开

这里的setProfileLevel,支持的参数为字符串,所以这里要修改为

h264setting.setProfileLevel(H264Profile.MAIN, “4”);

这段代码也打开,然后下载flexsdk进行重新编译。

https://www.adobe.com/devnet/flex/flex-sdk-download.html

使用4.6编译即可,安装好flexsdk后,进入bin目录,使用编译命令如下:

mxmlc demo.as

注意flexsdk依赖JRE/JDK,并且依赖的是32位的版本,否则会提示jvm.dll无法加载的错误,安装好JDK后配置好JAVA_HOME,flash SDK可以根据该环境变量找到JAVA的安装目录。

按上述代码修改后,就可以使用H264推流了,不过还有个小问题是声音不连续,无法提供稳定的音频流,主要原因是对麦克风的静音检测设置过高,导致检测为静音而不提供音频的输出。

Flash SDK提供了另外一个设置的接口:

setSilenceLevel(silenceLevel:Number,timeout:int = -1):void

设置可认定为有声的最低音量输入水平,以及实际静音前需经历的无声时间长度(可选)。

在demo的actionscript中继续添加如下的代码:

mic.setSilenceLevel(0, 5); 0表示将检测设置到最低,这样就会有不断的音频流输出了。

附录:

https://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/search.html?search_text=H264Level

https://github.com/chxj1992/rtmp-streamer

https://www.cnblogs.com/xiaoniuzai/p/7129036.html

https://blog.csdn.net/leixiaohua1020/article/details/43936141

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 附录:
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档