关于直播类app中的推流、拉流技术

关于直播类app中的推流、拉流技术
from:https://blog.csdn.net/lzllzllhl/article/details/80249069

图像处理:iOS端一般会用到GPUImage处理图像,安卓端一般使用Google的grafika(图形处理库)
推拉流:EasyDarwin

推流:【iOS和Android】ijkPlayer 开源框架(bilibili的)(集成了FFmpeg,iOS的播放器也基于此) 斗鱼直播也基于此实现
编码标准:H.265 H.264 VP8 VP9 音频:AAC Opus、
传输协议:RTMP RTSP HLS

拉流:LFLiveKit 支持H264和AAC编码,支持美颜和水印效果,传输协议是rtmp,支持弱网丢帧,记载网络环境差的情况下,为了保证视频的通常,会自动丢弃个别帧

注意:RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。
缺点:RTMP有着一个最大的不足——不支持浏览器【2017年的信息,当下并未友好支持 需要费一番功夫】

浏览器:可考虑 WebRTC 协议

安卓端:使用javacv来实现,最终也是用过ffmpeg来进行编码和推流,javacv实现到可以直接接收摄像头的帧数据
需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可

使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推流,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果

安卓端播放器:vitamio、支持几乎所有常见的的视频格式和流媒体协议

安卓端流程
一:使用yaesa进行摄像头采集、编码然后向srs服务器rtmp推流
二:部署srs流媒体服务器
三:使用vitamio取流播放

### 使用 UniApp 腾讯云实现直播 #### 一、环境准备 为了在 UniApp 中集成腾讯云的直播功能,需先完成如下准备工作: - 注册并登录腾讯云账号,开通直播服务。 - 获取必要的 API 密钥其他认证凭证。 #### 二、项目配置 创建一个新的 UniApp 项目,在项目的 `manifest.json` 文件中启用 NVUE 支持,并确保安装了最新版本的相关插件[^1]。 #### 三、设置 对于部分,采用 `live-pusher` 组件来捕获本地摄像头画面并通过 TCP/UDP 协议发送至云端服务器。此过程无需依赖额外的第三方 SDK,直接利用内置的能力即可满足需求[^4]。 ```html <template> <view class="container"> <!-- 组件 --> <live-pusher :url="pushUrl" mode="RTC"></live-pusher> </view> </template> <script> export default { data() { return { pushUrl: 'rtmp://your-push-url' // 替换成实际的送地址 }; } }; </script> ``` #### 四、展示 针对环节,则荐使用标准的 `<video>` 或者专门设计用于高效解码显示的 `live-player` 来接收来自远端的服务端数据。支持多种常见的传输协议如 RTMP, FLV 及 HLS 等[^2]。 ```html <template> <view class="container"> <!-- 播放器 --> <video id="myVideo" controls src="https://your-play-url.m3u8"></video> <!-- 对于HLS格式 --> <!-- 或者使用 live-player 组件 --> <live-player :src="playSrc"></live-player> </view> </template> <script> export default { data() { return { playSrc: 'http://your-play-url.flv' // 根据实际情况调整URL路径 }; } }; </script> ``` #### 五、注意事项 在整个开发过程中需要注意的是,尽管 UniApp 提供了一套跨平台框架简化了前端逻辑编写工作量,但对于涉及到音视频编解码这底层操作还是应该尽可能依靠成熟稳定的基础设施提供商所提供的工具服务来进行优化处理[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值