FreeSWITCH使用了大量的第三方庫,本文檔主要介紹視訊相關庫的資訊:
OpenH264 是思科公司以BSD協定開放的一個開源的 H.264 編碼器和解碼器。
Cisco 将以 BSD 協定開放其 H264 解碼器實作,并提供針對主流作業系統的預編譯庫檔案下載下傳。Cisco 将負責承擔 MPEG LA 的專利使用費,并和 Mozilla 共同管理 OpenH264 開源項目。
Firefox 以後預設支援H264,但依然支援 VP8 格式,并可在 WebRTC 中使用。
Mozilla 已經組成了開源編碼器專家小組開發下一代無專利限制視訊編碼格式 Daala,将以與 H265 和 VP9 截然不同的方式繞過可能的專利雷區。但是依然還需要解決同樣被專利困擾的 AAC 音頻解碼器。
Libav是一個自由軟體,可以執行音訊和視訊多種格式的錄影、轉檔、串流功能。主要包含以下幾個部分:
libavcodec (一個用于多個專案中音訊和視訊的解碼器函式庫)
libavformat (一個音訊與視訊格式轉換函式庫)
libavutil(包含解壓縮和各種實用功能庫)
libavfilter(提供一個改變解碼音頻和視訊的攔截器鍊)
libavdevice(提供捕獲和重置裝置的抽象通路能力)
libavresample(實作音頻混合和重采樣能力)
libswscale(實作顔色的轉換和縮放能力)
libvpx是開源的支援VP8/VP9編解碼的SDK。
全面支援WebM。x86平台必須先安裝yasm庫。
WebM由Google提出,是一個開放、免費的媒體檔案格式。
WebM 影片格式其實是以 Matroska(即 MKV)容器格式為基礎開發的新容器格式,裡面包括了 VP8 影片軌和 Ogg Vorbis 音軌。
其中Google将其擁有的VP8視訊編碼技術以類似BSD授權開源,Ogg Vorbis 本來就是開放格式。
WebM标準的網絡視訊更加偏向于開源并且是基于HTML5标準的,WebM 項目旨在為對每個人都開放的網絡開發高品質、開放的視訊格式,其重點是解決視訊服務這一核心的網絡使用者體驗。
libyuv是Google開源的實作各種YUV與RGB之間互相轉換、旋轉、縮放的庫。
它是跨平台的,可在Windows、Linux、Mac、Android等作業系統,x86、x64、arm架構上進行編譯運作,支援SSE、AVX、NEON等SIMD指令加速。
vlc是一個流行的開源媒體播放器和多媒體引擎,已移植到大多數的計算平台,包括GNU / Linux,Windows,Mac OS X,BSD,iOS和Android。
vlc可以播放大多數多媒體檔案,CD光牒,流,允許回放裝置,并能夠以各種格式轉換媒體流。
該項目依賴zlib庫,目前最新的版本是libpng 1.6.21。
實時流協定(Real-TimeMessaging Protocol,RTMP)是用于網際網路上傳輸視音頻資料的網絡協定。librtmp庫提供了支援RTMP, RTMPT,RTMPE, RTMP RTMPS及以上幾種協定的變種(RTMPTE, RTMPTS)協定所需的大部分用戶端功能以及少量的伺服器功能。
上善若水,水利萬物而不争。