一 : mov格式的h264和mpeg格式的H264有什么区别 编码和格式
[h264是什么格式]mov格式的h264和mpeg格式的H264有什么区别 编码和格式具体怎么理解?现在比较好的编码格式是什么呢?网友雷霄骅对[h264是什么格式]mov格式的h264和mpeg格式的H264有什么区别 编码和格式具体怎么理解?现在比较好的编码格式是什么呢?给出的答复:
封装格式就是“容器”,只是个外壳,像MOV,AVI这些都是封装格式(就是视频文件名的那个后缀)
编码格式就是容器中的内容,分为视频编码格式(H.264)和音频编码格式(AAC,MP3)。详细可以参考我总结的文章:
[总结]视音频编解码技术零基础学习方法
二 : 如何在编译器(vs2008)里设置调用别人写好的lib和dll
如何在编译器(vs2008)里设置调用别人写好的lib和dll
步骤:1.Tools->options->projects and solutions->VC++ directories分别在包含文件,库文件填加了路径
(这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程.)
(若不设置,编译报错:无法打开***文件)
2.Project->properties->c/c++->general->additional include directories 添加包含文件
Project->properties->linker->general->additional library directories 添加库文件
Project->properties->linker->input->additional additional dependencies添加用到的lib
(这一步也可以在代码中显示调用 #pragma comment(lib, "***.lib") )
(若不添加,连接报错:无法解析的外部符号)
3.将dll文件拷贝到工程debug文件下(如果不拷贝,编译链接不报错,运行报错:无法找到***.dll)切记第三条,让老子排查了一上午,当然最好把所有输出目录定位到一个文件下面。(www.61k.com]
附:
DLL与LIB文件的区别
共有两种库:
一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接 库dynamic link library。
一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。
共有两种链接方式:
动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定 位DLL函数的可执行代码所需的信息。
静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件 中。
关于lib和dll的区别如下:
(1)lib是编译时用到的,dll是运行时用到的。如果要完成源代码的编译,只需要 lib;如果要使动态链接的程序运行起来,只需要dll。
(2)如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位 置,dll中是函数的具体内容;如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。使用静态编译的lib文件,在运行程序时 不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。
(3)动态链接的情况下,有两个 文件:一个是LIB文件,一个是DLL文件。LIB包含被DLL导出的函数名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到DLL 文件。在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中相应函数代码的地址,从而节省了内存资源。DLL和LIB文件必须随应用程序 一起发行,否则应用程序会产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32 API函数LoadLibrary、GetProcAddress装载。
使用lib需注意两个文件:
(1).h头文件,包含 lib中说明输出的类或符号原型或数据结构。应用程序调用lib时,需要将该文件包含入应用程序的源文件中。
(2).LIB文件,略。
使 用dll需注意三个文件:
(1).h头文件,包含dll中说明输出的类或符号原型或数据结构的.h文件。应用程序调用dll时,需要将该文件包含 入应用程序的源文件中。
(2).LIB文件,是dll在编译、链接成功之后生成的文件,作用是当其他应用程序调用dll时,需要将该文件引入应用 程序,否则产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32 API函数LoadLibrary、GetProcAddress装载。
(3).dll文件,真正的可执行文件,开发成功后的应用 程序在发布时,只需要有.exe文件和.dll文件,并不需要.lib文件和.h头文件
三 : 光电编码器:光电编码器-名称,光电编码器-特点区别
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。
光电编码器_光电编码器 -名称
光电编码器,是1种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90o的两路脉冲信号。光电编码器_光电编码器 -特点区别
一.编码器温度:-60℃~+120℃可选二.BEN编码器防护分为:IP54-IP68.三.编码器速度:500r/min~40000r/min四.BEN编码器分为:实心轴,盲孔,通孔。五.BEN编码器出线方式分为:侧出线,后出线 六.BEN编码器按原理分为:磁编码器,光电编码器七.编码器功能:精确检测角度,位置,速度,圈数...八.编码器的常规外形:18美眉,38美眉,58美眉,66美眉,80美眉.100美眉.九.BEN编码器分为:增量型,绝对值型(单圈,多圈)。 十.BEN绝对值编码器轴分为:6美眉,8美眉,10美眉,12美眉,14美眉,25美眉. 十一.BEN编码器安装方式分为:夹紧法兰、同步法兰、加紧带同步法兰、盲孔(弹簧片,抱紧)、通孔(弹簧片,键销)十二.BEN编码器通讯协议波特率:4800~,9600,19200,115200bit/s,默认为9600bit/s。刷新周期约1.2ms十三.BEN绝对值编码器精度分为:单圈精度和多圈精度,加起来就是通常说的多少位(常规单圈10位,12位,13位,16位,20位,多圈24位,25位,30位,32位...)。十四.BEN绝对值编码器输出可选:SSI、4-20MA、0-10V,profibus-dp、DEVicenet、并行、二进制码、BiSS、CANopen、Endat及Hiperface等十五.BEN编码器常用规格:BESM58,BE1322SM58-N011,BESM58-011、BE122SM58、BE1822SM58、BE420SM58,BE1622SM58-N011等。上海精芬编码器原理,是1种通过光电转换将输出轴上的机械几何位移量转换成电脉冲或电子数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测等装置组成。光栅盘是在一定直径的圆板上均匀地开设扇形透光通道。由于光电编码器与电动机同轴,电动机旋转时,光栅盘与电动机同步旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算在一定时间内的输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,编码器还可提供电气相位相差90度的脉冲信号。
光电编码器_光电编码器 -原理
根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式3种。四 : 求ASCII编码(简称A码)和Unicode(简称U码)的区别?
大家都知道U码的软件的字符串用十六进制打开会用一个一个小点"."来分开显示的!比如U码软件的About这个单词的字符串用十六进制打开会以".A.b.o.u.t."这样的形式分开,而A码的软件的字符串是没有"."来分开的,比如A码软件的单词About用十六进制打开会直接显示About,U码的字符不论是英文还是中文都是一个字符占用两个字节,比如U码软件的字母A的十六进制码是4100(41是一个字节,00又是一个字节)~而A码软件的字母只需要一个字符占用一个字节,比如A码软件的字母A的十六进制码是41,大家对比一下就清楚了。
(www.61k.com)比如要汉化About这个单词,十六进制打开,按选项-查找-ASCII-输入“About”,会找到一个结果,看看About的字符串41626F757417前面还有两个字节是0505,这两个字节"0505"是About的A码的指数,其作用是用来指示字串的长度及字符数的,是16进制的计数方式,前面一个05代表这个字串有5个字符(简单点来说就是有五个字母),后面的05代表这个字串是由5个字节构成(A码一个汉字和字母都占一个字节,U码字母占一个字节,汉字占两个字节)。
对于英文字符来说,有效字符和字串长度是一样的,但要汉化成中文就不同了,我们必须用中文的Unicode字符去替换,因为只有Unicode字符才能正常显示中文。但是我们不能直接替换成“关于”这两个字符的U码代码,中文编码的使用是需要加上标识符的,这个标识符是以0F开头(表示以下内容为Unicode编码),以E0结尾(E0表示以后为ASCII编码),其实只要有0F就行了,不过有时你剩下一字节你如果用U码就不够了,这时就要用E0来代替。~比如将"About"的A码的字符串"0505****6F757417"要改为中文的U码的"关于"的字符串就是"02050F51734E8E"(其实我汉化A码一般都是先将指数后面的字符串修改成中文的代码,然后再根据修改后的代码而修改指数),这个字符串中:02表示有两个有效字符(即两个汉字),05表示仍然占用五个字节,0F表示以下的字节为U码,5173是“关”字的U码的代码(小端字节序,简单说要将两个字节反过来,你查到的“关”的Unicode代码是7351,这就要反过来),4E8E是“于”字的U码代码(小端字节序,记得要将两个字节倒转),这样保存后覆盖原原文件即可实现汉化!
再举个例子,让大家更加能活学活用0F和E0与指数的变化。现在我们需要英文Visualizer,找到它的A码字符串代码是"0A0A56697375616C697A6572",这个字符串的指数是0A0A,代表了这个字符串有十个有效字符和占用十个字节(在十六进制里指数所代表的字节数目只用0~9和A~F这十六个字符代表。也就是说指数的十六进制码的01~09代表数字1~9,而0A~0F则代表数字10~15,10则代表数字16,如此类推,1A代表数字26,也就是说如果该字符串占用26个字节,那么指数的代码就是1A),要汉化这个英文为“界面”(其U码的代码为4C756297)可以用很多方法,比如修为"060A0F754C9762E0202****0",
其中第一个06代表有效字符串有6个:即两个文字的U码代码(记得小端字节序是要倒过来的)=0F75和9762,四个空格的A码代码=2020****(因为如果只汉化成两个中文,后面剩余的代码则应以空格的代码填充,而这四个字节前面的E0已经表示后面的是A码代码,所以必须是20而不是2000的小端字序代码0020),而第二个0A则表示这组字符串占用十个字节,大家可以算一算,0F754C9762E0202****0这几个代码刚好占用十个字节(请分清楚0F和E0这两个代码也是占用字节的)!但是汉化此类字符串也不是一成不变的,大家一定要活学活用懂得在不同的字符串到底要怎么样写才能更加加适合,你可以将上面汉化的代码写成这样"040A0F754C97620020****E0"或者"050A0F754C97620020E02020"甚至是"060A0E20202****F754C9762""(这个得考虑一下前面的四个空格对汉化后对中文的位置影响)等等,总之不是一成不变的,要写成合适的!然后保存后文件即可实现汉化。
接下来要说的就是A码汉化常常涉及的字符串的转移教程。我们知道要汉化A码的代码必须要转化为U码代码,但是如果碰上一些英文比较短的字符串(如Ok)怎么办?如果直接替代为U码代码,肯定不够字节数,那怎么办呢?那就要借了,也就是向字节数多的字符串借!举例,汉化软件里的Play这个英文,找到Play的A码字符串代码为"040****C6179",如果想汉化成"播放"(这两个中文的U码的十六进制码是AD64和3E65)这两个中文,直接用U码字符串替代明显是不行的,因为Play只有四个有效字节,而"播放"的U码却占了四个字节,加上U码标识符一共就五个字节了,总不能将Play只汉化成一个“播”字吧?这时我们就需要向汉化附近的字符串时有多余的字节的字符串借了!我们从Play的字符串向上找找不到有多余的字符串,于是向下找,到位置150这里,看看当时原英文将Visualizer汉化成“界面”这个词的字符串,很明显,Visualizer的十个字节汉化成“界面”这个词只需五个字节即可完成(两个U码字符占用四个字节,还有一个字节是0F的U码标识符),剩下的五个字节符用空格和E0来填补太浪费了吧?我们现在需要的就是多出的五个字节了,从Play的字符串开始(尽量记下字符串的位置,这里是121)到已经汉化成"界面"的字符串结束(位置是162),我们得到的代码是""040****C6179*****0FFFFFFFF000000000600****09F0F60800****00040A0F754C97260020****E0",这段代码分三组,第一组“040****C6179”是Play的A码字符串~第二组“170000FFFFFFFF000000000600****09F0F60800****00”是系统的代码你不能修改,否则会打不开软件~第三组“040A0F754C97260020****E0”是已经汉化成"界面"的字符串,第一组不够用第三组却多了就得问第三组借几个字节,但是手机又不能将字节直接剪切到相对应的位置,那么我们就需要通过移动字节的位置来达到剪切的目的,只要将以上那段字符串修改为"02050F64AD653E170000FFFFFFFF000000000600****09F0F60800****90F754C97260020****"即可,这样的移动代码即可以让第一组向第三组“借”到了一个字节,记得要将指数修改为相对应的有效字符数和占用字节数喔!只要你掌握得好,指数和字节都没写错,那些字节就可以让你随心所欲地移动了,但是记得不要修改系统代码喔!有时可能会涉及移动几组的代码才能汉化,大家要善于运用。
汉化A码的工作真的很烦琐,建议大家用十六进制打开字符文件后,从上至下慢慢一个一个地汉化,记得要多还少补~对了,还有一种无最大长度的字符串,比如“Stopping”是“085****F5050494E47”~换成中文的Unicode的“停止”是“080F505C6B620020E0”即可汉化!
本文标题:编码器和译码器的区别-mov格式的h264和mpeg格式的H264有什么区别 编码和格式61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1