VAPS XT入门教程15.04.01:视频播放器
系列索引:VAPS XT入门系列索引
上一篇:VAPS XT入门教程15.04:CodedObject机制
VAPS XT4.2及以后的版本中提供了视频解码器插件,用于配合视频模块在界面播放视频。
本文提供一种视频播放方式,可以在之前的版本中使用,或者作为官方模块的补充。
在VAPS XT入门15.04:CodedObject机制中我们介绍了基于OpenGL显示画面的操作,本文基于此操作。
本文的操作为:
- 创建共享内存sm
- 使用ffmpeg解码视频,并将解码后的数据填充到sm中
- 创建CodedObject DLL并从sm中获取数据
- 使用OpenGL将sm中的数据显示在界面上
根据以上操作流程,可以知道此方法只适用于Windows平台(因为CodedObject只能在Windows上)。
解码
创建一个Qt项目用于显示测试是否解码正常。
参考FFmpeg5入门教程07:解码视频并保存为YUV格式文件(YUV420P/YUV420SP)使用FFmpeg解码视频并填充数据至共享内存中
解码完成后,发送信号给界面通知解码完成。
CodedObject
创建一个根工程名为Video
按照VAPS XT入门15.4:CodedObject 机制创建一个空CodedObject界面,名为H264Video
然后从共享内存中提取界面后的YUV数据,并作为纹理绘制到界面中,可以参考QOpenGL入门09:纹理贴图
效果为
说明
- 视频解码后,VAPS XT就会自动显示视频画面,不需要编译程序
- 测试视频为Windows+Linux下Qt动态加载VAPS XT动态链接库视频,视频大小为1920x1280,但是这个尺寸运行时VAPS XT会奔溃,所以我将其缩小为1080x720,运行正常
技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导
VAPS XT入门教程15.04.01:视频播放器
https://blog.jackeylea.com/vapsxt/vapsxt-play-video-with-codedobject/