SDL是一个比较底层的音视频处理库,很多UI系统的内核都用到它,我们还可以用它来处理摄像头中YUV数据。

拓展:

SDL(Simple DirectMedia Layer)是一个跨平台的底层开发库,提供操作诸如音频、键盘、鼠标、游戏杆以及显卡等硬件的方法,被很多多媒体播放器、模拟器和流行游戏所使用,SDL支持Windows、MacOS、Linux、iOS以及Android,也就是说你目所能及的几乎所有平台它都能运行,并且SDL是开源的,完全由C语言编写,可以在C/C++以及众多主流编程语言中被使用。

使用SDL来显示YUV数据的大概步骤是这样的:

第一步,初始化SDL视频子系统并定义YUVOverlay:

SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO|SDL_INIT_TIMER);

SDL_Overlay *bmp = SDL_CreateYUVOverlay(fmt->fmt.pix.width,                            fmt->fmt.pix.height,                        SDL_YUY2_OVERLAY, screen);

第二步,将YUV数据拷贝到YUVOverlay中(需加锁):

SDL_LockYUVOverlay(bmp); memcpy(bmp->pixels[0], yuvdata, size); bmp->pitches[0] = width; SDL_UnlockYUVOverlay(bmp);

第三步,显示:

SDL_DisplayYUVOverlay(bmp, &rect);

当然,有时候YUV数据(上面的变量yuvdata)的各个分量跟SDL的定义方式不同,需要调换次序,总体而言大概如下图所示:

linux摄像头 sdl,Linux音视频(SDL与YUV)相关推荐

  1. 在linux系统下实现音视频即时通讯的部分代码

    由于使用习惯,Linux在中国受欢迎程度远不如windows,相应的软件也比较少,尤其是音视频类的软件,但是,这并不代表就完全没有.下面介绍一款强大的音视频即时通讯平台给大家,它就是--Anychat ...

  2. Linux平台上的音视频互动开发平台

    由于使用习惯,Linux在中国受欢迎程度远不如windows,相应的软件也比较少,尤其是音视频类的软件,但是,这并不代表就完全没有.下面介绍一款强大的音视频即时通讯平台给大家,它就是--Anychat ...

  3. 音视频之渲染yuv图片

    音视频之opengl绘制三角形 音视频之opengl渲染图片 音视频之渲染yuv图片 前一篇我们讨论了如何渲染一个普通图片(rgb) 现在我们来讨论如何渲染一个yuv图片. 什么是yuv我们这里有一个 ...

  4. linux下ffmpeg采集音视频设备

    Linux下查看音视频设备 1.视频输入设备: 命令查看:ls /sys/class/video4linux/ 执行结果如下: 如果系统存在video4linux文件夹说明已安装过视频驱动,video ...

  5. linux摄像头教程,linux 摄像头驱动编写方法教程

    从某个角度来说,摄像头是各个厂家主打的应用功能.那么,linux是如何支持摄像头的,我们可以来看一下?本篇文章主要介绍了详解linux 摄像头驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参 ...

  6. 音视频学习之-YUV裸数据

    音视频技术分层结构(雷神的图) 1 什么是yuv? YUV中,Y表示明亮度,也就是灰度值:而U,V则表示色度,用于描述影像色彩及饱和度,用于指定像素的颜色. YUV将亮度信息Y与色彩信息UV分离,没有 ...

  7. linux编译ffmpeg_[Cmake-Android音视频]ffmpeg3.4编译支持neon,硬解码

    编译环境 Ubuntu16.04 x86_64 Ffmpeg3.4 ndk-r14b 编译前的准备 ubuntu16.04 64位 Index of /releases/16.04.3​release ...

  8. 音视频编解码: YUV采样格式中的YUV444,YUV422,YUV420理解

    YUV各种采样格式的说明 通常我们用RGB表示一种彩色.计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色. 而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像 ...

  9. C++音视频编程探秘

    C++音视频编程探秘(C++ Audio and Video Programming Unveiled) 一.引言(Introduction) C++音视频编程简介(Overview of C++ A ...

  10. 夏曹俊FFmpeg 4.3 音视频基础到工程应用

    正在学夏老师的音视频课程,监控实战啥的,感觉收获不小呀 学习笔记整理 第1章 开发环境准备和ffmpeg跨平台源码编译 第2章 图像格式_基于QT和SDL渲染 第3章 FFmpeg AVFrame视频 ...

最新文章

  1. 【 C 】在双链表中插入一个新值的简明程序
  2. 最全的C#图片处理帮助类ImageHelper
  3. SQL中的left join
  4. Excel VBA - 文件及目录操作
  5. Windows 服务程序编写
  6. SQLi LABS Less 25 联合注入+报错注入+布尔盲注
  7. django配置mysql
  8. SylixOS线程创建的流程分析
  9. Nginx常见错误码解决方案
  10. 剑指offer面试题63. 股票的最大利润(动态规划)
  11. 你写得API接口代码真是一坨屎,难道不能对返回格式统一处理一下吗?
  12. POJ 1191 棋盘分割【区间类DP】
  13. mysql的架构及查询sql的执行流程(一)
  14. 最新 android 机型,安卓11支持哪些机型,Android11适配机型一览
  15. 软件测试的测试代码,软件测试(示例代码)
  16. 微软发布了最新的Sync Framework 2.0 CTP2
  17. MP3参数,格式,术语有关一切内容详解。
  18. 区块链会计案例_或许你也曾想过:区块链正在改变着会计行业!
  19. FATAL: License file expired:金仓数据库过期了...
  20. 硅谷火爆的云原生,你会玩吗?

热门文章

  1. 为什么充电电流变化有点大
  2. 第十三届全国大学生智能汽车竞赛获奖名单
  3. 厉害了!这支获得国家级荣誉的智能车队
  4. 修改 mysql 字符集_如何修改MySQL字符集
  5. 生命周期共有那几个阶段_一文搞懂ReactNative生命周期的进化
  6. 360p4虚拟服务器,360安全路由p4c常见的问题以及解决方法介绍
  7. 太阳光是平行光吗_科普文系列活动 || 奇妙的光现象
  8. vecm模型怎么写系数_经典传染病的SIR模型(基于MATLAB)
  9. oracle中DBWR全称,Oracle基本术语大全
  10. css媒体查询标准,CSS 媒体查询 - 实例