当前位置: 首页 > news >正文

企业网站的制作公司flash里面如何做网站链接

企业网站的制作公司,flash里面如何做网站链接,网站推广优化方式,索象营销传播集团一、介绍 不论是音频数据还是视频数据#xff0c;我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。 学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充#x…一、介绍     不论是音频数据还是视频数据我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。     学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充给出一些技巧、关键点和一般的路线图。     术语介绍“Codec表示编码器/解码器如果你愿意也可以称为压缩器/解压缩器它表示一个模块既可以对数据进行编码也可以进行解码。然而本文档主要是针对解码器而术语“decoder”和“codec”通常也被一起使用。 二、必要的资源     当你决定要为MPlayer实现一个新的解码器时那么下面这些应该是你需要的 1实现编解码器的知识     你需要知道MPlayer传给你的数据格式知道如何把其中的数据结构拆开在重组这些原始的媒体数据时需要知道对这些数据的算法操作。 2媒体样本     MPlayer在解码时需要确切地知道如何解析存储在媒体文件中经编码后的数据格式包括AVIASFMOVRMVIVO等等。如果MPlayer无法识别媒体文件中的编码数据那么你就必须把这种格式转换为能识别的格式或者为MPlayer写你自己的文件解复用器来处理这些数据。如何写解复用器已经超出了本文档的论述范围此处不做论述。     尽力获得支持所有可能模式的解码器的媒体样本。如果一个音频的编解码器同时支持单声道和立体声那么就要找到相应的媒体样本来测试。如果一个视频编解码器能够同时工作在7种不同的比特率那么你也要想尽办法去获得相应7种比特率编码的媒体样本。 3最新的CVS快照     为最新的MPlayer开发版本来开发编解码器同样也是很重要的因此要经常用CVS更新你的版本。 4普通的编程知识能在Linux环境下开发     这通常是不用说的但有时候你却不得不说。 三、开发流程 1建立基本的开发环境     首先修改你的本地配置文件codecs.conf它可能是系统共享的或在你主目录下。为你的编解码器添加一个新的条目如果是开源的编解码器那么最好把它放在其他开源的编解码器一起。当你确信把条目添加正确后一定要把它添加到你的工作目录的etc/codecs.conf中。想要了解这个配置文件的详细信息可以查看codecs.conf.txt。创建一个新的包含相关信息格式输出格式特定驱动名称的音频编解码或视频编解码块并记住驱动的名称。     创建一个新的源文件它应该包含解码的主函数以便MPlayer调用来进行解码数据。最终你可能会有多个文件组成你的解码器举一个简单的例子如下 对于一个音频解码器比如ad_sample.c。针对视频解码器可以命名为vd_*.c。     接下来需要修改Makefile文件使得新的编解码器被编译进去。当然你还需要把解码器加入到ad.c对音频来说或vd.c对视频来说的数组中。     编译整个工程看看到目前为止是否有错误。     为了把你的解码函数放在首要位置你需要确保你的编码数据。这听起来像是一个微小的练习但却可能发生很多错误。在你解码函数的开始加入下面的代码     int i;     for (i 0; i 16; i)         printf (%02X , input[i]);     printf (/n);     当你编译并运行MPlayer时你的解码函数将会打印它所接收到的每个数据块的前16个字节。用16进制编辑器打开媒体样本看看你屏幕上的输出和打开文件所看到的如果解码器打印的与文件中的一致那么说明你已经准备好进入第二步了否则你就要找出为什么没有得到正确的数据是因为解码器没有被触发吗为什么 2开发解码器     记住首先要让它能工作其次才是工作的快。     解码器支持什么输出格式任何都可以。通常YUV输出要比RGB输出受欢迎。如果一个编码器采用YUV数据作为它的源数据那么就需要能解码一个YUV数据的帧。如果编码器想很多老的视频编码器一样用RGB数据作为输入那么支持YUV输出就没有意义了尽可能的输出RGB格式就可以了。     最受欢迎的视频数据输出格式是YV12因为MPlayer支持大量的硬件设备来对这些数据直接显示、缩放和过滤。MPlayer同样也有很多优化的转换函数能把YV12数据转换为其他数据输出格式。     如果你确实采用RGB作为输出你必须意识到MPlayer事实上打包RGB为BGR如果你解码成BGR24数据缓存那么输出如下     B G R B G R B G R B ...     如果你解码成BGR32那么在每个BGR后面需要一个额外的字节     B G R - B G R - B G ...     很好地利用检查方法。在解码器的开始包含头文件mp_msg.h你可以使用mp_msg()函数作为你的printf()语句。一旦你的解码器发现奇怪的数据或情况打印如下     mp_msg(MSGT_DECVIDEO, MSGL_WARN, Odd data encountered: %d/n, data); 显然为了你好你应该使得消息更加清晰。MSGL_WARN对这种类型的信息来说是一个好的消息级别。mp_msg.h中定义了所有的错误级别你甚至可以用MSGL_FATAL来使得MPlayer完全退出但这不是解码数据需要的级别。     什么情况下应该触发一个警告呢任何超出普通的情况。许多压缩的视频数据包含的头里有宽、高和大小这些数据把这些域作为参数传给解码函数这些数据应该是匹配的否则应该给出一个警告并决定应该使用哪个数据。如果头部信息里应该有一个Magic Number或是从头部数据计算出来的但却不正确则应该给出警告。     无论检查边界索引有多枯燥你都必须确保没有超出理论上的内存范围访问超出范围的内存会导致段错误永远不要相信传递给你的所有数据都是正确的。一旦索引超出了范围就需要给出警告并退出解码过程而不是整个应用程序。     写出所有可能产生警告的情况看似无聊的但如果不写的话万一在解码过程中出现错误你却不知道是为什么以及在哪里出了错误。 3调试和测试解码器     如果你超级幸运解码器第一次运行就成功了或是你很幸运通过修改了几个程序错误以后你的解码器也能工作了。现实来说你需要查看很多次修改很多明显和不明显的程序错误还需要通过调试来解决一个很小的功能。     提示请求所有的警告信息。例如gcc的Wall选项。开发时使用调试模式是很有用的为了在调试模式下编译你的MPlayer使用--enable-debug选项。注意所有的警告并消除所有警告。 4把解码器贡献到代码库     用diff -u来创建一个补丁然后给MPlayer开发组发邮件获得许可你需要diff下列文件     - Makefile     - etc/codecs.conf     - ad.c or vd.c     当然你应该包含你新创建的文件vd_name.c 或 ad_name.c。如果你贡献够多的话MPlayer开发组或许会授予你修改CVS的权利。 5等待BUG报告并跟进 当你发布你的编解码器后你也许认为你已经完成了但前提是你足够幸运。但往往却事与愿违所以你需要查看BUG报告并跟进修改BUG。 MPlayer编解码开发指导 一、介绍     不论是音频数据还是视频数据我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。     学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充给出一些技巧、关键点和一般的路线图。     术语介绍“Codec表示编码器/解码器如果你愿意也可以称为压缩器/解压缩器它表示一个模块既可以对数据进行编码也可以进行解码。然而本文档主要是针对解码器而术语“decoder”和“codec”通常也被一起使用。 二、必要的资源     当你决定要为MPlayer实现一个新的解码器时那么下面这些应该是你需要的 1实现编解码器的知识     你需要知道MPlayer传给你的数据格式知道如何把其中的数据结构拆开在重组这些原始的媒体数据时需要知道对这些数据的算法操作。 2媒体样本     MPlayer在解码时需要确切地知道如何解析存储在媒体文件中经编码后的数据格式包括AVIASFMOVRMVIVO等等。如果MPlayer无法识别媒体文件中的编码数据那么你就必须把这种格式转换为能识别的格式或者为MPlayer写你自己的文件解复用器来处理这些数据。如何写解复用器已经超出了本文档的论述范围此处不做论述。     尽力获得支持所有可能模式的解码器的媒体样本。如果一个音频的编解码器同时支持单声道和立体声那么就要找到相应的媒体样本来测试。如果一个视频编解码器能够同时工作在7种不同的比特率那么你也要想尽办法去获得相应7种比特率编码的媒体样本。 3最新的CVS快照     为最新的MPlayer开发版本来开发编解码器同样也是很重要的因此要经常用CVS更新你的版本。 4普通的编程知识能在Linux环境下开发     这通常是不用说的但有时候你却不得不说。 三、开发流程 1建立基本的开发环境     首先修改你的本地配置文件codecs.conf它可能是系统共享的或在你主目录下。为你的编解码器添加一个新的条目如果是开源的编解码器那么最好把它放在其他开源的编解码器一起。当你确信把条目添加正确后一定要把它添加到你的工作目录的etc/codecs.conf中。想要了解这个配置文件的详细信息可以查看codecs.conf.txt。创建一个新的包含相关信息格式输出格式特定驱动名称的音频编解码或视频编解码块并记住驱动的名称。     创建一个新的源文件它应该包含解码的主函数以便MPlayer调用来进行解码数据。最终你可能会有多个文件组成你的解码器举一个简单的例子如下 对于一个音频解码器比如ad_sample.c。针对视频解码器可以命名为vd_*.c。     接下来需要修改Makefile文件使得新的编解码器被编译进去。当然你还需要把解码器加入到ad.c对音频来说或vd.c对视频来说的数组中。     编译整个工程看看到目前为止是否有错误。     为了把你的解码函数放在首要位置你需要确保你的编码数据。这听起来像是一个微小的练习但却可能发生很多错误。在你解码函数的开始加入下面的代码     int i;     for (i 0; i 16; i)         printf (%02X , input[i]);     printf (/n);     当你编译并运行MPlayer时你的解码函数将会打印它所接收到的每个数据块的前16个字节。用16进制编辑器打开媒体样本看看你屏幕上的输出和打开文件所看到的如果解码器打印的与文件中的一致那么说明你已经准备好进入第二步了否则你就要找出为什么没有得到正确的数据是因为解码器没有被触发吗为什么 2开发解码器     记住首先要让它能工作其次才是工作的快。     解码器支持什么输出格式任何都可以。通常YUV输出要比RGB输出受欢迎。如果一个编码器采用YUV数据作为它的源数据那么就需要能解码一个YUV数据的帧。如果编码器想很多老的视频编码器一样用RGB数据作为输入那么支持YUV输出就没有意义了尽可能的输出RGB格式就可以了。     最受欢迎的视频数据输出格式是YV12因为MPlayer支持大量的硬件设备来对这些数据直接显示、缩放和过滤。MPlayer同样也有很多优化的转换函数能把YV12数据转换为其他数据输出格式。     如果你确实采用RGB作为输出你必须意识到MPlayer事实上打包RGB为BGR如果你解码成BGR24数据缓存那么输出如下     B G R B G R B G R B ...     如果你解码成BGR32那么在每个BGR后面需要一个额外的字节     B G R - B G R - B G ...     很好地利用检查方法。在解码器的开始包含头文件mp_msg.h你可以使用mp_msg()函数作为你的printf()语句。一旦你的解码器发现奇怪的数据或情况打印如下     mp_msg(MSGT_DECVIDEO, MSGL_WARN, Odd data encountered: %d/n, data); 显然为了你好你应该使得消息更加清晰。MSGL_WARN对这种类型的信息来说是一个好的消息级别。mp_msg.h中定义了所有的错误级别你甚至可以用MSGL_FATAL来使得MPlayer完全退出但这不是解码数据需要的级别。     什么情况下应该触发一个警告呢任何超出普通的情况。许多压缩的视频数据包含的头里有宽、高和大小这些数据把这些域作为参数传给解码函数这些数据应该是匹配的否则应该给出一个警告并决定应该使用哪个数据。如果头部信息里应该有一个Magic Number或是从头部数据计算出来的但却不正确则应该给出警告。     无论检查边界索引有多枯燥你都必须确保没有超出理论上的内存范围访问超出范围的内存会导致段错误永远不要相信传递给你的所有数据都是正确的。一旦索引超出了范围就需要给出警告并退出解码过程而不是整个应用程序。     写出所有可能产生警告的情况看似无聊的但如果不写的话万一在解码过程中出现错误你却不知道是为什么以及在哪里出了错误。 3调试和测试解码器     如果你超级幸运解码器第一次运行就成功了或是你很幸运通过修改了几个程序错误以后你的解码器也能工作了。现实来说你需要查看很多次修改很多明显和不明显的程序错误还需要通过调试来解决一个很小的功能。     提示请求所有的警告信息。例如gcc的Wall选项。开发时使用调试模式是很有用的为了在调试模式下编译你的MPlayer使用--enable-debug选项。注意所有的警告并消除所有警告。 4把解码器贡献到代码库     用diff -u来创建一个补丁然后给MPlayer开发组发邮件获得许可你需要diff下列文件     - Makefile     - etc/codecs.conf     - ad.c or vd.c     当然你应该包含你新创建的文件vd_name.c 或 ad_name.c。如果你贡献够多的话MPlayer开发组或许会授予你修改CVS的权利。 5等待BUG报告并跟进     当你发布你的编解码器后你也许认为你已经完成了但前提是你足够幸运。但往往却事与愿违所以你需要查看BUG报告并跟进修改BUG。
http://wiki.neutronadmin.com/news/362585/

