• 大小: 23.96MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-22
  • 语言: C/C++
  • 标签: c++  h264  视频  ffmpeg  

资源简介

H264是当今流行的视频压缩格式;ffmpeg是一个开源库,实现了对h264视频文件的解压缩。 为了降低使用ffmpeg的复杂性,尽量隐藏实现细节,我写了一个封装库。c#也可以很方便的使用此库。解压后的数据可以为yuv格式,也可以为rgb格式。同时可以对rgb格式视频做缩放。 类H264Decode实现了所有解码功能。最后,再把此类封装成c函数,以便于与c#交互。

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “AppHelper.h“


AppHelper::AppHelper()
{
}


AppHelper::~AppHelper()
{
}

BOOL AppHelper::CopyStr(CString& strCopy)
{
static CEdit edit;
if (edit.GetSafeHwnd() == NULL)
{
edit.Create(ES_MULTILINE | WS_CHILD | WS_TABSTOP | WS_BORDER
CRect(10 10 100 100) AfxGetMainWnd() 1);
}
edit.SetWindowTextW(strCopy);
edit.SetSel(0 -1);
edit.Copy();
return TRUE;
}

int AppHelper::HexToData(const CString& srcText char*& pData)
{
CStringA str = CStringA(srcText);
str.Replace(“ “ ““);
str.Replace(“\r“ ““);
str.Replace(“\n“ ““);
char *pSrc = str.GetBuffer();

char tmp;
int len = str.GetLength() / 2;
pData = new char[len];
for (int i = 0;i < len;i++)
{
tmp = GetDataFromHex(pSrc[2 * i] pSrc[2 * i + 1]);
pData[i] = tmp;
}
return len;
}

int GetHexCharValue(char ch)
{
int value = 0;
if (ch >= ‘0‘ && ch <= ‘9‘)
{
value = ch - ‘0‘;
}
else if (ch >= ‘A‘ && ch <= ‘F‘)
{
value = ch - ‘A‘ + 10;
}
else if (ch >= ‘a‘ && ch <= ‘f‘)
{
value = ch - ‘a‘ + 10;
}
else
{

}
return value;
}

char AppHelper::GetDataFromHex(char ch1 char ch2)
{
int value1 = GetHexCharValue(ch1);
int value2 = GetHexCharValue(ch2);

int n = (value1 << 4) + value2;
return n;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-07-30 15:33  GHVideoPlayerTest\
     文件        1310  2018-07-23 10:38  GHVideoPlayerTest\AppHelper.cpp
     文件         240  2018-07-23 10:34  GHVideoPlayerTest\AppHelper.h
     文件        3190  2018-07-24 09:34  GHVideoPlayerTest\CDecoder.cpp
     文件         981  2018-07-26 08:59  GHVideoPlayerTest\CDecoder.h
     文件        1474  2018-07-28 16:26  GHVideoPlayerTest\FfmpegWrapper.h
     文件      110100  2018-07-24 09:11  GHVideoPlayerTest\GHVideoPlayerTest.aps
     文件        4606  2018-07-21 09:01  GHVideoPlayerTest\GHVideoPlayerTest.cpp
     文件         932  2018-07-21 09:01  GHVideoPlayerTest\GHVideoPlayerTest.h
     文件       12218  2018-07-24 09:11  GHVideoPlayerTest\GHVideoPlayerTest.rc
     文件       11251  2018-07-30 14:13  GHVideoPlayerTest\GHVideoPlayerTest.vcxproj
     文件        2906  2018-07-30 14:12  GHVideoPlayerTest\GHVideoPlayerTest.vcxproj.filters
     文件         240  2018-07-21 09:53  GHVideoPlayerTest\GHVideoPlayerTest.vcxproj.user
     文件       23104  2018-07-30 15:33  GHVideoPlayerTest\GHVideoPlayerTestDlg.cpp
     文件        1876  2018-07-27 15:23  GHVideoPlayerTest\GHVideoPlayerTestDlg.h
     文件        4232  2018-07-30 13:44  GHVideoPlayerTest\H264Decode.cpp
     文件         530  2018-07-30 13:44  GHVideoPlayerTest\H264Decode.h
     文件         949  2018-07-23 16:02  GHVideoPlayerTest\VideFileRead.cpp
     文件         223  2018-07-23 15:51  GHVideoPlayerTest\VideFileRead.h
     文件        7194  2018-07-26 09:00  GHVideoPlayerTest\VideoDecode.cpp
     文件         172  2018-07-21 09:39  GHVideoPlayerTest\VideoDecode.h
     目录           0  2018-07-21 09:01  GHVideoPlayerTest\res\
     文件       67777  2018-07-20 16:18  GHVideoPlayerTest\res\GHVideoPlayerTest.ico
     文件         690  2018-07-21 09:01  GHVideoPlayerTest\res\GHVideoPlayerTest.rc2
     文件        2078  2018-07-24 09:11  GHVideoPlayerTest\resource.h
     文件         244  2018-07-21 09:01  GHVideoPlayerTest\stdafx.cpp
     文件        3004  2018-07-21 09:01  GHVideoPlayerTest\stdafx.h
     文件         370  2018-07-21 09:01  GHVideoPlayerTest\targetver.h
     目录           0  2018-07-30 15:06  GHVideoPlayerTest\x64\
     目录           0  2018-09-18 17:32  GHVideoPlayerTest\x64\Debug\
     文件        2244  2018-07-26 08:53  GHVideoPlayerTest.sln
............此处省略59个文件信息

评论

共有 条评论