音视频流媒体权威资料整理500+份文章,论文,视频,实践项目,开源框架,协议,业界大神名单。


音视频的知识纷繁复杂自学非常困难既需要非常扎实的基础知识又需要有很多的工程经验本项目致力于从音视频开发开源框架视频业界大神paper书籍协议文章实践项目整理素材为广大开发者学习音视频技术提供便利。



音视频开发 开源框架 视频 业界大神 paper 书籍 面试题 文章 协议 实践项目
🎵 🌐 🧿 👀 🍀 📙 🌅 📰 🧾 🥌



🎵 1. 音视频开发

image



🌐 2. 开源框架

2.1 实时音视频开源项目

实时音视频应用共包括几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。每一个细分环节,还有更细分的技术模块。
比如前后处理环节有美颜、滤镜、回声消除、噪声抑制等采集有麦克风阵列等编解码有VP8、VP9、H.264、H.265等。

采集->前处理编码->传输->解码后处理->渲染

实时音视频开源项目思维导图 音视频开源项目说明

2.1.1 编解码开源项目
project website introduce
WebRTC webrtc.org WebRTC实现了基于网页的视频会议标准是WHATWG 协议目的是通过浏览器提供简单的javascript就可以达到实时通讯Real-Time Communications (RTC)能力。WebRTC提供了视频会议的核心技术包括音视频的采集、编解码、网络传输、显示等功能并且还支持跨平台windowslinuxmacandroid。
x264 www.linuxfromscratch.org H.264是ITUInternational Telecommunication Union国际通信联盟和MPEGMotion Picture Experts Group运动图像专家组联合制定的视频编码标准。而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库是最好的有损视频编码器之一。
FFmpeg ffmpeg.org FFmpeg是一套可以用来记录、转换数字音频、视频并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg提供了编码、解码、转换、封装等功能以及剪裁、缩放、色域等后期处理。
ijkplayer bilibili/ijkplayer ijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能API易于集成编译配置可裁剪方便控制安装包大小支持硬件加速解码更加省电提供Android平台下应用弹幕集成的解决方案。
JSMpeg jsmpeg.com JSMpeg is a Video Player written in JavaScript. It consists of an MPEG-TS Demuxer, WebAssembly MPEG1 Video & MP2 Audio Decoders, WebGL & Canvas2D Renderers and WebAudio Sound Output. JSMpeg can load static files via Ajax and allows low latency streaming (~50ms) via WebSocktes.
Opus opus.nlpl.eu Opus是一个有损声音编码的格式由Xiph.Org基金会开发之后由IETF互联网工程任务组进行标准化目标是希望用单一格式包含声音和语音取代Speex和Vorbis且适用于网络上低延迟的即时声音传输标准格式定义于RFC 6716文件。Opus格式是一个开放格式使用上没有任何专利或限制。
live555 www.live555.com live555是一个为流媒体提供解决方案的跨平台的C++开源项目它实现了标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持包括MPEG、H.263+ 、DV、JPEG视频和多种音频编码。
2.1.2 服务端开源项目
project website introduce
jitsi jitsi/jitsi Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
JsSIP jssip.net JsSIP是一个简单易用的JavaScript库它利用SIP和WebRTC的最新发展在任何网站上提供全功能的SIP端点。通过JsSIP ,只要几行代码,任何网站都可以通过音频,视频等获得实时通信功能。
SRS www.ossrs.net SRS定位是运营级的互联网直播服务器集群追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS还支持将接入的RTMP流进行各种变换譬如将RTMP流转码、流截图、转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、转封装成HDS、录制成FLV。SRS包含支大规模集群如CDN业务的关键特性譬如RTMP多级集群、源站集群、VHOST虚拟服务器、无中断服务Reload、HTTP-FLV集群、Kafka对接。此外SRS还提供丰富的应用接口包括HTTP回调、安全策略Security、HTTP API接口、RTMP测速。
JRTPLIB j0r1/JRTPLIB jrtplib是一个基于C++、面向对象的RTP封装库, jrtplib支持定义于RFC3550中的RTP协议它使得发送和接收RTP报文变得异常简单用户不用担心SSRC冲突也不用考虑如何传输RTCP数据因为RTCP功能完全在内部实现。
OPAL opalvoip Open Phone Abstraction Library (OPAL) is a C++ multi-platform, multi-protocol library for Fax, Video & Voice over IP and other networks. Also included is the Portable Tool Library (PTLib) which is a C++ multi-platform abstraction library.
Kurento www.kurento.org Kurento 是一个WebRTC流媒体服务器以及一些客户端API开发WWW及智能手机平台的高级视频应用就变得更加容易。可以利用Kurento开发的应用类型包括视频会议音视频广播音视频录制、转码等。
Janus janus.conf.meetecho.com Janus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器它支持在Linux的服务器或MacOS上的机器进行编译和安装。
2.1.3 质量传输开源项目
project website introduce
callstats.io callstats Callstats.io致力于监控和管理WebRTC应用中的音频和视频通话性能。提供Javascript客户端库可以监测浏览器终端性能从而帮助服务供应商准确定位那些媒体质量较低的终端用户并进行性能问题的诊断。该信息主要是用于产品经理和工程师来提高客户体验质量主动解决潜在的瓶颈障碍。
Meetecho meetecho/janus-gateway Meetecho Janus是Meetecho公司的一款WebRTC网页即时通信服务器。
Agora agora.io 声网Agora提供了一套简单而强大的SDK,开发者可以利用其中的资源在任何手机或电脑应用中加入高清语音和视频通讯功能。
2.1.4 视频前后处理开源项目
2.1.4.1 音频
project website introduce
soundtouch soundtouch SoundTouch是一个开源的音频处理库主要实现包含变速、变调、变速同时变调等三个 功能模块能够对媒体流实时操作也能对音频文件操作。采用32位浮点或者16位定点支持单声道或者双声道采样率范围为8k~48k。
2.1.4.2 视频
project website introduce
SeetaFace6 SeetaFace6Open SeetaFace6是中科视拓最新开源的商业正式版本。包含人脸识别的基本部分如人脸检测、关键点定位、人脸识别。同时增加了活体检测、质量评估、年龄性别估计。并且响应时事开放了口罩检测以及戴口罩的人脸识别模型。
GPUImage2 GPUImage2 GPUImage是个功能十分强大、又十分易用的图像处理库。提供各种各样的图像处理滤镜并且支持照相机和摄像机的实时滤镜。
open nsfw open_nsfw open nsfw是雅虎开源项目caffeonspark使用深度学习训练得到caffe模型。nsfw翻译为不可在工作中看的图片。主要是针对黄图的恐怖血腥图片不能识别。

