编码解码 GStreamer

      编码解码

       今天听了关于GStreamer的一个报告,讲到了GLib,讲到了编码解码,讲到了关于音频与视频上的很多东西,现在整理一下。

       GStreamer,它是一种通用的多媒体处理库,可以使得多媒体处理更加容易。多媒体库,就是表示各种各样的媒体类型。可以存粗音频媒体,视频媒体以及元数据。当有了多媒体库后,就要有相应的工具来处理其中的内容。GStreamer,就是做这个事情的。通过将所有不同的工具和库隐藏到它的插件中,以及使用媒体管道的概念,GStreamer 能以一种统一的方式表示对不同类型媒体所进行的操作。这使得您能够将精力集中于现有的媒体,而不是困惑于究竟应该使用什么样的管道。这里的重点是GStreamer可以以一个统一的方式而面对不同类型的媒体。这样你可以编写一个音乐或视频播放器,而不是只写一个MP3播放器了。

        GStreamer是一个媒体处理库。他提供了某种转换过程的抽象模型。GStreamer所有的特定的内容都是由相应的插件提供的。插件是一段经过编译的代码,通常以对象文件的形式分发(Windows的dll)。在启动的过程中,GStreamer对所有已安装的插件进行查询,获取可以用于应用程序的一组元素。插件可以调用其他的库,完成特定的任务(MPEG-2解码器可以使用现有的库处理MPEG格式的信息)。但是应用程序是看不到内部的过程的,它所看到的只是一些外观和工作方式相同的元素。

        接着说说编码器,解码器。编码器主要是对视频,音频信号进行压缩,解码器则相反,对视频和音频信号进行解压缩。计算机工业定义通过24位测量系统的真彩色,这样就定义了百万种颜色,接近了人类视觉的极限。假设一个VGA的显示器的像素是640×480像素。这意味着如果视频需要以每秒30帧的速度播放,那么每秒就有27MB的信息要传输。在这样的速度下,1GB的硬盘只能存储约37秒的视频信息。所以必须对信息进行压缩处理,通过抛弃一些数字信息或选出容易被我们眼睛和大脑忽略的可视化信息的方法,使视频消耗的硬盘容量小。

       比如,MP3是一种音频的编码方式,全称(Moving Picture Experts Group Audio Layer III)。是一种比较流行的数字音频编码和有损压缩格式。MP3就是一种音频压缩技术。将音乐以1:10甚至1:12的压缩率,压缩成为比较小的文件。MP3播放器就是对MP3文件进行解压缩(解码),这这样,就可以播放MP3文件了。MP3的典型的速度是每秒128和320kb之间,CD上未经过压缩的音频的位速是1411.2kbit/s。一个好的解码器也很重要,好的编码器能够在128到160kbit/s下达到可接受的音质,在160到192kbit/s下达到接近透明的音质。所以不在特定编码器或者最好的编码器话题内说128kbit/s或者192kbit/s下的音质是容易引起误解的。一个好的编码器在 128kbit/s下生成的MP3有可能比一个不好的编码器在192kbit/s下生成的MP3音质更好。

       接着说说ALSA(Advanced Linux Sound Architecture(高级Linux声音系统)),是为声卡提供驱动的Linux内核组建,用来替代原来的oss(开放声音系统)。ALSA是一个完全开放源代码的音频驱动程序集,除了像OSS那样提供了一组内核驱动程序模块之外,ALSA还专门为简化应用程序的编写提供了相应的函数库。利用该函数库,开发人员可以方便快捷的开发出自己的应用程序,细节则留给函数库内部处理。ALSA对所有音频接口高效支持,从普通用户的声卡到专业级别多路音频设备。ALSA声卡驱动完全模块化。

你可能感兴趣的:(编码解码 GStreamer)