下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放:

  1. 项目介绍
  2. 为OLED屏幕开发I2C驱动
  3. 使用cuda编程加速视频处理

这篇文章主要对项目的实现做整体的介绍, 包括硬件的需求, 最终实现的视频播放效果, 以及软件的实现思路.

1). 硬件需求

  • beaglebone black board(之后简称bbb)
  • ssd1306 oled屏幕(支持i2c接口)
  • 支持cuda的N卡(用于视频处理加速)

2). 效果演示

跳转到6:48直接观看演示

3). 实现原理

下图是系统中各部分的交互关系:

  • 待播放视频以mp4文件的形式保存. OLED屏幕不支持彩色, 并且要求每帧视频分辨率为128x64, 所以需要对视频数据进行resize和灰度处理, 使用GPU编程完成这部分的数据处理.
  • bbb板子上运行着debian系统, 需要开发OLED屏幕的I2C驱动, 以及一个用户态程序, 其中用户态程序负责接收GPU处理之后的视频数据, 并且通过I2C设备驱动暴露的文件系统接口, 操作屏幕播放视频

总结下来, 实际的代码开发的工作主要包括:

  1. Host Machine:

    • cuda视频处理加速
    • 用户态程序, 调用cuda代码处理视频, 并作为服务器把视频数据发送给bbb
  2. bbb板子:

    • SSD1306 OLED屏幕的I2C驱动开发
    • 用户态程序, 从Host Machine请求数据, 操作设备播放视频

之后的文章中将逐一介绍代码中的实现细节.

4). 文末推广

感觉还不错的小伙伴, 欢迎关注我的B站账号, 或者加入QQ群838923389, 一起研究计算机底层技术, 一起搞事情:P

用OLED屏幕播放视频(1): 项目介绍的更多相关文章

  1. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...

  2. 嵌入式 vlc从接收到数据流到播放视频的过程分析(经典)

    个人整理: Vlc流播放流程 vlc源码目录树: 目录名称 说明 bindings Java, CIL 和Python绑定 doc 帮助文档 (不是更新的) extras 另叙. include VL ...

  3. OLED的波形曲线、进度条、图片显示(STM32 HAL库 模拟SPI通信 5线OLED屏幕)详细篇

    少废话,先上效果图 屏幕显示效果         全家福 一.基础认识及引脚介绍 屏幕参数: 尺寸:0.96英寸 分辨率:128*64 驱动芯片:SSD1306 驱动接口协议:SPI 引脚说明: 二. ...

  4. CanvasWebgl项目介绍

    CanvasWebgl 介绍 CanvasWebgl 是一个基于webgl 开发的2d绘图框架,使用TypeScript开发   CanvasWebgl的功能,是在屏幕空间 或者 3D空间产生一个画布 ...

  5. Android MediaPlayer和SurfaceView播放视频

    昨天介绍了VideoView播放视频,今天再介绍一种播放视频的方法MediaPlayer和SurfaceView,MediaPlayer播放音频,SurfaceView来显示图像,具体步骤如下: 1. ...

  6. Windows Phone 7 播放视频

    在Windows Phone 7中播放视频有两种方式,一种是使用MediaElement 控件来播放,一种是使用启动器MediaPlayerLanucher来实现视频的播放.用MediaElement ...

  7. [转]Android WebView播放视频(包括全屏播放),androidwebview

    Android WebView播放视频(包括全屏播放),androidwebview 最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里 ...

  8. Android 播放视频并获取指定时间的帧画面

    最近做的项目要求既能播放视频(类似于视频播放器),又能每隔1s左右获取一帧视频画面,然后对图片进行处理,调查了一周,也被折磨了一周,总算找到了大致符合要求的方法.首先对调查过程中涉及到的方法进行简单介 ...

  9. Windows Phone 之播放视频

    在Windows Phone 7中播放视频有两种方式, (1)使用MediaElement 控件来播放:用MediaElement 控件来播放视频比较灵活,你需要自己去实现播放暂停进度条等等的功能,播 ...

  10. TextureView+SurfaceTexture+OpenGL ES来播放视频(三)

    引自:http://www.jianshu.com/p/291ff6ddc164 做好的Demo截图 opengl-video 前言 讲了这么多,可能有人要问了,播放视频用个android封装的Vid ...

随机推荐

  1. drf——登录功能、认证、权限、频率组件(Django转换器、配置文件作用)

    Django转换器.配置文件作用 # django转换器 2.x以后 为了取代re_path int path('books/<int:pk>')--->/books/1---> ...

  2. 【技术积累】Python中的Pandas库【二】

    如何在 Pandas 中进行文本的匹配和替换操作? 在 Pandas 中,使用 str 属性与正则表达式可以进行文本的匹配和替换操作.下面是一些常用的方法: str.contains():判断字符串中 ...

  3. 用声明式宏解析 Rust 语法

    在上一篇 Rust 声明式宏中的 Metavariables 有哪些 的基础上, 今天尝试解析一下 Rust 中的几种 item.我们知道一个 crate 是由 item 组成的,每一个 fn str ...

  4. Shodan使用指南

    Shodan是用于搜索连接到互联网的设备的工具.与搜索引擎可以帮助你找到网站不同,Shodan可以帮助你找到有关台式机,服务器,IoT设备等的信息.此信息包括元数据,例如在每个设备上运行的软件. Sh ...

  5. Paimon读取流程

    查询模式 先来看看官网关于Paimon查询模式的说明 可以看到查询模式围绕snapshot展开, 而snapshot分了两种一种是Last compact snapshot和 last snapsho ...

  6. Linux系统运维之Web服务器Nginx安装

    一.介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.本文先整理web服务器内容. 二.环境及软件版本 操作 ...

  7. 每日一题 力扣 445 https://leetcode.cn/problems/add-two-numbers-ii/

    可以直接用栈去做就行,逆序想到栈的做法 然后算完一个就直接赋值给答案数组  我用的是常见 public ListNode addTwoNumbers(ListNode l1, ListNode l2) ...

  8. 分布式多协议接入网关FluxMQ-2.0功能说明

    FluxMQ-2.0版本更新内容 前言 FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台.FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟 ...

  9. javascript高级程序设计第三版FileApi 学习与实践1

    文件操纵 File API File API 在表单中的文件输入字段的基础上,又添加了一些直接访问文件信息的接口. H5 在 DOM 元素中为文件输入元素添加了一个 files 集合. 在通过文件输入 ...

  10. PlayWright(二十二)- allure插件(一)

    在上文中,我们介绍并使用了pytest-html插件,总之并不复杂,但是今天我们要讲一个比pytest-html插件强很多的插件allure报告,我们要掌握他并且灵活使用,之后的框架就不需要考虑其他的 ...