转自http://www./?p=312 gstreamer,vlc,ffmpeg都是开源处理流媒体的软件,这里的比较不涉及功能,仅仅比较源代码。 大约看了一个星期,对这三个 软件都略有了解,简单的谈谈。 0、开发语言 都是使用c语言开发,ffmpeg最为简洁;gstreamer使用了gobject,晦涩; 1、注释 vlc的代码完全没有注释,官网也没有任何文档; gstreamer的官网上有开发者指引,看完后大概了解gstreamer的设计框架,如element,pad,filter等概念,感觉设计的相当不错; ffmpeg官网上文档不多,不过注释真是太详细了,超级赞; 2、代码量 vlc代码量算比较少的; gstreamer分为core,plugin,等等,代码量巨大;而且,gstreamer使用glib2,感觉很不好,可读性差; ffmpeg文件很多,但组织的很棒,一下子都能找到要领; 代码量没有精确统计,仅仅是个人感觉; 3、代码质量 我个人非常欣赏ffmpeg,代码太棒了; 整个框架结构分为两个主要部分,一个是codec,一个是format,在两个大的目录中,顾名思义,一个是处理编解码,一个是获取原始数据; format中,只需要看几个文件就可以了解整个系统的运作过程了: avformat.h,avio.h,avio.c等 4、图形界面 vlc有图形界面,在windows下很好用; gstreamer不是很清楚; ffmpeg没有图形界面,仅仅提供了三个命令行工具,这三个工具的选项狂多。三个命令分别是ffmpeg,ffplay,ffprobe ffmpeg是我非常推崇的代码。 在使用测试的过程中,发现ffmpeg不能播放helix server的rtsp源,应该是ffmpeg解析rtp与helix不兼容造成的,有空的时候查找一下原因,fix一下。 |
|