嵌入式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,这部分相信也不难了。

相关推荐
QMCY_jason4 分钟前
RK3588 交叉编译ffmpeg提示rockchip_mpp>=1.3.9 错误的问题
ffmpeg
华法林的小助手7 分钟前
[学习笔记]在ros humble里使用qt
笔记·qt·学习
reasonsummer24 分钟前
【教学类-160-01】20260408 AI视频培训-练习1“豆包AI视频”
人工智能·音视频
颜大哦26 分钟前
文字转音频,视频
音视频
ada0_ada115 小时前
qt模块学习记录
开发语言·qt·学习
knighthood200116 小时前
Qt5.15+VTK9.3.0实现点云点选功能
开发语言·qt
xyx-3v17 小时前
qt创建新工程
开发语言·c++·qt
大神的风范18 小时前
QT部署YOLO11实时检测
驱动开发·深度学习·qt·目标检测·计算机视觉
cpp_learner18 小时前
Linux ARM架构 使用 linuxdeployqt 打包QT程序
qt
泉飒19 小时前
C2001: 常量中有换行符-QT解决办法-逆向思路
开发语言·qt