0%


在网上经常看到有人说:“在线教育直播是用WebRTC做的”,“音视频会议是用WebRTC做的”……;“声网、腾讯、阿里……都使用的WebRTC”。但你有没有好奇,这些一线大厂为什么都要使用WebRTC呢?换句话说,WebRTC到底好在哪里呢?

这个问题,对于长期做音视频实时通信的老手来说是不言而喻的;但对于新手,则是急切想知道,而又很难得到答案的问题。那么本文我将采用对比法,向你详细阐述一下WebRTC到底好在哪里。

这次我们对比的指标包括:性能、易用性、可维护性、流行性、代码风格等多个方面。不过,要做这样的对比并非易事儿,首先要解决的难点是,目前市面上没有一款与WebRTC接近或有相似功能的开源库。这真成了无米之炊了!

好在这点困难并难不倒我们,既然没有与之可比较的开源库,那我们就自己“造”一个,用自研系统与WebRTC作比较。评估一下自研系统与基于WebRTC开发的音视频客户端,哪个成本更低、质量更好。通过这样的对比,相信能让你更加了解WebRTC,知道其到底有多优秀了。

阅读全文 »

一直以来音频的3A(回音消除、降噪、自动增益)问题都是音视频实时通信中特别关键,也特别难以解决的问题。尤其是回音消除问题,更是难上加难,它就好比你向水中倒了一些墨汁,现在又想将它从水中提取出来一样困难。

对于做音视频 PaaS (提供API接口服务)的公司而言,只有将3A问题处理好,才能在音视频实时通信市场上占有一席之地,否则就没法与声网、腾讯等这些老牌或巨头公司进行竞争。正是由于3A 问题是做音视频公司必须要解决好的问题,所以它们对能够解决这类问题的人才都求贤若渴,对于想进入音视频行业的同学来说,如果你能具有3A问题的解决能力,那你一定会成为各音视频大厂挣抢的“香饽饽”。

为了让大家学到更多的干货,这次我特意邀请到拍乐云合伙人&音频专家 Ark,请他为大家详细介绍在商业应用中都会遇到哪些3A问题,遇到这类问题时该如何解决,对于初入门的同学又该如何学习音频技术。相信通过这次分享,一定会让大家会收获满满。

感兴趣的小伙伴请加入讨论群, 分享时间为2021年6月30 19:45。

音频3A经验分享群

阅读全文 »

今天我们来聊聊C++的function。std::function是从C++11开始支持的特性,它起什么作用?又有什么好处呢?

阅读全文 »

之前我已经向你介绍了C++中的std::move,它的作用是无论你传给它的是左值还是右值,通过std::move之后都变成了右值。而今天我们要介绍的std::forward则与之不同,它的作用是什么呢?

阅读全文 »

ffmpegX.png

FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。

本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用 ffmpeg 提供的工具来处理音视频文件。

阅读全文 »

我最早了解到 sigslot 大概是在 2007年 左右,当时在QT中大量使用了 sigslot 的概念。 现在 WebRTC 中也大量使用了 sigslot 这种机制来处理底层的事件。它对我们阅读WebRTC代码至关重要。本篇文章就详细介绍一下 sigslot。

阅读全文 »

在C语言中我们经常要做类型转换,例如malloc函数分配内存时需要从void *转换成你指定的类型指针。如下面这样:

1
int* block = (int*)malloc(sizeof(int));

上面的代码是将void*转换成int*,这种转换方式在C语言中称为强制转换。它的好处是简洁,灵活;缺点是需要人来决定转换后类型是否正确,因此对开发人员的要求是很高的。

阅读全文 »