0voice/audio_video_streaming

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

6,254

370 commits

updated May 20, 2024

See the code

README

【🔥🔥🔥热门、吃香】音视频流媒体权威资料整理,精选文章,学术论文,大佬视频,实践项目,开源框架,协议,业界大神一览



💡 【最新更新】WebRTC零基础开发者教程(中文)

📢【推荐收藏】音视频流媒体开发知识归纳导图

🏹【熟读兵法,搞定面试】50道音视频经典面试题

👁️【不想看文字,视频更直接】国内国外大佬教学视频

🗜【项目实战应用,日后100%要用到】N个经典开源项目


📙 书籍

No.book namauthor
1FFmpeg从入门到精通刘歧, 赵文杰
2视频图像处理与性能优化梁军, 贾海鹏
3数字图像与视频处理卢官明, 唐贵进, 崔子冠
4数字音视频技术及应用陈光军
5音视频开发进阶指南:基于Android与iOS平台的实践展晓凯, 魏晓红
6视频编码全角度详解:AVS_China、H.264_MPEG-4_PART10、HEVC、VP6、DIRAC、VC-1刘歧, 赵文杰
7FFMPEG - From Zero to HeroNick, Ferrando
8FFmpeg Basics 2012Frantisek Korbel
9Handbook on SDP for Multimedia Session Negotiations SIP and WebRTC IP TelephonyRoy, Radhika Ranjan
10Learning WebRTCDan Ristic
11Real-Time Communication with WebRTCSalvatore Loreto, Simon Pietro Romano

🌅 面试题

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协议各自的默认端口号是?

📰 文章

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

🌐 开源框架

实时音视频开源项目

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

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

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

编解码开源项目
projectwebsiteintroduce
WebRTCwebrtc.orgWebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
x264www.linuxfromscratch.orgH.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。
FFmpegffmpeg.orgFFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg提供了编码、解码、转换、封装等功能,以及剪裁、缩放、色域等后期处理。
ijkplayerbilibili/ijkplayerijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案。
JSMpegjsmpeg.comJSMpeg 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.
Opusopus.nlpl.euOpus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由IETF(互联网工程任务组)进行标准化,目标是希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限制。
live555www.live555.comlive555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了标准流媒体传输,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+ 、DV、JPEG视频和多种音频编码。
服务端开源项目
projectwebsiteintroduce
jitsijitsi/jitsiJitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
JsSIPjssip.netJsSIP是一个简单易用的JavaScript库,它利用SIP和WebRTC的最新发展,在任何网站上提供全功能的SIP端点。通过JsSIP ,只要几行代码,任何网站都可以通过音频,视频等获得实时通信功能。
SRSwww.ossrs.netSRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。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测速。
JRTPLIBj0r1/JRTPLIBjrtplib是一个基于C++、面向对象的RTP封装库, jrtplib支持定义于RFC3550中的RTP协议,它使得发送和接收RTP报文变得异常简单,用户不用担心SSRC冲突,也不用考虑如何传输RTCP数据,因为RTCP功能完全在内部实现。
OPALopalvoipOpen 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.
Kurentowww.kurento.orgKurento 是一个WebRTC流媒体服务器以及一些客户端API,开发WWW及智能手机平台的高级视频应用就变得更加容易。可以利用Kurento开发的应用类型包括,视频会议,音视频广播,音视频录制、转码等。
Janusjanus.conf.meetecho.comJanus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器,它支持在Linux的服务器或MacOS上的机器进行编译和安装。
质量传输开源项目
projectwebsiteintroduce
callstats.iocallstatsCallstats.io致力于监控和管理WebRTC应用中的音频和视频通话性能。提供Javascript客户端库,可以监测浏览器终端性能,从而帮助服务供应商准确定位那些媒体质量较低的终端用户,并进行性能问题的诊断。该信息主要是用于产品经理和工程师来提高客户体验质量,主动解决潜在的瓶颈障碍。
Meetechomeetecho/janus-gatewayMeetecho Janus是Meetecho公司的一款WebRTC(网页即时通信)服务器。
Agoraagora.io声网Agora提供了一套简单而强大的SDK,开发者可以利用其中的资源在任何手机或电脑应用中加入高清语音和视频通讯功能。
视频前后处理开源项目
音频
projectwebsiteintroduce
soundtouchsoundtouchSoundTouch是一个开源的音频处理库,主要实现包含变速、变调、变速同时变调等三个 功能模块,能够对媒体流实时操作,也能对音频文件操作。采用32位浮点或者16位定点,支持单声道或者双声道,采样率范围为8k~48k。
视频
projectwebsiteintroduce
SeetaFace6SeetaFace6OpenSeetaFace6是中科视拓最新开源的商业正式版本。包含人脸识别的基本部分,如人脸检测、关键点定位、人脸识别。同时增加了活体检测、质量评估、年龄性别估计。并且响应时事,开放了口罩检测以及戴口罩的人脸识别模型。
GPUImage2GPUImage2GPUImage是个功能十分强大、又十分易用的图像处理库。提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。
open nsfwopen_nsfwopen nsfw是雅虎开源项目caffeonspark,使用深度学习训练得到caffe模型。nsfw翻译为不可在工作中看的图片。主要是针对黄图的,恐怖,血腥图片不能识别。
PaddleGANPaddleGANPaddleGAN是百度飞桨团队开源的对抗网络工具箱,提供了视频超分、插帧、上色等高质量深度学习能力。

