原创 紅黑樹原理和實現(1)

       曾經看Robert Love寫的《Linux Kernel Development》第三版中曾提到過Linux內核的程序調度算法是用紅黑樹(Red-Black Tree,下文簡稱RBT)實現的,當時找了很多關於RBT的東西,

原创 在一億個數中查找最大的k個數(k

        在一億個數中查找最大(小)的k個數(k << 1,000,000,000),例如k=10,000。越快越好,怎麼辦呢?         之前跟一同事說起互聯網公司的面試題,他說一般思路是先排序,然後再處理數據肯定沒錯。是不

原创 紅黑樹原理和實現(2)

二 紅黑樹(Red-Black Tree)        在上一篇博客中已經比較完整地介紹了BST(Binary Search Tree)的基本性質和各種操作的代碼實現,對BST有較深刻的理解後再理解RBT(Red-Black Tree)

原创 工作中的一些小總結

2010-10-20 一語點醒夢中人     前幾天在調試基於UDP協議傳輸數據的代碼,卡了兩天,死活不通。原意是使用UDP協議讀取到特定的字節後改變緩衝區大小,再使用它去讀取後邊的數據,但是再讀取數據時,讀到的數據是這個特定的字節加後邊

原创 在nginx-http-flv-module中支持H.265(HEVC)

衆所周知,FLV規範不支持H.265,並且近年來各大瀏覽器都逐漸不支持Flash,Adobe也宣佈到2020年底不再支持Flash。作爲FLV相關技術的所有者,Adobe估計也沒動力更新規範來支持H.265;外加H.265標準的一些專利所

原创 高性能流媒體服務器nginx-http-live-module

        nginx-rtmp-module實現了開創性的工作,但是,實際上它的完成度並不高,缺少的功能和缺陷在前面的文章中已有提及。如果要在實際生產環境中使用,必須進行大量的修改。         nginx-http-flv-m

原创 nginx-rtmp-module的缺陷分析(三)

VHOST(虛擬主機)就是一址多域的意思,主流的Web服務器都有這個功能,它解決了運行Web的主機在同一個IP地址情況下可以爲不同域名的請求提供服務的問題。假設有兩個域名A和B,在DNS上A和B都指向同一個A記錄(IPv4)或者AAAA記

原创 nginx-rtmp-module的缺陷分析(二)

nginx-rtmp-module使用配置push和pull來relay媒體流數據,以便分佈式部署服務。 當nginx-rtmp-module作爲邊緣服務器(一般不會向邊緣服務器推流)時,使用pull從源服務器獲取媒體流數據,俗稱“回源”

原创 nginx-rtmp-module的缺陷分析

Arut最初在開發nginx-rtmp-module的時候只實現了單進程模式,好處是架構簡單,推送和播放,數據統計,流媒體控制等都在一個進程上完成。但是這顯然浪費了Nginx多進程(在Linux和FreeBSD平臺上每個進程都可以綁定一個

原创 爲什麼有了wait函數族還需要SIGCHLD信號

首先,在談這個問題時,先說說unix中殭屍進程的含義,APUE2中如下定義: In UNIX System terminology, a process that has terminated, but

原创 基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module(一)

      本文後續的內容將在這裏更新:《基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module(二)》。注意:下文的配置很多已經不能用了,因爲現在的實現跟早期的實現相差有點大

原创 基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module(二)

      由於《基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module(一)》內容已經很長,所以後續的更新將記錄在這兒。非常感謝網友們的測試反饋和代碼提交!項目地址:http

原创 在一億個數中查找最大的k個數(k << 1,000,000,000)

        在一億個數中查找最大(小)的k個數(k << 1,000,000,000),例如k=10,000。越快越好,怎麼辦呢?         之前跟一同事說起互聯網公司的面試題,他說一般思路是先排序,然後再處理數據肯定沒錯。是

原创 基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module(三)

        接上一篇《基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module(二)》內容。         項目地址:https://github.com/winshini

原创 I幀,P幀和B幀以及DTS和PTS的關係

基本概念: I frame:幀內編碼幀,又稱intra picture,I 幀通常是每個 GOP(MPEG 所使用的一種視頻壓縮技術)的第一個幀,經過適度地壓縮,做爲隨機訪問的參考點,可以當成圖象。I幀可以看成是一個圖像經過壓縮後的