2.2 其他音视频开源项目

project website introduce
Speex xiph.org Speex是一套主要针对语音的开源免费无专利保护的音频压缩格式。
FLAC xiph.org FLAC中文可解释为无损音频压缩编码。FLAC是一套著名的自由音频压缩编码其特点是无损压缩。不同于其他有损压缩编码如MP3及AAC它不会破坏任何原有的音频信息所以可以还原音乐光盘音质。
Xvid xvidmovies Xvid是一个开放源代码的MPEG-4视频编解码器它是基于OpenDivX而编写的。
Lagarith lags.leetcode.net Lagarith是一种由Ben Greenwood所撰写的影片编解码器video codec
Thor wwww.thor.com Thor是思科开源的视频编码解码器Thor拥有适当复杂度的高压缩率视频编码解码器使用众所周知的 motion-compensated 预测的混合视频编码方法和变换编码。


🧿 3. 视频

No. title
1 如何使用FFMPEG将MP4视频文件转换为GIF
2 FFMPEG Introduction & Examples
3 Live Streaming with Nginx and FFmpeg
4 Ep2 Ffmpeg Nginx & Nginx-Rtmp-Module Streaming to Server
5 Streaming an IP Camera to a Web Browser using FFmpeg


👀 4. 业界大神

No. author introduce
1 刘岐 FFmpeg官方代码维护者之一十余年一线技术研发与技术管理经验人称“大师兄”。现任职于OnVideo公司担任CTO公司联合创立人负责在线音视频云编辑与创作平台的开发和建设。曾任职蓝汛、高升、金山云等公司担任视频部门架构师及技术专家。
2 赵文杰 擅长音视频编解码和渲染技术客户端技术专家开源流媒体服务器SRS开发者之一现任好未来网校事业部高级架构师一职负责端开发。
3 廖庆富 主要从事音视频驱动,多媒体中间件,流媒体服务器的高级开发,主导开发过即时通讯+音视频通话的大型项目。曾就职于联发科现任职于零声教育资深音视频讲师。主讲WebRTC,ffmpeg,流媒体。
4 雷霄骅 两届CSDN博客之星、微软MVP。主要从事与广播电视有关的视音频技术的研究。包括视音频质量评价视音频编解码流媒体媒资检索等。
5 栗伟 资深音视频技术专家曾任职于中科院计算所、CC视频任职期间利用WebRTC技术开发了直播、在线课堂、视频会议等商业产品并发用户数达到500万。开源社区的积极参与者在GitHub上开源了视频会议项目WiLearning免费供中小企业使用。


