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

嵌入式Qt使用ffmpeg视频开发记录

在此记录一下Qt下视频应用开发的自学历程,可供初学者参考和避雷。

  • 了解常用音频格式yuv420p、h264等
  • 了解QML,了解QVideoOutput类的使用,实现播放yuv420p流
  • 参考ffmpeg官方例程,调用解码器实现h264解码播放
    • 不需要手动分帧。ffmpeg库函数av_parser_parse2可以帮我们完成分帧,不足一帧的数据也会继续留在上下文中,不用担心,大可从文件中不断读取固定长度的数据送入parser,获取到完整的packet后就可以向解码器中传入packet数据
    • 只有在avcodec_receive_frame获取完整的帧后,avframe中的信息才可用,其他时候读到的是无效值
    • 解码后的YUV通道数据分别保存在avframe->data[0]、avframe->data[1]、avframe->data[2],仅通过avframe->data[0]取数据,大概率可以取到不完整的UV数据,表现为视频颜色有残影,因为这几段数据内存不连续。如果要将数据发送到VideoOutput显示,需要将YUV数据拷贝到一段连续的内存。
      请添加图片描述

因为VideoOutput支持YUV格式,所以就没有再转成RGB,这部分相信也不难了。

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

相关文章:

  • iOS 17.4 Not Installed
  • CTF之WEB(sqlmap tamper 参数)
  • 多点DMALL启动招股:将在港交所上市,聚焦数字零售服务
  • 【c++篇】:解读Set和Map的封装原理--编程中的数据结构优化秘籍
  • ollama部署bge-m3,并实现与dify平台对接
  • 在并发情况下,Elasticsearch如果保证读写一致?
  • AMD的AI芯片Instinct系列介绍
  • 【知识科普】设计模式之-责任链模式
  • fiddler安卓雷电模拟器配置踩坑篇
  • 机器学习5-多元线性回归
  • Linux kernel 堆溢出利用方法(三)
  • 对于GC方面,在使用Elasticsearch时要注意什么?
  • Xilinx PCIe高速接口入门实战(一)
  • Flume 监控配置和实践
  • 深度学习基础1
  • 《FPGA开发工具》专栏目录
  • 李春葆《数据结构》-查找-课后习题代码题
  • 【Git】:分支管理
  • C、C++ 和 Java的区别
  • 【Python-Open3D学习笔记】005Mesh相关方法
  • js原型、原型链和继承
  • 团队自创【国王的魔镜-2】
  • c++编程玩转物联网:使用芯片控制8个LED实现流水灯技术分享
  • 【Jenkins】docker 部署 Jenkins 踩坑笔记
  • Unreal Engine使用Groom 打包后报错
  • 嵌入式QT学习第3天:UI设计器的简单使用
  • 【连接池】.NET开源 ORM 框架 SqlSugar 系列
  • 图论入门编程
  • 在Java中使用Apache POI导入导出Excel(三)
  • UR开始打中国牌,重磅发布国产化协作机器人UR7e 和 UR12e