其他音视频开源项目

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

🧿 视频

国外大神

国内大佬

No.title地址
26windows ffmpeg命令行环境搭建点击学习
27FFMPEG如何查询命令帮助文档点击学习
28ffmpeg音视频处理流程点击学习
29ffmpeg命令分类查询点击学习
30ffplay播放控制点击学习
31ffplay命令选项(上)点击学习
32ffplay命令选项(下)点击学习
33ffplay命令播放媒体点击学习
34ffplay简单过滤器点击学习
35ffmpeg命令参数说明点击学习
36ffmpeg命令提取音视频数据点击学习
37ffmpeg命令提取像素格式和PCM数据点击学习
38ffmpeg命令转封装点击学习
39fmpeg命令裁剪和合并视频点击学习
40fmpeg命令图片与视频互转点击学习
41ffmpeg命令视频录制点击学习
42ffmpeg命令直播(上)点击学习
43ffmpeg命令直播(下)点击学习
44ffmpeg过滤器-裁剪点击学习
45ffmpeg过滤器-文字水印点击学习
46ffmpeg过滤器-图片水印点击学习
47ffmpeg过滤器-画中画点击学习
48ffmpeg过滤器-多宫格点击学习
49SRS流媒体服务器实战(上)点击学习
50SRS流媒体服务器实战(下)点击学习
51音视频开发-ffplay.iikplayer、vlc的播放器设计实现点击学习
52音视频成长之路-进阶三部曲点击学习
53为什么直播领域也要搞WebRTC-srs4.0点击学习
54腾讯课堂直播如何做到低延迟点击学习
55rtmp2webrtc提出问题-灵魂拷问点击学习

🍀 paper

ffmpeg

aac
ffplay
H264

流媒体

RTSP
rtmp
HLS

🧾 协议

HTTP

No.Titlelink
1Hypertext Transfer Protocol -- HTTP/1.1rfc2068.txt.pdf
2An Extension to HTTP : Digest Access Authenticationrfc2069.txt.pdf
3Simple Hit-Metering and Usage-Limiting for HTTPrfc2227.txt.pdf
4HTTP Extensions for Distributed Authoring -- WEBDAVrfc2518.txt.pdf
5Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTPrfc2585.txt.pdf
6Upgrading to TLS Within HTTP/1.1rfc2817.txt.pdf

RTP

