目前视频直播微信小程序是支持的很好,钉钉小程序全网真的资源很少,官方文档也少的可怜,做个小程序真的是全网在找资源,没有UI库也是让人头疼,技术回馈也是很慢很慢,社区太差了。一个字心累
钉钉小程序目前不支持视频流组件,我们只能用video标签来实现,首先用H5来实现HLS直播流的效果,可以实现。这里面给出可以测试使用的 HLS直播流:http://ivi.bupt.edu.cn/hls/cctv1.m3u8(大家要注意这个链接,只支持HTTP默认80端口,如果是HTTPS:那么默认端口是443,视频流无法获取到,会导致钉钉小程序无法播放)
HLS:
HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。下面是我下载的m3u8的播放列表文件,视频会根据这个列表来播放存储到本地的视频切片,也就是ts临时文件,这里面要说一下(安卓和苹果系统的区别,安卓是两个ts文件就可以播放,苹果IOS需要三个ts文件才可以播放),所有下载的临时文件最好是2和3的倍数,比如(6个ts文件,12个ts文件,18个ts文件)同时做切片,定义好分辨率,可以提高直播流的播放流畅性。
这个就m3u8的播放列表文件
![](https://img.haomeiwen.com/i11451872/f4a889a1791b3231.png)
![](https://img.haomeiwen.com/i11451872/03e26cc86d4af42c.png)
![](https://img.haomeiwen.com/i11451872/9bdb04d102d6ee4c.png)
安卓一直是可以播放,ios无论如何都无法播放
经过多方面问题排查:
1、通过ffmeg拉流解析发现,video的profile为h264 high 4:2:2,而ios设备目前并不支持profile高于high级别高于4.1的视频的解码。
File format for the file segmenter can be a QuickTime movie, MPEG-4 video, or MP3 audio, using the specified encoding.
Stream format for the stream segmenter must be MPEG elementary audio and video streams, wrapped in an MPEG-2 transport stream, and using the following encoding. The Audio Technologies and Video Technologies list supported compression formats.
Encode video using H.264 compression
H.264 Baseline 3.0: All devices
H.264 Baseline 3.1: iPhone 3G and later, and iPod touch 2nd generation and later.
H.264 Main profile 3.1: iPad (all versions), Apple TV 2 and later, and iPhone 4 and later.
H.264 Main Profile 4.0: Apple TV 3 and later, iPad 2 and later, and iPhone 4S and later
H.264 High Profile 4.0: Apple TV 3 and later, iPad 2 and later, and iPhone 4S and later.
H.264 High Profile 4.1: iPad 2 and later and iPhone 4S and later.
A frame rate of 10 fps is recommended for video streams under 200 kbps. For video streams under 300 kbps, a frame rate of 12 to 15 fps is recommended. For all other streams, a frame rate of 29.97 is recommended.
Encode audio as either of the following:
HE-AAC or AAC-LC, stereo
MP3 (MPEG-1 Audio Layer 3), stereo
![](https://img.haomeiwen.com/i11451872/bbbc65b24aa6d685.png)
资料来源:iOS上hls无法播放问题 | 大专栏
2:经过一番排查,原因是出问题的摄像机,RTSP数据信息中没有音频参数,音频编码格式为0,通道数为0,而在转RTMP流推送时就使用了这种这些0去初始化了音频MetaData。但是实际直播时数据流是有音频流的。这样就存在初始参数与实际不符的情况,修改初始参数后问题就解决了。
资料来源:解决部分mp4视频在ios上无法播放问题 - 简书
资料来源:安放互联网直播HLS直播流在Android系统能播放但IOS系统无法直播问题解决 - EasyNVR - 博客园
资料来源:iOS 处理HLS视频流 - 兜兜有糖的博客 - 博客园
![](https://img.haomeiwen.com/i11451872/2a37daa93e0a7589.png)
最终解决问题:
web视频流播放没有问题,微信小程序视频流没问题,钉钉小程序播放视频流没问题,PC端视频流播放没问题,希望对大家有所帮助!
如果同样遇到相同问题,可以私信我,h5的资料也有的
![](https://img.haomeiwen.com/i11451872/d8e9e02b6e0d5fb2.png)
网友评论