91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 10.15MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-15
  • 語言: 其他
  • 標簽: rtsp??mp4??mp4v2??ffmpeg??

資源簡介

利用MP4v2將rtsp流保存為MP4,ffmpeg版本為4.0.1,其中的dll,lib,include可在博客中提供的地址下載,或者官網下載,編譯環境為vs2012

資源截圖

代碼片段和文件信息

#pragma?once
#include?“MP4Encoder.h“


#define?DEFAULT_VIDEO_TRACK_NUM?3
#define?DEFAULT_VIDEO_PROFILE_LEVEL?1
#define?DEFAULT_AUDIO_PROFILE_LEVEL?2


MP4Encoder::MP4Encoder(void)
:?m_hFile(MP4_INVALID_FILE_HANDLE)
?m_videoTrack(MP4_INVALID_TRACK_ID)
?m_audioTrack(MP4_INVALID_TRACK_ID)
{
}

MP4Encoder::~MP4Encoder(void)
{
}

int?MP4Encoder::MP4CreateFile(const?char?*sFileNameint?Movie_Time_Scale)
{
m_hFile?=?MP4Create(sFileName);
if?(m_hFile?==?MP4_INVALID_FILE_HANDLE)
{
printf(“create?mp4?file?error!\n“);
return?-1;
}
if?(!MP4SetTimeScale(m_hFile?Movie_Time_Scale))
{
printf(“set?time?Scale?error!\n“);
return?-1;
}
return?0;
}

int??MP4Encoder::MP4AddH264Track(const?uint8_t?*sData?int?nSize
int?nWidth?int?nHeight?int?nframeRate?int?Video_Time_Scale)
{
int?sps?pps;
for?(sps?=?0;?sps? if?(sData[sps++]?==?0x00?&&?sData[sps++]?==?0x00?&&?sData[sps++]?==?0x00
&&?sData[sps++]?==?0x01)
break;
for?(pps?=?sps;?pps? if?(sData[pps++]?==?0x00?&&?sData[pps++]?==?0x00?&&?sData[pps++]?==?0x00
&&?sData[pps++]?==?0x01)
break;
if?(sps?>=?nSize?||?pps?>=?nSize)
return?-1;
m_videoTrack?=?MP4AddH264VideoTrack(m_hFile?Video_Time_Scale
Video_Time_Scale?/?nframeRate?nWidth?nHeight
sData[sps?+?1]?sData[sps?+?2]?sData[sps?+?3]?DEFAULT_VIDEO_TRACK_NUM);//sps?后面的三個字節
if?(MP4_INVALID_TRACK_ID?==?m_videoTrack)
{
printf(“add?video?track?error!\n“);
return?-1;
}
MP4SetVideoProfileLevel(m_hFile?DEFAULT_VIDEO_PROFILE_LEVEL);
MP4AddH264SequenceParameterSet(m_hFile?m_videoTrack?sData?+?spspps?-?sps?-?4);//sps??內容??起始位置+長度??
MP4AddH264PictureParameterSet(m_hFile?m_videoTrack?sData?+?ppsnSize?-?pps);//?pps?內容??起始位置+長度
return?0;
}

int???MP4Encoder::MP4AddAACTrack(const?uint8_t?*sData?int?nSizeint?Audio_Time_Scale)
{
m_audioTrack?=?MP4AddAudioTrack(m_hFile?Audio_Time_Scale1024?MP4_MPEG4_AUDIO_TYPE);
if?(MP4_INVALID_TRACK_ID?==?m_audioTrack)
{
printf(“add?audio?track?error!\n“);
return?-1;
}
MP4SetAudioProfileLevel(m_hFile?DEFAULT_AUDIO_PROFILE_LEVEL);
if?(!MP4SetTrackESConfiguration(m_hFile?m_audioTrack?sData?nSize))
{
printf(“set?track?ESConfiguration?error!\n“);
return?-1;
}

return?0;
}

int?MP4Encoder::MP4WriteH264Data(uint8_t?*sData?int?nSize)
{

bool?result?=?false;
sData[0]?=?(nSize?-?4)?>>?24;
sData[1]?=?(nSize?-?4)?>>?16;
sData[2]?=?(nSize?-?4)?>>?8;
sData[3]?=?nSize?-?4;

if(nSize<0||sData==NULL)
return?-1;

if?((sData[4]?&?0x1F)?==?5)//判斷I幀
result?=?MP4WriteSample(m_hFile?m_videoTrack?sData?nSizeMP4_INVALID_DURATION0true);
else
result?=?MP4WriteSample(m_hFile?m_videoTrack?sData?nSizeMP4_INVALID_DURATION0false);
if?(!result)
{
printf(“write?h264?frame?error!\n“);
return?-1;
}
return?0;
}

int??MP4Encoder::MP4WriteAACData(const?uint8_t?*sData?int?nSize)
{
bool?result?=?false;
if(nSize<0||sData==NULL)
ret

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-22?22:42??MP4Recorder\
?????目錄???????????0??2018-08-22?22:44??MP4Recorder\Debug\
?????目錄???????????0??2018-08-22?22:42??MP4Recorder\MP4Recorder\
?????文件????????4603??2018-08-22?21:32??MP4Recorder\MP4Recorder\HeadInfo.h
?????文件????????3426??2018-08-22?21:04??MP4Recorder\MP4Recorder\MP4Encoder.cpp
?????文件?????????664??2018-08-22?21:04??MP4Recorder\MP4Recorder\MP4Encoder.h
?????文件???????18294??2018-08-22?22:28??MP4Recorder\MP4Recorder\MP4Recorder.cpp
?????文件????????5028??2018-08-22?21:06??MP4Recorder\MP4Recorder\MP4Recorder.h
?????文件????????4629??2018-08-22?21:36??MP4Recorder\MP4Recorder\MP4Recorder.vcxproj
?????文件????????1437??2018-08-17?20:38??MP4Recorder\MP4Recorder\MP4Recorder.vcxproj.filters
?????文件?????????164??2018-08-18?21:00??MP4Recorder\MP4Recorder\MP4Recorder.vcxproj.user
?????目錄???????????0??2018-08-22?22:44??MP4Recorder\MP4Recorder\include\
?????目錄???????????0??2018-08-22?22:44??MP4Recorder\MP4Recorder\lib\
?????文件?????????253??2018-08-22?21:05??MP4Recorder\MP4Recorder\test.cpp
?????文件????35454976??2018-08-22?22:42??MP4Recorder\MP4Recorder.sdf
?????文件?????????900??2018-08-17?20:35??MP4Recorder\MP4Recorder.sln
?????文件???????45056??2018-08-22?22:42??MP4Recorder\MP4Recorder.v11.suo

評論

共有 條評論