将视频转换成HEVC / H265和AVC / H264 - Windows C + +

本教程展示如何使用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教程中,完成添加引用和设置一个许可证教程。

创建项目并添加多媒体头和LIB文件188宝金博怎么下载

在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(型);/ /转换为h265ConvertFile (pConvert LEAD_H265_ENCODER LEAD_AAC_AUDIO_ENCODER);/ /设置输出文件的位置和名称不同的输出文件型=::SysAllocString(文本(“C: \ \ LEADTOOLS22 \ \资源\ \媒体\ \ out-h264.avi”));pConvert - > put_TargetFile(型);SysFreeString(型);/ /转换为h264ConvertFile (pConvert LEAD_H264_ENCODER LEAD_AAC_AUDIO_ENCODER);/ /释放资源pConvert - >释放();}HRESULT ConvertFile (IltmmConvert * pConvert LPCWSTR pszVideoCompressorName, LPCWSTR pszAudioCompressorName){/ /设置目标格式为AVIpConvert - > 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.

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2023领先的技术公司。保留所有权利。