前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FFMPEG读取v4l2并显示!

FFMPEG读取v4l2并显示!

作者头像
用户6280468
发布2022-11-28 17:35:46
1.4K0
发布2022-11-28 17:35:46
举报
文章被收录于专栏:txp玩Linuxtxp玩Linux

前言:

最近问v4l2的人挺多的,等忙完这段时间,后面有空研究一下。今天给大家分享一些应用demo;

开源DEMO介绍:这个项目是利用FFMPEG读取虚拟机的v4l2摄像头设备,并利用SDL播放器显示出来,下面这个是整个项目的框图:

运行的效果如下:

下面我们来看看代码的分析:

  • Main函数的分析:

我们来看看main函数的代码,main函数的代码很简单,基本上是一些函数和线程的初始化,在这里我们分别初始化了AVFifoBuffer、摄像头读取线程、SDL显示线程三个部分。

  • read_camera_thread(摄像头读取线程):

上面代码就是read_camera_thread的代码、这里的功能主要有几个,首先是利用FFMPEG的API:

avformat_open_input

去打开V4L2的摄像头设备,我们这里的设备节点是/dev/video0。打开设备之后,利用av_read_frame API进行每一帧摄像头数据的读取。读取完成之后,进行格式转换成YUV420P,转换完成之后把YUV420P的数据存储到AVFifoBuffer队列。

  • sdl_show_thread(SDL显示线程):

上面则是,sdl_show_thread线程的代码。这个代码的主要功能是通过av_fifo_generic_read这个API拿到AVFifoBuffer队列的YUV数据,并利用SDL API把YUV数据刷新到播放器上面.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 txp玩Linux 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档