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

相关推荐
钱彬 (Qian Bin)6 小时前
项目实践4—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
人工智能·qt·fastapi
钱彬 (Qian Bin)6 小时前
项目实践3—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
人工智能·qt·fastapi
victory04316 小时前
在音频领域采用mamba模型可行性分析
音视频
Black蜡笔小新7 小时前
视频汇聚平台EasyCVR级联播放偶发失败排查:TCP主动模式下的3秒超时响应差
网络·tcp/ip·音视频
未来之窗软件服务7 小时前
未来之窗昭和仙君(二十八)商业收银开发音频播放——东方仙盟筑基期
microsoft·音视频·仙盟创梦ide·东方仙盟·昭和仙君
Code blocks8 小时前
GB28181视频服务wvp搭建(二)
后端·音视频
猫林老师9 小时前
HarmonyOS多媒体开发:自定义相机与音频播放器实战
数码相机·音视频·harmonyos
mortimer11 小时前
用一行 FFmpeg 命令,让噪音俯首,让语音转录更准确一点
ffmpeg·openai
江公望16 小时前
Qt qmlplugindump浅谈
开发语言·qt·qml
彡皮16 小时前
qt实用学习案例:数据库设计+图表显示+model-view模式+样式表定制
数据库·qt·学习