一对一交友app源码实现平台搭建时会遇到的那些“坑”

简介: 在推流端可以检测网络状态或动态切换码率,以保障网络切换时的推流流畅。其次,编码、推流和封包这一部分的逻辑也可以进行微调,可以尝试选择性丢帧(比如优先丢视频参考帧),这样也可以减少要传输的数据内容,同时又达到了不影响直播画质和视听流畅的目的。

使用一对一交友app源码实现平台搭建的过程中,经常会遇到很多坑。主要可以总结为两个方面:设备差异及网络环境等场景下带来的技术考验。在推流端可以检测网络状态或动态切换码率,以保障网络切换时的推流流畅。其次,编码、推流和封包这一部分的逻辑也可以进行微调,可以尝试选择性丢帧(比如优先丢视频参考帧),这样也可以减少要传输的数据内容,同时又达到了不影响直播画质和视听流畅的目的。
1.一对一直播技术延迟优化原理
(1)影响视频清晰度的指标:帧率、码率、分辨率、量化参数(压缩比)。
(2)影响视频流畅度的指标:码率、帧率。
其他指标:直播是耗费流量和性能较大的一类行业,耗电量和发热都算作其他指标之一,大部分情况下发热和耗电量正比,可以使用耗电量暂时替代。
148759439434462138_wps_JPEG

2.直播卡顿和首帧优化
大部分直播app都会出现网络不稳定的情况,有可能是CDN节点不足,也有可能是主播端自身和代码的各种问题。通常出现卡顿的直接原因是本地buffer为空导致播放停止,但是从主播端到观看端整个流程看,网络状况和服务器性能都可能会导致问题加剧。视频中的原始图像数据会采用H.264编码格式进行压缩,音频采样数据会采用AAC编码格式进行压缩。
3.服务端的优化
在直播服务器中,支持设置一个cache用于存放GOP客户端播放。当直播服务器缓存了当前的GOP序列,然后播放端请求数据的时候,CDN会从I帧返回给客户端,从而保证客户端能够快速获取I帧进行显示。当然,由于缓存的是之前的视频信息,当音频数据达到播放端之后,为了音视频同步,播放器会进行视频的快进处理。(这种情况的影响很小)
4.播放端的优化
DNS解析意味着要将一个域名为xxx.com解析成为ip的过程。修改播放器逻辑,基于FFmpeg二次开发,FFmpeg启播视频都是拿到视频完整信息才能启播。如果只拿到部分信息就启播,那么就需要修改代码了。
1

5.视频的优化
如果仅仅只是优化首开延迟,可以在视频帧之间插入较多的关键帧,这样一来,客户端收到视频流之后可以尽快解码。但是如果需要优化传输过程中的累积延迟,就会尽可能减少使用关键帧,在保证同等视频质量的情况下,I帧越多码率越大,传输所需要的网络带宽也就越多。这意味着什么?意味着累积延迟可能越大。当然,这个优化效果可能在秒级延迟的系统中并不是很明显,但是在100ms甚至更低延迟的系统中就会非常明显。此时,尽量使用ACC-LC Codec 来编码音频。虽然HE-ACC和HE-ACC 2 编码效率高,但是编码所需时间相对更长,而产生更大体积的音频所造成的传输延迟对于视频流的传输来说影响更小。
以上就是一对一交友app源码实现平台搭建时经常会遇到的坑,虽然都是一些小的细节部分,俗话说“细节决定成败”,但是如果在开发过程中不把细节工作做好,那么也是没有办法在直播行业中长期发展下去的。
本文声明原创,转载请注明出处。

相关文章
|
2月前
|
移动开发 监控 供应链
JAVA智慧工厂制造生产管理MES系统,全套源码,多端展示(app、小程序、H5、台后管理端)
一开始接触MES系统,很多人会和博主一样,对MES细节的应用不了解,这样很正常,因为MES系统相对于其他系统来讲应用比较多!
58 1
JAVA智慧工厂制造生产管理MES系统,全套源码,多端展示(app、小程序、H5、台后管理端)
|
1月前
|
小程序 JavaScript 安全
Java全套同城服务家政上门系统源码(APP用户端+APP服务端+PC管理端)
家政上门预约系统:该系统综合运用springboot、java1.8、vue移动支付、微信授权登录等技术,由用户小程序、站长小程序、服务员小程序和管理系统平台组成,实现用户预约、系统派单、自动结算、服务跟踪、一键分享等功能,打造线上家政服务商城。
62 7
|
29天前
|
前端开发 小程序
新版校园跑腿外卖独立版+APP+小程序前端外卖配送平台源码
同城校园跑腿外卖配送平台源码,支持自定义diy 你可以设计你的页面,设计你自己的风格,支持多校园,独立版本,多商户,有用户端,骑手端,商家端,强大的功能
49 3
|
2月前
|
移动开发 网络协议 安全
HTML5页面被运营商DNS问题及解决方案,app中h5页面源码的获取
HTML5页面被运营商DNS问题及解决方案,app中h5页面源码的获取
88 4
|
17天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的环境保护生活App的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的环境保护生活App的详细设计和实现(源码+lw+部署文档+讲解等)
14 0
|
2月前
简洁大气APP下载单页源码
简洁大气APP下载单页源码,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面
21 0
简洁大气APP下载单页源码
|
2月前
浅蓝色的APP下载界面HMTL源码
浅蓝色的APP下载界面HMTL源码
39 0
浅蓝色的APP下载界面HMTL源码
|
9天前
|
编解码 Java Android开发
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
RTMP Streamer是一款开源的安卓直播推流框架,支持RTMP、RTSP和SRT协议,适用于各种直播场景。它支持H264、H265、AV1视频编码和AAC、G711、OPUS音频编码。本文档介绍了如何使用Java版的RTMP Streamer,建议使用小海豚版本的Android Studio (Dolphin)。加载项目时,可添加国内仓库加速依赖下载。RTMP Streamer包含五个模块:app、encoder、rtmp、rtplibrary和rtsp。完成加载后,可以在手机上安装并运行APP,提供多种直播方式。开发者可以从《FFmpeg开发实战:从零基础到短视频上线》获取更多信息。
39 7
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
|
6天前
|
数据可视化 数据处理 Swift
Swift开发——简单App设计
SwiftUI教程概述:简化App设计,通过代码展示了如何创建一个计算两个数之和的界面。工程`MyCh0902`包含`ContentView.swift`,其中定义了`ContentView`和`MyView`结构体。`MyView`负责界面布局,使用`VStack`和`HStack`组织元素,如`TextField`和`Button`。点击`Button`调用`calc`方法处理输入并更新结果。界面设计可在Xcode的Inspector窗口中可视化配置。推荐将界面逻辑移到单独的`MyView.swift`文件中以清晰分离视图设计。
19 1
Swift开发——简单App设计