🍀 5. paper

5.1 ffmpeg

No. Title Company
1 《From Laptop to Lambda:Outsourcing Everyday Jobs to Thousands of Transient Functional Containers》 斯坦福大学
2 《SUSTAINABILITY THROUGH COMMUNITY ffmprovisr and the Case for Collaborative Knowledge Transfer》 华盛顿州立大学
3 《Companion Paper for “MiniView Layout for Bandwidth-Efficient 360-Degree Video”》 俄亥俄州立大学
4 《Research on Audio/Video Codec Based on Android》 北京大学
5 《Fuzzing Error Handling Code using Context-Sensitive Software Fault Injection》 清华大学
6 《Evaluating Fuzz Testing》 德克萨斯州大学
7 《lntel QuickSync Video and FFmpeg》 Intel
5.1.1 aac
No. Title Company
8 《TalkingBoogie: Collaborative Mobile AAC System for Non-verbal Children with Developmental Disabilities and Their Caregivers》 首尔国立大学
9 《The Performance Of The AAC Pumpcell Circuits At The Gold Fields Limited Driefontein And Kloof Operations》
5.1.2 ffplay
No. Title Company
10 《Sustainability through Community ffmprovisr and the Case for Collaborative Knowledge Transfer》 华盛顿大学
11 《Desarrollo de una Aplicación Cliente/Servidor para un Wall View en base a la Plataforma Cruzada Opensource FFMPEG (Colección de Software Libre que puede Grabar, Convertir y hacer Streaming de Audio y Vídeo)》
12 《Salsify: Low-Latency Network Video Through Tighter Integration Between a Video Codec and a Transport Protocol》 斯坦福大学
5.1.3 H264
No. Title Company
13 《Performance Comparison of H.265/MPEG-HEVC, VP9, and H.264/MPEG-AVC Encoders》
14 《3D range geometry video compression with the H.264 codec》 爱荷华州立大学
15 《PERFORMANCE EVALUATION OF H.265/MPEG-HEVC, VP9 AND H.264/MPEG AVC VIDEO CODING》
16 《Hardware Architecture Design of an H.264/AVC Video Codec》 国立台湾大学
17 《Evaluacióndelrendimiento paralelo en el nivelmacro bloque del decodificadorH.264enuna arquitecturamultiprocesador cc­NUMA》
18 《Machine Learning Approach to Detect Tampering in H.264 Video》
19 《Overview of the H.264/AVC Video Coding Standard》
20 《FAST SHOT DETECTION FOR HIGH QUALITY LOW DELAY H.264 VIDEO CODING》
21 《H.264 vs H.265》
22 《H.264 Video Frame Size estimation》 瑞典隆德大学
23 《The H.264/MPEG4 Advanced Video Coding Standard and its Applications》
24 《Real-time H264/AVC encoder based on enhanced frame level parallelism for smart multicore DSP camera》
25 《Visibility of individual packet loss on H.264 encoded video stream A user study on the impact of packet loss on perceived video quality》
26 《Effective Compression of Range Data Streams for Remote Robot Operations using H.264》
27 《Parallel Scalability of H.264》 巴塞罗那超级计算中心
28 《The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions》
29 《Customizing Wide-SIMD Architectures for H.264》
30 《The H.264/MPEG4 Advanced Video Coding Standard and its Applications》

5.2 流媒体

