-
在centos裡為nginx安裝rtmp模組
Continue Reading…: 在centos裡為nginx安裝rtmp模組必備模組 openssl zlib pcre 安裝步驟 cd /tmp # 下載並安裝pcre wget https://ftp.pcre.org/pub/pcre/pcre-8.42.zip unzip pcre-8.42.zip tar -zxf pcre-8.41.tar.gz cd pcre-8.41 ./configure make && make install # 下載並安裝zlib cd /tmp wget https://www.zlib.net/zlib-1.2.11.tar.gz tar -xzvf zlib-1.2.11.tar.gz tar -zxf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make &&…
-
docker pull時的錯誤:failed to register layer
Continue Reading…: docker pull時的錯誤:failed to register layer錯誤訊息 有時在下docker pull時會出現如下的錯誤: > docker -v Docker version 1.10.0, build 590d5108 > docker-machine -v docker-machine version 0.6.0, build e27fb87 > docker pull java:8 8: Pulling from library/java 03e1855d4f31: Extracting [==================================================>] 51.36 MB/51.36 MB a3ed95caeb02: Download complete 9269ba3950bb: Download complete 6ecee6444751:…
-
docker初探
Continue Reading…: docker初探安裝docker(於centos7) 安裝步驟: https://docs.docker.com/engine/install/centos/ 測試用指令 顯示 docker 的資訊 $ docker info 顯示 docker 的版本 $ docker version 取得一個指定版本的 image 如果不指定 image 版本該版本則為 latest $ docker pull [Image 名稱]:[Image 版本] ex: $ docker pull hello-world $ docker pull ubuntu $ docker pull…
-
直播相關教學文章庫
Continue Reading…: 直播相關教學文章庫直播點播錄播 录播、点播、直播傻傻分不清楚?1篇文章帮你搞定 直播原理介紹 直播理论 直播系統搭建所用到的技術原理 技術人員看過來!詳細的直播原理介紹! CDN直播系统的优化 網絡視頻直播的原理是什麼? 視訊編解碼 H264/AVC 視訊編解碼一些基本知識 H.264/AVC視訊編解碼技術詳解 壓縮畫質比較 H.264 / MPEG4 / AVC 壓縮編碼 H.264 Profile and Level , H.264的類型與等級說明 H264編碼中Baseline Main High簡介 轉 音視頻封裝格式、編碼格式知識 推流介紹 OBS Wirecast vMix XSplit 第二課的主題:實況的硬體與軟體 串流格式介紹 什麼是串流與 HLS 串流協議…
-
編碼與封裝
Continue Reading…: 編碼與封裝前言 要說到影片的編碼與封裝,就要先聊聊影片是怎麼產生的。相信大家小時後都有看過翻頁動畫吧,就是由很多張圖片組成的書,在快速翻書時就可以看到一幅連續的動畫,如下圖: 影片的原理也是如此,一張張的照片,經過快速的連續切換,就成為了動態影片。但是這樣子的原始影片大小非常的可觀,若影像的每個畫素的三個顏色RGB各需要一個位元組儲存,每一個畫素需要3位元組,解析度1280×720的影像的大小為2.76M位元組,若每秒FPS為25偵,所需的位元率會達到553Mb/s。這種大小不論是儲存或用網路傳輸都是有困難的,因此編碼壓縮勢在必行。 資料壓縮的難題 音檔和視訊有著完全不同的編碼方式和壓縮理論,音訊編碼的難點在於延時敏感、卡頓敏感、噪聲抑制(Denoise)、回聲消除(AEC)、靜音檢測(VAD)、混音演算法等…每個項目都有各別的演算法去深究如何優化音訊的擷取。 而視訊壓縮編碼的難點則在於編碼效率和編碼複雜度的平衡。例如H.265較H.264在相同的位元率之下有更好的畫質呈現、更小的檔案大小,但相較起來,編碼的複雜度約增加了近十倍。但在實際的應用當中,大多數狀況的編碼端及解碼端的電腦資源不固定,因此在編碼複雜度和編碼效率中取得平衡則是很重要的事。 H264和H265的比較圖 來源: H.264和H.265(HEVC)深度解析及對比 影片壓縮衡量單位 位元速率 網路影音多媒體包括音視頻在單位時間內的資料傳輸率時通常使用碼流或位元速率來表示,代表每秒傳輸或處理的位元量(資料流量),單位 Mbps (Mb/s) 。 亦可說是所需的最低下載速度,下載速度越低,需越高的壓縮,尤其是破壞性壓縮,故位元速率會影響到影片品質。 相同解析度下,位元率越高,每秒包含的資訊越多,檔案越大、壓縮比越小,影音品質越佳,越吃頻寬及電腦的運算能力,配備不夠好者可能會很卡。 使用較低的位元速率輸出,在靜止畫面差異較小,動態畫面容易產生色塊,畫質低落,整體較不清晰。 我們可以從位元速率去推算最終整個串流檔案的大小,完整的影片則包括『視頻』及『音頻』兩個軌道,其公式如下: 檔案大小(MB為單位) = (音訊編位元速率(KBit為單位)/8 + 視訊編位元速率(KBit為單位)/8)× 影片總長度(秒為單位 而音檔的位元速率公式如下: 位元速率(Bit Per Second) = 取樣率(Hz) x 採用位數 x 聲道數 通常,影片位元速率會受到FPS(每秒幀數)、解析度(指輸出的影像尺寸)、編碼方式(有VBR、CBR、ABR三種)、壓縮演算法(如:H.264、H.265和VP9)影響,音檔則受到取樣率、採用位數(指單次取樣儲存時所占大小,例如電話就是3kHZ取樣的7位聲音,而CD是44.1kHZ取樣的16位聲音)以及聲道數影響,以上幾項的選擇目標是達到位元速率的最小化和播放畫質最佳化之間的理想的平衡。 下面針對上面提到的幾個名詞做解釋: FPS FPS是Frames Per…
-
影音服務介紹
Continue Reading…: 影音服務介紹網路串流服務介紹 近年來影音相關的服務越來越火紅,許多的社交軟體都用直播影片來取代舊有的圖文內容。雖然網路影音服務在2000年左右就已經出現,但由於當時的移動設備和網路頻寬的限制,使得網路影音的發展受到很多限制。而在2013年後網路直播開始爆發,進入了直播影片的年代,一開始的網路直播以PC為主,而在移動設備普及後,各種社群媒體的APP更是紛紛支援直播串流功能。因為直播串流的普及、電腦設備及網路速度的進步下,也新興了如了Youtuber、實況主、直播主等這種專門經營此區塊的行業,可謂是非常火紅且受到矚目的一個領域。近年來,通信行業也更多的走向網路化,通訊軟體如Line、Facetime等,漸漸取代了過去的電話、簡訊。最近因5G和IoT的發展,未來應有更多的領域會走向網際網路化。 所有網路影音相關的服務,大致分為『點播』、『直播』和『錄播』。 所謂點播,其英文為Video On Demand,簡稱VOD。其中Demand意為需求,從字面上理解點播,指的是使用者點選想要看的影片,並將該影片使用實時串流的方式播放出來。相關的服務如:Netflix、Apple TV、HBO等… 直播的英文為Live broadcast,則是直播音視頻會以媒體流的形式推到服務器上(推流)。如果有觀眾收看直播,服務器收到用戶的請求後,會把視頻傳輸到網站、APP、客戶端的播放器,即時播放串流影片。相關的服務平台有Youtube、Facebook Live、Twitch等… 錄播: 一個完整的錄播系統包含了錄製剪輯、直播推送、影片處理等核心功能,配備了相關的軟體和硬體。能夠按照標準產出比較高質量的影片內容,較多使用在線上教學系統上。 直播服務的原理 而這30天的系列文章,我們主要會著重在直播的研究,一個完整的直播服務會牽涉到非常多面項領域的技術,從視頻/音頻處理,圖形處理,視頻/音頻壓縮,CDN分發,即時通訊等技術等,每個項目都有很深的技術背景,都需要以年來計算的去鑽研,因此許多部份只會提及基本概念(但光概念就有一大堆艱深知識了…XD…推薦這個系列文,把許多概念知識都整理的很清楚: 30天之即時網路影音開發攻略(小白本)) 本系列文主要介紹的重點會放在開源串流伺服器SRS的架設與影片品質調校上(以及相關必要知識)的介紹。 一般來說,一個影片的直播流程要經過以下環節: 採集影像 —> 影像處理 —> 編碼 —> 封裝 —> 推流 —> 串流伺服器 —> 拉流 —> 解封裝 —> 解碼 —> 播放 各個環節都有相關的技術或現成可使用的軟體,如下圖為以SRS伺服器的流程為例: 其中,上述的事情發生在三個端點: 直播主的電腦、串流伺服器、觀眾的電腦,各個事件發生的地點如下圖: 採集:…
-
Linux 設定排程 – crontab
Continue Reading…: Linux 設定排程 – crontab查看與編輯 crontab 查看自己的 crontab 查看指定使用者的 crontab 編輯 crontab 內容 編輯指定使用者的 crontab 刪除 crontab 內容 crontab設定檔撰寫教學 範例如下: crontab設定檔的特殊字元 特殊字元 代表意義 星號(*) 代表接受任意時刻,例如若在月份那一欄填入星號,則代表任一月份皆可。 逗號(,) 分隔多個不同時間點。例如若要指定 3:00、6:00 與 9:00 三個時間點執行指令,就可以在第二欄填入 3,6,9。 減號(-) 代表一段時間區間,例如若在第二欄填入 8-12 就代表從 8 點到 12 點的意思,也就是等同於 8,9,10,11,12。 斜線加數字(/n) n 代表數字,這樣寫的意思就是「每隔…
-
解決Windows下路徑名稱異常問題
Continue Reading…: 解決Windows下路徑名稱異常問題名稱有中文或空白的問題 使用cmd指令時,有許多command line執行的工具,當路徑若出現中文或是空白時,會導致執行失敗。 例如C:\Program Files因為中間有一個空格,就很容易造成在執行時出現錯誤 若遇到這種狀況,建議可以改用資料夾的縮寫 例如 以C:\PROGRA~1取代C:\Program Files 以C:\PROGRA~2取代C:\Program Files (x86) 如何查找資料夾名稱縮寫 以上圖來說,資料夾.android的縮寫即為ANDROI~1
-
Linux下大檔案的log分割處理
Continue Reading…: Linux下大檔案的log分割處理使用指令分割大檔案 按檔案大小分割 按行數分割 二進位檔案分割(以-b引數來指定分割後的檔案大小) 固定時間切割LOG檔案 logrotate官方說明: https://linux.die.net/man/5/logrotate.conf logrotate旨在簡化對生成大量日誌文件的系統的管理。它允許自動旋轉,壓縮,刪除和郵寄日誌文件。每個日誌文件可以每天,每週,每月或當文件太大時進行處理。 通常,logrotate作為日常cron作業運行。除非該日誌的標準基於日誌的大小並且每天要多次運行logrotate,或者除非使用了-f或–force選項,否則它不會在一天內多次修改日誌。 命令行上可以提供任意數量的配置文件。較新的配置文件可能會覆蓋較早的文件中提供的選項,因此列出logrotate配置文件的順序 很重要。通常,應使用包含所需其他任何配置文件的單個配置文件。有關如何使用include指令完成此操作的更多信息,請參見下文。如果在命令行上給出了目錄,則該目錄中的每個文件都將用作配置文件。 如果未提供命令行參數,logrotate將打印版本和版權信息以及簡短的使用摘要。如果輪換日誌時發生任何錯誤,logrotate將以非零狀態退出。
-
Linux刪除檔案後空間未釋放
Continue Reading…: Linux刪除檔案後空間未釋放查詢硬碟使用狀況 使用df可以查看硬碟的使用狀況 查詢刪除卻正在被使用的檔案 lsof(lsof的全稱是list open files),此工具可以用來查看正在運行中的進程打開了哪些文件、目錄和套接字;是系統監測工具之一。請參見: 好用的網管指令-lsof 查找打開,但是不能連接的文件一個進程打開一個文件, 然後將其設為 unlinked 狀態, 則此文件資源仍能被進程使用, 但是其訪問路徑已經被刪除了.因此, 使用ls不能將其列出. 只有當進程結束時, 才能釋放文件佔用的資源 查找unlinked 文件, 選項 +L, 作用: 列出打開文件的連接數 指定連接數的上限
Search
About Me
17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。
如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!