No.Titlelink
7RTP: A Transport Protocol for Real-Time Applicationsrfc1889.txt.pdf
8RTP Profile for Audio and Video Conferences with Minimal Controlrfc1890.txt.pdf
9RTP Payload Format of Sun's CellB Video Encodingrfc2029.txt.pdf
10RTP Payload Format for JPEG-compressed Videorfc2035.txt.pdf
11RTP Payload Format for MPEG1/MPEG2 Videorfc2038.txt.pdf
12RTP Payload for Redundant Audio Datarfc2198.txt.pdf
13RTP Payload Format for MPEG1/MPEG2 Videorfc2250.txt.pdf
14RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video (H.263+)rfc2429.txt.pdf
15RTP Payload Format for BT.656 Video Encodingrfc2431.txt.pdf
16RTP Payload Format for JPEG-compressed Videorfc2435.txt.pdf
17Compressing IP/UDP/RTP Headers for Low-Speed Serial Linksrfc2508.txt.pdf
18An RTP Payload Format for Generic Forward Error Correctionrfc2733.txt.pdf
19RTP Payload for Text Conversationrfc2793.txt.pdf
20RTP Payload for DTMF Digits, Telephony Tones and Telephony Signalsrfc2833.txt.pdf
21RTP Payload Format for Real-Time Pointersrfc2862.txt.pdf
22RTP Payload Format for MPEG-4 Audio/Visual Streamsrfc3016.txt.pdf
23RTP Payload Format for ITU-T Recommendation G.722.1rfc3047.txt.pdf

RTSP

No.Titlelink
24Real Time Streaming Protocol (RTSP)rfc2326.txt.pdf
25Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)rfc4567.txt.pdf
26A Network Address Translator (NAT) Traversal Mechanism for Media Controlled by the Real-Time Streaming Protocol (RTSP)rfc7825.txt.pdf
27Real-Time Streaming Protocol Version 2.0rfc7826.txt.pdf
28SDP: Session Description Protocolrfc8866.pdf

TCP

No.Titlelink
29Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and methodsrfc1001.pdf
30Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specificationsrfc1002.pdf
31Transmission Control Protocolrfc793.pdf

UDP

No.Titlelink
32Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and methodsrfc1001.pdf
33Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specificationsrfc1002.pdf
34SNMPv2 Management Information Base for the User Datagram Protocol using SMIv2rfc2013.pdf
35TCP and UDP over IPv6 Jumbogramsrfc2147.pdf
36Compressing IP/UDP/RTP Headers for Low-Speed Serial Linksrfc2508.pdf
37STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)rfc3489.pdf
38Mobile IP Traversal of Network Address Translation (NAT) Devicesrfc3519.pdf
39The Lightweight User Datagram Protocol (UDP-Lite)rfc3828.pdf
40UDP Encapsulation of IPsec ESP Packetsrfc3948.pdf
41RObust Header Compression (ROHC): Profiles for User Datagram Protocol (UDP) Literfc4019.pdf
42Management Information Base for the User Datagram Protocol (UDP)rfc4113.pdf
43User Datagram Protocolrfc768.pdf

Gopher

No.Titlelink
44The gopher URI Schemerfc4266.pdf

SDP

No.Titlelink
45SDP: Session Description Protocolrfc2327.pdf
46The PINT Service Protocol: Extensions to SIP and SDP for IP Access to Telephone Call Servicesrfc2848.pdf
47Carrying Label Information in BGP-4rfc3107.pdf
48An Offer/Answer Model with Session Description Protocol (SDP)rfc3264.pdf
49Support for IPv6 in Session Description Protocol (SDP)rfc3266.pdf
50Grouping of Media Lines in the Session Description Protocol (SDP)rfc3388.pdf
51Session Description Protocol (SDP) Simple Capability Declarationrfc3407.pdf
52The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SigComp)rfc3485.pdf
53Mapping of Media Streams to Resource Reservation Flowsrfc3524.pdf
54Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidthrfc3556.pdf
55RTP Control Protocol Extended Reports (RTCP XR)rfc3611.pdf
56A Transport Independent Bandwidth Modifier for the Session Description Protocol (SDP)rfc3890.pdf
57The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Frameworkrfc4091.pdf
58TCP-Based Media Transport in the Session Description Protocol (SDP)rfc4145.pdf
59RTP Payload Format for BroadVoice Speech Codecsrfc4298.pdf
60SDP: Session Description Protocolrfc4566.pdf
61Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)rfc4567.txt.pdf

Connection

No.Titlelink
62The PPP OSI Network Layer Control Protocol (OSINLCP)rfc1242.txt.pdf

RTCP

