0%

勘误一

a. P3, 1.2节,第三段中的 AVI 应为 AV1.
b. P11, 2.1.3节,第一段中的 AVI 应为 AV1
c. P22,3.2.2 节,第三段中的所有 AVI 应为 AV1
d. P261, 13.5节,第二段中的 AVI 应为 AV1

勘误二

P15,第三段应为:

“从上面的描述中你可以看到,在 WebRTC 架构的四层中,最复杂、最核心的是第三层,即 引擎层,因此,这里我再对引擎层内部的关系做下简要介绍。引擎层包括三部分内容,分别是: 音频引擎、视频引擎以及网络传输。其中音频引擎和视频引擎是相对比较独立的。不过,它们 都需要与网络传输层(transport)打交道。也就是说,它们都需要将自己产生的数据通过网络 传输层发送出去;同时,也需要通过网络传输层接收其它端发过来的数据。此外,音频引擎与 视频引擎由于要进行音视频同步的原因,所以它们之间也存在着关联关系。”

勘误三

P98,表6.2各NAT之间可穿越表应为:

阅读全文 »

近年来,在音视频领域WebRTC越来越受到大家的追棒,它就像音视频技术的一顶“王冠”,上面嵌了大大小小、各种各样的“宝石”,如回音消除、降噪、自动增益、NetEQ、网络拥塞控制……不胜枚举!几乎所有的实时直播客户端都或多或少的使用了WebRTC的代码或借鉴了WebRTC的思想。

阅读全文 »

这是我制订的一个音视频学习线路图,希望对学习音视频的同学能所有帮助!

从2018年制作第一门音视频课《ffmpeg精讲》开始,到今年3月我已经陆续录制了4门与音视频相关的课程和一个专栏,分别是《音视频系统入门》《ffmpeg精讲》《WebRTC入门与实战》《百万级WebRTC流媒体服务器》以及《从0开始打造音视频直播系统》,他们基本覆盖了音视频从入门到高阶的所有内容。

阅读全文 »

作者: 李超 音视频直播技术专家
曾在 跟谁学 负责直播平台技术团队的管理工作;在 新东方集团 任职音视频技术专家;
在音视频会议行业工作6年,在线教育行业工作4年,一直聚焦在多人音视频实时互动领域。

最近经常遇到一些同学问我如何学习音视频,怎样才能快速上手?还有一些对音视频不了解的同学问我该不该学习音视频?作为一名音视频行业的10年老兵,我有一些思考分享给大家,希望能对你有所帮助。

阅读全文 »

mediasoup
《WebRTC流媒体服器》课程推出已经有一段时间了,受到很多同学们的好评,是慕课网为数不多的10分好课。这门课是专门讲解与WebRTC互通的流媒体服务器的高端课,课程从如何开发服务器程序讲起,逐步向你介绍如何构建出一个可商用的、高并发的、性能优越的流媒体服务器。

该服务器可以与Chrome等浏览器对接,实现多人音视频会议系统或实时互动在线教育系统。毫不夸张的说,只要你能撑握课程中的 85% 的内容,去应聘流媒体服务器的研发岗时,你就不用再担心技术问题了。

阅读全文 »

说到WebRTC流媒体服务器就不得不提janus,它是WebRTC众多流媒体服务器中的重要一员,其以优越的性能、丰富的功能、灵活的配置而著称。由于工作的原因,最近这段时间一直在分析janus,陆续整理出了我对janus的一些分析,希望这些文章对你了解janus能有所帮助。

阅读全文 »

同学们在学习《音视频课小白系统入门》这门课的过程中,经常遇到一些问题,如Mac系统下为什么无法编译ffmpeg? Xcode编译课程中的程序为什么不成功? 为什么我从设备中读的数据很小?等等不足而一。

实际上,大部分同学提出的问题都是重复的。因此,我将一些最常见的问题整理出了答案放在这里,同学们可以根据自己的情况去查找相应的解决办法,以免我个人原因不能及时回答问题时,给大家的学习造成麻烦和不便。

阅读全文 »

这里是我OpenCV课程的相关资料,后面还会不断补充…

Windows下编译OpenCV

下载必要的工具和库

  1. 安装python3和numpy库,下载地址:
    1
    https://www.python.org/ftp/python/3.9.2/python-3.9.2-amd64.exe
  2. 安装 VS, 社区版即可,下载地址:
    1
    https://visualstudio.microsoft.com/zh-hans/downloads/
  3. 安装 cmake,下载地址:
    1
    https://github.com/Kitware/CMake/releases/download/v3.20.0-rc1/cmake-3.20.0-rc1-windows-x86_64.msi
  4. 下载IPPICV
    1
    https://github.com/opencv/opencv_3rdparty.git

    下载opencv源码,下载地址:

  • opencv源码地址:
    1
    git clone https://github.com/opencv/opencv.git
  • opencv-contrib源码地址git:
    1
    clone https://github.com/opencv/opencv_contrib.git

编译方法:

  • 在存放opencv源码目录中创建build目录
  • 运行cmake
  • 选择opencv源码目录
  • 选择编译目录
  • 选择CPU架构
  • 增加opencv-contrib选项, OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules
  • 检查编译选项
    • 勾选 opencv_world
  • 生成编译脚本

打开opencv工程文件

  1. 选择输出版本类型
  2. 进行编译

Ubuntu下编译OpenCV4

  • 安装开发工具

    1
    $ sudo apt-get install build-essential cmake unzip pkg-config
  • 安装image and video I/O libraries

    1
    2
    3
    $ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
    $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    $ sudo apt-get install libxvidcore-dev libx264-dev
  • 安装GUI

    1
    $ sudo apt-get install libgtk-3-dev
  • 安装数据优化包

    1
    $ sudo apt-get install libatlas-base-dev gfortran
  • 安装 Python 3

    1
    $ sudo apt-get install python3-dev

最近几年Go、RUST等新语言不断推陈出新,令人目不暇接。据说Go与RUST开发出的程序性能非常高,但对于我这种C/C++老鸟来说,对此并不感冒,“再快还能比C快?”这句话一直萦绕在我的心头。

但出于好奇,每次听到有人说Go性能多好多好时,难免都会追问一句“有没有与C进行过对比测试?”,这句并不是想“兑”谁,而是想确认一下网上的传言是否为真。

不幸的是,每当我问这句话时,从来没有得到一个明确答复,也搞不清是他们得出的“Go性能好”是道听途说,还是自己真实的测试结果。

近来时间充裕,一时兴起,心想不如做个简单的Go、C/C++、RUST的性能对比测试吧,验证一下Go的性能到底如何。

阅读全文 »