网站后台需求,无锡网站制作建设,建设网站如何赚钱,wordpress兼容mip在此记录一下Qt下视频应用开发的自学历程#xff0c;可供初学者参考和避雷。
了解常用音频格式yuv420p、h264等了解QML#xff0c;了解QVideoOutput类的使用#xff0c;实现播放yuv420p流参考ffmpeg官方例程#xff0c;调用解码器实现h264解码播放 不需要手动分帧。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这部分相信也不难了。