原创 流媒體協議概述

0、preview 在瞭解流媒體協議之前,不得不瞭解基本計算機網絡知識。TCP/IP協議族的上層協議是通過封裝來使用下層協議的,我們的用戶數據通過一層一層的向下進行封裝。在鏈路層還加上了尾部信息。 各層作用: 數據鏈路層:如何控制介質的

原创 網絡流媒體-RTMP

1、RTMP協議概述 在流媒體協議概述中,我們知道rtmp協議屬於應用層協議,下層傳輸層協議使用的是TCP協議(其實還可以是UDP的,只不過我好像沒看到)。在每學習一種協議的時候,我們首先要清楚協議封裝,在我的理解中流媒體的所有協議均可看

原创 網絡流媒體-RTP與RTCP

1、RTP與RTCP概述 RTP與RTCP協議本來不屬於我們常見的流媒體協議,類似rtmp,rtsp,hls,webrtc等,但是很多的流媒體協議又是在這兩個協議之上的額,比如rtsp和webtrc這兩個下層就是rtp與rtcp協議的。這

原创 glfw的編譯

關於glfw在編譯過程中,遇到過很多問題,這裏簡單記錄一下。 1.下載源碼 git clone https://github.com/glfw/glfw.git 2.安裝X11 yum search的時候你會發現有很多,這裏選擇libx

原创 網絡流媒體-RTSP

1、RTSP概述 rtsp屬於應用層流媒體協議,常見的形式是rtsp以rtp和rtcp爲封包形式,在傳輸層協議udp上進行流媒體傳輸的。有個之前理解過的rtp與rtcp的基礎之後,rtsp就很好理解了。總結一點,rtsp裏面的數據包是以r

原创 C/C++學習筆記-CMake教程(2)-CMakelists通用模板

CMake是一個用來管理項目工程的一個工具,使用CMake來編譯項目,可以避免使用一些集成環境所帶來的麻煩,但是作爲入門級選手編寫CMake還是有點吃力的。所以選擇了一個比較通用的CMakelists.txt模板,大多數項目都可以在上面修

原创 GitHub本地倉庫的建立與遠程倉庫的上傳(同步)

github是一個很實用的代碼管理工具,代碼的管理我們不僅限於本地代碼的管理,爲了做好備份與下載,我們還需要將本地代碼上傳到遠程倉庫進行備份管理。在代碼的上傳前提是你已經進行ssh key綁定了,具體綁定方法見博客GitHub的SSH的綁

原创 GitHub的SSH的綁定

github是一個基於git的高效的代碼管理平臺,方便我們下載和上傳代碼。那麼,這樣就會有一個問題:我們自己的遠程倉庫別人是不是同樣可以上傳修改代碼,顯然是不行的。於是就有本節的SSH Key的綁定,通俗的講,每臺機器都可以生成自己的ss

原创 心得-C/C++學習過程的小技巧

C/C++學習小技巧 在碼代碼過程中,會遇到很多問題,在此記錄自己在學習過程中遇到的“坑”。 1、不要在函數中返回局部變量 a.C/C++能返回static修飾的局部變量(因爲在靜態存儲區) b.C/C++能返回用 new 創建的局部變量

原创 音視頻學習-h264裸流的解析

 h264的解析代碼,來自雷神的博客 //============================================================================ // Name : H26

原创 音視頻學習-annexb與MP4之間的轉換

 Annexb轉MP4 目前感覺上,annexb轉MP4的場景似乎不太多,但不排除某些特定場景。所以貼出下面代碼。 /* annexbBuf:輸入annexb類型的數據 AvccBuffer:輸出MP4或者AVCC的數據 length:

原创 音視頻學習-h264的NALU結構分析

h264碼流結構: h264碼流也稱之爲“裸流”,其數據是由一個個NAL單元(NALU)連接起來的,因此要想解析h264就得弄明白NALU的結構。                         NALU標準: forbidden_z

原创 音視頻學習-總述

音視頻學習目錄 這段時間,在公司裏面主要接觸了關於處理直播時移的問題,遇到很多困難和問題,目前仍在學習和解決中。但是,我覺得還是應該多多總結自己的問題,纔會有收穫。 目錄: 視頻: 1、h264的NALU結構分析 2、h264裸流的解析

原创 Linux-shell

//TODO