音视频技术 视频抖动优化

大家在视频聊天中,经常会出现马赛克或是视频短暂卡住不动等,通常是由于网络不稳定,如丢包、抖动等造成的。

一般音视频技术都会加入了丢包重传、抖动优化等措施,可以避免由于网络偶尔变差而对音视频通话效果的影响,但是当网络带宽不足,或是网络状态持续恶化时,下面介绍其中一个跨平台的音视频即时通讯的SDK技术-Any.Chat互动平台,Any.Chat内核提供了一个API接口,可以让上层根据自身的应用来决定选择何种处理方案:

方案一:打开平滑播放模式,该模式下,出现丢包时,继续播放,保持播放的流畅性,但是界面会出现马赛克,当收到下一个视频关键帧时马赛克消失;

方案二【默认】:关闭平滑播放模式,该模式下,出现丢包时,暂停播放,等下一个视频关键帧到来时再继续播放,界面不会出现马赛克,但是会“卡”一下,“卡”的程度与网络状况相关;

处理视频马赛克API接口定义:

///< 平滑播放模式(参数为int型,0 关闭[默认], 1 打开)

#define BRAC_SO_STREAM_SMOOTHPLAYMODE

61

C++调用示例代码(初始化SDK完成之后调用)

// 关闭平滑播放模式,可防止马赛克出现 DWORD bSmoothPlayMode = 0; BRAC_SetSDKOption(BRAC_SO_STREAM_SMOOTHPLAYMODE,(const char*)&bSmoothPlayMode, sizeof(DWORD));

// 打开平滑播放模式,可防止视频被卡住,但是会马赛克

DWORD bSmoothPlayMode = 1;

BRAC_SetSDKOption(BRAC_SO_STREAM_SMOOTHPLAYMODE,(const char*)&bSmoothPlayMode, sizeof(DWORD));

二、设置音视频流的缓冲时间

音视频通话过程中,接收到对方的音视频流数据之后,流数据会进入缓冲区,缓冲到一定的时间才开始播放,这样可以消除网络抖动对通话的影响,缓冲时间越大,应对网络抖动的能力越强,但延迟也越大,不同的应用,不同的网络环境,可设置不同的缓冲时间。

AnyChat内核在通话的过程中,会自动评估网络状态,根据不同的网络状态来动态调整缓冲时间:当网络状态好时,会尽量减少缓冲时间,保障通话过程的实时性;当网络状态差时,会适当增大缓冲时间,保持通话过程的流畅性

设置流缓冲时间API接口定义:

///< 最大流缓冲时间(参数为int型,单位:毫秒,取值范围:500 ~ 5000,默认:800)

#define BRAC_SO_STREAM_MAXBUFFERTIME

60

C++调用示例代码(初始化SDK完成之后调用)

// 设置音视频流最大缓冲时间

DWORD dwMaxBufferTime = 2000;

BRAC_SetSDKOption(BRAC_SO_STREAM_MAXBUFFERTIME,(const char*)&dwMaxBufferTime, sizeof(DWORD));

设置的最大流缓冲时间为允许内核调节缓冲时间的上限,只有当网络条件非常恶劣时才会达到设置的缓冲时间,在网络条件允许的情况下,内核会尽最大的能力保障交互的实时性,减少缓冲时间。简而言之,增大缓冲时间,应对网络抖动、丢包的能力增强,但是在网络变差时,会带来一些延迟。

普通的应用保持AnyChat内核的默认设置即可,当应用环境网络不稳定时,且对实时性要求不高的场合(如3G、卫星通讯等)可适当增加流的缓冲时间,至于是采用默认的流畅播放模式,还是关闭流畅播放模式,则需根据实际的应用来决定,通常来说:网络较稳定的场合,可开启平滑播放模式,网络较差的场合,需要关闭平滑播放模式。

时间: 2024-08-24 20:11:52

音视频技术 视频抖动优化的相关文章

Android IOS WebRTC 音视频开发总结(七十)-- 移动端音视频技术优化的七个方向

最近直播很火,很多朋友对背后的技术比较感兴趣,所以今天我们整理一篇关于移动端视频优化的文章,这篇文章是我朋友在一个技术大会上分享过的,更多内容请关注我们的微信公众号:rtcblacker 视频直播为什么会这么火? 首先,音视频直播.点播的需求一直大量存在,包括各种行业应用,比如视频门户.娱乐直播.游戏直播.在线教育.远程医疗,远程监控,企业协作,社交应用等等.“以前之所以没有全面爆发,是因为硬件条件不满足,比如网络的带宽有限”,目前网速仍在不断提升,光纤普及到小区,有线网络的上下行带宽已经达到要

音视频技术学习

