锐动音视频编辑SDK开发文档(下载文档)

1 编写目的

预期读者:

有音视频开发经验或者无经验的,打算或者正在使用“锐动音视频编辑SDK”的相关工程师。

  • 软件工程师
  • 产品经理
  • QA

2 名词解释

  • 音频截取:从音频文件中截取一个片段。
  • 音频合并:将多个音频文件的合并成一个文件。
  • 音频分割:将一个音频文件分割成几段小的音频文件。
  • 视频截取:从视频文件中截取一个片段。
  • 视频编辑:对视频进行画面裁剪,截取,添加字幕,画面旋转,画面效果,添加水印,以及转换。
  • 视频合并:将多个视频文件合并成一个视频。
  • 视频分割:将一个视频文件分割成多个视频片段。
  • 视频配音和配乐:向视频中添加背景音乐或者添加配音,同时可以去除或者保留视频中原有的声音。
  • 视频截图:截取视频指定的时间点的画面保存成图片。
  • 视频编码器:按照不同算法对图像进行压缩的标准。
  • 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率。常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等。
  • 宽高比:视频分辨率的宽高比,常见的有16:9,4:3,1:1。
  • 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。
  • 码率:视频图像经过编码压缩后在单位时间内的数据流量,是视频编码中画面质量控制中最重要的部分。同样分辨率下,压缩比越小,视频图像的码率就越大,画面质量就越高。
  • 音频编码器:按照不同算法对采样后数据进行压缩的标准。
  • 采样率:音频中一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
  • 声道:音频中包含的声道数量。

3 系统需求和硬件支持

  • Intel Pentium II 350MHz或以上, 或 Athlon,64MB RAM 或以上
  • 系统:winxp/vista/win7/win8/win10/2000/2003

4 接口说明

4.1 所有结构声明

DelphiVC
视频的头结构信息 TAV_HeadAttr=packed record

Title:array[0..511] of AnsiChar;

Author:array[0..511] of AnsiChar;

Copyringht:array[0..511] of AnsiChar;

Comment:array[0..511] of AnsiChar;

Album:array[0..511] of AnsiChar;

Genre:array[0..31] of AnsiChar;

Duration:int64; //视频时间长度

Bitrate:integer; //视频码率(微秒)

end;
PAV_HeadAttr=^TAV_HeadAttr;
typedef struct tag_AV_HEADER_ATTR {

char title[512];

char author[512];

char copyright[512];

char comment[512];

char album[512];

char genre[32];

INT64 duration;

int bitrate;

}AV_HEADER_ATTR,*PAV_HEADER_ATTR;
视频的音频结构信息。用于获取音频信息,或者转换的时候设置信息 TAudio_Attr=packed record

Acodec:array[0..63] of AnsiChar; //音频编码器

Acodectag:array[0..63] of AnsiChar;

Channels:integer; //声道数量

Samples:integer; //采样率

Bitrate:integer; //码率

end;
PAudio_Attr=^TAudio_Attr;
typedef struct tag_AV_AUDIO_ATTR {

char acodec[64];

char acodecTag[64];

int channels;

int samples;

int bitrate;

}AV_AUDIO_ATTR,*PAV_AUDIO_ATTR;
音频附加属性,用于转换的时候设置 TAudio_AttrEx=packed record

Disable:BOOL; //是否禁用

volume:integer; //音量

end;
PAudio_AttrEx=^TAudio_AttrEx;
typedef struct tag_AV_AUDIO_ATTR_EX {

BOOL disable;

int volume; //声音增量-[20 ~ 500](100为源音量)

}AV_AUDIO_ATTR_EX,*PAV_AUDIO_ATTR_EX;
视频的视频结构信息。用于获取视频信息,或者转换的时候设置信息 TVideo_Attr=packed record

Vcodec:array[0..63] of AnsiChar; //编码器

Vcodectag:array[0..63] of AnsiChar;

Width:integer; //视频宽度

Height:integer; //视频高度

Bitrate:integer; //视频码率

Framerate:double; //帧率

Aspect:double; //宽高比

Aspectwidth:integer;

Aspectheight:integer;

end;
PVideo_attr=^TVideo_Attr;
typedef struct tag_AV_VIDEO_ATTR {

char vcodec[64];

char vcodecTag[64];

int width;

int height;

int bitrate;

double framerate;

double aspect;

int aspectWidth;

int aspectHeight;

}AV_VIDEO_ATTR,*PAV_VIDEO_ATTR;
视频附加属性,用于转换的时候设置 TAV_FrameSize_Attr=packed record

Top:integer;

Bottom:integer;

Left:integer;

Right:integer;

end;
PAV_FrameSize_Attr=^TAV_FrameSize_Attr;
TVideo_AttrEx=packed record

Disable:BOOL;

Qcale:integer;

Qmin:integer;

Qmax:integer;

maxrate:integer;

qtlevel:integer;

cutsize:TAV_FrameSize_Attr;

padsize:TAV_FrameSize_Attr;

end;
PVideo_AttrEx=^TVideo_AttrEx;
typedef struct tag_AV_FRAME_SIZE_ATTR {

int top;

int bottom;

int left;

int right;

}AV_FRAME_SIZE_ATTR,*PAV_FRAME_SIZE_ATTR;
typedef struct tag_AV_VIDEO_ATTR_EX {

BOOL disable;

int qcale;

int qMin;

int qMax;

int maxrate;

int qtLevel;

AV_FRAME_SIZE_ATTR cutSize;

AV_FRAME_SIZE_ATTR padSize;

}AV_VIDEO_ATTR_EX,*PAV_VIDEO_ATTR_EX;
视频合并时设置使用的结构 AV_JOIN_Input_Attr=packed record

disableAudio:BOOL;

volumn:integer; //音量

disableVideo:BOOL;

corpFrame:TAV_FrameSize_Attr; //画面裁剪大小

padFrame:TAV_FrameSize_Attr;

startTime:int64; //截取的开始时间

duringTime:int64; //截取的时间长度

end;
PAV_JOIN_Input_Attr=^AV_JOIN_Input_Attr;
typedef struct tag_AV_JOIN_INPUT_ATTR {

BOOL disableAudio;

int volumn; //调节音频声音 100为基数(原始)

BOOL disableVideo;

AV_FRAME_SIZE_ATTR corpFrame; //视频剪切

AV_FRAME_SIZE_ATTR padFrame; //视频补贴

INT64 startTime; //时间截取 开始时间

INT64 duringTime; //时间截取 持续时间

}AV_JOIN_INPUT_ATTR,*PAV_JOIN_INPUT_ATTR;
文字水印的结构 WATERMASK_TEXT_ATTR = packed record

Text:array [0..259] of AnsiChar;

Rect:TRECT;

Font:FONT_PEP;

nStartTime:int64;

nEndTime:int64;

Align:UINT;

Transparence:UINT;

Effect:UINT;

clrEffect:RGBQUAD;

end;
TWATERMASK_TEXT_ATTR = WATERMASK_TEXT_ATTR;
PWATERMASK_TEXT_ATTR = ^TWATERMASK_TEXT_ATTR;
typedef struct _tag_WATERMASK_TEXT_ATTR {

char text[260];

RECT rect;

FONT_PEP font;

INT64 start_time;

INT64 end_time;

int align; //0 left 1 center 2 right

int transparence;

int effect;

RGBQUAD clr_effect;

#endif
}TEXT_ATTR,*PTEXT_ATTR;
图片水印的结构 WATERMASK_PIC_ATTR = packed record

path:array [0..259] of AnsiChar;

rect:TRECT;

transparence:UINT;

nStartTime:int64;

nEndTime:int64;

