1.前天新建了一个Qt Quick Application工程,然后可以运行,可以进行下一步了
2.由于要实现QML播放视频,c++来解码流数据并包装成通用视频格式(rtsp流),所以现在有多种方式实现,一种是基于libvlc的视频播放,一种是基于VLC-Qt的视频播放,一种是基于LAV_Filter的视频播放,还有基于FFmpeg的。
libvlc可以看这篇文章QT应用编程:基于VLC开发音视频播放器(句柄方式) - 腾讯云开发者社区-腾讯云
VLC-Qt可以看这篇文章QML中使用 VLC-Qt 播放网络视频流(附实例)_喵喵叫的猴的博客-CSDN博客_qml vlc
LAV Filters,是一套开源的DirectShow解码器,Qt里面的QMediaPlayer和QMediaPlayList是默认基于这种解码器进行视频解码播放的,如果事先没有安装LAV Filters,则Qt无法进行视频播放,会报一些诸如DirectShowPlayerService::doRender: Unresolved error code 0x80040218 () 的错误,解决方法就是安装这个就好了,主要看这篇博客,但是我试了下用压缩包解压管理员运行.bat的方法好像不行,我是通过安装的方式解决这类问题的。Qt播放视频报错 DirectShowPlayerService::doRender: Unresolved error code 0x80040266_@小戚的博客-CSDN博客
至于FFmpeg,暂时还没有深究……
3.暂时基于LAV Filters编了一个demo,如图(本地视频)
4.突然发现rtsp视频流还是播放不了,并且报的错有点不一样DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 (),一查也是说安装lav filter,所以还得找原因
5.后续待研究事项:调整播放区域尺寸; 播放rtsp流视频;基于VLC-Qt来开发播放器