本教程展示如何使用LEADTOOLS多188宝金博怎么下载媒体SDK转换视频使用高效视频编码(HEVC)或先进的视频编码(AVC) H.265和h C编解码器在c++中使用Windows DLL的应用程序。
概述 | |
---|---|
总结 | 本教程展示了如何使用LEADTOOLS多媒体SDK将视频使用高效视频编码或先进的视频编码(188宝金博怎么下载HEVC / H265或AVC / H264)。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(3 KB) |
平台 | Windows c++应用程序 |
IDE | Visual Studio 2019 |
运行许可证 | 下载LEADTOOLS |
在工作之前将视频转换成HEVC / H265和AVC / H264教程中,完成添加引用和设置一个许可证教程。
在Visual Studio 2019中,选择创建一个新项目。选择Windows桌面向导模板,然后单击下一个。配置项目通过添加项目名称并选择保存到项目的位置,然后单击创建。设置应用程序类型来控制台应用程序(. exe),使预编译头文件,然后单击好吧。
打开预编译头文件pch.h
后的项目并添加以下行#定义PCH_H
线:
/ /添加LEADTOOLS多媒体188宝金博怎么下载头和填词
# include“C: \ LEADTOOLS22 \ \ ltmm.h包括”
# include“C: \ LEADTOOLS22 \ \ ltmm_Errors.h包括”
/ / x64填词
# pragma评论(自由,“C: \ \ LEADTOOLS22 \ \ Lib \ \ CDLL \ \ x64 \ \ ltmmx.lib”)
# pragma评论(自由,“C: \ \ LEADTOOLS22 \ \ Lib \ \ CDLL \ \ x64 \ \ ltmmuuidx.lib”)
命名新文件添加到项目<项目名称> . h
。在这个文件中,添加以下方法定义:
# include“pch.h”
无效WaitForCompletion (IltmmConvert * pConvert);
无效SelectCompressor (IltmmCompressors * pCompressors LPCWSTR pszCompressorName);
HRESULT ConvertFile (IltmmConvert * pConvert LPCWSTR pszVideoCompressorName, LPCWSTR pszAudioCompressorName);
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS引用和设置许可中会详细介绍添加引用和设置一个许可证教程。
打开<项目名称> . cpp
源文件。这个文件包含了主要
功能和程序执行开始和结束与这个文件。
用下面的代码替换这个文件的内容:
/ /这个文件包含的主要的功能。程序执行开始和结束在这里。
# include“pch.h”
# include“Convert-Video-to-HEVC-H265-H264.h”
# include < iostream >
#定义LEAD_H265_ENCODER L“@device:西南:{33 d9a760 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \ H265编码器”
#定义LEAD_H264_ENCODER L“@device:西南:{33 d9a760 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \ H264编码器(4.0)”
#定义LEAD_AAC_AUDIO_ENCODER L“@device:西南:{33 d9a761 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \ {e2b7dd70 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”
/ /程序的主要功能
intmain ()
{
常量L_TCHAR * pszLicenseFile = L_TEXT (“C: \ \ \ \ LEADTOOLS22 \ \支持常见的\ \ \ \许可证LEADTOOLS.lic”);
常量L_TCHAR * pszDeveloperKey = L_TEXT (“开发人员的关键”);
L_SetLicenseFile ((L_TCHAR *) pszLicenseFile (L_TCHAR *) pszDeveloperKey);
L_BOOL LicenseFailed = L_IsSupportLocked (L_SUPPORT_BASIC);
如果(LicenseFailed)
{
std:: cout < <“许可文件无效或过期. .流产\ n”;
返回1;
}
std:: cout < <“开始转换…\ n”;
/ /初始化转换控制
CoInitialize(空);
IltmmConvert * pConvert;
HRESULT hr = CoCreateInstance (CLSID_ltmmConvert, NULL, CLSCTX_INPROC_SERVER IID_IltmmConvert (无效* *)&pConvert);
如果(失败(人力资源)
返回人力资源;
/ /设置源文件转换
型型=::SysAllocString(文本(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ DaDa_CMP.avi”));
pConvert - > put_SourceFile(型);
SysFreeString(型);
/ /设置输出文件的位置和名称
型=::SysAllocString(文本(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ out-h265.avi”));
pConvert - > put_TargetFile(型);
SysFreeString(型);
/ /转换为h265
ConvertFile (pConvert LEAD_H265_ENCODER LEAD_AAC_AUDIO_ENCODER);
/ /设置输出文件的位置和名称不同的输出文件
型=::SysAllocString(文本(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ out-h264.avi”));
pConvert - > put_TargetFile(型);
SysFreeString(型);
/ /转换为h264
ConvertFile (pConvert LEAD_H264_ENCODER LEAD_AAC_AUDIO_ENCODER);
/ /释放资源
pConvert - >释放();
}
HRESULT ConvertFile (IltmmConvert * pConvert LPCWSTR pszVideoCompressorName, LPCWSTR pszAudioCompressorName)
{
/ /设置目标格式为AVI
pConvert - > put_TargetFormat (ltmmConvert_TargetFormat_Avi);
/ /设置视频压缩
IltmmCompressors * pCompressors;
pConvert - > get_VideoCompressors (&pCompressors);
SelectCompressor (pCompressors pszVideoCompressorName);
pCompressors - >释放();
/ /设置音频压缩
pConvert - > get_AudioCompressors (&pCompressors);
SelectCompressor (pCompressors pszAudioCompressorName);
pCompressors - >释放();
/ /运行转换
HRESULT hr = pConvert - > StartConvert ();
WaitForCompletion (pConvert);
返回人力资源;
}
/ /方法来选择所需的压缩机基础上的名字
无效SelectCompressor (IltmmCompressors * pCompressors LPCWSTR pszCompressorName)
{
长指数;
型bstrCompressorName = SysAllocString (pszCompressorName);
pCompressors - >找到(bstrCompressorName、和);
pCompressors - > put_Selection(指数);
SysFreeString (bstrCompressorName);
}
/ /辅助方法等到转换完成
无效WaitForCompletion (IltmmConvert * pConvert)
{
长lState = ltmmConvert_State_Running;
味精味精;
pConvert - > get_State (&lState);
而(lState ! = ltmmConvert_State_Stopped)
{
如果(PeekMessage(味精,NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(味精);
DispatchMessage(味精);
}
pConvert - > get_State (&lState);
}
}
按运行项目F5,或通过选择调试- >开始调试。
如果步骤正确,输入视频将被转换成一个HEVC / H265和HEVC / H264压缩视频文件保存在输出路径。
本教程展示了如何创建一个新的c++项目使用LEADTOOLS多媒体控制转换为任何输入视频转换为一个HEVC / H。188宝金博怎么下载265或HEVC / H。264 compressed video file.