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

相关推荐
零一iTEM12 分钟前
MAX98357A_音频输出测试
单片机·嵌入式硬件·开源·音视频·硬件工程
LYOBOYI1231 小时前
qtcpSocket详解
c++·qt
Android系统攻城狮2 小时前
Android16进阶之获取播放位置MediaPlayer.getCurrentPosition调用流程与实战(二百二十八)
音视频·android16·音频进阶·音频性能实战
炼金术2 小时前
SkyPlayer v1.2.0 : AI 字幕-端侧 Whisper 实时语音识别实践
ffmpeg·openai
无小道3 小时前
Qt——网络编程
开发语言·qt
愚公搬代码3 小时前
【愚公系列】《AI短视频创作一本通》020-AI短视频创作实例精解(文旅宣传AI短视频实例精解)
人工智能·音视频
云中飞鸿3 小时前
VS编写QT程序,如何向linux中移植?
linux·开发语言·qt
有位神秘人3 小时前
Android获取设备中本地音频
android·音视频
硫酸锌013 小时前
使用ffmpeg合并文件夹内的所有*.mp4格式视频
ffmpeg·音视频
源文雨4 小时前
shell调用ffmpeg递归转换所有wav至flac的脚本
ffmpeg·bash·音视频·音频·unix·shell·音频编码