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

  • 大小: 40.17MB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2023-06-21
  • 語言: C/C++
  • 標簽: MP4v2??rtsp??MP4??視頻??

資源簡介

C++ 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??2019-08-06?17:29??MP4Recorder\
?????目錄???????????0??2019-08-06?16:45??MP4Recorder\Debug\
?????文件????31476736??2018-07-25?16:07??MP4Recorder\Debug\avcodec-58.dll
?????文件?????5897216??2018-07-25?16:07??MP4Recorder\Debug\avformat-58.dll
?????文件??????671232??2018-07-25?16:07??MP4Recorder\Debug\avutil-56.dll
?????目錄???????????0??2019-08-06?16:45??MP4Recorder\Debug\include\
?????文件????????7976??2015-02-13?01:38??MP4Recorder\Debug\include\_mingw.h
?????文件????????5721??2015-02-13?01:38??MP4Recorder\Debug\include\inttypes.h
?????目錄???????????0??2019-08-06?16:45??MP4Recorder\Debug\include\libavcodec\
?????文件????????1207??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\ac3_parser.h
?????文件????????1354??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\adts_parser.h
?????文件??????211684??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\avcodec.h
?????文件????????2570??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\avdct.h
?????文件????????3111??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\avfft.h
?????文件????????2853??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\d3d11va.h
?????文件????????4044??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\dirac.h
?????文件????????3715??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\dv_profile.h
?????文件????????2361??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\dxva2.h
?????文件????????1650??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\jni.h
?????文件????????2825??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\mediacodec.h
?????文件????????3763??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\qsv.h
?????文件????????2297??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\vaapi.h
?????文件????????5796??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\vdpau.h
?????文件????????4785??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\version.h
?????文件????????4029??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\videotoolbox.h
?????文件????????2285??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\vorbis_parser.h
?????文件????????6062??2018-07-25?16:07??MP4Recorder\Debug\include\libavcodec\xvmc.h
?????目錄???????????0??2019-08-06?16:45??MP4Recorder\Debug\include\libavformat\
?????文件??????117558??2018-07-25?16:07??MP4Recorder\Debug\include\libavformat\avformat.h
?????文件???????31557??2018-07-25?16:07??MP4Recorder\Debug\include\libavformat\avio.h
?????文件????????3781??2018-07-25?16:07??MP4Recorder\Debug\include\libavformat\version.h
............此處省略283個文件信息

評論

共有 條評論