摄像头视频播放采用sdl,下面简单介绍下。不保证正确及网址永远有效。后面文章采用tao框架http://sourceforge.net/projects/taoframework/     
SDL.dll 版本1.2.14
Tao.Sdl.dll 版本1.2.13
 
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
 

相关网站和下载:

http://sourceforge.net/projects/taoframework/
http://www.mono-project.com/archived/tao/
http://www.libsdl.org/
http://cs-sdl.sourceforge.net/index.php/news?start=54
 

1.SDL是一个2D游戏引擎(国内这么说,但是我觉得把它称为“引擎”还是太过了,我觉得引擎级别应该至少到framework了,SDL提供的功能没有这么强大。),其提供一个游戏必要的一些简单的API接口,并且非常底层。

2.SDL最牛逼之处就在于其简单、跨平台。一切基于SDL的代码都应该是高度portable的。所以可以考虑做一个基于SDL的中间件,估计挺有卖点。

3.SDL免费,开源。

4.可以搜一下著名的linux下战略类游戏 韦诺战争(貌似没有WINDOWS版本)。就是基于SDL的大作。

5.SDL貌似经常用来写跨平台播放器,很方便。

SDL里有啥?

1.技术支持
SDL团队是我见过网上办事最有效率的团队。在Sam Latinga等帮助下,一帮牛逼志愿者维护其代码,并且不断移植到新的平台。SDL的mailing list(BY CG 请原谅我的火星,看了一下貌似国外很多网站都有这种机构,把对官方的询问EMAIL记录都贴到网上的一种机制。)为SDL用户们提供永远的快捷服务。mailing list提供庞大的SDL使用信息和在游戏开发过程中的问题解决方法。

2.初始化和释放
我们平时在每个平台下开发,都要求程序员写一些平台相关的代码,来指引操作系统做什么、硬件做什么。那么,你不得不写更多的平台相关代码。你需要设置显示模式、初始化音频系统、检测鼠标或者摇杆……而且在游戏结束之后你要清空或释放这些你用到的资源。。这些代码基本在每个工程里都相同,SDL提供一种简单的机制来检测硬件,只需要几行简单的代码你就能初始化资源,释放资源就更别提了。并且SDL离的代码可以到处拷贝和复用到其他工程。

3.基于事件的输入机制
SDL提供键盘、鼠标、摇杆输入,使用事件机制,这样就是的在X11、WINDOWS或者MAC OS上的开发者感到非常亲切了。不同的是,SDL不管你在什么操作系统上,都提供给你相同的事件,并且它不会让你处理操作系统相关的那堆让你写游戏过程中不爽的事件。

4.时间和定时器
每个游戏程序都需要知道时间,并且需要知道一个行动什么时候发生。SDL提供一个跨平台的,清晰、简单、可信的时间机制和定时器API。SDL的定时器API允许同时创建上千个定时器,而且比我以前用的其他库的定时器要用的爽。

5.声音
SDL提供一套简单的API控制声卡,根据需要操控不同的硬件设备。即时硬件支持度较低,它也能干活。在这一点上非常符合它的“精简达意”哲学观。在另一方面,还有许多SDL团队不断开发出来的SDL声音库。