No.Titlelink
63RTP: A Transport Protocol for Real-Time Applicationsrfc1889.txt.pdf
64Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidthrfc3556.txt.pdf
65Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)rfc3605.txt.pdf
66RTP Control Protocol Extended Reports (RTCP XR)rfc3611.txt.pdf
67Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection-Oriented Transportrfc4571.txt.pdf
68Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)rfc4585.txt.pdf
69RTP Retransmission Payload Formatrfc4588.txt.pdf
70Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)rfc5124.txt.pdf
71Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequencesrfc5506.txt.pdf
72Post-Repair Loss RLE Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)rfc5725.txt.pdf
73RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedbackrfc5760.txt.pdf
74Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP)rfc5764.txt.pdf
75Session Initiation Protocol Event Package for Voice Quality Reportingrfc6035.txt.pdf
76Rapid Synchronisation of RTP Flowsrfc6051.txt.pdf
77RTP Control Protocol (RTCP) Port for Source-Specific Multicast (SSM) Sessionsrfc6128.txt.pdf
78Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)rfc6222.txt.pdf
79Application Mechanism for Keeping Alive the NAT Mappings Associated with RTP / RTP Control Protocol (RTCP) Flowsrfc6263.txt.pdf
80Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)rfc6332.txt.pdf
81RTP Control Protocol (RTCP) Extension for a Third-Party Loss Reportrfc6642.txt.pdf

🥌 实践项目

音视频通话项目

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

Android/iOS 视频播放器

ijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案。

仿网易云音乐安卓版客户端

仿网易云音乐 安卓版,netease android,音乐播放器 在线 下载。

Timber

Timber是一个设计漂亮,功能完善,Material Design风格的音乐播放器。

WebRTC入门项目

WebRTC初学者的启动演示,包括一个基于Socket.IO的简单信号服务器,以及一些客户端演示Web/Android/IOS/Windows平台。
WebRTC入门项目部署步骤

getStats

使用WebRTC getstats APL返回对等连接状态的微小JavaScript库,如带宽使用、数据包丢失、本地)远程IP地址和端口、连接类型等。

MPlayer

跨平台的视频播放器,可在Linux和其他类Unix系统、Windows及Mac OS X系统使用。

KxMovie

IOS平台基于FFMPEG播放器

Vitamio

Android/IOS平台上的多媒体框架,带有硬件加速解码和渲染.

YUV2RGB

YUV转RGB.

TSDemux

将TS流解码为PES或ES.(下载这个源码需要FQ)

VLC

跨平台的视频播放器。现在也有安卓版本。也可以作为流媒体服务器。

FFDshow

免费的编解码软件,基于windows平台。原因就是directshow就是微软开发的,只能用于windows平台。

PlayerSDK(Android平台)

这是一个专注音视频播放器的库,目前还在不断优化中。

VideoDownloader(Android平台)

视频下载SDK功能。

MediaSDK(Android平台)

这是一个专注音视频边下边播的库。

PaddlePaddle-DeepSpeech

夜雨飘零大佬撰写的基于《Baidu's Deep Speech 2 paper》论文深度学习语音识别实战项目。

NDK_OpenGLES_3_0

Android OpenGLES 3.0 开发系统性学习教程。

OpenGLCamera2

Android OpenGL Camera 2.0 实现 30 种滤镜和抖音特效。

AnalysisAVP

音视频学习,相关文件格式/协议分析,框架学习等。yuv h264 aac flv mp4 rtmp;libyuv x264 openh264 faac faad2 fdk-aac librtmp ffmpeg sdl2 webrtc


🤝 鸣谢

为了让我们的repo内容更加的丰富,更加的专业。欢迎大家贡献patch,希望大家在issue里面出谋划策,我们期待你的加入。


零领工作


实时提供,每周发布北京,上海,广州,深圳,杭州,南京,合肥,武汉,长沙,重庆,成都,西安,厦门的c/c++,golang方向的招聘岗位信息。 包含校招,社招,实习岗位, 面经,八股,简历
零领工作

agora
ffmpeg
janus
rtmp
rtp
rtsp
srs
webrtc
x264

Significant stargazers

Huajie Tan

84 followers · starred Mar 2024

Khaidi Chu

3,928 followers · starred Oct 2021

dsd

43 followers · starred Feb 2026

lailoo

27 followers · starred Oct 2023

