linux摄像头 sdl,Linux音视频(SDL与YUV)
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)相关推荐
- 在linux系统下实现音视频即时通讯的部分代码
由于使用习惯,Linux在中国受欢迎程度远不如windows,相应的软件也比较少,尤其是音视频类的软件,但是,这并不代表就完全没有.下面介绍一款强大的音视频即时通讯平台给大家,它就是--Anychat ...
- Linux平台上的音视频互动开发平台
由于使用习惯,Linux在中国受欢迎程度远不如windows,相应的软件也比较少,尤其是音视频类的软件,但是,这并不代表就完全没有.下面介绍一款强大的音视频即时通讯平台给大家,它就是--Anychat ...
- 音视频之渲染yuv图片
音视频之opengl绘制三角形 音视频之opengl渲染图片 音视频之渲染yuv图片 前一篇我们讨论了如何渲染一个普通图片(rgb) 现在我们来讨论如何渲染一个yuv图片. 什么是yuv我们这里有一个 ...
- linux下ffmpeg采集音视频设备
Linux下查看音视频设备 1.视频输入设备: 命令查看:ls /sys/class/video4linux/ 执行结果如下: 如果系统存在video4linux文件夹说明已安装过视频驱动,video ...
- linux摄像头教程,linux 摄像头驱动编写方法教程
从某个角度来说,摄像头是各个厂家主打的应用功能.那么,linux是如何支持摄像头的,我们可以来看一下?本篇文章主要介绍了详解linux 摄像头驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参 ...
- 音视频学习之-YUV裸数据
音视频技术分层结构(雷神的图) 1 什么是yuv? YUV中,Y表示明亮度,也就是灰度值:而U,V则表示色度,用于描述影像色彩及饱和度,用于指定像素的颜色. YUV将亮度信息Y与色彩信息UV分离,没有 ...
- linux编译ffmpeg_[Cmake-Android音视频]ffmpeg3.4编译支持neon,硬解码
编译环境 Ubuntu16.04 x86_64 Ffmpeg3.4 ndk-r14b 编译前的准备 ubuntu16.04 64位 Index of /releases/16.04.3release ...
- 音视频编解码: YUV采样格式中的YUV444,YUV422,YUV420理解
YUV各种采样格式的说明 通常我们用RGB表示一种彩色.计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色. 而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像 ...
- C++音视频编程探秘
C++音视频编程探秘(C++ Audio and Video Programming Unveiled) 一.引言(Introduction) C++音视频编程简介(Overview of C++ A ...
- 夏曹俊FFmpeg 4.3 音视频基础到工程应用
正在学夏老师的音视频课程,监控实战啥的,感觉收获不小呀 学习笔记整理 第1章 开发环境准备和ffmpeg跨平台源码编译 第2章 图像格式_基于QT和SDL渲染 第3章 FFmpeg AVFrame视频 ...
最新文章
- 【 C 】在双链表中插入一个新值的简明程序
- 最全的C#图片处理帮助类ImageHelper
- SQL中的left join
- Excel VBA - 文件及目录操作
- Windows 服务程序编写
- SQLi LABS Less 25 联合注入+报错注入+布尔盲注
- django配置mysql
- SylixOS线程创建的流程分析
- Nginx常见错误码解决方案
- 剑指offer面试题63. 股票的最大利润(动态规划)
- 你写得API接口代码真是一坨屎,难道不能对返回格式统一处理一下吗?
- POJ 1191 棋盘分割【区间类DP】
- mysql的架构及查询sql的执行流程(一)
- 最新 android 机型,安卓11支持哪些机型,Android11适配机型一览
- 软件测试的测试代码,软件测试(示例代码)
- 微软发布了最新的Sync Framework 2.0 CTP2
- MP3参数,格式,术语有关一切内容详解。
- 区块链会计案例_或许你也曾想过:区块链正在改变着会计行业!
- FATAL: License file expired:金仓数据库过期了...
- 硅谷火爆的云原生,你会玩吗?
热门文章
- 为什么充电电流变化有点大
- 第十三届全国大学生智能汽车竞赛获奖名单
- 厉害了!这支获得国家级荣誉的智能车队
- 修改 mysql 字符集_如何修改MySQL字符集
- 生命周期共有那几个阶段_一文搞懂ReactNative生命周期的进化
- 360p4虚拟服务器,360安全路由p4c常见的问题以及解决方法介绍
- 太阳光是平行光吗_科普文系列活动 || 奇妙的光现象
- vecm模型怎么写系数_经典传染病的SIR模型(基于MATLAB)
- oracle中DBWR全称,Oracle基本术语大全
- css媒体查询标准,CSS 媒体查询 - 实例