6.光驱
SDL提供读、播放光驱的API。无敌了!(BY CG,谁告诉我这里 Can't beat it. 咋翻译?)

7.图像
SDL提供给你一个尽情发挥图形处理的机会。你可以从像素级拿数据然后随你怎么处理,或者你可以用OPENGL来做2D、3D的硬件加速。这是在任何硬件设备上都能做的,因为OPENGL支持所有的3D显卡,它是安全、可移植的,并且很生猛的跨平台3D库。SDL可以设置视频模式,可以访问帧缓冲区,如果你需要,还为你初始化OPENGL。SDL将解除你制作全屏游戏模式的痛苦(BY CG,不知道痛苦在哪。。没用过太底层图形库的人飘过),同样,也可以做窗口游戏。

8.网络
SDL包含了一组底层的网络API,让你可以控制基于TCP/IP或者UDP/IP的scokets。这一组API和UNIX、WINDOWS的网络API很像,不同的是它只让你用网络特性,可以跨平台。并且这些API已经实现一些底层的功能,不用让你在写网络通讯代码的时候觉得痛苦。

9.线程
SDL提供一套像pthreads简单版本(BY CG,又不知道是啥了。。我靠,我太弱了)的线程API。SDL线程提供线程管理的基本函数。而且也是跨平台的。

SDL的不足之处

唯一让我觉得不爽的就是它的文档,有的地方有小错误,有的地方给得太吝啬了。但是这比起这个伟大的游戏开发库来说不算什么,这些文档带来的疑惑你都可以在写代码的过程中 或者看其他示例代码来搞定。

SDL多少¥?

免费!SDL 基于LGPL(BY CG貌似是某种免费协议机制?),你只需要遵守一些简单的规章,每个人都能获得免费的SDL认证。

在Win32编程中,如果要操纵2D图像,可以选择使用GDI或者DirectDraw,前者速度较慢,而后者是特定针对Microsoft平台的,在非Win32平台上移植会带来很大的麻烦。这时,你可以选择使用SDL。SDL支持多种平台:Linux、Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX和QNX,同时也部分支持部分其他平台:Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS和SymbianOS。当然SDL本身是针对2D图像编程的,如果使用到3D编程,那么需要将SDL和OpenGL结合使用。

  SDL是用C编写的,但是也支持C++,同时其他多种语言,下面给出了其他语言的SDL的开发包的相关信息:

  ·Ada 
   AdaSDL - http://sourceforge.net/projects/adasdl/ 
  ·C# 
   SDL.Net - http://cs-sdl.sourceforge.net/ 
  ·Eiffel 
   ewg - http://ewg.sourceforge.net/ 
  ·Erlang 
   ESDL - http://www.ericsson.com/cslab/~dgud/esdl/ 
  ·Euphoria 
   SDL_Wrap - http://www.rapideuphoria.com/sdl_wrap.zip 
  ·Guile 
   guile-sdl - http://sourceforge.net/projects/guile-sdl/ 
  ·Java 
   JSDL - http://jsdl.sourceforge.net/ 
   sdljava - http://sdljava.sourceforge.net 
  ·Lisp 
   CL-SDL - http://cl-sdl.sourceforge.net/ 
   SDL for Corman Common Lisp - http://www.balooga.com/lisp_sdl.php3 
  ·Lua 
   luaSDL - http://lua-users.org/wiki/LuaModuleLuaSdl 
  ·ML 
   SDLML - http://www.HardcoreProcessing.com/Freeware/SDLML.html 
   OCamlSDL - http://ocamlsdl.sourceforge.net/ 
  ·Objective C 
   SDLOBJC - http://savannah.nongnu.org/projects/sdlobjc/ 
  ·Pascal 
   SDL4Freepascal - http://sdl4fp.sourceforge.net/ 
   JEDI-SDL - http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME 
  ·Perl 
   SDLPerl - http://sdl.perl.org 
  ·PHP 
   PHP SDL module - http://phpsdl.sourceforge.net 
  ·Pike 
   Natively supported (module SDL) - http://pike.ida.liu.se/ 
  ·Pliant 
   Pligame - http://pligame.sourceforge.net/ 
  ·Python 
   PyGame - http://pygame.seul.org/ 
  ·Ruby 
   Ruby/SDL - http://www.kmc.kyoto-u.ac.jp/~ohai/index.en.html 
   RUDL - http://rudl.sourceforge.net

  功能

  视频

  ·设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。

  ·直接写入线性的图像帧缓冲(framebuffer)。

  ·用颜色键值(colorkey)或者alpha混合属性创建用于绘图的表面(surface)。

  ·Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。

  ·硬件加速的blit和fill(填充)操作,如果硬件支持的话。

  事件

  ·提供以下事件:

  o 应用程序的visibility(可视性)发生改变

  o 键盘输入

  o 鼠标输入

  o 用户要求的退出

  ·每种事件都能通过SDL_EventState()关闭或者打开。

  ·事件经由用户指定的过滤函数再被加入到内部的事件队列。

  ·线程安全的事件队列。

  音频

  ·设置8位和16位的音频,单声道或者立体声,如果格式硬件不支持,可以选择转换。

  ·由独立的线程执行音频部分,并提供用户回调(callback)机制。

  ·设计上考虑到了客户定制的软混音器,但实际上在例程中就包含了一个完整的音频/音乐输出库。

  CD音频

  ·完整的CD音频控制API

  线程

  ·简单的线程创建API

  ·用于同步的简单的二进制信号量(semaphores)

  定时器

  ·读取已流逝的毫秒数。

  ·等待指定的毫秒数。

  ·设置一个10毫秒精度的周期性定时器。

  字节序无关

  ·侦测当前系统的字节序

  ·快速转换数据的函数

  ·读写指定字节序的数据

http://blog.chinaunix.net/uid-23544240-id-3077934.html

http://swee.iteye.com/blog/1435046

https://www.baidu.com/link?url=lseUErEN8Hx6pD31rBZw3EQuRILG35d-eiiIIcP4qHLum1mTNI1mpXWMUgsiHnXejIwjsrwmPGpcxHBLajTRha&wd=&eqid=b297a5800008b36a0000000555dd1373

SDL简介(网络汇总)的更多相关文章

  1. SDL 简介

    SDL 简介 什么是SDL? 即 Simple DirectMedia Layer,使用 LGPL 许可证. 免费的跨平台多媒体应用编程接口 用于游戏.游戏开发工具.模拟器.样本演示.多媒体应用等 它 ...

  2. DirectX的替代品 SDL 简介

    DirectX的替代品 SDL 简介 什么是SDL? 即 Simple DirectMedia Layer,使用 LGPL 许可证. 免费的跨平台多媒体应用编程接口 用于游戏.游戏开发工具.模拟器.样 ...

  3. 子网划分、变长子网掩码和TCP/IP排错__子网、掩码、网络汇总

    1.如何创建子网? 要创建子网,就需要从IP地址的主机部分中借出一定的位,并且保留它们用来定义子网地址.这意味着用于主机的位减少,所以子网越多,可用于定义主机的位越少. 2.子网划分的好处: 1)缩减 ...

  4. vCenter 部件关系简介 & 网络原理

    目录 目录 主机和集群 vCenter Datacenter Cluster Host Virtual Machine Folder Resource Pool Template 数据存储 Datas ...

  5. 软件开发架构,网络编程简介,OSI七层协议,TCP和UDP协议

    软件开发架构 什么是软件开发架构 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯. 4.在实现阶段,这些抽 ...

  6. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(1): 基础知识Beautiful Soup

    开始学习网络数据挖掘方面的知识,首先从Beautiful Soup入手(Beautiful Soup是一个Python库,功能是从HTML和XML中解析数据),打算以三篇博文纪录学习Beautiful ...

  7. 多媒体开发库 之 SDL 详解

    SDL 简介 SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开发者只要用相同或是相似的 ...

  8. mysql案例~非常规操作汇总

    一 简介:此文汇总mysql不常见的数据库的操作二 mysql表修改最大自增ID 目的: 修复canal相关问题 语法: alter table a AUTO_INCREMENT=num; 执行速度: ...

  9. FFmpeg再学习 -- SDL 环境搭建和视频显示

    继续看雷霄骅的 课程资料 - 基于FFmpeg+SDL的视频播放器的制作 一.SDL 简介 参看:WIKI -- Simple DirectMedia Layer 参看:最简单的视音频播放示例9:SD ...

