【vc++精品源码栏目提醒】:网学会员为需要vc++精品源码的朋友们搜集整理了编译环境设置:【精品推荐-PDF】 - 其它管理文献相关资料,希望对各位网友有所帮助!
编译环境设置1. 视频转码程序在VS2005平台下编译音频转码程序和合成程序在vc6下编译设置与VS2005相同。
2. 安装DIRECTX9.0b sdk 3. 安装WMFORMAT95sdk在..res目录下 4. 编译..DXSDKSamplesCDirectShowBaseClasses内的工程生成Debug_Unicode和Release_Unicode这两个文件夹内有编译转码器需要的strmbasd.lib也可以不用编译解压..res目录下附带的BaseClasses.rar将解压生成的Debug_Unicode和Release_Unicode文件夹直接拷贝到..DXSDKSamplesCDirectShowBaseClasses目录下。
如果在VS2005下编译BaseClasses出错请检查出错的变量的定义在VS2005下代码中如果出现forunsigned int a0…那么在其后的代码中如果需要使用变量a需要重新定义unsigned int a。
5. 添加Include及Lib路径的方法见lib.jpg和include.jpg 6. 拷贝汇编编译器..resnasm.exe到..Microsoft Visual Studio 8VCbin 并按如下步骤如图所示对汇编编译环境进行设置 右键libavs目录下的dct_sse.asm选择属性 展开“自定义生成步骤”栏选择常规在右侧输入 命令行nasm -i InputDir -f win32 -DPREFIX -o IntDirInputName.obj InputPath 说明Assembly InputPath 输出IntDirInputName.obj 另外需要注意的是工程所存放的路径中不能包含空格否则在使用nasm汇编编译器时会报告错误。
7. 安装..resFilters目录下的filter: grabber.ax RealMediaSplitter.ax AviSplitter.ax Mpeg2DecFilter.ax empgdmx.ax 安装方法单击..resFiltersInstall.cmd 8. 编译如果出现以下错误作相应处理 ERROR: vs2005缺少“”在标识符“PVOID64”的前面 d:program filesmicrosoft visual studio 8vcplatformsdkincludewinnt.h // // Void // typedef void PVOID // xzhao //typedef void POINTER_64 PVOID64 typedef void POINTER_64 typedef void PVOID64 ERROR: vs2005缺少“”在标识符“PVOID64”的前面 d:dxsdksamplescdirectshowbaseclassesctlutil.h COARefTimeLONG //operatorLONG xzhao int operatorLONG foruint a0 for a0 文件说明 1. kernelvideompeg2avs_20081228 视频转码器源代码 其中bin内已有的文件包括 VideoTransCoder.exe: 编译生成的视频转码程序调用avs_enc.dll avs_enc.dll: 编译生成的avs编码库 AudioTransCoder.exe对视频文件的音频部分进行提取 AudioTransCoder_TS.exe对视频文件的音频部分进行提取用于合成TS流 lame_enc.dllAudioTransCoder.exe和AudioTransCoder_TS.exe运行需要用到的dll AvsCreator.exe合成.avs和.mp3为.asm的合成器 avs2ts.exe合成.avs和.mp3为.ts.avs的合成器 decoder.cfg解码.avs文件的解码器设置 ldecod_r1.exeavs标准参考解码器 test.avi供测试用的视频短片 test_dec.bat测试解码的批处理文件 test_trs.bat测试转码的批处理文件包括视频转码为.avs音频提取为.mp3视频音频合成为.asm里面有使用转码程序VideoTransCoder.exe的示例。
2. kernel creator AvsCreator_20081228 音视频文件合成器 3. kernel audio AudioTransCoder_Lame_20081120 音频转码器源代码 4. player AVSCodec2.4.4.exe asm文件和ts文件的播放器安装之后可以播放转码器生成的asm文件和ts文件包含视频和声音。
5. res Filters 编译环境设置步骤7中需要 6. res BaseClasses.rar 编译环境设置步骤2中需要 7. res nasm.exe 编译环境设置步骤6中需要 8. res WMFormatSDK9.exe 编译环境设置步骤3中需要 9. sequences.. 提供用于转码器测试的不同格式的短序列.avi.rmvb.wmv.mp4 Demo 1. 确定安装asm文件的播放器res AVSCodec2.4.4.exe。
2. 确定安装过res Filters下的filters安装方法在编译环境步骤6中。
3. 双击mpeg2avsbintest_trs_asm.bat。
4. 双击生成的test.asm文件开始播放。
5. 双击mpeg2avsbintest_trs_ts.bat。
6. 双击生成的test.ts.avs文件开始播放。
程序部分说明 1. 程序运行参数以及初始化值在VideoTranscoder.cpp中的GetEncodeParams函数中参数设置如VideoTransCoder.exe test.avi test.avs -w 320 -h 240 -m 5.5 -t 1 -a 1 -b 150 -w: 转码输出视频宽度 例如 -w 720 -h: 转码输出视频高度 例如 -h 576 -g: 转码GOP大小 例如 -g 18 -e: 转码过程中的参考帧数量 例如 -e 1 -n: 相邻两个P帧之间插入的B帧数量 例如-n 1 -q: 转码的量化参数063I P B帧相同 例如 -q 26 -a: 转码码率控制使能 例如 -a 1 -b: 转码比特率设置单位kbps只在-a 1时起作用 例如 -b 1000 -s: 转码过程的运动搜索范围 例如 -s 16 -t: 转码线程数 例如 -t 2 -l: 环路滤波使能1: 不使用环路滤波 0: 使用环路滤波 例如 -l 0 -m: 转码输出帧率单位fps 例如 -m 15.6 2. 调试过程中如有需要可以取消编码过程中的快速算法。
如果需要采用全搜索在avs_encdefines.h和VideoTranscoderdefines.h中都隐去_THREE_STEP_MOTION_SEARCH_。
如果需要采用编解码完全匹配的1/4插值算法在avs_encdefines.h中隐去_FAST_INTERPOLATION_。
1/4插值的快速算法为了提高速度使得编解码有微弱的不匹配的采用快速的插值算法对转码速度提高明显如果使用快速ME速度提高大约在40而且解码出来的yuv相对于重建的yuv而言PSNR基本都在80dB之上因此编解码的之间的不一致可以忽略。
3. 如果需要重建文件test_rec.yuv需要打开avs_encdefines.h中的宏定义define _OUTPUT_RECON_IMG_。
4. 特别注意系统在开发过程中一定确保每一步的修改都使得编解码是完全匹配的否则如果积累了隐藏的bug在后期系统维护时相当麻烦保证编解码完全匹配的方法是 1 在avs_encdefines.h中隐去宏定义_FAST_INTERPOLATION_。
2 打开avs_encdefines.h中的宏定义define _OUTPUT_RECON_IMG_。
3 点击bin中的test_trs_asm.bat采用修改过后的转码器VideoTransCoder.exeavs_enc.dll对测试视频进行转码转码的参数确保是单线程-t 1。
4 检查是否生成了test.avs文件和test_rec.yuv文件。
上一篇:
《实时地形引擎(DirectX 9)》
下一篇:
2018年汽车自驾运动营地攻防箭大赛总决赛圆满落幕