音视频开发领域常用的9大开源项目,你值得关注
音视频开发领域常用的9大开源项目,你值得关注
音视频领域有很多经典的音视频开源库,做播放器开发的,比如暴风影音;做视频客户端软件开发的,比如爱奇艺客户端、腾讯视频客户端、优酷视频客户端;做短视频开发的,比如抖音和快手;做视频会议和视频监控的,比如海康威视和浙江大华,他们都会或多或少的使用到这些开源的音视频库。
一个实时音视频应用软件一般都会包括这样几个环节:音视频采集、音视频编码(压缩)、前后处理(美颜、滤镜、回声消除、噪声抑制等)、网络传输、解码渲染(音视频播放)等。每一个细分环节,还有更细分的技术模块。今天就简单的介绍一些与这些环节相关的音视频开源项目,给正在学习或进行音视频软件开发的同学提供一个参考。
1.FFmpeg
鼎鼎大名的音视频多媒体处理库FFmpeg,做过音视频编解码开发的同学基本都用过,即便没做过这方面开发的,也会听说过这个开源库。
2.WebRTC
WebRTC是一个由Google发起的开源音视频实时通讯解决方案,其中包括音视频的采集、编解码、网络传输、解码显示等,我们可以通过该技术快速地构建出一个音视频通讯应用。
3.x264
264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。H264是目前应用最广的码流标准,x264则能够产生符合H264标准的码流的编码器,它可以将视频流编码为H264、MPEG4 AVC格式。它提供了命令行接口与API,前者被用于一些图形用户接口例如Straxrip、MeGUI,后者则被FFmpeg、Handbrake等调用。当然,既然有x264,就有对应HEVC/H.265的x265。
这些源码内容都给你们整理好了,有需要的可以直接扫码查看领取。
第一章 WebRTC Native 源码导读
安卓相机采集实现分析
安卓预览实现分析
安卓视频硬编码实现分析
VideoCRE 与内存抖动优化
安卓 P2P 连接过程和 DataChannel 使用
视频数据 native 层之旅
混音
P2P 连接过程完全解析
API 概览
RTP H.264 封包与解包
第二章 X264源码解读
概述
x264命令行工具
编码器主干部分-2
x264_slice_write()
滤波(Filter)部分
宏块分析(Analysis)部分-帧内宏块(Intra)
第三章 FFmpeg
- FFmpeg 编译和集成
- FFmpeg + ANativeWindow 实现视频解码播放
- FFmpeg + OpenSLES 实现音频解码播放
- FFmpeg + OpenGLES 实现音频可视化播放
- FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
- FFmpeg 播放器实现音视频同步的三种方式
- FFmpeg + OpenGLES 实现 3D 全景播放器
- FFmpeg 播放器视频渲染优化
- FFmpeg、x264以及fdk-aac 编译整合
- FFmpeg 视频录制 - 视频添加滤镜和编码
- FFmpeg + Android AudioRecorder 音频录制编码
- Android FFmpeg 实现带滤镜的微信小视频录制功能
第四章 ijkplayer 源码分析系列
- 整体结构总结
- read_thread流程
- 解码流程
- 渲染流程
第五章 jsmpeg源码解析
- 基础知识 字符处理 ArrayBuffer TypedArray
- TS码流 PAT PMT
- 源码buffer.js对Uint8Array的封装
- 源码ts.js TS格式解析流程
- 源码mpeg1.js MPEG1码流结构
- 概要总结
第六章 Live555源码解析
- GROUPSOCK
- MEDIUM媒体基础类
- MEDIASOURCE、MEDIASINK、MEDIASESSION、MEDIASUBSESSION
- FRAMEDSOURCE、RTPSOURCE、RTPSINK
- GENERICMEDIASERVER、RTSPSERVER、RTSPCLIENT
- testRTSPClient
- ServerMediaSession、ServerMediaSubsession、live555MediaServer
第七章 Opus源码解析
简介
编解码器使用
手撸一个Opus编码程序
Opus解码程序实现
OggOpus封装器全解析
Opus编码基础之认识声音
Opus编码基础之压缩编码