微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Qt 使用 MPV 开源播放器

MPV Player

mpv 是基于 MPlayer 和 mplayer2 的媒体播放器。它支持多种视频文件格式,音频和视频编解码器以及字幕类型。特殊的输入URL类型可用于从磁盘文件以外的各种来源读取输入。根据平台,支持多种不同的视频和音频输出方法

mpv 官网:https://mpv.io/

mpv 维基百科:https://github.com/mpv-player/mpv/wiki

mpv 手册页面:https://mpv.io/manual/stable/

mpv OPTIONS:https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst

使用 mpv 开发的应用:https://github.com/mpv-player/mpv/wiki/Applications-using-mpv

MPV 提供 的Qt Demo

mpv 官方在这里提供了几个 Qt Demo,具体描述可以看 README.md,我们找到目录下 qt 这个工程,下载下来并配置好 .pro 文件,运行打开视频后的效果图如下:

在这里插入图片描述

在这里插入图片描述

工程下载:

github-mpvDemo

修改后的 Qt Demo

从 mpv 官方下载来的 Demo 将界面和 mpv 类封装在了一起,不太适合二次开发,所以简单做了下修改,运行打开视频后的效果图如下:

在这里插入图片描述

工程下载:

github-mpvDemoModif

客户端 API 示例

播放视频流

// mpv_handle *mpv;
QString filename = "C:\Users\Administrator\Videos\test.mp4";
const char *args[] = {"loadfile", filename.toUtf8().data(), NULL};
mpv_command_async(mpv, 0, args);

mpv_command_async 也可以拉流,或者播放网络上的视频。

暂停

mpv_set_option_string(mpv, "pause", "yes");

如果要取消暂停,可以将 “yes” 改为 “no”。

录制

mpv_set_option_string(mpv, "stream-record", "./out.mp4");

如果要取消录制,可以将 “./out.mp4” 改为 " ",录制到空路径则相当于取消录制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