end;
TWATERMASK_PIC_ATTR = WATERMASK_PIC_ATTR;
PWATERMASK_PIC_ATTR = ^TWATERMASK_PIC_ATTR;
typedef struct _tag_WATERMASK_PIC_ATTR {

char path[260];

RECT rect;

UINT transparence; //透明度--0~100

INT64 start_time;

INT64 end_time;

}PIC_ATTR,*PPIC_ATTR;
自定义字体结构 TFONT_PEP = packed record

namex:array [0..31] of AnsiChar;

width:integer;

height:integer;

bold:integer;

bias:integer;

underline:integer;

fontClr:RGBQUAD;

charset:UINT;

end;
FONT_PEP = TFONT_PEP;
PFONT_PEP = ^TFONT_PEP;
typedef struct _tag_FONT_PEP {

char name[32];

int width;

int height;

BOOL blod; //粗体

BOOL bias; //斜体

BOOL underline; //下划线

RGBQUAD fontClr; //字体颜色

UINT charset; //字符集

}FONT_PEP,*PFONT_PEP;

4.2 音视频播放

该功能所有接口包含在AVPlayer.dll中。

接口[Delphi]: function VideoPlayer_Init(hParentWnd:integer;rc:TRect):integer;
[VC]: BOOL VideoPlayer_Init(HWND hParentWnd,RECT rc);
功能初始化视频播放器
参数[in] hParentWnd : 视频播放时显示在的窗体handle
[in] rc : 在窗体上面的播放位置和大小
返回成功与否
接口[Delphi]: function VideoPlayer_OpenFile(szFileName:PAnsiChar):integer;
[VC]: HANDLE VideoPlayer_OpenFile(char* szFileName);
功能打开要播放的文件
参数[in] szFileName : 文件路径
返回成功打开后返回非0的handle
接口[Delphi]: function VideoPlayer_GetTotalTime(handle:integer):int64;
[VC]: UINT64 VideoPlayer_GetTotalTime(HANDLE handle);
功能获取视频的总的时间程度(秒)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回视频总时间(秒)
接口[Delphi]: function VideoPlayer_GetTotalTime_InMillisecond(handle:integer):int64;
[VC]: UINT64 VideoPlayer_GetTotalTime_InMillisecond(HANDLE handle);
功能获取视频的总的时间程度(毫秒)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回视频总时间(毫秒)
接口[Delphi]: function VideoPlayer_GetCurrentTime(handle:integer):int64;
[VC]: UINT64 VideoPlayer_GetCurrentTime(HANDLE handle);
功能获取当前播放到的时间点(秒)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回当前播放到时间点(秒)
接口[Delphi]: function VideoPlayer_GetCurrentTime_InMillisecond(handle:integer):int64;
[VC]: UINT64 VideoPlayer_GetCurrentTime_InMillisecond(HANDLE handle);
功能获取当前播放到的时间点(毫秒)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回当前播放到时间点(毫秒)
接口[Delphi]: function VideoPlayer_Play(handle:integer;iStart:int64;iEnd:int64;bSeekInByte:BOOL;bConvertRatio:BOOL ):BOOL;
[VC]: BOOL VideoPlayer_Play(HANDLE handle,UINT64 iStart,UINT64 iEnd,BOOL bSeekInByte,BOOL bConvertRatio);
功能播放视频(秒)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] iStart : 起始时间(秒)
[in] iEnd : 结束时间(秒),如果为0,则播放到视频结尾
[in] bSeekInByte : 使用False
[in] bConvertRatio : 是否缩放比例播放
返回播放成功与否
接口[Delphi]: function VideoPlayer_Play_InMillisecond(handle:integer;iStart:int64;iEnd:int64;bSeekInByte:BOOL; bConvertRatio:BOOL):BOOL;
[VC]: BOOL VideoPlayer_Play_InMillisecond(HANDLE handle,UINT64 iStart,UINT64 iEnd,BOOL bSeekInByte,BOOL bConvertRatio);
功能播放视频(毫秒)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] iStart : 起始时间(毫秒)
[in] iEnd : 结束时间(毫秒),如果为0,则播放到视频结尾
[in] bSeekInByte : 使用False
[in] bConvertRatio : 是否缩放比例播放
返回播放成功与否
接口[Delphi]: Function VideoPlayer_Pause(handle:integer):BOOL;
[VC]: BOOL VideoPlayer_Pause(HANDLE handle);
功能暂停播放
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_Continue(handle:integer):BOOL;
[VC]: BOOL VideoPlayer_Continue(HANDLE handle);
功能暂停后继续播放
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_Stop(handle:integer):BOOL;
[VC]: BOOL VideoPlayer_Stop(HANDLE handle);
功能停止播放
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_Seek(handle:integer;Pos:int64;bSeekInByte:BOOL):BOOL;
[VC]: BOOL VideoPlayer_Seek(HANDLE handle, UINT64 Pos,BOOL bSeekInByte);
功能指定时间点进行播放(拖拽播放功能)。必须在VideoPlayer_Play之后使用
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] Pos : 要播放的时间点(秒)
[in] bSeekInByte : 使用False
返回成功与否
接口[Delphi]: function VideoPlayer_Seek_InMillisecond(handle:integer;Pos:int64;bSeekInByte:BOOL):BOOL;
[VC]: BOOL VideoPlayer_Seek_InMillisecond(HANDLE handle, UINT64 Pos,BOOL bSeekInByte);
功能指定时间点进行播放(拖拽播放功能)。必须在VideoPlayer_Play之后使用
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] Pos : 要播放的时间点(毫秒)
[in] bSeekInByte : 使用False
返回成功与否
接口[Delphi]: function VideoPlayer_BrowerFileFrame(handle:integer;Pos:int64;bConvertRatio:BOOL;bSavetofile:BOOL; szfilename:PAnsiChar):BOOL;
[VC]: BOOL VideoPlayer_BrowerFileFrame(HANDLE handle,INT64 Pos,BOOL bConvertRatio,BOOL bSaveToFile,char* szFileName);
功能在非播放状态下获取指定时间点的帧画面
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] Pos : 时间点(秒)
[in] bConvertRatio : 是否按比例缩放
[in] bSavetoFile : 是否保存到文件(如果是true,将帧画面保存成文件,false则将帧画面显示到播放窗体上)
[in] szfilename : 当bsavetofile为true,将帧画面保存到该路径中
返回成功与否
接口[Delphi]: function VideoPlayer_BrowerFileFrame_InMillisecond(handle:integer;Pos:int64;bConvertRatio:BOOL; bSavetofile:BOOL;szfilename:PAnsiChar):BOOL;
[VC]: BOOL VideoPlayer_BrowerFileFrame_InMillisecond(HANDLE handle,INT64 Pos,BOOL bConvertRatio,BOOL bSaveToFile,char* szFileName);
功能在非播放状态下获取指定时间点的帧画面
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] Pos : 时间点(毫秒)
[in] bConvertRatio : 是否按比例缩放
[in] bSavetoFile : 是否保存到文件(如果是true,将帧画面保存成文件,false则将帧画面显示到播放窗体上)
[in] szfilename : 当bsavetofile为true,将帧画面保存到该路径中
返回成功与否
接口[Delphi]: function VideoPlayer_CloseFile(handle:integer):BOOL;
[VC]: BOOL VideoPlayer_CloseFile(HANDLE handle);
功能关闭一个打开的视频文件(打开一个文件之前,必须先调用该函数关闭之前打开的视频文件)
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_QueryState():integer;
[VC]: int VideoPlayer_QueryState();
功能查询播放的状态
参数
返回状态值
PLAYER_STATE_PLAY = 5;
PLAYER_STATE_PAUSE = 7;
PLAYER_STATE_STOP = 8;
接口[Delphi]: procedure VideoPlayer_Resize(rc:TRect);
[VC]: void VideoPlayer_Resize(RECT rc);
功能重新设置播放的区域大小
参数[in] rc : 区域大小
返回
接口[Delphi]: function VideoPlayer_Destory():BOOL;
[VC]: BOOL __stdcall VideoPlayer_Destory();
功能释放VideoPlayer_Init初始化的播放器
参数
返回成功与否

