原创 WebRTC(四) Web端音視頻數據採集及處理

本文介紹如果通過html代碼在瀏覽器中採集和播放音視頻數據。 文章目錄1 html代碼,用於顯示視頻2 js代碼,用於獲取視頻流 1 html代碼,用於顯示視頻 <html> <head> <title>WebRTC cap

原创 WebRTC(十二) Web端媒體協商

文章目錄1 媒體協商流程2 代碼示例 本文以同一個瀏覽器的RTCPeerConnection爲例,來說明媒體協商的過程。多個瀏覽器的流程也是一樣的,只不過媒體協商的信息以消息的形式發送到對端,而且還要包括p2p連接的建立等。 1

原创 CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set.

完整錯誤 Error:CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is n

原创 WebRTC(三) Web端音視頻設備信息獲取

本文介紹如果在瀏覽器中獲取音視頻的設備信息,並在html頁面中顯示設備信息。 文章目錄1 html代碼,用於顯示當前設備的信息2 js代碼,用於獲取當前設備信息3 js打印結果4 獲取權限方法 通過js代碼獲取設備信息可以通過如下

原创 Android播放器(一) 通過FFmpeg解碼爲RGBA格式播放

代碼可以參考: Github地址 本文主要介紹如何通過FFmpeg將MP4格式的視頻數據解碼爲一幀一幀的RGBA像素格式數據來播放。 因爲主要是視頻的解碼及播放,對於音頻只是解碼出了音頻對應的pcm數據,並沒有播放pcm。因此也不

原创 Android Pixel手機Notification小圖標顯示白方塊問題

1 問題 我遇到的問題是在Google的Pixel手機上,當通知顯示出來時,對應小圖標的icon的樣式是一個小白塊 2 setSmallIcon() 按照google的說法,這個小圖標是通過setSmallIcon()方法來設置

原创 Android播放器(四) 使用FFmpeg實現播放器框架

Github地址 本文主要介紹一個用ffmpeg來封裝的音視頻的框架。這個框架的功能是完成從解碼到最後播放的過程。能清晰地展現各個層級之間的關係。 文章目錄1 框架整體結構2 解封裝過程3 音視頻解碼過程3.1 解碼器的創建3.

原创 WebRTC(九) 從零開始搭建coturn服務

https://www.cnblogs.com/pannengzhi/p/5048965.html 文章目錄1 登陸阿里雲服務器2 在根目錄下創建文件夾3 安裝git工具4 下載coturn源碼5 配置coturn6 開始編譯7

原创 WebRTC(十三) Web端實現遠程1對1視頻通話

文章目錄前言效果展示實現流程代碼示例1 html部分代碼2 控件初始化及變量定義3 獲取本地視頻信息並展示4 開始socket連接並設置消息接收回調監聽5 創建PeerConnection,並設置回調監聽6 將PeerConnec

原创 C++基礎(一) C++對C語言的增強

文章目錄1 變量定義的位置可以隨用隨定義2 對全局變量的檢測能力加強3 使用struct時 不需要再使用struct關鍵字4 新增bool類型5 const的增強5.1 不能通過指針間接修改常量值5.2 另外引申出const的一些

原创 WebRTC(十一) SDP

下面以一個sdp的實例來解釋說明 會話層 v=0 v:版本號 o=- 2510751529507770530 2 IN IP4 127.0.0.1 0:owner, -:name, 2510751529507770530:se

原创 WebRTC(五) Web端實現屏幕錄製

文章目錄1 完成html代碼2 完整JS代碼3 效果預覽 1 完成html代碼 <html> <head> <title>WebRTC capture video and audio</title> <style>

原创 WebRTC(七) NAT類型及檢測

WebRTC中P2P的傳輸是很重要的一部分。而NAT的穿越過程對於P2P的傳輸也很重要。 文章目錄1 NAT簡介2 爲什麼會存在NAT3 NAT的種類3.1 完全錐型NAT(full cone nat):*3.2 IP限制錐型NA

原创 Linux基礎(三) Vim

文章目錄1 vim 命令模式1.1 刪除1.2 撤銷1.3 複製粘貼1.4 查找1.5 單個字符替換2 vim 編輯模式3 末行模式3.1 字符替換3.2 分屏模式 1 vim 命令模式 vim是vi發展過來的 工作模式: 1 命

原创 Android播放器(三) 使用OpenGL ES播放yuv數據

本文主要介紹通過OpenGL ES來播放yuv數據 項目地址OpenGl-Play-YUV java層的代碼主要是創建用於顯示的SurfaceView,然後在子線程中將YUV的文件路徑和SurfaceView所持有的Surface