转自https://blog.csdn.net/ucvive/article/details/78220734 音视频SDK开发包涉及的技术要求音视频软件开发,也叫音视频即时通信开发.随着互联网的发展,每天都有相当多的人在使用各种网络交流工具,如MSN,腾讯QQ,ICQ,新浪微博.然而目前大部分网络交流工具都还是以文字为主,语音视频功能大部分还是不够成熟,完全通过网络实现语音视频需要考虑到很多方面,如:硬件.软件.技术.网络;等等.因此,即时通讯软件开发诞生了.简而言之,即时通讯软件开发就是通过

智能家居的音视频技术

智能家居概念的起源很早,但一直未有具体的建筑案例出现,直到1984年美国联合科技公司才出现了首栋的"智能型建筑",从此也揭开了全世界争相建造智能家居的序幕,又称智能住宅. 智能家居是以住宅为平台,兼备建筑.网络通信.信息家电.设备自动化,集系统.结构.服务.管理为一体的高效.舒适.安全.便利.环保的居住环境.与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全.高品位且宜人的家庭生活空间:还由原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交互功能,帮助家庭与外部保

音视频技术总结

1. 常用的基本知识 基本概念 编解码 编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者 程序.这里指的变换既包括将信号或者数据流进行编码(通常是为了传输.存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流 中恢复适合观察或操作的形式的操作.编解码器经常用在视频会议和流媒体等应用中. 容器 很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视 频数据同步的元数据,例如字幕.这三种数据流可能会被不同的程序,进程或者

“小程序+直播”怎样搅动音视频技术生态?

责编 / 王宇豪 策划 / LiveVideoStack 12月26日晚间,微信小程序开放了直播能力,并首先向社交.教育.医疗.政务民生.金融等五大应用场景开放.与原生App应用和基于浏览器的H5应用相比,小程序直播会对音视频技术生态带来哪些影响?微信天生的流量优势会给开发者和运营带来机会还是陷阱?LiveVideoStack邀请了若干位有代表性的技术人,分享各自的观点与思考. LiveVideoStack:对于小程序提供的这种实时音视频功能,它是否能满足我们一般的直播需求呢?比如它的延迟大致能

云+社区技术沙龙:音视频技术开发实战(北京) 报名开启

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 近年来,随着移动互联网的普及和智能终端设备的广泛应用,短视频.直播.在线教学等各类形式的音视频形式的应用越来越广泛,然而,音视频技术使用起来虽然便捷,但是在技术开发上却有"重重难关"要过. 2015年初,腾讯推出一体化云视频解决方案,正式涉足网络视频市场.腾讯凭借在QQ.腾讯视频等海量业务发展过程中,在音视频领域多年积累的核心技术与优势能力,集成了一体化的云视频解决方案,为包括在线教育.视频社交.视频网站新媒体.广电网络电视等

快速探索,音视频技术不再神秘

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由goo发表于云+社区专栏 与生活紧密相连的音视频,为何有那么多格式?直播.点播以及即时视频其中又有怎样的机制支撑?面对纷繁复杂的音视频知识,应该如何学起?快速探索,音视频技术不再神秘. 前言 面对一门技术,我们熟悉而陌生,我们能够熟练的基于平台的API完成各种各样的需求,掌握平台特性.框架与原理.但随着技术点不断深入,却发现自己存在基础性与深度性的知识盲区. 局限于平台API开发,并不能使我们走的很远.突破技术成长必经的瓶颈期,关

音视频技术开发周刊 93期

『音视频技术开发周刊』由LiveVideoStack团队出品,专注在音视频技术领域,纵览相关技术领域的干货和新闻投稿,每周一期.点击『阅读原文』,浏览第93期内容,祝您阅读愉快. 架构 Nodejs+socket.io搭建WebRTC信令服务器 本文介绍了 Nodejs 的工作原理.Nodejs的安装与布署,以及如何使用 要sokcet.io 构建 WebRTC 信令消息服务器.socket.io 由于有房间的概念所以与WebRTC非常匹配,用它开发WebRTC信令服务器非常方便. 蔡锐涛:CG

远程医疗 音视频技术解决方案

临床医学院承担医.教.研的任务,接待实习学员,培训进修人员,教学任务繁重.手术教学过程,需现场教学,但手术室空间有限,学员多,教学效果差,而且影响手术工作.随着医学领域的不断发展,外科手术技术也在日新月异,利用高端计算机科学技术,对各种手术全程画面影像的实时记录,使之用于研究.教学和病例存档,已经得到非常的重视.有些具有争议的手术,也可以利用这些视频资料作为科学的判断依据.手术后对照这些影像资料进行学术探讨,对于提高手术的成功率能够起到很大的帮助.并可通过网络,得到异地专家手术中的远程指导.这样