原创 flv的格式

flv封裝單元是以tag來表示的,一個tag可以是音頻tag或者視頻tag,或者腳本tag及其其他類型。 一、flv的格式 flvheader 腳本tag(metadata) 第一個視頻tag(h264_spspps) 第一個音

原创 linux nfs掛載

前言 對於嵌入式linux開發而言,這是一個很基礎但是很有用的技巧。開發調試過程,可以把PC機linux編譯生成的目標文件放到嵌入式linux系統中運行。 一、安裝 PC機linux中執行以下操作 sudo apt-get ins

原创 rtsp基本信令

1、OPTIONS client->server OPTIONS rtsp://192.168.0.158:554/video_high1080.h264 RTSP/1.0 CSeq: 2 User-Agent: LibVLC/

原创 rtmp信令格式

rtmp以TCP方式推流,分爲一個個消息包。 一、握手 握手開始於客戶端發送 C0,C1 塊。 服務端在發送 S0 和 S1 之前必須等待接收 C0,也可以等待接收 C1。 服務端在發送 S2 之前必須等待接收 C1。

原创 jrtplib的使用

簡介 jrtplib是用C++開發的rtp/rtcp庫,非常方便嵌入到C++工程中,可用於rtsp server或rtsp client的開發之中,或者其他以rtp/rtcp格式的推流與收流。 初始化 示例代碼: RTPSessi

原创 JS如何調用WebAssembly的api

這裏以我之前做的一個項目爲例。項目是把ffmpeg編譯成WebAssembly文件,然後在js中調用,實現純前端代碼軟解碼音視頻數據。 在linux下編譯的 一、編譯ffmpeg生成靜態庫 build_decoder.sh ech

原创 mongodb數據庫導出與導入

1、導出 命令格式: mongodump -h dbhost -d dbname -o dbdirectory 參數說明: -h: 數據庫服務器地址,端口一般是27017 -d: 需要導出的數據庫實例名稱 -o: 導出的路徑

原创 rtp基本封包格式

rtp包易於過大,一般每個包不要超過1400,這裏設置爲1380,即DEFAULT_MTU=1380 這裏介紹的媒體格式有視頻:H264/H265,音頻:AAC 1、如果媒體包小於DEFAULT_MTU時可直接寫入rtp包中,示例

原创 ejs模板基礎用法

前言 ejs是適合在node.js中生成動態頁面的模板,可以根據後端數據庫中的數據按照一定邏輯處理渲染頁面。 其實靜態html頁面配合js,js通過http獲取後端數據後也能動態渲染頁面。但是這樣是有缺點的。 靜態頁面+js 的缺

原创 node.js中如何使用mongodb數據庫

本文介紹node.js項目中mongodb數據庫的使用方法,相關目錄結構是項目中的目錄。代碼先不上傳,只介紹方法。 數據庫使用mongodb mongodb的服務端的安裝方法是在ubuntu執行apt-get instal m

原创 linux C 嵌套調用.a靜態庫注意事項

一、注意靜態庫的加載順序 有時嵌套調用靜態庫,比如在rtmp_server中需要調用到librtmp.a,而在librtmp.a中需要調用到libflv.a,此時需要注意靜態庫加載的順序,需要先加載librtmp.a再加載libf

原创 虛擬機ubuntu server 14.04 64bit 根目錄擴容

前言 爲什麼需要擴容?使用VMware Workstation安裝linux虛擬機時需要設置虛擬的硬盤空間多大,比如一開始設置爲50G,在開發過程漸漸的覺得50G不夠用了,這就需要給根目錄擴容了,比如擴容到200G。 注意!修改磁

原创 WebAssembly簡介

什麼是WebAssembly 雖然WebAssembly從名字翻譯來說是web版的彙編語言,但是其實是一個二進制文件。 與asm.js相比之下,asm.js更像是web版的彙編語言,WebAssembly是web版的二進制語言,

原创 linux臨時改變環境變量動態庫路徑

前言 對於嵌入式linux開發而言,這是一個很基礎但是很有用的技巧。 嵌入式的linux文件系統一般會設計成只讀型,但是在調試過程經常需要修改目標文件或者*.so動態庫文件。目標文件運行時默認會從/usr/lib等目錄讀取so文

原创 node.js網站依賴包安裝方法

需要安裝的包在package.json文件中,根據此文件使用npm安裝 1、查看已經安裝的包的列表 npm list npm list -g 2、查看已安裝的某個包的版本 npm list XXX 3、安裝某個包的最新版本