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

usb_camera传输视频流编码的问题记录!

前言:

大家好,今天给大家分享的内容是,一个vip课程付费的朋友,在学习过程中遇到了一个usb采集的视频数据流,经过ffmpeg编码,出现了问题:

d46dd17471233feadaf15aa18369ff29.png

问题分析:

其实这个问题不难,关键是要找到是什么原因导致编码压缩后的裸流h264视频解码出现问题。其中这里说的解码会变快,对于视频来说,一般是帧率不对:

89af2e69a2080dc1daae44ec4f990a97.png aa04d3658d2bd62f1f005612820d4bf7.png

从这个描述来看,很明显是数据源的问题,但是呢,这位朋友由于usb_camera驱动不是他搞得,因为底层驱动写死的fps是30帧,所以不太相信是源的问题;但是这里也不太可能是ffmpeg的x264编码器问题,所以呢,我就给这位朋友,分享了一个对比的方法去debug:

0744bcb18ebf44387c7269bd48805f3e.png f4bb85774e41607dd2d890d1098d2ed2.png

我让他去电脑ubuntu上,搞一个编码的demo,先确保自己的编码代码没有问题,后面去测试,果然是源的问题!

这里也总结一下,有时候,遇到问题,要大胆怀疑源的问题,因为有些做camera底层驱动的朋友,他不懂上层的音视频技术,所以可能导致发送给上层的数据流出现问题,有可能写完驱动,没有去测试数据流的正确性,而且上层的业务需求也是多样性的!当然,也折射出,做上层的音视频开发,对底层驱动,比如camera驱动框架不了解,也是很吃亏的!

同时这里也总结一下,在平时或者工作当中,遇到音视频的问题,一定要有解决思路和debug问题的方法,如果你没有方法去定位到问题的具体点,那基本很难解决这个问题,更别说是给出解决问题的方案了!

以上就是今天的内容分享,希望对大家有用!

http://www.lryc.cn/news/333616.html

相关文章:

  • Linux安装nginx保姆级教程
  • leetcode-判断二分图
  • 算法day30 回溯6
  • 分享three.js实现乐高小汽车
  • gpt的构造和原理
  • 基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】计算机毕业设计
  • K8S之Job和CronJob控制器
  • 基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。
  • 哈佛大学商业评论 --- 第三篇:真实世界中的增强现实
  • 华为ICT七力助推文化产业新质生产力发展
  • FastGpt流程
  • 怎么在UE游戏中加入原生振动效果
  • 【Hadoop技术框架-MapReduce和Yarn的详细描述和部署】
  • 蓝桥杯刷题 前缀和与差分-[3507]异或和之和(C++)
  • background背景图参数边渐变CSS中创建背景图像的渐变效果
  • 『大模型笔记』吴恩达:AI 智能体工作流引领人工智能新趋势
  • 腾讯光子工作室群 一面 (30min)
  • Linux的信号栈的实现(1)
  • Python学习笔记——heapq
  • 搜索与图论——拓扑排序
  • linux CentOS7配置docker的yum源并安装
  • vue结合Elempent-Plus/UI穿梭框更改宽度以及悬浮文本显示
  • 汇川PLC学习Day4:电机参数和气缸控制参数
  • 数据可视化高级技术Echarts(快速上手柱状图进阶操作)
  • 【数据结构与算法】力扣 206. 反转链表
  • 【随笔】Git 高级篇 -- 本地栈式提交 rebase | cherry-pick(十七)
  • 数据结构-- 基于顺序表的通讯录代码讲解
  • qt-C++笔记之QLabel加载图片
  • Unity中UI系统1——GUI
  • GIt 删除某个特定commit