嵌入式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数据拷贝到一段连续的内存。
- 不需要手动分帧。ffmpeg库函数
因为VideoOutput支持YUV格式,所以就没有再转成RGB,这部分相信也不难了。
原文地址:https://blog.csdn.net/momomomo90/article/details/144074498
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!