0voice/audio_video_streaming

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

6,254

370 commits

updated May 20, 2024

See the code

README

【🔥🔥🔥热门、吃香】音视频流媒体权威资料整理,精选文章,学术论文,大佬视频,实践项目,开源框架,协议,业界大神一览



💡 【最新更新】WebRTC零基础开发者教程(中文)

📢【推荐收藏】音视频流媒体开发知识归纳导图

🏹【熟读兵法,搞定面试】50道音视频经典面试题

👁️【不想看文字,视频更直接】国内国外大佬教学视频

🗜【项目实战应用,日后100%要用到】N个经典开源项目


📙 书籍

No.book namauthor
1FFmpeg从入门到精通刘歧, 赵文杰
2视频图像处理与性能优化梁军, 贾海鹏
3数字图像与视频处理卢官明, 唐贵进, 崔子冠
4数字音视频技术及应用陈光军
5音视频开发进阶指南:基于Android与iOS平台的实践展晓凯, 魏晓红
6视频编码全角度详解:AVS_China、H.264_MPEG-4_PART10、HEVC、VP6、DIRAC、VC-1刘歧, 赵文杰
7FFMPEG - From Zero to HeroNick, Ferrando
8FFmpeg Basics 2012Frantisek Korbel
9Handbook on SDP for Multimedia Session Negotiations SIP and WebRTC IP TelephonyRoy, Radhika Ranjan
10Learning WebRTCDan Ristic
11Real-Time Communication with WebRTCSalvatore Loreto, Simon Pietro Romano

🌅 面试题

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协议各自的默认端口号是?

📰 文章

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

🌐 开源框架

实时音视频开源项目

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

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

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

编解码开源项目
projectwebsiteintroduce
WebRTCwebrtc.orgWebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
x264www.linuxfromscratch.orgH.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。
FFmpegffmpeg.orgFFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg提供了编码、解码、转换、封装等功能,以及剪裁、缩放、色域等后期处理。
ijkplayerbilibili/ijkplayerijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案。
JSMpegjsmpeg.comJSMpeg 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.
Opusopus.nlpl.euOpus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由IETF(互联网工程任务组)进行标准化,目标是希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限制。
live555www.live555.comlive555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了标准流媒体传输,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+ 、DV、JPEG视频和多种音频编码。
服务端开源项目
projectwebsiteintroduce
jitsijitsi/jitsiJitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
JsSIPjssip.netJsSIP是一个简单易用的JavaScript库,它利用SIP和WebRTC的最新发展,在任何网站上提供全功能的SIP端点。通过JsSIP ,只要几行代码,任何网站都可以通过音频,视频等获得实时通信功能。
SRSwww.ossrs.netSRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。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测速。
JRTPLIBj0r1/JRTPLIBjrtplib是一个基于C++、面向对象的RTP封装库, jrtplib支持定义于RFC3550中的RTP协议,它使得发送和接收RTP报文变得异常简单,用户不用担心SSRC冲突,也不用考虑如何传输RTCP数据,因为RTCP功能完全在内部实现。
OPALopalvoipOpen 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.
Kurentowww.kurento.orgKurento 是一个WebRTC流媒体服务器以及一些客户端API,开发WWW及智能手机平台的高级视频应用就变得更加容易。可以利用Kurento开发的应用类型包括,视频会议,音视频广播,音视频录制、转码等。
Janusjanus.conf.meetecho.comJanus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器,它支持在Linux的服务器或MacOS上的机器进行编译和安装。
质量传输开源项目
projectwebsiteintroduce
callstats.iocallstatsCallstats.io致力于监控和管理WebRTC应用中的音频和视频通话性能。提供Javascript客户端库,可以监测浏览器终端性能,从而帮助服务供应商准确定位那些媒体质量较低的终端用户,并进行性能问题的诊断。该信息主要是用于产品经理和工程师来提高客户体验质量,主动解决潜在的瓶颈障碍。
Meetechomeetecho/janus-gatewayMeetecho Janus是Meetecho公司的一款WebRTC(网页即时通信)服务器。
Agoraagora.io声网Agora提供了一套简单而强大的SDK,开发者可以利用其中的资源在任何手机或电脑应用中加入高清语音和视频通讯功能。
视频前后处理开源项目
音频
projectwebsiteintroduce
soundtouchsoundtouchSoundTouch是一个开源的音频处理库,主要实现包含变速、变调、变速同时变调等三个 功能模块,能够对媒体流实时操作,也能对音频文件操作。采用32位浮点或者16位定点,支持单声道或者双声道,采样率范围为8k~48k。
视频
projectwebsiteintroduce
SeetaFace6SeetaFace6OpenSeetaFace6是中科视拓最新开源的商业正式版本。包含人脸识别的基本部分,如人脸检测、关键点定位、人脸识别。同时增加了活体检测、质量评估、年龄性别估计。并且响应时事,开放了口罩检测以及戴口罩的人脸识别模型。
GPUImage2GPUImage2GPUImage是个功能十分强大、又十分易用的图像处理库。提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。
open nsfwopen_nsfwopen nsfw是雅虎开源项目caffeonspark,使用深度学习训练得到caffe模型。nsfw翻译为不可在工作中看的图片。主要是针对黄图的,恐怖,血腥图片不能识别。
PaddleGANPaddleGANPaddleGAN是百度飞桨团队开源的对抗网络工具箱,提供了视频超分、插帧、上色等高质量深度学习能力。

