1. 程式人生 > >Live555本地儲存H264/PCM視訊音訊幀附加SPS/PPS

Live555本地儲存H264/PCM視訊音訊幀附加SPS/PPS

專案用到,這裡備份以後防止忘記:

#include "liveMedia.hh"
#include "BasicUsageEnvironment.hh"

static char NALHeader[]={0x00 ,0x00 ,0x00 ,0x01};

void SaveSPS_PPS(MediaSubsession& fSubsession,const char* savePath_)
{
	unsigned int Num=0 ;
	unsigned int &SPropRecords =Num;

	SPropRecord *p_record=NULL ;
	p_record=parseSPropParameterSets(fSubsession.fmtp_spropparametersets(),SPropRecords);
	if(p_record!=NULL){
		for(int i=0;i<Num;i++){
			Fprintf_Binary(savePath_,NALHeader,4);
			Fprintf_Binary(savePath_,(char*)p_record[i].sPropBytes,p_record[i].sPropLength);
		}
		delete[] p_record ;
	}
}
void SaveVideoFrame(MediaSubsession& fSubsession,const char* savePath_,char* frameNAL_, int frameSize_)
{
	if(strcmp(fSubsession.mediumName(),"video")){
		return ;
	}
	Fprintf_Binary(savePath_,NALHeader,4);
	Fprintf_Binary(savePath_,frameNAL_,frameSize_);
}
void SaveAudioFrame(MediaSubsession& fSubsession,const char* savePath_,char* frameNAL_, int frameSize_)
{
	if(strcmp(fSubsession.mediumName(),"audio")){
		return ;
	}
	Fprintf_Binary(savePath_,NALHeader,4);
	Fprintf_Binary(savePath_,frameNAL_,frameSize_);
}


相關推薦

Live555本地儲存H264/PCM視訊音訊附加SPS/PPS

專案用到,這裡備份以後防止忘記: #include "liveMedia.hh" #include "BasicUsageEnvironment.hh" static char NALHeade

javaCV開發詳解之4:轉流器實現(也可作為本地收流器、推流器,新增新增圖片及文字水印,視訊影象儲存),實現rtsp/rtmp/本地檔案轉發到rtmp流媒體伺服器(基於javaCV-FFMPEG)

javaCV系列文章: 補充篇: 歡迎大家積極開心的加入討論群 javacpp-ffmpeg: 前言: 本章基於javaCV實現轉流器和收流器功能,測試採用監控rtsp地址轉發至rtmp伺服器地址 新增openCV儲存圖片功能。 補充:

Android 圖片和音訊本地儲存方式

