WebRTC中使用的QOS相关的标准协议

​原来面对这些问题,除了网络层的优化外,协议层的优化也很重要,WebRTC中涉及相关的算法和标准的应用,理解和优化这些算法能力是很重要的!
阅读全文

给ZLMediaKit添加一个录制MP4文件自动转HLS的功能

给ZLMediaKit添加一个录制MP4文件自动转HLS的功能,最近一个需求是自动接收监控视频并录制为MP4,并支持HLS点播,使用ZLMediaKit较快的实现了这个功能,分享出来!
阅读全文

跨网络边界通过做端口反向代理调通WebRTC音视频通话功能案例

"构成我们学习最大障碍的是已知的东西,不是未知的东西" ------现代医学奠基人贝尔纳WebRTC 交互的流程大致如下:图片来源网络:https://www.jianshu.com/p/a7e7cb4d6d641、进入房间;2、获取媒体,交换SDP;3、通过turnserver手机本机地址,交换candidate;4、ICE进行候选地址进行连接,连通了,则可以进行音视频通话;
阅读全文

使用ffmpeg给视频自动添加字幕

今天看到一篇“一个视频自动加字幕的小工具,如何做到月入2W”的博文(突字幕),考虑这个小工具如何实现,以及可能的关键难点,感觉有点意思;在当前人工智能、机器学习的热潮下,在依托成熟三方服务或者开源实现,实现一个类似的应用还是不难的,而核心的技术难点也显而易见,主要在语音识别,以及机器翻译的准确性上!关键功能点,给视频自动添加多语种字幕,大概的实现流程:1、视频中音频部分提取,含时间戳!2、语音识别,音频部分
阅读全文

FMP4与DASH的概念理解

查找HLS的切片格式的时候发现有ABR/DASH/FMP4等新概念,记录下这些概念,以备后续使用!
阅读全文

一个UDP可读缓冲区不够导致丢包的现象

今天看到一篇写UDP 丢包场景的文章,其中提到如果UDP 缓冲区填满导致丢包的问题,写了个小程序验证了下,确实之前没有细究过,如何解决,以libevent测试程序为例,在接收到缓冲区有数据的事件后,首先通过如下的方法,或者libevent封装的方法,获取到系统缓冲区中可读数据的大小,然后申请到对应大小的buffer去调用recvfrom方法,否则会出现如上UDP可读缓冲区小余可读数据的情况,导致出现UDP数据读不全的问题!
阅读全文

Jitsi服务器搭建过程问题记录

Jitsi是一个基于WebRTC的开源会议服务系统,主要提供高质量、安全、可扩展性强的视频会议能力;使用网上的安装过程,大都第一次能正常的安装,并打开一个人的会议,但未必能调通多人的会议功能,从github的Issure中,包括很多类似的问题“Jitsi-videobridge2 Failed to select initial bridge for participantRegion=null”,而且还很多,将修复的过程做了记录
阅读全文

docker安装zulip服务

zulip号称是特性强大的企业版即时聊天应用,开源并且有超过500家企业部署使用,出于好奇,所以安装了一个版本体验体验,国内鲜有安装过程记录,有一个通过docker-compose安装的脚本,但zulip的容器启动总是报错,所以单独安装了一遍,记录安装过程中的错误。
阅读全文

WebRTC技术概览

这是两年前刚接触WebRTC时整理的PPT,分享出来!从WebRTC技术概览、WebRTC客户端技术、WebRTC服务端技术三个方面来梳理!
阅读全文

FEC冗余算法介绍与封包说明

FEC(Forward Error/Erasure Correction)称为前向纠错技术,通常结合Reed-Solomon算法(RS算法),由发送方进行FEC编码后,引入冗余包,接收方进行FEC解码并恢复丢失的数据包,以解决由于UDP的丢包引起通话双方的卡顿,花屏等QOS问题;根据互联网成熟的案例,增加冗余包是对抗丢包常用且有效方法,在合适的冗余比下,能显著提升UDP传输的丢包、乱序抵抗力,为上
阅读全文