原创 ijkplayer 播放器:在Android端進行native調試 前言 可能遇到的問題 解決思路 解決重點 結語

前言 ijkplayer是B站開源的基於FFmpeg的輕量級Android/iOS視頻播放器,強烈建議在定製的播放器的時候以ijkplayer爲基礎進行二次開發。 對於二次開發時代碼的調試時一件重中之重的事情;在iOS平臺,ijkplaye

原创 音視頻知識回顧整理計劃 項目實戰 理論研究 源碼剖析

打算把自己學過的音視頻知識做一個回顧整理,所以整理出一份打算要寫的內容。 初步計劃一週一篇或以上的頻率來發布,希望能堅持下來。 項目實戰 音頻採集:Android基於OpenSL ES的實現 音頻採集:Android基於AudioReco

原创 QUIC探索(一):初識QUIC 前言 QUIC是什麼 QUIC的優勢 QUIC相關開源庫 結語

前言 此係列會以一系列文章來介紹Google在傳輸層的新開源貢獻:QUIC協議 的一些內容,也是傳說中未來的HTTP3。 當然,系列開篇肯定要先介紹QUIC是什麼,能做什麼,爲什麼要用QUIC這些哲學問題,所以這篇文章不會涉及一些代碼層面的

原创 音視頻結構:帶你深入理解YUV 前言 什麼是YUV YUV與RGB的轉換關係 YUV的採樣格式 YUV的存儲格式 常用的YUV格式 對齊問題和取值範圍 結語

前言 在音視頻開發中,RGB和YUV這些顏色空間估計大家都不會陌生。相對來說RGB比較容易理解,但是YUV的一些概念可能會比較抽象,所以這篇文章就主要來介紹YUV這個顏色空間的一些知識。 什麼是YUV 要理清YUV的本質,那麼必須從其Y、U

原创 QUIC探索(二):編譯第一個QUIC工程 前言 獲取源碼 編譯第一個QUIC項目 chromium的net模塊 選擇QUIC的歷史版本 結語

前言 前篇文章簡單介紹了QUIC協議在業內存在的幾種開源實現,但是歸根結底主要可以分爲Google開源的chromium庫自帶的QUIC實現方案,還有利用Go語言來重寫的QUIC協議實現庫。 相對來說,更加建議在chromium上面進行QU

原创 JNI編程指南(二):字段和方法 前言 訪問字段 字段描述符 調用方法 調用父類方法 調用構造函數 字段ID緩存技術 JNI操作Java字段和方法效率 結語

前言 上篇文章介紹了JNI中訪問JVM中任意基本類型數據和字符串、數組這樣的引用類型,這篇就簡單介紹下JNI對JVM中任意對象的字段和方法進行交互,簡單點說就是本地代碼中調用Java的代碼,也就是通常所說的來自本地方法的callback(回

原创 音視頻結構:帶你深入理解YUV

前言 在音視頻開發中,RGB和YUV這些顏色空間估計大家都不會陌生。相對來說RGB比較容易理解,但是YUV的一些概念可能會比較抽象,所以這篇文章就主要來介紹YUV這個顏色空間的一些知識。 什麼是YUV 要理清YUV的本質,那麼必須從其Y、U

原创 QUIC探索(二):編譯第一個QUIC工程

前言 前篇文章簡單介紹了QUIC協議在業內存在的幾種開源實現,但是歸根結底主要可以分爲Google開源的chromium庫自帶的QUIC實現方案,還有利用Go語言來重寫的QUIC協議實現庫。 相對來說,更加建議在chromium上面進行QU

原创 ijkplayer 播放器:在Android端進行native調試

前言 ijkplayer是B站開源的基於FFmpeg的輕量級Android/iOS視頻播放器,強烈建議在定製的播放器的時候以ijkplayer爲基礎進行二次開發。 對於二次開發時代碼的調試時一件重中之重的事情;在iOS平臺,ijkplaye

原创 QUIC探索(一):初識QUIC

前言 此係列會以一系列文章來介紹Google在傳輸層的新開源貢獻:QUIC協議 的一些內容,也是傳說中未來的HTTP3。 當然,系列開篇肯定要先介紹QUIC是什麼,能做什麼,爲什麼要用QUIC這些哲學問題,所以這篇文章不會涉及一些代碼層面的

原创 視頻採集:iOS平臺基於AVCaptureDevice的實現

前言 這篇文章簡單介紹下移動端iOS系統下利用AVCaptureDevice進行視頻數據採集的方法。 按照慣例先上一份源碼:iOSVideo 攝像頭採集相關核心實現在:NTVideoCapture.m 官方文檔可以參考:AVFoundati

原创 JNI編程指南(二):字段和方法

前言 上篇文章介紹了JNI中訪問JVM中任意基本類型數據和字符串、數組這樣的引用類型,這篇就簡單介紹下JNI對JVM中任意對象的字段和方法進行交互,簡單點說就是本地代碼中調用Java的代碼,也就是通常所說的來自本地方法的callback(回

原创 架構設計:基於Webrtc、Kurento的一種低延遲架構實現

前言 在音視頻領域,低延遲交互一直是一個非常重要的需求。 而直播大多基於RTMP協議,其存在1到3秒左右的延遲,基本無法勝任低延遲交互的需求;另外在遊戲領域、語音聊天、教育領域,低延遲也是一個非常重要的議題。 下面以直播的連麥架構的設計來簡

原创 OpenGL ES:Android平臺EGL環境

前言 這篇文章簡單介紹一下在Android平臺下的EGL環境的相關內容,由於OpenGL ES並不負責窗口管理以及上下文管理,該職責由各個平臺自行完成;在Android平臺下OpenGL ES的上下文環境是依賴EGL的API進行搭建的。 對

原创 視頻採集:Android平臺基於Camera 2的實現

前言 這篇文章簡單介紹下移動端Android系統下利用Camera2相關API進行視頻採集的方法。 Camera2是谷歌在Android 5.0新增的用來替代Camera1操作攝像頭的一個全新的API。 按照慣例先上一份源碼AndroidV