报出这个问题,应该是对给的url解析不正确,我给的是rtsp的视频流地址,应该是对该格式解析异常。
所以参考两篇文:
QT无法播放视频:报错:DirectShowPlayerService::doRender: Unresolved error code 0x80040266
用QML实现简单音视频播放器的实践
根据报错和文中提示可以知道:
在Windows系列(Windows XP、Windows 7、Windows 8)平台上,用QML的MediaPlayer控件配合VideoOutput对音频文件和视频文件进行播放,运行时会报错:
DirectShowPlayerService::doRender: Unresolved error code 80040266
或者我这个错误
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d
chatGPT相关回答:
解决方法,安装有关DirectShowService解码器LAV Filters
Qt在windows上的多媒体播放功能是使用系统的DirectShow(底层是使用DirectShowPlayerService),所以安装或者更新DirectShow解码器就行了。
Qt在Linux下使用gstreamer,Windows下使用directshow。总之,Qt没有直接使用解码库,而是对平台相关的播放器框架做了封装,提供了平台无关的API。gstreamer依赖ffmpeg,它里面的很多元素是基于ffmpeg实现的。因此,Linux下Qt的自带的mediaplayer需要安装gstreamer-0.10-ffmpeg。
LAV Filters下载链接:
Releases · Nevcairiel/LAVFilters (github.com)
安装位置在你的qt安装目录。
安装完成后,在运行程序,视频可以正常播放。