VAPS XT开发入门教程52:视频播放器
系列索引:VAPS XT入门系列索引
上一篇:VAPS XT开发入门教程51:VxWorks653移植
VAPS XT4.2及以后的版本中提供了视频解码器插件,用于配合视频模块在界面播放视频。
本文提供一种视频播放方式,可以在之前的版本中使用,或者作为官方模块的补充。
在VAPS XT入门34:加载VAPS XT CodedObject DLL中我们介绍了基于OpenGL显示画面的操作,本文基于此操作。
本文的操作为:
- 创建共享内存sm
- 使用ffmpeg解码视频,并将解码后的数据填充到sm中
- 创建CodedObject DLL并从sm中获取数据
- 使用OpenGL将sm中的数据显示在界面上
根据以上操作流程,可以知道此方法只适用于Windows平台(因为CodedObject只能在Windows上)。
解码
创建一个Qt项目用于显示测试是否解码正常。
参考FFmpeg5入门教程07:解码视频并保存为YUV格式文件(YUV420P/YUV420SP)使用FFmpeg解码视频并填充数据至共享内存中
解码完成后,发送信号给界面通知解码完成。
CodedObject
创建一个根工程名为Video
按照VAPS XT入门34:加载VAPS XT CodedObject DLL创建一个空CodedObject界面,名为H264Video
然后从共享内存中提取界面后的YUV数据,并作为纹理绘制到界面中,可以参考QOpenGL入门09:纹理贴图
效果为

说明
- 视频解码后,VAPS XT就会自动显示视频画面,不需要编译程序
- 测试视频为Windows+Linux下Qt动态加载VAPS XT动态链接库视频,视频大小为1920x1280,但是这个尺寸运行时VAPS XT会奔溃,所以我将其缩小为1080x720,运行正常
如果你有问题,如果是简单的问题可以发邮件给免费解惑,如果涉及难问题或者需要提供附加的服务(比如授权、大工程集成编译、多分区相关,或者作为中间商联系Presagis)可以联系上海亥伯智能科技有限公司 邮箱
技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导

VAPS XT开发入门教程52:视频播放器
https://feater.top/vapsxt/vapsxt-play-video-with-codedobject