基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流

网友投稿 1855 2022-09-28

基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流

基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流

此篇是 ​​使用VLC浏览器插件播放RTSP流​​的姊妹篇。

一.直接使用libVLC

libVLC是VLC media player多媒体框架的核心引擎和接口,开发者使用它能轻松的创建大量具有VLC特性的应用。

​​最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器​​详细介绍了libVLC的获取及使用方法,里面提到了如何将libVLC嵌入到程序程序中,只需将窗口或者控件的句柄传递给libvlc_media_player_set_hwnd()函数即可,Qt中使用WId QWidget::winId()可以获得句柄。这里有一点需要注意,如果把libVLC嵌入到程序中的话,“全屏”功能就不能使用了。

libVLC虽然给了三个和全屏有关的API,如下:

//切换全屏 / 恢复LIBVLC_API void libvlc_toggle_fullscreen( libvlc_media_player_t *p_mi ); //设置全屏 / 恢复,由b_fullscreen决定LIBVLC_API void libvlc_set_fullscreen( libvlc_media_player_t *p_mi, int b_fullscreen ); //获取是否全屏LIBVLC_API int libvlc_get_fullscreen( libvlc_media_player_t *p_mi );

但是同时给了以下说明:

* @warning With most window managers, only a top-level windows can be in* full-screen mode. Hence, this function will not operate properly if* libvlc_media_player_set_xwindow() was used to embed the video in a* non-top-level window. In that case, the embedding window must be reparented* to the root window before fullscreen mode is enabled. You will want* to reparent it back to its normal parent when disabling fullscreen.

这个问题其实还是有些影响的,于是​​ntadej​​大神坐不住了,做了一个libVLC的Qt封装VLC-Qt,支持全屏显示。

二.VLC-Qt简介

VLC-Qt是结合了Qt和libVLC的免费开源库。它包含了媒体播放的核心类以及一些GUI类,这些类加快了媒体播放器的开发。

VLC-Qt 封装了整个libVLC,因此具备libVLC的所有功能。比如说允许创建多个libVLC实例和播放器,单个文件或列表播放,影视频控制,元数据管理。

VLC-Qt包含widgets库和QML库两部分,widgets库中包含了一些简单的、提前准备好的超类(用来被继承的类),包括video widget,seek widget,volume slider和audio and video controllers。QML库提供了基于OpenGL的简单播放。

官网链接:​​Quickly create a fully functional cross-platform media player - VLC-Qt​​

三.VLC-Qt的使用

我使用的是Windows 32-bit(MinGW)版本的VLC-Qt库,可以去官网-。

Qt版本我用的是Qt 5.5.1 MinGW

官网已经给了两个例子​​= new VlcInstance(VlcCommon::args(), this);_player = new VlcMediaPlayer(_instance);_player->setVideoWidget(ui->video);_equalizerDialog->setMediaPlayer(_player);ui->video->setMediaPlayer(_player);ui->volume->setMediaPlayer(_player);ui->volume->setVolume(50);ui->seek->setMediaPlayer(_player);

下图是播放本地视频:

下图是播放RTSP流:

经测试,下面两个RTSP地址可以正常使用。

rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

rtsp://218.204.223.237:554/live/1/67A7572844E51A64/f68g2mj7wjua3la7.sdp

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:H.264(H264)解码SPS获取分辨率和帧率
下一篇:Leetcode-SQL学习计划-SQL入门-584:寻找用户推荐人
相关文章

 发表评论

暂时没有评论,来抢沙发吧~