其他音视频开源项目

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

🧿 视频

国外大神

国内大佬

No.title地址
26windows ffmpeg命令行环境搭建点击学习
27FFMPEG如何查询命令帮助文档点击学习
28ffmpeg音视频处理流程点击学习
29ffmpeg命令分类查询点击学习
30ffplay播放控制点击学习
31ffplay命令选项(上)点击学习
32ffplay命令选项(下)点击学习
33ffplay命令播放媒体点击学习
34ffplay简单过滤器点击学习
35ffmpeg命令参数说明点击学习
36ffmpeg命令提取音视频数据点击学习
37ffmpeg命令提取像素格式和PCM数据点击学习
38ffmpeg命令转封装点击学习
39fmpeg命令裁剪和合并视频点击学习
40fmpeg命令图片与视频互转点击学习
41ffmpeg命令视频录制点击学习
42ffmpeg命令直播(上)点击学习
43ffmpeg命令直播(下)点击学习
44ffmpeg过滤器-裁剪点击学习
45ffmpeg过滤器-文字水印点击学习
46ffmpeg过滤器-图片水印点击学习
47ffmpeg过滤器-画中画点击学习
48ffmpeg过滤器-多宫格点击学习
49SRS流媒体服务器实战(上)点击学习
50SRS流媒体服务器实战(下)点击学习
51音视频开发-ffplay.iikplayer、vlc的播放器设计实现点击学习
52音视频成长之路-进阶三部曲点击学习
53为什么直播领域也要搞WebRTC-srs4.0点击学习
54腾讯课堂直播如何做到低延迟点击学习
55rtmp2webrtc提出问题-灵魂拷问点击学习

🍀 paper

ffmpeg

aac
ffplay
H264

流媒体

RTSP
rtmp
HLS

🧾 协议

HTTP

No.Titlelink
1Hypertext Transfer Protocol -- HTTP/1.1rfc2068.txt.pdf
2An Extension to HTTP : Digest Access Authenticationrfc2069.txt.pdf
3Simple Hit-Metering and Usage-Limiting for HTTPrfc2227.txt.pdf
4HTTP Extensions for Distributed Authoring -- WEBDAVrfc2518.txt.pdf
5Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTPrfc2585.txt.pdf
6Upgrading to TLS Within HTTP/1.1rfc2817.txt.pdf

RTP