4.3 音视频截取与分割

该功能所有接口包含在AVCKernel.dll中。

普通格式(非RMVB):

接口[Delphi]: function AV_SetCutTime(handle:integer;nBegin:integer;nDuring:integer):BOOL;
[VC]: BOOL AV_SetCutTime(HANDLE handle,int nBegin, int nDuring);
功能设置截取的时间段(秒)
参数[in] handle : AV_Open()返回的handle
[in] nBegin : 截取的开始时间点(秒)
[in] nDuring : 截取持续的时间长度(秒)
返回成功与否
接口[Delphi]: function AV_SetCutTime_Millisecond(handle:integer;nBegin:INT64;nDuring:INT64):BOOL;
[VC]: BOOL AV_SetCutTime_Millisecond(HANDLE handle,INT64 nBegin, INT64 nDuring);
功能设置截取的时间段(毫秒)
参数[in] handle : AV_Open()返回的handle
[in] nBegin : 截取的开始时间点(毫秒)
[in] nDuring : 截取持续的时间长度(毫秒)
返回成功与否

RMVB格式:

接口[Delphi]: function RMVBSplit_Open():integer;
[VC]: HANDLE __stdcall RMVBSplit_Open();
功能初始化RMVB转换
参数
返回成功返回handle
接口[Delphi]: function RMVBSplit_Close(handle:integer):integer;
[VC]: BOOL __stdcall RMVBSplit_Close(HANDLE handle);
功能反初始化RMVB转换
参数[in] handle : RMVBSplit_Ope()返回的handle
返回成功与否
接口[Delphi]: function RMVBSplit_SetInputPath(handle:integer;szInputpath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall RMVBSplit_SetInputPath(HANDLE handle, const AnsiChar* szInputPath);
功能设置源文件
参数[in] handle : RMVBSplit_Ope()返回的handle
[in] szInputpath : 源文件路径
返回成功与否
接口[Delphi]: function RMVBSplit_SetOutputPath(handle:integer;szOutputpath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall RMVBSplit_SetOutputPath(HANDLE handle,const AnsiChar* szOutputPath);
功能设置输出路径
参数[in] handle : RMVBSplit_Ope()返回的handle
[in] szOutputpath : 输出路径
返回成功与否
接口[Delphi]: function RMVBSplit_SetSplitTime(handle:integer;nStart:int64;nDuration:int64):BOOL;
[VC]: BOOL __stdcall RMVBSplit_SetSplitTime(HANDLE handle, INT64 start,INT64 duration);
功能设置分割或截取的时间段
参数[in] handle : RMVBSplit_Ope()返回的handle
[in] nStart : 开始时间点
[in] nDuration : 从开始时间点到结束时间点的时间长度
返回成功与否
接口[Delphi]: function RMVBSplit_Split(handle:integer):BOOL;
[VC]: BOOL __stdcall RMVBSplit_Split(HANDLE handle);
功能开始分割
参数[in] handle : RMVBSplit_Ope()返回的handle
返回成功与否
接口[Delphi]: function RMVBSplit_Stop(handle:integer):BOOL;
[VC]: BOOL __stdcall RMVBSplit_Stop(HANDLE handle);
功能停止分割
参数[in] handle : RMVBSplit_Ope()返回的handle
返回成功与否
接口[Delphi]: function RMVBSplit_GetProgress(handle:integer):DWORD;
[VC]: DWORD __stdcall RMVBSplit_GetProgress(HANDLE handle);
功能获取分割进度
参数[in] handle : RMVBSplit_Ope()返回的handle
返回进度[0-100]
接口[Delphi]: function RMVBSplit_GetLastError(handle:integer):DWORD;
[VC]: DWORD __stdcall RMVBSplit_GetLastError(HANDLE handle);
功能获取错误码
参数[in] handle : RMVBSplit_Ope()返回的handle
返回错误码

4.4 音视频合并

接口[Delphi]: function AVJoin_Open():integer;
[VC]: HANDLE __stdcall AVJoin_Open();
功能初始化视频合并
参数
返回返回handle
接口[Delphi]: function AVJoin_Close(Handle:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_Close(HANDLE handle);
功能释放合并接口
参数[in] handle : AVJoin_Open()返回的handle
返回是否成功
接口[Delphi]: function AVJoin_AddInputFile(handle:integer;szInputPath:PAnsiChar;pHanleFile:PDWORD):BOOL;
[VC]: BOOL __stdcall AVJoin_AddInputFile(HANDLE handle,const char *szInputPath,DWORD *pHanleFile);
功能添加合并的文件
参数[in] handle : Open的handle
[in] szinputpath : 文件路径
[in/out] pHanleFile : 添加成功之后返回该文件handle,在AVJoin_SetInputFileAttr函数中来标示添加的对应属性
返回成功与否
接口[Delphi]: function AVJoin_SetInputFileAttr(Handle:integer;dwHandle:dword;joinAttr:AV_JOIN_INPUT_ATTR):BOOL;
[VC]: BOOL __stdcall AVJoin_SetInputFileAttr(HANDLE handle,DWORD dwHandle,AV_JOIN_INPUT_ATTR joinAttr);
功能AVJoin_AddInputFile添加合并文件之后,调用该函数设置添加文件的合并属性
参数[in] handle : Open的handle
[in] dwHandle : AVJoin_AddInputFile添加文件返回的pHanleFile
[in] joinAttr : 文件属性
返回是否成功
接口[Delphi]: function AVJoin_SetOutputPath(handle:integer;szOutputpath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall AVJoin_SetOutputPath(HANDLE handle,const char *szOutputPath);
功能设置输出文件路径
参数[in] handle : Open的handle
[in] szOutputpath : 路径
返回是否设置成功
接口[Delphi]: function AVJoin_SetOutputFormat(handle:integer;avtype:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_SetOutputFormat(HANDLE handle,AVVideoType avType);
功能设置输出目标格式的序号
参数[in] handle : Open的handle
[in] avtype : 类型
返回是否设置成功
接口[Delphi]: function AVJoin_SetAudioAttr(handle:integer;audioattr:TAudio_attr):BOOL;
[VC]: BOOL __stdcall AVJoin_SetAudioAttr(HANDLE handle,AV_AUDIO_ATTR audioAttr);
功能设置输出的音频属性
参数[in] handle : Open的handle
[in] audioattr : 音频属性结构
返回成功与否
接口[Delphi]: function AVJoin_SetVideoAttr(handle:integer;videoAttr:TVideo_attr):BOOL;
[VC]: BOOL __stdcall AVJoin_SetVideoAttr(HANDLE handle,AV_VIDEO_ATTR videoAttr);
功能设置输出的视频属性
参数[in] handle : Open的handle
[in] videoAttr : 视频属性结构
返回成功与否
接口[Delphi]: function AVJoin_DisableAudio(handle:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_DisableAudio(HANDLE handle);
功能禁止输出的文件中使用音频
参数[in] handle : Open的handle
返回是否成功
接口[Delphi]: function AVJoin_DisableVideo(handle:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_DisableVideo(HANDLE handle);
功能禁止输出的文件中使用视频
参数[in] handle : Open的handle
返回是否成功
接口[Delphi]: function AVJoin_SetPreviewHwnd(HANDLE:integer;hWindow:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_SetPreviewHwnd(HANDLE handle,HWND hwnd);
功能设置合并时,预览画面绘制到的窗体
参数[in] handle : Open的handle
[in] hwnd : 画面显示的目标窗体handle
返回是否成功
接口[Delphi]: function AVJoin_EnablePreview(handle:integer;bEnable:Bool):BOOL;
[VC]: BOOL __stdcall AVJoin_EnablePreview(HANDLE handle,BOOL bEnable);
功能转换时候预览画面的开关函数
参数[in] handle : Open的handle
[in] bEnable : 是否显示预览画面
返回是否成功
接口[Delphi]: function AVJoin_Convert(handle:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_Convert(HANDLE handle);
功能开始合并
参数[in] handle : Open的handle
返回是否成功
接口[Delphi]: function AVJoin_GetProgress(handle:integer):DWORD;
[VC]: DWORD __stdcall AVJoin_GetProgress(HANDLE handle);
功能获取合并进度
参数[in] handle : Open的handle
返回进度 0 ~ 100
接口[Delphi]: function AVJoin_Stop(handle:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_Stop(HANDLE handle);
功能停止合并
参数[in] handle : Open的handle
返回是否成功
接口[Delphi]: function AVJoin_GetLastError(handle:integer):DWORD;
[VC]: DWORD __stdcall AVJoin_GetLastError(HANDLE handle);
功能获取合并错误
参数[in] handle : Open的handle
返回错误码
接口[Delphi]: function AVJoin_CheckSameQuanlity(handle:integer):BOOL;
[VC]: BOOL __stdcall AVJoin_CheckSameQuanlity(HANDLE handle);
功能检查添加的所有视频文件是否是相同的音频和视频属性,如果相同,则可以使用快速合并
参数[in] handle : Open的handle
返回是否相同
接口[Delphi]: procedure AVJoin_SetAutoPadStatus(handle:integer;status:integer);
[VC]: void __stdcall AVJoin_SetAutoPadStatus(HANDLE handle,BOOL status);
功能设置是否自动黑边
参数[in] handle : Open的handle
返回

视频合并成RMVB格式,接口包含在AVCKernel.dll中

接口[Delphi]: function RMVBJoin_Open():integer;
[VC]: HANDLE __stdcall RMVBJoin_Open();
功能初始化RMVB合并
参数
返回返回handle
接口[Delphi]: function RMVBJoin_Close(handle:integer):BOOL;
[VC]: BOOL __stdcall RMVBJoin_Close(HANDLE handle);
功能释放合并接口
参数[in] handle : RMVBJoin_Open()返回的handle
返回是否成功
接口[Delphi]: function RMVBJoin_AddInputPath(handle:integer;szInputPath:PAnsiChar;pdwIndex:PDWORD):BOOL;
[VC]: BOOL __stdcall RMVBJoin_AddInputPath(HANDLE handle, const char* szInputPath,DWORD *pdwIndex);
功能添加合并文件
参数[in] handle : Open的handle
[in] szinputpath : 文件路径
[in/out]pdwIndex : 添加成功之后返回该文件handle,在RMVBJoin_SetInputAttr函数中来标示添加的对应属性
返回是否成功
接口[Delphi]: function RMVBJoin_SetInputAttr(handle:integer;dwindex:dword;avJoinAttr:AV_JOIN_INPUT_ATTR):BOOL;
[VC]: BOOL __stdcall RMVBJoin_SetInputAttr(HANDLE handle,DWORD dwIndex, AV_JOIN_INPUT_ATTR avJoinAttr);
功能RMVBJoin_AddInputPath添加合并文件之后,调用该函数设置添加文件的合并属性
参数[in] handle : Open的handle
[in] dwindex : RMVBJoin_AddInputPath添加文件返回的pdwIndex
[in] avJoinAttr : 文件属性
返回成功与否
接口[Delphi]: function RMVBJoin_SetDestPath(handle:integer;szDestPath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall RMVBJoin_SetDestPath(HANDLE handle, const char* szDestPath);
功能设置输出合并文件路径
参数[in] handle : Open的handle
[in] szDestPath : 文件路径
返回成功与否
接口[Delphi]: function RMVBJoin_SetFrameSize(handle:integer;width:integer;height:integer):BOOL;
[VC]: BOOL __stdcall RMVBJoin_SetFrameSize(HANDLE handle, int width,int height);
功能设置输出视频的宽和高
参数[in] handle : Open的handle
[in] width : 宽
[in] height : 高
返回成功与否
接口[Delphi]: function RMVBJoin_RMVB_SetPreviewHwnd(handle:integer;hWindow:integer):BOOL;
[VC]: BOOL __stdcall RMVBJoin_RMVB_SetPreviewHwnd(HANDLE handle,HWND hwnd);
功能设置合并时,预览画面绘制到的窗体
参数[in] handle : Open的handle
[in] hWindow : 画面显示的目标窗体handle
返回成功与否
接口[Delphi]: function RMVBJoin_RMVB_EnablePreview(handle:integer;bEnable:Bool):BOOL;
[VC]: BOOL __stdcall RMVBJoin_RMVB_EnablePreview(HANDLE handle,BOOL bEnable);
功能转换时候预览画面的开关函数
参数[in] handle : Open的handle
[in] bEnable : 是否显示预览画面
返回成功与否
接口[Delphi]: function RMVBJoin_SetAudiences(handle:integer;szAudiences:PAnsiChar):BOOL;
[VC]: BOOL __stdcall RMVBJoin_SetAudiences(HANDLE handle,const char* szAudiences);
功能设置输出视频压缩方式
参数[in] handle : Open的handle
[in] szaudiences : RMVB视频压缩方式
返回成功与否
接口[Delphi]: function RMVBJoin_RMVB_EnablePreview(handle:integer;bEnable:Bool):BOOL;
[VC]: BOOL __stdcall RMVBJoin_RMVB_EnablePreview(HANDLE handle,BOOL bEnable);
功能转换时候预览画面的开关函数
参数[in] handle : Open的handle
[in] bEnable : 是否显示预览画面
返回成功与否
接口[Delphi]: function RMVBJoin_SetPictureQt(handle:integer;szPicruteQt:PAnsiChar):BOOL;
[VC]: BOOL __stdcall RMVBJoin_SetPictureQt(HANDLE handle,const char* szPictureQt);
功能设置输出视频画面质量
参数[in] handle : Open的handle
[in] szPicruteQt : RMVB画面质量 [normal smooth sharp]
返回成功与否
接口[Delphi]: function RMVBJoin_Convert(handle:integer):BOOL;
[VC]: BOOL __stdcall RMVBJoin_Convert(HANDLE handle);
功能RMVB合并
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function RMVBJoin_Stop(handle:integer):BOOL;
[VC]: BOOL __stdcall RMVBJoin_Stop(HANDLE handle);
功能停止合并
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function RMVBJoin_GetProgress(handle:integer):DWORD;
[VC]: DWORD __stdcall RMVBJoin_GetProgress(HANDLE handle);
功能RMVB合并获取进度
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function RMVBJoin_GetLastError(handle:integer):DWORD;
[VC]: DWORD __stdcall RMVBJoin_GetLastError(HANDLE handle);
功能RMVB合并获取错误
参数[in] handle : Open的handle
返回错误码

4.5 音量调整

接口[Delphi]: function mp3gain_Open():integer;
[VC]: HANDLE __stdcall mp3gain_Open();
功能初始化音量调整接口
参数
返回返回handle
接口[Delphi]: function mp3gain_Close(hanlde:integer):BOOL;
[VC]: BOOL __stdcall mp3gain_Close(HANDLE handle);
功能反初始化音量调整接口
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function mp3gain_StopConvert(handle:integer):BOOL;
[VC]: BOOL __stdcall mp3gain_StopConvert(HANDLE handle);
功能停止调整音量
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function mp3gain_Addinputfile(handle:integer;filepath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall mp3gain_Addinputfile(HANDLE handle,const char *filepath);
功能添加要调整音量的音频文件
参数[in] handle : Open的handle
[in] filepath : 路径
返回成功与否
接口[Delphi]: function mp3gain_analyse(handle:integer;type_kind:DWORD):BOOL;
[VC]: BOOL __stdcall mp3gain_analyse(HANDLE handle,DWORD type_kind);
功能分析添加的音频文件
参数[in] handle : Open的handle
[in] type_kind : 默认0即可
返回成功与否
接口[Delphi]: function mp3gain_GetVolumevalue(handle:integer):single;
[VC]: FLOAT __stdcall mp3gain_GetVolumevalue(HANDLE handle);
功能获取添加的音频文件的音量
参数[in] handle : Open的handle
返回音量
接口[Delphi]: function mp3gain_SetVolumevalue(handle:integer;volume:single):BOOL;
[VC]: BOOL __stdcall mp3gain_SetVolumevalue(HANDLE handle, float volume);
功能设置添加的音频文件的音量
参数[in] handle : Open的handle
[in] volume : 设置需要调整到的音量
返回成功与否
接口[Delphi]: function mp3gain_start(handle:integer):BOOL;
[VC]: BOOL __stdcall mp3gain_start(HANDLE handle);
功能开始调整音量
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function mp3gain_GetConvertprogress(handle:integer):integer;
[VC]: INT __stdcall mp3gain_GetConvertprogress(HANDLE handle);
功能获取调整音量的进度
参数[in] handle : Open的handle
返回进度0 ~ 100

4.6 视频编辑与转换

接口[Delphi]: function AV_Open():integer;
[VC]: HANDLE AV_Open();
功能初始化转换
参数
返回成功返回handle
接口[Delphi]: function AV_SetInputpath(handle:integer;szInputpaht:PAnsiChar):BOOL;
[VC]: BOOL AV_SetInputpath(HANDLE handle,const char *szInputPath);
功能设置需要转换的源文件,或者是需要获取信息的源文件
参数[in] handle : AV_Open()返回的handle
[in] szInputpaht : 源文件路径
返回成功与否
接口[Delphi]: function AV_GetInputFileAttr(handle:integer;pAVHeadAttr:PAV_HeadAttr;pAVAudioAttr:Paudio_attr; pAVVideoAttr:PVideo_attr):BOOL;
[VC]: BOOL AV_GetInputFileAttr(HANDLE handle,AV_HEADER_ATTR *pAVHeadAttr,AV_AUDIO_ATTR *pAVAudioAttr,AV_VIDEO_ATTR *pAVVideoAttr);
功能获取AV_SetInputpath添加的源文件的视频信息
参数[in] handle : AV_Open()返回的handle
[in/out] pAVHeadAttr : 头结构信息
[in/out] pAVAudioAttr : 音频结构信息
[in/out] pAVVideoAttr : 视频结构信息
返回成功与否
接口[Delphi]: function AV_SetOutputFormatEx(handle:integer;enumAVType:integer):BOOL;
[VC]: BOOL AV_SetOutputFormatEx(HANDLE handle,AVVideoType enumAVType);
功能设置输出目标格式的序号
参数[in] handle : AV_Open()返回的handle
[in] enumAVType : 目标格式的序号,在格式配置文件中读取
返回成功与否
接口[Delphi]: function AV_SetAudioAttrEx(handle:integer;AudioAttrEx:TAudio_AttrEx):BOOL;
[VC]: BOOL AV_SetAudioAttrEx(HANDLE handle,AV_AUDIO_ATTR_EX AudioAttrEx);
功能设置转换目标的音频附加属性
参数[in] handle : AV_Open()返回的handle
[in] AudioAttrEx : 附加的音频信息结构
返回成功与否
接口[Delphi]: function AV_SetAudioAttr(Handle:integer;Audioattr:TAudio_Attr):BOOL;
[VC]: BOOL AV_SetAudioAttr(HANDLE handle,AV_AUDIO_ATTR audioAttr);
功能设置转换目标的音频属性
参数[in] handle : AV_Open()返回的handle
[in] AudioAttrEx : 音频信息结构
返回成功与否
接口[Delphi]: function AV_SetVideoAttrEx(handle:integer;VideoAttrEx:TVideo_AttrEx):BOOL;
[VC]: BOOL AV_SetVideoAttrEx(HANDLE handle,AV_VIDEO_ATTR_EX videoAttrEx);
功能设置转换目标的视频附加属性(目前主要用于设置是否包含视频流)
参数[in] handle : AV_Open()返回的handle
[in] AudioAttrEx : 视频附加属性
返回成功与否
接口[Delphi]: function AV_SetVideoAttr(handle:integer;VideoAttr:TVideo_Attr):BOOL;
[VC]: BOOL AV_SetVideoAttr(HANDLE handle,AV_VIDEO_ATTR VideoAttr);
功能设置转换目标的视频属性
参数[in] handle : AV_Open()返回的handle
[in] VideoAttr : 视频信息结构
返回成功与否
接口[Delphi]: function AV_SetCutTime(handle:integer;nBegin:integer;nDuring:integer):BOOL;
[VC]: BOOL AV_SetCutTime(HANDLE handle,int nBegin,int nDuring);
功能设置截取的时间段(秒)
参数[in] handle : AV_Open()返回的handle
[in] nBegin : 截取的开始时间点(秒)
[in] nDuring : 截取持续的时间长度(秒)
返回成功与否
接口[Delphi]: function AV_SetCutTime_Millisecond(handle:integer;nBegin:INT64;nDuring:INT64):BOOL;
[VC]: BOOL AV_SetCutTime_Millisecond(HANDLE handle,INT64 nBegin, INT64 nDuring);
功能设置截取的时间段(毫秒)
参数[in] handle : AV_Open()返回的handle
[in] nBegin : 截取的开始时间点(毫秒)
[in] nDuring : 截取持续的时间长度(毫秒)
返回成功与否
接口[Delphi]: function AV_SetOutputPath(handle:integer;szOutputPath:PAnsiChar):BOOL;
[VC]: BOOL AV_SetOutputPath(HANDLE handle,const char *szOutputPath);
功能设置输出文件的保存路径
参数[in] handle : AV_Open()返回的handle
[in] szOutputPath : 输出文件的保存路径
返回成功与否
接口[Delphi]: function AV_SetAChannel(handle:integer;channel:integer):BOOL;
[VC]: BOOL AV_SetAChannel(HANDLE handle,int channel);
功能设置转换目标的声道
参数[in] handle : AV_Open()返回的handle
[in] channel : 0:左 1:右 2:默认
返回成功与否
接口[Delphi]: procedure AV_SetAutoPadStatus(handle:integer;status:BOOL);
[VC]: void AV_SetAutoPadStatus(HANDLE handle,BOOL status);
功能设置是否自动添加黑边
参数[in] handle : AV_Open()返回的handle
[in] status : True为自动添加黑边
返回
接口[Delphi]: function AV_SetRotateAngle(handle:integer;nAngle:integer):BOOL;
[VC]: BOOL AV_SetRotateAngle(HANDLE handle, INT nAngle);
功能设置输出视频的旋转角度
参数[in] handle : AV_Open()返回的handle
[in] nAngle : 旋转角度 0、90、180、270
返回成功与否
接口[Delphi]: function AV_AdjustBCS(handle:integer;iBrightness:integer;iContrast:integer;iSaturation:integer):BOOL;
[VC]: BOOL AV_AdjustBCS(HANDLE handle,int iBrightness,int iContrast,int iSaturation);
功能设置输出亮度、对比度、饱和度
参数[in] handle : AV_Open()返回的handle
[in] iBright [-256~256] : 亮度
[in] iContrast [-100~100] : 对比度
[in] iSaturation [-100~100] : 饱和度
返回成功与否
接口[Delphi]: procedure AV_SetAutoSubtitleSRT(handle:integer;status:BOOL);
[VC]: void AV_SetAutoSubtitleSRT(HANDLE handle,BOOL status);
功能设置是否自动查找添加字幕(字幕查找规则:和视频在同一个目录下,并且文件名一样)
参数[in] handle : AV_Open()返回的handle
[in] status : 是否自动添加, True为自动添加
返回
接口[Delphi]: function AV_AddLtWater(handle:integer;TextAttr:TWATERMASK_TEXT_ATTR):BOOL;
[VC]: BOOL AV_AddLtWater(HANDLE handle,TEXT_ATTR TextAttr);
功能添加文字水印
参数[in] handle : AV_Open()返回的handle
[in] TextAttr : 文字水印信息结构
返回成功与否
接口[Delphi]: function AV_AddPicWater(handle:integer;picAttr:TWATERMASK_PIC_ATTR):BOOL;
[VC]: BOOL AV_AddPicWater(HANDLE handle,PIC_ATTR picAttr);
功能添加图片水印
参数[in] handle : AV_Open()返回的handle
[in] picAttr : 图片水印信息结构
返回成功与否
接口[Delphi]: function AV_AddSubtitleSRT(handle:integer;szPath:PAnsiChar;Font:FONT_PEP;rc:TRECT):BOOL;
[VC]: BOOL AV_AddSubtitleSRT(HANDLE handle,const char* path, FONT_PEP font,RECT rc);
功能添加srt格式字幕
参数[in] handle : AV_Open()返回的handle
[in] szPath : 字幕路径
[in] font : 字幕的字体、大小信息结构
[in] rc : 字幕在视频中的位置
返回成功与否
接口[Delphi]: function AV_AddSubtitleASS(hwnd:integer;szPath:PAnsiChar;fontName:PAnsiChar):BOOL;
[VC]: BOOL AV_AddSubtitleASS(HANDLE handle,const char*path,const char *fontName);
功能添加ass格式字幕
参数[in] handle : AV_Open()返回的handle
[in] szPath : 字幕路径
[in] fontName : 字幕的字体名称,目前不使用该参数
返回成功与否
接口[Delphi]: function AV_SetPreviewHwnd(handle:integer;hwnd:integer):BOOL;
[VC]: BOOL AV_SetPreviewHwnd(HANDLE handle,HWND hwnd);
功能设置转换时当前转换到的时间点的画面绘制到的窗体
参数[in] handle : AV_Open()返回的handle
[in] hwnd : 画面显示的目标窗体handle
返回成功与否
接口[Delphi]: function AV_EnablePreview(hwnd:integer;bEnable:Bool):BOOL;
[VC]: BOOL AV_EnablePreview(HANDLE handle,BOOL bEnable);
功能设置转换时是否预览转换的画面
参数[in] handle : AV_Open()返回的handle
[in] bEnable : 是否显示预览画面
返回成功与否
接口[Delphi]: function AV_GetLastError(handle:integer):DWORD;
[VC]: DWORD AV_GetLastError(HANDLE handle);
功能获取错误码
参数[in] handle : AV_Open()返回的handle
返回错误码
接口[Delphi]: function AV_Convert(handle:integer):BOOL;
[VC]: BOOL AV_Convert(HANDLE handle);
功能开始转换
参数[in] handle : AV_Open()返回的handle
返回成功与否
接口[Delphi]: function AV_Stop(handle:integer):BOOL;
[VC]: BOOL AV_Stop(HANDLE handle);
功能停止转换
参数[in] handle : AV_Open()返回的handle
返回成功与否
接口[Delphi]: function AV_GetProgress(handle:integer):DWORD;
[VC]: DWORD AV_GetProgress(HANDLE handle);
功能获取转换进度
参数[in] handle : AV_Open()返回的handle
返回进度 0~100
接口[Delphi]: function AV_Close(handle:integer):BOOL;
[VC]: BOOL AV_Close(HANDLE handle);
功能释放转换。如果已经AV_Convert,需要先AV_Stop之后才可以调用
参数[in] handle : AV_Open()返回的handle
返回成功与否

视频编辑转换成RMVB格式,接口包含在AVCKernel.dll中

接口[Delphi]: function AVC_RMVB_Open():integer;
[VC]: HANDLE _stdcall AVC_RMVB_Open();
功能RMVB转换初始化
参数
返回成功返回handle
接口[Delphi]: function AVC_RMVB_Close(handle:integer):BOOL;stdcall;
[VC]: BOOL EXPORT_FLAG AVC_RMVB_Close(HANDLE handle);
功能释放合并接口
参数[in] handle : AVC_RMVB_Open()返回的handle
返回是否成功
接口[Delphi]: function AVC_RMVB_SetDestPath(handle:integer;szDestPath:PAnsiChar):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetDestPath(HANDLE handle, const AnsiChar* szDestPath);
功能设置输出路径
参数[in] handle : Open的handle
[in] szDestPath : 路径
返回是否成功
接口[Delphi]: function AVC_RMVB_SetCutSize(handle:integer;top:integer;bottom:integer;left:integer;right:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetCutSize(HANDLE handle,int top,int bottom,int left,int right);
功能设置源文件的裁剪大小
参数[in] handle : Open的handle
[in] top : 上
[in] bottom : 下
[in] left : 左
[in]right : 右
返回成功与否
接口[Delphi]: function AVC_RMVB_SetAudiences(handle:integer;szAudioences:PAnsiChar):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetAudiences(HANDLE handle,const AnsiChar* szAudiences);
功能设置目标的压缩方式
参数[in] handle : Open的handle
[in] szAudioences : 压缩方式
返回成功与否
接口[Delphi]: function AVC_RMVB_SetPictureQt(handle:integer;szPictureQt:PAnsiChar):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetPictureQt(HANDLE handle,const AnsiChar* szPictureQt);
功能设置目标的画面质量
参数[in] handle : Open的handle
[in] szPictureQt : 质量 [normal smooth sharp]
返回成功与否
接口[Delphi]: function AVC_RMVB_Convert(handle:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_Convert(HANDLE handle);
功能开始RMVB转换
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function AVC_RMVB_Stop(handle:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_Stop(HANDLE handle);
功能停止RMVB转换
参数[in] handle : Open的handle
返回成功与否
接口[Delphi]: function AVC_RMVB_GetProgress(handle:integer):DWORD;
[VC]: BOOL _stdcall AVC_RMVB_GetProgress(HANDLE handle);
功能获取RMVB转换进度
参数[in] handle : Open的handle
返回进度[0-100]
接口[Delphi]: function AVC_RMVB_GetLastError(handle:integer):DWORD;
[VC]: DWORD _stdcall AVC_RMVB_GetLastError(HANDLE handle);
功能获取RMVB错误码
参数[in] handle : Open的handle
返回错误码
接口[Delphi]: function AVC_RMVB_SetInputPath(handle:integer;szInputPath:PAnsiChar):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetInputPath(HANDLE handle, const AnsiChar* szInputPath);
功能设置要转换的源文件
参数[in] handle : Open的handle
[in] szInputPath : 源文件路径
返回成功与否
接口[Delphi]: function AVC_RMVB_SetCutTime(handle:integer;nBegin:integer;nduration:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetCutTime(HANDLE handle,int begin,int duration);
功能设置截取时间段
参数[in] handle : Open的handle
[in] nBegin : 开始时间点
[in] nduration : 持续时间
返回成功与否
接口[Delphi]: function AVC_RMVB_SetRotateAngle(hwnd:integer;nAngle:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetRotateAngle(HANDLE handle, INT nAngle);
功能设置目标旋转角度
参数[in] handle : Open的handle
[in] nAngle : 角度
返回成功与否
接口[Delphi]: function AVC_RMVB_SetFrameSize(handle:integer;nWidth:integer;nHeight:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetFrameSize(HANDLE handle, int width,int height);
功能设置目标的画面大小
参数[in] handle : Open的handle
[in] nWidth : 宽
[in] nHeight : 高
返回成功与否
接口[Delphi]: function AVC_RMVB_AdjustBCS(handle:integer;iBrightness:integer;iContrast:integer;iSaturation:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_AdjustBCS(HANDLE handle,int iBrightness,int iContrast,int iSaturation);
功能设置目标画面的亮度,对比度,饱和度
参数[in] handle : Open的handle
[in] iBright [-256~256] : 亮度
[in] iContrast [-100~100] : 对比度
[in] iSaturation [-100~100] : 饱和度
返回成功与否
接口[Delphi]: function AVC_RMVB_AddLtWater(handle:integer;TextAttr:TWATERMASK_TEXT_ATTR):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_AddLtWater(HANDLE handle,TEXT_ATTR textAttr);
功能设置文字水印
参数[in] handle : Open的handle
[in] TextAttr : 文字水印信息
返回成功与否
接口[Delphi]: function AVC_RMVB_AddPicWater(handle:integer;picAttr:TWATERMASK_PIC_ATTR):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_AddPicWater(HANDLE handle,PIC_ATTR picAttr);
功能设置图片水印
参数[in] handle : Open的handle
[in] picAttr : 图片水印信息
返回成功与否
接口[Delphi]: function AVC_RMVB_AddSubtitleSRT(handle:integer;path:PAnsiChar;Font:FONT_PEP;rect:TRECT):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_AddSubtitleSRT(HANDLE handle,const char* path, FONT_PEP font,RECT rect);
功能设置SRT格式字幕
参数[in] handle : Open的handle
[in] path : 字幕源文件路径
[in] Font : 字幕的字体
[in] rect : 字幕的位置
返回成功与否
接口[Delphi]: procedure AVC_RMVB_SetAutoSubtitleSRT(handle:integer;bStatus:Bool);
[VC]: void _stdcall AVC_RMVB_SetAutoSubtitleSRT(HANDLE handle,BOOL status);
功能设置是否自动查找同文件夹下面同名的字幕
参数[in] handle : Open的handle
[in] bStatus : 是否自动查找添加同名的字幕
返回
接口[Delphi]: procedure AVC_RMVB_SetAutoPadStatus(handle:integer;bStatus:Bool);
[VC]: void _stdcall AVC_RMVB_SetAutoPadStatus(HANDLE handle,BOOL status);
功能设置是否自动添加黑边
参数[in] handle : Open的handle
[in] bStatus : 是否黑边
返回
接口[Delphi]: function AVC_RMVB_SetPreviewHwnd(handle:integer;hPreview:integer):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_SetPreviewHwnd(HANDLE handle,HWND hwnd);
功能设置转换时,当前转换到的时间点的预览画面
参数[in] handle : Open的handle
[in] hwnd : 画面显示的目标窗体handle
返回成功与否
接口[Delphi]: function AVC_RMVB_EnablePreview(handle:integer;bEnable:Bool):BOOL;
[VC]: BOOL _stdcall AVC_RMVB_EnablePreview(HANDLE handle,BOOL bEnable);
功能转换时候预览画面的开关函数
参数[in] handle : Open的handle
[in] bEnable : 是否显示预览画面
返回成功与否

4.7 视频截图

视频截图,该功能所有接口包含在AVCKernel.dll中。

接口[Delphi]: function Video2Pic_Open():integer;
[VC]: HANDLE __stdcall Video2Pic_Open();
功能初始化
参数
返回成功返回handle
接口[Delphi]: function Video2Pic_Close(handle:integer):BOOL;
[VC]: BOOL __stdcall Video2Pic_Close(HANDLE handle);
功能反初始化
参数[in] handle : Video2Pic_Open()返回的handle
返回成功与否
接口[Delphi]: function Video2Pic_SetInputFile(handle:integer;szInputPath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall Video2Pic_SetInputFile(HANDLE handle,const AnsiChar *szInputPath);
功能设置源文件
参数[in] handle : Video2Pic_Open()返回的handle
[in] szInputPath : 路径
返回成功与否
接口[Delphi]: function Video2Pic_SetOutputPath(handle:integer;szOutputPath:PAnsiChar):BOOL;
[VC]: BOOL __stdcall Video2Pic_SetOutputPath(HANDLE handle,const AnsiChar *szOutputPath);
功能设置输出路径
参数[in] handle : Video2Pic_Open()返回的handle
[in] szInputPath : 路径
返回成功与否
接口[Delphi]: function Video2Pic_SetFrameSize(handle:integer;dwWidth:DWORD;dwHeight:DWORD):BOOL;
[VC]: BOOL __stdcall Video2Pic_SetFrameSize(HANDLE handle,DWORD dwWidth,DWORD dwHeight);
功能设置输出的图片大小
参数[in] handle : Video2Pic_Open()返回的handle
[in] time : 时间点
返回成功与否
接口[Delphi]: function Video2Pic_SetFrameStartTime(handle:integer;time:int64):BOOL;
[VC]: BOOL __stdcall Video2Pic_SetFrameStartTime(HANDLE handle,__int64 time);
功能设置抓取的时间点
参数[in] handle : Video2Pic_Open()返回的handle
[in] time : 时间点(微秒)
返回成功与否
接口[Delphi]: function Video2Pic_Convert(handle:integer):BOOL;
[VC]: BOOL __stdcall Video2Pic_Convert(HANDLE handle);
功能截取图片
参数[in] handle : Video2Pic_Open()返回的handle
返回成功与否
接口[Delphi]: function Video2Pic_GetLastError(handle:integer):DWORD;
[VC]: DWORD __stdcall Video2Pic_GetLastError(HANDLE handle);
功能获取错误码
参数[in] handle : Video2Pic_Open()返回的handle
返回错误码

4.8 视频配音与配乐

接口[Delphi]: procedure VideoPlayer_SetAudioSourceStatus(handle:integer;nDisable:integer);
[VC]: void VideoPlayer_SetAudioSourceStatus(HANDLE handle , int nDisable);
功能设置当前的播放的文件是否播放原始音频
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] nDisable : 1是设置没声音,0是有声音
返回
接口[Delphi]: function VideoPlayer_AddAudioBackgroundMedia(handle:integer;szAudioPath:PAnsiChar;nTimeLineStart, nTimeLineEnd:int64;dFactor:Double): integer;
[VC]: HANDLE VideoPlayer_AddAudioBackgroundMedia(HANDLE handle,const char* szAudioPath, INT64 nTimeLineStart,INT64 nTimeLineEnd,double dFactor);
功能添加配乐文件,在VideoPlayer_Play之前调用来添加
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] szAudioPath : 音乐文件路径
[in] nTimeLineStart : 在视频时间线上的起始时间(毫秒)
[in] nTimeLineEnd : 在视频时间线上的结束时间(毫秒)
[in] dFactor : 原始视频音轨和新添加的音乐的声音比例。比如原始声音30%,新配乐70%,则传0.7
返回新配乐的handle
接口[Delphi]: function VideoPlayer_DeleteAudioBackgroundMedia(handle:integer;hAudioMedia:integer):Bool;
[VC]: BOOL VideoPlayer_DeleteAudioBackgroundMedia(HANDLE handle,HANDLE hAudioMedia);
功能删除配乐文件
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] hAudioMedia : VideoPlayer_AddAudioBackgroundMedia 返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_CleanAudioBackgroundMedia(handle:integer):Bool;
[VC]: BOOL VideoPlayer_CleanAudioBackgroundMedia(HANDLE handle);
功能清空配乐文件
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_AddAudioDubbingMedia(handle:integer;szAudioPath:PAnsiChar;nTimeLineStart, nTimeLineEnd:int64;dFactor:Double): integer;
[VC]: HANDLE VideoPlayer_AddAudioDubbingMedia(HANDLE handle,const char* szAudioPath, INT64 nTimeLineStart,INT64 nTimeLineEnd,double dFactor);
功能添加配音文件,在VideoPlayer_Play之前调用来添加
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] szAudioPath : 配音文件路径
[in] nTimeLineStart : 在视频时间线上的起始时间(毫秒)
[in] nTimeLineEnd : 在视频时间线上的结束时间(毫秒)
[in] dFactor : 原始视频音轨和新添加的音乐的声音比例。比如原始声音30%,新配乐70%,则传0.7
返回新配音的handle
接口[Delphi]: function VideoPlayer_DeleteAudioDubbingMedia(handle:integer;hAudioMedia:integer):Bool;
[VC]: BOOL VideoPlayer_DeleteAudioDubbingMedia(HANDLE handle,HANDLE hAudioMedia);
功能删除配音文件
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
[in] hAudioMedia : VideoPlayer_AddAudioDubbingMedia 返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_CleanAudioDubbingMedia(handle:integer):Bool;
[VC]: BOOL VideoPlayer_CleanAudioDubbingMedia(HANDLE handle);
功能清空配音文件
参数[in] handle : VideoPlayer_OpenFile成功后返回的handle
返回成功与否
接口[Delphi]: function VideoPlayer_Destory():BOOL;
[VC]: BOOL __stdcall VideoPlayer_Destory();
功能释放VideoPlayer_Init初始化的播放器
参数
返回成功与否

下面的接口是用于设置当前电脑中可用的录音设备,接口包含在AVCKernel.dll中。

接口[Delphi]: function wrcInitSetting(lpIniFile:Pansichar):Bool;
[VC]: BOOL WINAPI wrcInitSetting( LPCWSTR lpIniFile );
功能初始化配置 INI 文件路径,用于保存配置
参数[in] lpIniFile : ini文件路径
返回成功与否
接口[Delphi]: function wrcGetDevCount(lpStereoDevMixNum:PDword;lpMicphoneDevMix:PDword):Bool;
[VC]: BOOL wrcGetDevCount( LPINT lpStereoDevMixNum= NULL, LPINT lpMicphoneDevMix= NULL );
功能获得音频设备数量
参数[in/out] lpStereoDevMixNum : 输出设备数量
[in/out] lpMicphoneDevMix : 输入设备数量
返回是否获取成功
接口[Delphi]: function wrcGetOption():Integer;
[VC]: INT WINAPI wrcGetOption( VOID );
功能取得当前的设置。-1=没有配置数据, 0=不录音, 1=只录制立体声混音, 2=只录制麦克风, 3=录制立体声和麦克风
参数
返回当前的录音线路设置
接口[Delphi]: function wrcSetOption(iOption:Integer):Bool;
[VC]: BOOL WINAPI wrcSetOption( INT iOption );
功能设置录音线路。如果之前没有配置数据,或设置的录音设备不存在,则重新检测设备。
参数[in] iOption : 录音线路。-1=清除线路设置, 0=不录音, 1=只录制立体声混音, 2=只录制麦克风, 3=录制立体声和麦克风
返回是否设置成功
接口[Delphi]: function wrcSaveSetting():Bool;
[VC]: BOOL WINAPI wrcSaveSetting( VOID );
功能保存设置
参数
返回是否设置成功
接口[Delphi]: function wrcShowOptionDlg(hParent:HWND;pColorLst:PDWORD;pButImg:PAnsiChar):Integer;
[VC]: INT wrcShowOptionDlg(HWND hParent,DWORD * pColorLst,char * pButImg);
功能显示一个单独界面,用于设置选择的线路的音量等。
参数[in] hParent : 父窗体
[in] pColorLst : 颜色值表
[in] pButImg : 按钮图片
返回界面返回值
接口[Delphi]: function wcrDevIsChanged():Bool;
[VC]: BOOL WINAPI wcrDevIsChanged( VOID );
功能获取设备是否有变动
参数
返回是否变动
接口[Delphi]: function wrcUnInit():Bool;
[VC]: BOOL WINAPI wrcUnInit( VOID );
功能反初始化
参数
返回是否成功

下面的接口是用于录制音频,接口包含在RecordAudioImp.dll中。需要先使用上面的接口设置好录制的线路之后,再调用录制接口。

接口[Delphi]: function apiRecordAudioCreate():Integer;
[VC]: HANDLE apiRecordAudioCreate();
功能初始化录音
参数
返回返回handle
接口[Delphi]: function apiRecordAudioSetOutPath(handle:integer;szOutPath:PAnsiChar):Integer;
[VC]: int apiRecordAudioSetOutPath(HANDLE handle, const char* szOutPath);
功能设置录音文件保存路径
参数[in] handle : apiRecordAudioCreate()返回的handle
[in] szOutPath : 文件路径
返回成功返回非0值
接口[Delphi]: function apiRecordAudioStart(handle:integer):Integer;
[VC]: int apiRecordAudioStart(HANDLE handle);
功能开始录制
参数[in] handle : apiRecordAudioCreate()返回的handle
返回成功返回非0值
接口[Delphi]: function apiRecordAudioStop(handle:integer):Integer;
[VC]: int apiRecordAudioStop(HANDLE handle);
功能停止录制
参数[in] handle : apiRecordAudioCreate()返回的handle
返回成功返回非0值
接口[Delphi]: function apiRecordAudioClose(handle:integer):Integer;
[VC]: int apiRecordAudioClose(HANDLE handle);
功能释放录制
参数[in] handle : apiRecordAudioCreate()返回的handle
返回成功返回非0值

以下所有接口包含在AVCKernel.dll中。

接口[Delphi]: function AV_AddAudioBackgroundMedia(handle:integer;szPath:PAnsiChar;nTimeLine_Start,nTimeLine_End:int64; dFactor:Double):BOOL;
[VC]: BOOL AV_AddAudioBackgroundMedia(HANDLE handle,const char* szPath,INT64 nTimeLine_Start, INT64 nTimeLine_End, double dFactor);
功能添加配乐
参数[in] handle : AV_Open()返回的handle
[in] szPath : 配乐的文件路径
[in] nTimeLine_Start : 在视频时间线上的起始时间(毫秒)
[in] nTimeLine_End : 在视频时间线上的结束时间(毫秒)
[in] dFactor : 原始视频音轨和新添加的音乐的声音比例。比如原始声音30%,新配乐70%,则传0.7
返回成功与否
接口[Delphi]: function AV_AddAudioDubbingMedia(handle:integer;szPath:PAnsiChar;nTimeLine_Start,nTimeLine_End:int64; dFactor:Double):BOOL;
[VC]: BOOL AV_AddAudioDubbingMedia(HANDLE handle,const char* szPath,INT64 nTimeLine_Start, INT64 nTimeLine_End, double dFactor);
功能添加配音
参数[in] handle : AV_Open()返回的handle
[in] szPath : 配音的文件路径
[in] nTimeLine_Start : 在视频时间线上的起始时间(毫秒)
[in] nTimeLine_End : 在视频时间线上的结束时间(毫秒)
[in] dFactor : 原始视频音轨和新添加的音乐的声音比例。比如原始声音30%,新配音70%,则传0.7
返回成功与否
接口[Delphi]: function AV_DisableOriginalMusic(handle:integer):BOOL;
[VC]: BOOL AV_DisableOriginalMusic(HANDLE handle);
功能去除原始视频中的音频
参数[in] handle : AV_Open()返回的handle
返回成功与否