相关文章:

  • 建设化工网站的功能通辽做网站有没有
  • 麦积区建设局网站wordpress怎么改标题和meta
  • 广告网站建设公司封面型网页网站有哪些内容
  • 房地产网站建设案例优化搜索点击次数的方法
  • 网站权重最高是多少网站查询域名解析
  • 如何在局域网内做网站php网站搭建环境
  • 网站建设 锋云科技公司陕西工程项目信息网
  • 阜阳企业网站建设专业网站排名优化公司
  • 智信建设职业培训学校网站网站集约化建设讲话稿
  • 云制造网站互联网基础知识入门
  • fineui 如何做网站西安做网站的哪家好
  • 教学网站开发应指导方案怎么提高网站排名
  • 小公司网站建设wordpress 4.9升级
  • 网站开发网页加载很慢怎么办地产行业型网站开发
  • 怎样做一个单页面网站分类目录seo wordpress
  • 肥乡县建设局网站企业铭做网站
  • 网站建站建设价格郑州企业网站价格
  • 可以做mv 的视频网站网站建设专业团队图片
  • 网站源码建设模板品牌网站建设工作室
  • 上海手机网站制作网站建设与管理实践报告
  • 怎么做网站板块祥云平台网站建设怎么收费
  • 郑州网站建设郑州网站建设精准营销软件
  • 盐城企业做网站多少钱vs能建设网站吗
  • 高端设计网站平台国内现货交易平台
  • 响应式网站怎么做金蝶软件培训
  • 网站编程电子书外链工具下载
  • 安徽省建设网站qq小程序下载
  • 廉政网站建设经验交流淘宝客网站必须备案吗
  • 网站建设四川冠辰给企业做网络推广工作怎么样
  • 做网站的装饰标语asp跳转到别的网站