随机推荐

  1. 【转】70个经典的 Shell 脚本面试问题

    我们为你的面试准备选择了 70 个你可能遇到的 shell 脚面问题及解答.了解脚本或至少知道基础知识对系统管理员来说至关重要,它也有助于你在工作环境中自动完成很多任务.在过去的几年里,我们注意到所有 ...

  2. Hadoop Cluster 安装

    本篇源自Hadoop官网,先将中文翻译如下. 目标 本文章主要是描述如何安装和配置几个节点的Hadoop clusters,甚至于数以千计的节点数.为了了解详细的安装步骤,需要先了解如何安装在单台机器 ...

  3. win10磁盘100%解决办法

    控制面板-管理工具-服务 找到“HomeGroupListener”服务,双击打开或右键单击“属性”命令. 在弹出属性界面窗口,在常规选项卡单击启动类型的下拉框,出来的列表选择“禁用”.然后在服务状态 ...

  4. 【转】What is an SDET

    What is an SDET? SDET stands for Software Development Engineer in Test (or Software Design Engineer ...

  5. PhotoShop算法原理解析系列 - 像素化---》碎片。

    接着上一篇文章的热度,继续讲讲一些稍微简单的算法吧. 本文来讲讲碎片算法,先贴几个效果图吧:             这是个破坏性的滤镜,拿美女来说事是因为搞图像的人90%是男人,色色的男人. 关于碎 ...

  6. Caffe源码解析4: Data_layer

    转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ data_layer应该是网络的最底层,主要是将数据送给blo ...

  7. EhCache的配置

    JPA和Hibernate的二级缓存都是这样做的 代码目录: 这是基础的jar包,如果少的话,再去maven下载 <!-- Spring --> <dependency> &l ...

  8. 自定义框架(MyMvc)

    //初次接触自定义框架,简单的登录功能的实现流程:: 当我们实现登录功能的时候,首先会创建一个login.jsp 会写这些登录表单 <form action="loginAction. ...

  9. js通过日期计算属于星期几

    var arys1 = new Array(); arys1 = "2016-09-25".split('-'); //日期为输入日期,格式为 2013-3-10 var ssda ...

  10. C#和C实现通过CRC-16 (Modbus)获取CRC值并校验数据(代码)

    文章首发于浩瀚先森博客 CRC的全称为Cyclic Redundancy Check,中文名称为循环冗余校验.它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差 ...