今天在論壇上看到一個關於音視訊開發的貼文,看到題目,我忍不住點了進去。
標題是這樣的「
【🔥🔥🔥熱門、吃香】音視訊串流媒體權威資料整理,精選文章,學術論文,大佬視訊,實踐計畫,開源框架,協定,業界大神一覽
」,
質疑「估計是騙人的,怎麽會有這麽全的內容」,但是還是想進去一探究竟。
計畫地址:https://github.com/0voice/audio_video_streaming
一、書籍
【FFmpeg從入門到精通】
【視訊影像處理與效能最佳化】
【數位影像與視訊處理】
【數位音視訊技術及套用 】
【音視訊開發進階指南:基於Android與iOS平台的實踐 】
【視訊編碼全形度詳解:AVS_China、H.264_MPEG-4_PART10、HEVC、VP6、DIRAC、VC-1 】
【FFMPEG - From Zero to Hero 】
【FFmpeg Basics 2012 】
【Handbook on SDP for Multimedia Session Negotiations SIP and WebRTC IP Telephony 】
【Learning WebRTC 】
【Real-Time Communication with WebRTC】
二、面試題
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. 簡述推流、拉流的工作流程?
三、文章
WebRTC 發送方碼率預估實作解析
碼率控制基本概念
Speex回聲消除代分碼析
房間聲學原理與Schroeder混響演算法實作
H264系列--壓縮編碼技術
RTSP 媒體協定流的錄制方案及其覆蓋策略詳解
建立連線之ICE框架
串流媒體協定介紹(rtp/rtcp/rtsp/rtmp/mms/hls)
音視訊同步原理及實作
直播概念和流程框架
CDN在直播中的運用
常見音視訊編碼格式
H.264官方軟體JM原始碼分析-編碼器lencod
H.264官方軟體JM原始碼分析-解碼器ldecod
Android 音視訊技術
Web前端WebRTC攻略-媒體協商與SDP簡析
基於FFmpeg的AVfilter的例子-純凈版
WebRTC 傳輸安全機制第二話:深入顯淺出 SRTP 協定
WebRTC能給我帶來什麽?
視音訊數據處理:RGB、YUV像質數據處理
視音訊數據處理:PCM音訊采樣數據處理
視音訊數據處理:H.264視訊碼流解析
視音訊數據處理:AAC音訊碼流解析
視音訊數據處理:FLV封裝格式解析
視音訊數據處理:UDP-RTP協定解析
如何生成mp4檔
ffmpeg濾鏡的基本使用
webRTC是如何實作音視訊的錄制
音視訊同步演算法
房間聲學原理與Schroeder混響演算法實作
一個頻域語音降噪演算法實作及改進方法
HEVC官方軟體HM原始碼分析-編碼器TAppEncoder
HEVC官方軟體HM原始碼分析-解碼器TAppDecoder
音視訊編解碼常用知識點
微信小程式整合即時音視訊通話功能
視音訊編解碼技術零基礎學習方法
RTSP協定學習
HEVC碼流分析
H.264簡單碼流分析
MPEG2簡單碼流分析
視訊碼流分析工具
H.264分析器
FFmpeg架構之IO模組分析
(Video and Audio Data Processing)UDP-RTP協定解析
RTSP協定例項分析
RTSP協定之TCP或UDP問題
ffplay工具命令使用技巧
VLC RTSP網路串流播放失敗
RTMP協定詳解
STUN 原理理解
四、開源框架
即時音視訊套用共包括幾個環節:
采集、編碼、前後處理、傳輸、解碼、緩沖、渲染等很多環節
。
每一個細分環節,還有更細分的技術模組。
比如,前後處理環節有美顏、濾鏡、回聲消除、雜訊抑制等,采集有麥克風陣列等,編解碼有VP8、VP9、H.264、H.265等。
采集->前處理編碼->傳輸->解碼後處理->渲染
即時音視訊開源計畫思維導圖
編解碼開源計畫
WebRTC
地址: webrtc.org
WebRTC實作了基於網頁的視訊會議,標準是WHATWG 協定,目的是透過瀏覽器提供簡單的javascript就可以達到即時通訊(Real-Time Communications (RTC))能力。
WebRTC提供了視訊會議的核心技術,包括音視訊的采集、編解碼、網路傳輸、顯示等功能,並且還支持跨平台:windows,linux,mac,android。
H.264
地址: www.linuxfromscratch.org
H.264是ITU(International Telecommunication Union,國際通訊聯盟)和MPEG(Motion 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
伺服端開源計畫
jitsi
地址:jitsi/jitsi
Jitsi是一個音訊/視訊和聊天通訊器,它支持SIP、XMPP/Jabber、IRC和許多其他有用的特性。
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
openphone抽象庫(OPAL)是一個c++多平台、多協定的庫,用於IP和其他網路上的傳真、視訊和語音。還包括可移植工具庫(PTLib),這是一個c++多平台抽象庫。
Kurento
地址:www.kurento.org
Kurento 是一個WebRTC串流媒體伺服器以及一些客戶端API,開發WWW及智慧型手機平台的高級視訊套用就變得更加容易。可以利用Kurento開發的套用型別包括,視訊會議,音視訊廣播,音視訊錄制、轉碼等。
Janus
地址:janus.conf.meetecho.com
五、視訊
國外大神
國內大佬
六、更多給力的資源
如:學術論文、業界大神介紹、串流媒體協定、實戰計畫等
透過上面對內容的簡述,我想大家對這分資料,都有了一個大概的了解,也同時對它有了個大概的評價。
從我個人感覺來說,我認為這份資料還是整理得不錯的。並沒有一味吹噓。基本符合標題所寫的「【🔥🔥🔥熱門、吃香】音視訊串流媒體權威資料整理,精選文章,學術論文,大佬視訊,實踐計畫,開源框架,協定,業界大神一覽」。
資料地址:https://github.com/0voice/audio_video_streaming
repo最後附上的了公眾號,有需要這份資料所有文件的朋友,可以聯系他們。
-- END --
進技術交流群, 掃碼添加我的微信:Byte-Flow
獲取視訊教程和源碼
推薦: