將h264和aac碼流合成flv文件


在視頻應用中,經常需要將接收到h264和aac數據保存成文件。 本來想用mp4格式,但是mp4在沒有正常關閉的情況下會導致文件打不開,而在實際應用中經常會出現設備直接拔電,程序不是正常結束的情況。於是想用采用flv格式,flv相對mp4簡單很多,參照ffmpeg里的flv自己封裝了一個簡易的flv合成文件。

使用流程:

//初始化文件

 

[cpp]  view plain  copy
 
  1. flvHandle_= flv_init( filename, 30, 1920, 960);  

 

 

//每收到一幀視頻數據寫入文件,此處寫入的h264碼流每個nal前需要添加00000001

 

[cpp]  view plain  copy
 
  1. flv_write_video_packet(flvHandle_, iskeyframe, buffer, bufsize, timestamp);  

 

 

//每收到一幀aac音頻數據寫入文件,注意aac音頻數據需要將adts頭去掉

 

[cpp]  view plain  copy
 
  1. flv_write_audio_packet(flvHandle_, buffer+7, bufsize-7, timestamp);  

 

 

//關閉文件,即使不調用該函數關閉文件,錄像文件也能打開播放

 

[cpp]  view plain  copy
 
  1. flv_write_trailer(flvHandle_);  

 

flv合成代碼下載地址 http://download.csdn.net/download/lipku/10121166


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM