課程地址:https://www.imooc.com/learn/959ios
與固話互聯,要求延遲不超過400毫秒nginx
cdn最重要編程
tcp協議是可靠的流式傳輸協議——A向B發送數據,必須收到且是有序的緩存
發送,確認,超時,重發安全
能夠重發三次,每次等待超時的時間都是成倍增加。若是網絡很差的話,等待時間就會很長服務器
tcp不可能達到實時傳輸效果網絡
使用UDP來傳輸,一直髮包,至因而否收到,無論架構
基於音視頻數據是有實時有效性的,因此選擇UDP來達到實時互動效果負載均衡
udp沒有現成網絡,要本身建立tcp
服務端多節點,一旦一個節點出現問題,能夠快速切換到另外一個節點,每一個節點負載均衡
每一個節點都要定時向控制中心報告數據
內總線-保證數據安全
經過內部總線傳到媒體服務器上,cdn網絡使用rtmp協議,媒體服務器起到轉換做用,從rtp到rtmp
用戶得到cnd的流,直接觀看
CDN:爲了解決用戶訪問網絡資源慢而出現的
鏈路過長,運營商各自利益
電信用戶經過DNS或者http先找到就近邊緣節點,若是數據沒有,直接到主幹節點,看資源是在哪提供的服務,若是是在聯通上,就會到聯通的主幹節點上訪問,若是數據沒有,就會到聯通的源節點上,若是找到數據,再經過原節點返回。若是是第一個用戶,就會走很長時間,若是其餘用戶也訪問此數據,那麼數據就會緩存到邊緣節點上,能夠直接從邊緣節點上直接訪問,加快速度
傳統的cdn網絡會追求一些熱點,將一些熱點放到緩存裏
對於直播的cnd網絡,通常會經過源直接push到主幹節點,讓數據都存在,與推拉是相結合的
ffmpeg-常見音視頻格式轉化庫,音視頻抽取(eg:小咖秀),視頻上打水印,去水印,倍速播放,音視頻剪輯
ffplay-播放器,命令行的。基於ffmpeg作的二次開發
flashplayer-播放rtmp流的,能夠對rtmp協議作分析
安裝時間會長一些,nginx服務默認不包括rtmp服務
工做處理器個數:1
事件裏的鏈接數:1024
配置文件增長rtmp的配置項
端口:1935
音視頻傳輸,每一個塊大小:4000字節
指定一個特殊應用:live
應用打開,關閉錄製,容許任何人向我發起請求
wq!退出
nginx -s reload
重啓服務
nginx
若是是第一次,直接啓動就能夠
查看是否有1935端口
netstat -an |grep 1935
使用tcp協議,使用ipv4
-i是輸入
講一個直播地址上的音視頻流推送到本地上
http://bbs.chinaffmpeg.com/1.swf
輸入所要拉流的服務器地址
播放
ffplay rtmp://localhost:1935/live/room
經過手機推送到了mac本上,經過ffplay再從流媒體上抓取音視頻流
有兩個終端觀看
越接近正弦波,聲音通常越好聽,畸形或產生噪波
音頻壓縮,就能夠採集到不少數據,砍掉人類聽不見的,減小數據存儲量
低頻20hz,在44.1k採樣頻率裏,每秒採樣2k次
高頻20000hz,在44.1k採樣頻率裏,每秒採樣2次
發聲以前的50毫秒若是有個聲音特別小,就會被遮蓋掉
發生後的100毫秒也會被遮蓋
實時互動系統能夠用opus
泛娛樂化直播通常使用AAC,opus通常不支持,推廣上有些困難
兩個系統融合,須要將opus與AAC互轉
speex:迴音消除,降噪模塊等可實現
G.711:有些會與固話相聯繫,固話用的就是G.711,或者G.722
綠色:開源且不收費
藍色:不開源不收費
紅色:不開源收費
應用範圍廣,直播系統90%以上使用
傳輸協議,像cdn,支持rtmp,可是不支持opus
AAC的音頻編解碼能夠保持高保真
SBR:下降低頻的採樣率,提升對高頻的採樣率,下降大小,提升音質
ps:把立體聲保存,一個聲道完整保存,另外一個聲道只存差別部分
AAC HE:碼率64k
AAC HE V2:,碼率32k
rtmp和flv中都有adts的格式
通常視頻文件在30幀左右,比較高級的要求較高的在60幀
壓縮,B幀比率高。缺點:實時互動須要參考後幀,與網絡息息相關,若是網絡很差就要重傳
通常實時互動都不會使用B幀
泛娛樂化可使用B幀
一個I幀和另外一個I幀之間成爲一組幀,GOF
在一組幀以前,首先會收到sps和pps,若是沒有這兩個參數是無法解碼的
直播裏若是用x265,會佔用很好的cpu,通常不用,點播裏能夠用
openH264支持svc傳輸,svc技術:若是網絡差就發最小的,還能夠就發中間的,網絡好就都發..移動端不能再使用硬編,只能使用軟編,可能會佔用資源,發燙
硬編佔用網寬,軟編考驗移動端,這是個取捨問題
google推出的:vp8對應x264,vp9對應x265
傅里葉變換:將複雜的波形圖編程多個正弦波
CABAC壓縮:無損壓縮
拆包,經過nal層處理
比rgb(8:8:8)節省存儲空間
pc端: I420,
ios: NV12
安卓:NV21