当前位置: 首页 > article >正文

Qt编写ffmpeg本地摄像头显示(16路本地摄像头占用3.2%CPU)

一、前言

内核ffmpeg除了支持本地文件、网络文件、各种视频流播放以外,还支持打开本地摄像头,和正常的解析流程一致,唯一的区别就是在avformat_open_input第三个参数传入个AVInputFormat参数,这个参数用于指定输入设备的格式,不同系统对应不同的格式名称,windows上是dshow或者vfwcap,linux上是video4linux2或者v4l2,mac上是avfoundation。同时本地摄像头涉及到分辨率帧率等参数的设置,这个需要在最开始调用av_dict_set的时候就设置好,用video_size来设置分辨率,格式是 640x480 这样,用framerate来设置帧率,以上的几个参数成功生效的前提是要设备本身支持对应的分辨率帧率等,比如设备本身只有720P你硬是要设置个1080P的分辨率那肯定不行的,应该会打印I/O error这类错误提示。

这里有个插曲要说下,老早以前就用ffmpeg打开了本地摄像头解析,是在windows上实现的,尽管其他系统也设置了对应的格式,但是始终无法打开,要注意两点,第一点就是必须用动态库,静态库的ffmpeg中默认无法继承本地摄像头的支持,所以在编译期间就会报错。第二点就是填入的url地址是不需要video=开头的,在windows上需要用video=开头,所以要做个区分处理,比如windows上是 video=USB Video Device,而linux上直接是 /dev/video0 。

二、功能特点

2.1 基础功能

  1. 支持各种音频视频文件格式,比如mp3、wav、mp4、asf、r

http://www.kler.cn/a/4195.html

相关文章:

  • 【Docker】使用Dev Container进行开发
  • php-2025面试题准备
  • Android-V lmkd 中的那些属性值
  • 如何使用Ultralytics训练自己的yolo5 yolo8 yolo10 yolo11等目标检测模型
  • Jenkins与不同阶段测试的完美结合
  • 【gin】中间件使用之jwt身份认证和Cors跨域,go案例
  • HTML5 Web SQL数据库
  • MySQL插入数据
  • python调用CC++
  • 物联网--Zigbee协议(二):Zigbee协议架构以及数据帧结构
  • 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字 p205 -- Java Version
  • Python的23种设计模式(完整版带源码实例)
  • 卷积神经网络(convolutional neural network, CNN)
  • [golang gin框架] 10.Gin 商城项目介绍
  • GPT-4 介绍
  • 编程培训班出来的程序员都是垃圾?别骂了,破防了
  • STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建
  • 毕业设计——基于小程序云开发的校园二手交易平台(附源码)
  • Mac M1 使用 WebStorm 卡顿解决方法
  • 原神 Android 教程 —安卓版
  • 4大类11种常见的时间序列预测方法总结和代码示例
  • 基于CNN网络的轴承故障诊断
  • Linux-VIM使用
  • 【数据安全】4. Android 文件级加密(File-based Encryption)之密钥管理
  • 手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!
  • GPT-4创造者:第二次改变AI浪潮的方向