5.2.1 RTSP
No. Title Company
31 《DREAM A Data Streaming Application Using RTP/RTSP in a Local Area Network》
32 《The Architecture of an Integrated RTSP, RTP and SDP Library》
33 《Secure IPsec based offload architectures for mobile data : architecture description and performance evaluation》
34 《WebRTC for peer-to-peer streaming from an IP camera》
35 《A High Q&S RTSP Servers Architecture and Implementation Based On Android》
36 《基于 gst-rtsp-server 的网络摄像机设计与实现》 北京邮电大学计算机学院
37 《A Caching and Streaming Framework for Multimedia》
38 《A Survey on open Source Protocols SIP, RTP, RTCP, RTSP, H.264 for Video Conferencing System》
39 《A Multimedia Semantic Model for RTSP-Based Multimedia Presentation Systems》
40 《AN ARCHITECTURE FOR STREAMING CONTROL IN DISTRIBUTED MULTIMEDIA SYSTEMS》
41 《Multimedia and streaming traffic analysis》
42 《RTP,RTCP, and RTSP — Internet Protocols for Real-Time Multimedia Communication》
43 《Secure Real-Time Streaming Protocol (RTSP) for Hierarchical Proxy Caching》 香港大学
44 《RTSP Live Streaming》
45 《Kria K26 SOM:The Ideal Platform for Vision AI at the Edge》
46 《Streaming Video over the Internet:Approaches and Directions》
5.2.2 rtmp
No. Title Company
47 《Live Delivery of Neurosurgical Operating Theatre Experience in Virtual Reality》
48 《Virtual Office Design For The Effectiveness Of Web_based Office Administration Works》
49 《Advancing User Quality of Experience in 360-degree Video Streaming》
50 《Extended User Control over Multichannel Content Delivered over the Web》
51 《A First Characterization of Anycast Traffic from Passive Traces》
52 《ELECTRICAL DISTRIBUTION NETWORKS STATE ESTIMATION》
53 《Cloud Ingest of Live Video An open approach to RIST, SRT and retransmission protocols》
54 《E3: MANAGEMENT OF TRAFFIC DURING CONSTRUCTION》
55 《CAPTURING AND REPLAYING STREAMING MEDIA IN A WEB ARCHIVE A BRITISH LIBRARY CASE STUDY》
56 《360° Innovations for Panoramic Video Streaming》
57 《Understanding Video Management Planes》
58 《Anatomy of a Personalized Livestreaming System》
59 《360-Degree Video Streaming: A Survey of the State of the Art》
5.2.3 HLS
No. Title Company
60 《A Survey and Evaluation of FPGA High-Level Synthesis Tools》
61 《Centrifuge: Evaluating full-system HLS-generated heterogeneous-accelerator SoCs using FPGA-Acceleration》
62 《ThunderGP: HLS-based Graph Processing Framework on FPGAs》
63 《HL5: A 32-bit RISC-V Processor Designed with High-Level Synthesis》


📙 6. 书籍

6.1 音频

No. book name author introduction
1 《WebRTC技术详解从0到1构建多人视频会议系统》 栗伟 全面讲解WebRTC各项技术案例代码可直接用于视频会议、在线教育场景开源商用视频会议系统。
2 《音视频开发进阶指南基于Android与iOS平台的实践》 展晓凯 魏晓红 书中介绍音视频的物理现象与基础概念,帮助读者建立模拟信号到数字信号转化的过程,然后重点介绍了如何在移动端开发音视频项目,其中包括开发中所需要了解的各种知识,如音视频的解码与渲染,采集与编码,音视频的处理与性能优化等。
3 《Android音视频开发》 何俊林 本书着重介绍音视频基础知识、MediaPlayer、MediaPlayerService、StagefrightPlayer、NuPlayer、OpenMAX框架、FFmpeg项目、FFmpeg源码分析及实战、直播技术、H.264编码及H.265编码、视频格式分析内容。
4 《FFmpeg从入门到精通》 刘歧 本书围绕着音视频处理的FFmpeg的发展过程、FFmpeg的组成、FFmpeg的命令行使用、FFmpeg的API使用等内容由浅入深地介绍了使用FFmpeg进行音视频处理的方法并辅以大量实例从而帮助对音视频处理感兴趣的读者对FFmpeg有更多的了解。

6.2 视频

No. book name author introduction
1 《在线视频技术精要》 晓成 本书着重介绍在线视频行业的基础——音视频技术,从行业的历史、文件格式、标准组织开始,依次介绍了音视频技术的框架、编码、流媒体、播放等知识。


🌅 7. 面试题