No.Titlelink
7RTP: A Transport Protocol for Real-Time Applicationsrfc1889.txt.pdf
8RTP Profile for Audio and Video Conferences with Minimal Controlrfc1890.txt.pdf
9RTP Payload Format of Sun's CellB Video Encodingrfc2029.txt.pdf
10RTP Payload Format for JPEG-compressed Videorfc2035.txt.pdf
11RTP Payload Format for MPEG1/MPEG2 Videorfc2038.txt.pdf
12RTP Payload for Redundant Audio Datarfc2198.txt.pdf
13RTP Payload Format for MPEG1/MPEG2 Videorfc2250.txt.pdf
14RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video (H.263+)rfc2429.txt.pdf
15RTP Payload Format for BT.656 Video Encodingrfc2431.txt.pdf
16RTP Payload Format for JPEG-compressed Videorfc2435.txt.pdf
17Compressing IP/UDP/RTP Headers for Low-Speed Serial Linksrfc2508.txt.pdf
18An RTP Payload Format for Generic Forward Error Correctionrfc2733.txt.pdf
19RTP Payload for Text Conversationrfc2793.txt.pdf
20RTP Payload for DTMF Digits, Telephony Tones and Telephony Signalsrfc2833.txt.pdf
21RTP Payload Format for Real-Time Pointersrfc2862.txt.pdf
22RTP Payload Format for MPEG-4 Audio/Visual Streamsrfc3016.txt.pdf
23RTP Payload Format for ITU-T Recommendation G.722.1rfc3047.txt.pdf

RTSP

No.Titlelink
24Real Time Streaming Protocol (RTSP)rfc2326.txt.pdf
25Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)rfc4567.txt.pdf
26A Network Address Translator (NAT) Traversal Mechanism for Media Controlled by the Real-Time Streaming Protocol (RTSP)rfc7825.txt.pdf
27Real-Time Streaming Protocol Version 2.0rfc7826.txt.pdf
28SDP: Session Description Protocolrfc8866.pdf

TCP

No.Titlelink
29Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and methodsrfc1001.pdf
30Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specificationsrfc1002.pdf
31Transmission Control Protocolrfc793.pdf

UDP

No.Titlelink
32Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and methodsrfc1001.pdf
33Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specificationsrfc1002.pdf
34SNMPv2 Management Information Base for the User Datagram Protocol using SMIv2rfc2013.pdf
35TCP and UDP over IPv6 Jumbogramsrfc2147.pdf
36Compressing IP/UDP/RTP Headers for Low-Speed Serial Linksrfc2508.pdf
37STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)rfc3489.pdf
38Mobile IP Traversal of Network Address Translation (NAT) Devicesrfc3519.pdf
39The Lightweight User Datagram Protocol (UDP-Lite)rfc3828.pdf
40UDP Encapsulation of IPsec ESP Packetsrfc3948.pdf
41RObust Header Compression (ROHC): Profiles for User Datagram Protocol (UDP) Literfc4019.pdf
42Management Information Base for the User Datagram Protocol (UDP)rfc4113.pdf
43User Datagram Protocolrfc768.pdf

Gopher

No.Titlelink
44The gopher URI Schemerfc4266.pdf

SDP

No.Titlelink
45SDP: Session Description Protocolrfc2327.pdf
46The PINT Service Protocol: Extensions to SIP and SDP for IP Access to Telephone Call Servicesrfc2848.pdf
47Carrying Label Information in BGP-4rfc3107.pdf
48An Offer/Answer Model with Session Description Protocol (SDP)rfc3264.pdf
49Support for IPv6 in Session Description Protocol (SDP)rfc3266.pdf
50Grouping of Media Lines in the Session Description Protocol (SDP)rfc3388.pdf
51Session Description Protocol (SDP) Simple Capability Declarationrfc3407.pdf
52The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SigComp)rfc3485.pdf
53Mapping of Media Streams to Resource Reservation Flowsrfc3524.pdf
54Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidthrfc3556.pdf
55RTP Control Protocol Extended Reports (RTCP XR)rfc3611.pdf
56A Transport Independent Bandwidth Modifier for the Session Description Protocol (SDP)rfc3890.pdf
57The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Frameworkrfc4091.pdf
58TCP-Based Media Transport in the Session Description Protocol (SDP)rfc4145.pdf
59RTP Payload Format for BroadVoice Speech Codecsrfc4298.pdf
60SDP: Session Description Protocolrfc4566.pdf
61Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)rfc4567.txt.pdf

Connection

No.Titlelink
62The PPP OSI Network Layer Control Protocol (OSINLCP)rfc1242.txt.pdf

RTCP