android 在本地建立資料夾,並將圖片和音訊儲存在資料夾下, <span style="font-size:18px;"> public void newFile() { String fileName = "niannian"; String albu

Python中呼叫OpenCV介面儲存攝像頭或視訊中的影象視訊檔案

Python中呼叫OpenCV介面儲存攝像頭或視訊中的影象幀到視訊檔案 import cv2 cap = cv2.VideoCapture(0) # 開啟攝像頭 size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2

H264 視訊檔案 格式 傳輸封裝等

rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984協議實現H264視訊流媒體nalu單元 包起始 0x 00 00 0

matlab之將視訊儲存為圖片

clc; clear all; close all; %% 將視訊逐幀儲存為jpg圖片 obj = VideoReader('F:\mh\rgb.avi');%輸入視訊位置 numFrames = obj.NumberOfFrames;% 幀的總數 numzeros= 4;

【轉】H264 視訊檔案 格式 傳輸封裝等 雜碎

H.264 NAL格式及分析器程式原始碼           email:[email protected] NAL分析器程式原始碼 /*! ******************************************************************************

關於YUV視訊的讀取、播放,儲存圖片、以及處理的影象儲存為YUV視訊

下面結合程式碼,總結一下這兩天掌握的內容。下面程式碼的功能,就是讀取YUV視訊指定幀的Y、U、V分量的值。通過這篇文章,會加深大家對YUV視訊如何儲存,以及MATLAB中檔案讀取功能的理解。 首先,讀入YUV視訊 function [Y,U,V]=yuv_import(f

C#呼叫FFMPEG實現桌面錄製(視訊+音訊+生成本地檔案)【筆記】

不得不說FFMPEG真是個神奇的玩意,所接觸的部分不過萬一。網上有個很火的例子是c++方面的,當然這個功能還是用c++來實現比較妥當。 然而我不會c++ 因為我的功能需求比較簡單,只要實現基本的錄製就可以了,其實就是一句命令的事 先來程式碼:RecordHelper類 u

Android視訊錄製,儲存圖片,視訊本地本地相簿或者視訊庫裡面沒有的解決方案

   1 問題:最近要做一個將伺服器視訊儲存到本地的功能,將視訊儲存到本地後發現本地相簿裡面並沒有更新該視訊,糾其原因是系統的媒體資料庫並沒有實時的更新   2 解決方案:利用MediaScannerConnection主動去掃描掃描媒體資料庫            步驟:1

H5本地儲存Web Storage

規範 我們 輔助 ice fun android 取出 其中 .get 一、本地存儲由來的背景   由於HTML4時代Cookie的大小、格式、存儲數據格式等限制,網站應用如果想在瀏覽器端存儲用戶的部分信息,那麽只能借助於Cookie。但是Cookie的這些限制,也就導致了

本地儲存(localStorage)記錄

本地 ora value gif locals search getitem -- 返回 - 本地存儲 + localStorage.getItem("search_history") 獲取本地存儲 + localStorage.setItem("a","100") 設置

linux系統,CentOS7.2安裝ffmpeg擴充套件,PHP用FFmpeg擷取視訊第一作為視訊封面,並給圖片新增播放視訊按鈕

最近做公司的專案中,有使用者上傳視訊,後臺這邊接收視訊並上傳,獲取視訊第一幀作為視訊封面的功能,在網上查找了好多資料,並且安裝 了ffmpeg-php的PHP擴充套件,由於版本問題,安裝好幾個版本都不成功,最後放棄安裝擴充套件,後來執行程式碼發現不用安裝那個擴充套件也能實現截圖並上傳的功能,所以要擷

localStroage本地儲存

<!DOCTYPE html> <html> <head>     <title>本地儲存</title> </head> <body>     <p

影象處理--視訊率和位元速率

幀率(FPS)   幀率就是在1秒鐘時間裡傳輸的圖片的幀數,也可以理解為圖形處理器每秒鐘能夠重新整理幾次。會影響畫面流暢度,並與畫面流暢度成正比(即幀率越大,畫面越流暢;幀率越小,畫面越有跳動感)。   如果位元速率為變數,則幀率也會影響體積,幀率越高,每秒鐘經過的畫面越多,需要的位元速

php用ffmpeg擴充套件擷取視訊第一的方法

windows 或linux上要安裝ffmpeg擴充套件,安裝方法可以自行百度 通過執行外部命令的方式exec()實現,如果是本地視訊很方便,$tempfiles就是完整的視訊路徑;如果是post過來的視訊(僅限.mp4格式),無法用臨時檔案(.tmp)進行擷取,本人的用了個笨方法,

本地儲存動態請求的資料

儲存的時候要在wx.request中儲存; data: {         useInfo: [] }, var that = this; wx.request

Android 本地儲存之外部儲存/內部儲存路徑獲取大全

//:/system String rootDir = Environment.getRootDirectory().toString(); System.out.println("Environment.getRootDirectory()=:" +

HTML5-js-本地儲存與cookies

1、本地儲存(localstorage和sessionstorage) 儲存形式:key-->value 過期策略:localstorage永久儲存,不過期,除非手動刪除,sessionstorage在重啟瀏覽器、關閉頁面或新開頁面時失效 大小限制:每個域名5M 使用方法:(l

egret 本地儲存資料

通過 egret.localStorage.setItem(key,value); 可以實現本地儲存資料,類似於cookie   儲存 let key:string = "data_name"; let value:string = "data_value"; egret.