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

相关推荐
Macdo_cn21 分钟前
Infuse Pro for Mac v8.1 全能视频播放器 支持M、Intel芯片
macos·音视频
aaon223573 小时前
ubuntu ffmpeg 安装踩坑
linux·ubuntu·ffmpeg
进击ing小白5 小时前
QSplashScreen --软件启动前的交互
qt
m0_748245175 小时前
SpringCloud-使用FFmpeg对视频压缩处理
spring·spring cloud·ffmpeg
我爱蛋蛋后5 小时前
Linux驱动开发之音频驱动与基础应用编程
linux·c语言·驱动开发·音视频
Macdo_cn9 小时前
Screen Wonders for Mac v3.3.1 3D屏保应用 支持M、Intel芯片
macos·音视频
终极定律10 小时前
qt:输入控件操作
开发语言·qt
iummature12 小时前
FFmpeg命令
ffmpeg
苏三福13 小时前
rk3588/3576板端编译程序无法运行视频推理
arm开发·音视频
江同学_13 小时前
RTSP场景下RTP协议详解及音视频打包全流程
音视频