No.Titlelink
63RTP: A Transport Protocol for Real-Time Applicationsrfc1889.txt.pdf
64Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidthrfc3556.txt.pdf
65Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)rfc3605.txt.pdf
66RTP Control Protocol Extended Reports (RTCP XR)rfc3611.txt.pdf
67Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection-Oriented Transportrfc4571.txt.pdf
68Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)rfc4585.txt.pdf
69RTP Retransmission Payload Formatrfc4588.txt.pdf
70Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)rfc5124.txt.pdf
71Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequencesrfc5506.txt.pdf
72Post-Repair Loss RLE Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)rfc5725.txt.pdf
73RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedbackrfc5760.txt.pdf
74Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP)rfc5764.txt.pdf
75Session Initiation Protocol Event Package for Voice Quality Reportingrfc6035.txt.pdf
76Rapid Synchronisation of RTP Flowsrfc6051.txt.pdf
77RTP Control Protocol (RTCP) Port for Source-Specific Multicast (SSM) Sessionsrfc6128.txt.pdf
78Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)rfc6222.txt.pdf
79Application Mechanism for Keeping Alive the NAT Mappings Associated with RTP / RTP Control Protocol (RTCP) Flowsrfc6263.txt.pdf
80Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)rfc6332.txt.pdf
81RTP Control Protocol (RTCP) Extension for a Third-Party Loss Reportrfc6642.txt.pdf

🥌 实践项目

音视频通话项目

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

Android/iOS 视频播放器

ijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案。

仿网易云音乐安卓版客户端

仿网易云音乐 安卓版,netease android,音乐播放器 在线 下载。

Timber

Timber是一个设计漂亮,功能完善,Material Design风格的音乐播放器。

WebRTC入门项目

WebRTC初学者的启动演示,包括一个基于Socket.IO的简单信号服务器,以及一些客户端演示Web/Android/IOS/Windows平台。
WebRTC入门项目部署步骤

getStats

使用WebRTC getstats APL返回对等连接状态的微小JavaScript库,如带宽使用、数据包丢失、本地)远程IP地址和端口、连接类型等。

MPlayer

跨平台的视频播放器,可在Linux和其他类Unix系统、Windows及Mac OS X系统使用。

KxMovie

IOS平台基于FFMPEG播放器

Vitamio

Android/IOS平台上的多媒体框架,带有硬件加速解码和渲染.

YUV2RGB

YUV转RGB.

TSDemux

将TS流解码为PES或ES.(下载这个源码需要FQ)

VLC

跨平台的视频播放器。现在也有安卓版本。也可以作为流媒体服务器。

FFDshow

免费的编解码软件,基于windows平台。原因就是directshow就是微软开发的,只能用于windows平台。

PlayerSDK(Android平台)

这是一个专注音视频播放器的库,目前还在不断优化中。

VideoDownloader(Android平台)

视频下载SDK功能。

MediaSDK(Android平台)

这是一个专注音视频边下边播的库。

PaddlePaddle-DeepSpeech

夜雨飘零大佬撰写的基于《Baidu's Deep Speech 2 paper》论文深度学习语音识别实战项目。

NDK_OpenGLES_3_0

Android OpenGLES 3.0 开发系统性学习教程。

OpenGLCamera2

Android OpenGL Camera 2.0 实现 30 种滤镜和抖音特效。

AnalysisAVP

音视频学习,相关文件格式/协议分析,框架学习等。yuv h264 aac flv mp4 rtmp;libyuv x264 openh264 faac faad2 fdk-aac librtmp ffmpeg sdl2 webrtc


🤝 鸣谢

为了让我们的repo内容更加的丰富,更加的专业。欢迎大家贡献patch,希望大家在issue里面出谋划策,我们期待你的加入。


零领工作


实时提供,每周发布北京,上海,广州,深圳,杭州,南京,合肥,武汉,长沙,重庆,成都,西安,厦门的c/c++,golang方向的招聘岗位信息。 包含校招,社招,实习岗位, 面经,八股,简历
零领工作

agora
ffmpeg
janus
rtmp
rtp
rtsp
srs
webrtc
x264

Significant stargazers

Huajie Tan

84 followers · starred Mar 2024

Khaidi Chu

3,928 followers · starred Oct 2021

dsd

43 followers · starred Feb 2026

lailoo

27 followers · starred Oct 2023