1. 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
2. 怎么做到直播秒开优化?
3. 直方图在图像处理里面最重要的作用是什么?
4. 数字图像滤波有哪些方法?
5. 图像可以提取的特征有哪些?
6. 衡量图像重建好坏的标准有哪些?怎样计算?
7. AAC和PCM的区别
8. H264存储的两个形态
9. FFMPEG图片如何合成视频
10. 常见的音视频格式有哪些?
11. 请指出“1080p”的意义
12. 请解释颜色的本质及其数字记录原理,并说出几个你所知道的色域。
13. 请解释“矢量图”和“位图”的区别?
14. 请从“光圈”“快门速度”“感光度”“白平衡”“景深”中任选2个进行叙述
15. 视频分量YUV的意义及数字化格式
16. 在MPEG标准中图像类型有哪些
17. 列举一些音频编解码常用的实现方案?
18. 请叙述MPEG视频基本码流结构
19. sps和pps的区别
20. 请叙述AMR基本码流结构
21. 预测编码的基本原理是什么?
22. 说一说ffmpeg的数据结构
23. 说一说AVFormatContext 和 AVInputFormat之间的关系
24. 说一说AVFormatContext, AVStream和AVCodecContext之间的关系
25. 说一说视频拼接处理步骤?(细节处理,比如分辨率大小不一,时间处理等等)
26. NV21如何转换成I420
27. DTS与PTS共同点
28. 影响视频清晰度的指标有哪些?
29. 编解码处理时遇到什么困难?
30. 如何秒开视频?什么是秒开视频?
31. 如何降低延迟?如何保证流畅性?如何解决卡顿?解决网络抖动?
32. 需要把网络上一段视频存储下来比如作为mp4 ), 请实现并说出方法(第一个视频需要翻墙才能进)?
33. 需要把网络上一段语音存储下来比如作为mp3 ), 请实现并说出方法?
34. 为什么要有YUV这种数据出来YUV相比RGB来说的优点
35. H264/H265有什么区别
36. 视频或者音频传输你会选择TCP协议还是UDP协议为什么
37. 平时说的软解和硬解,具体是什么?
38. 何为直播?何为点播?
39. 简述推流、拉流的工作流程?
40. 如何在直播中I帧间隔设置、与帧率分辨率选定
41. 直播推流中推I帧与推非I帧区别是什么
42. 常见的直播协议有哪些?之间有什么区别?
43. 点播中常见的数据传输协议主要有哪些?
44. RTMP、HLS协议各自的默认端口号是
45. 简述RTMP协议如何封装RTMP包
46. m3u8构成是直播中m3u8、ts如何实时更新
47. 何为音视频同步,音视频同步是什么标准?
48. 播放器暂停、快进快退、seek、逐帧、变速怎么实现
49. 说说你平时在播放过程中做的优化工作?
50. 你研究过哪些具体的流媒体服务器,是否做过二次开发?
51. 什么是GOP?
52. 音频测试的测试点,音频时延如何测试?
53. 美颜的实现原理,具体实现步骤?
54. 如何直播APP抓包过来的文件如何过滤上行下行总码率
55. 如何测试一个美颜挂件?
56. 为什么要用FLV
57. 如何测试一个美颜挂件?
58. 平常的视频格式?
59. 何为homebrew你用它安装过什么常用命令有哪些
60. RTMP、HLS协议各自的默认端口号是


📰 8. 文章

No. article
1 WebRTC 发送方码率预估实现解析
2 码率控制基本概念
3 Speex回声消除代码分析
4 房间声学原理与Schroeder混响算法实现
5 H264系列--压缩编码技术
6 RTSP 媒体协议流的录制方案及其覆盖策略详解
7 建立连接之ICE框架
8 流媒体协议介绍rtp/rtcp/rtsp/rtmp/mms/hls
9 音视频同步原理及实现
10 直播概念和流程框架
11 CDN在直播中的运用
12 常见音视频编码格式
13 H.264官方软件JM源代码分析-编码器lencod
14 H.264官方软件JM源代码分析-解码器ldecod
15 Android 音视频技术
16 Web前端WebRTC攻略-媒体协商与SDP简析
17 基于FFmpeg的AVfilter的例子-纯净版
18 WebRTC 传输安全机制第二话:深入显出 SRTP 协议
19 WebRTC能给我带来什么
20 视音频数据处理RGB、YUV像素数据处理
21 视音频数据处理PCM音频采样数据处理
22 视音频数据处理H.264视频码流解析
23 视音频数据处理AAC音频码流解析
24 视音频数据处理FLV封装格式解析
25 视音频数据处理UDP-RTP协议解析
26 如何生成mp4文件
27 ffmpeg滤镜的基本使用
28 webRTC是如何实现音视频的录制
29 音视频同步算法
30 房间声学原理与Schroeder混响算法实现
31 一个频域语音降噪算法实现及改进方法
32 HEVC官方软件HM源代码分析-编码器TAppEncoder
33 HEVC官方软件HM源代码分析-解码器TAppDecoder
34 音视频编解码常用知识点
35 微信小程序集成实时音视频通话功能


🧾 9. 协议

  • HTTP
  • RTP
  • RTSP
  • RealMedia RTSP/RDT
  • TCP
  • UDP
  • Gopher
  • RTMP
  • RTMPT, RTMPE, RTMPTE, RTMPS (via librtmp)
  • SDP
  • MMS over TCP


🥌 10. 实践项目

10.1 音视频通话项目

实现了多人语音/多人视频项目, 房间号Id一致用户Id不一致,即可实现多人语音/多人视频。 项目地址

Description
音视频流媒体权威资料整理,500+份文章,论文,视频,实践项目,协议,业界大神名单。
Readme 201 MiB
Languages
Markdown 100%