本教程演示如何使用LEADTOOLS多188宝金博怎么下载媒体SDK使用高效视频编码(HEVC)或高级视频编码(AVC)与H.265和H.264编解码器在c++中使用Windows C DLL应用程序转换视频。
概述 | |
---|---|
总结 | 本教程展示如何使用LEADTOOLS多媒体SDK使用高效视频编码或高级视频编码(HEVC 188宝金博怎么下载/ H265或AVC / H264)转换视频。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(3kb) |
平台 | Windows c++应用程序 |
IDE | Visual Studio 2019 |
运行许可证 | 下载LEADTOOLS |
在开始之前转换视频HEVC / H265和AVC / H264教程,完成添加引用和设置License教程。
在Visual Studio 2019中,选择创建一个新项目.选择Windows桌面向导模板,然后单击下一个.通过添加项目名称和选择项目要保存到的位置来配置项目,然后单击创建.设置应用程序类型来控制台应用程序(.exe),使预编译头文件,然后按好吧.
打开预编译的头文件pch.h
,并在。之后添加以下行#定义PCH_H
线:
//添加LEADTOOLS多媒体标188宝金博怎么下载头和库
# include“C: \ LEADTOOLS22 \ \ ltmm.h包括”
# include“C: \ LEADTOOLS22 \ \ ltmm_Errors.h包括”
/ / x64填词
#pragma comment (lib,“C: \ \ LEADTOOLS22 \ \ Lib \ \ CDLL \ \ x64 \ \ ltmmx.lib”)
#pragma comment (lib,“C: \ \ LEADTOOLS22 \ \ Lib \ \ CDLL \ \ x64 \ \ ltmmuuidx.lib”)
将一个新文件添加到名为<项目名称> . h
.在这个文件中,添加以下方法定义:
# include“pch.h”
无效WaitForCompletion (IltmmConvert * pConvert);
无效SelectCompressor(IltmmCompressors* pcompressorname, LPCWSTR pszCompressorName);
(LPCWSTR pszVideoCompressorName, LPCWSTR pszAudioCompressorName);
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中更详细地介绍了添加LEADTOOLS引用和设置许可添加引用和设置License教程。
打开<项目名称> . cpp
源文件。此文件包含主要
函数和程序的执行从这个文件开始并结束。
用下面的代码替换这个文件的内容:
//这个文件包含'main'函数。程序执行从这里开始和结束。
# include“pch.h”
# include“Convert-Video-to-HEVC-H265-H264.h”
# include < iostream >
#定义编码器"@device:sw:{33D9A760-90C8-11D0-BD43-00A0C911CE86}\\LEAD H265编码器"
#定义编码器"@device:sw:{33d9a740 - 90c8 - 11d0 - bd43 - 00a0c911ce86}\\LEAD H264编码器(4.0)"
#定义audio_encoder“@device:西南:{33 d9a761 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \ {e2b7dd70 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”
//程序的主要功能
intmain ()
{
常量l_char * 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);
如果(失败(人力资源)
返回人力资源;
//设置要转换的源文件
BSTR BSTR =::SysAllocString(TEXT(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ DaDa_CMP.avi”));
pConvert - > put_SourceFile(型);
SysFreeString(型);
//设置输出文件的位置和名称
bstr =::SysAllocString(TEXT(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ out-h265.avi”));
pConvert - > put_TargetFile(型);
SysFreeString(型);
//转换为h265
ConvertFile(pConvert, LEAD_H265_ENCODER, LEAD_AAC_AUDIO_ENCODER);
//将输出文件的位置和名称设置为不同的输出文件
bstr =::SysAllocString(TEXT(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ out-h264.avi”));
pConvert - > put_TargetFile(型);
SysFreeString(型);
//转换为h264
ConvertFile(pConvert, LEAD_H264_ENCODER, LEAD_AAC_AUDIO_ENCODER);
//释放资源
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);
返回人力资源;
}
//根据名称选择所需压缩机的方法
无效选择压缩机(IltmmCompressors* pcompressorname, LPCWSTR pszCompressorName)
{
长指数;
BSTR bstrCompressorName = SysAllocString(pszCompressorName);
pCompressors - >找到(bstrCompressorName、和);
pCompressors - > put_Selection(指数);
SysFreeString (bstrCompressorName);
}
//Helper方法等待转换完成
无效WaitForCompletion (IltmmConvert * pConvert)
{
长lState = ltmmConvert_State_Running;
味精味精;
pConvert - > get_State (&lState);
而(lState != ltmmConvert_State_Stopped)
{
如果(PeekMessage(&msg, 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.