Qt 使用 MPV 开源播放器

前言

因为做的一个项目中需要用到 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" 改为 " ",录制到空路径则相当于取消录制。

总结

这里由于篇幅原因,只是简单做了下总结,更多内容可以去查看 MPV 官网、Github 和 维基百科。

原文地址:https://www.cnblogs.com/linuxAndMcu/p/12101330.html

时间: 2024-11-10 09:15:03

Qt 使用 MPV 开源播放器的相关文章

搭建rtmp直播流服务之4:videoJS/ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用nginx-rtmp搭建直播流媒体服务器,以及使用ffmpeg推流到nginx-rtmp服务器,java通过命令行调用ffmpeg实现推流服务,后端的事情到这里就已经全部完成了. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二次开发就显得很有必要. 一.几种播放器选择 那么播放器,哪些已经不再更新的和收费的,这里不会介绍,只介绍两种轻量级的开源播放器. 1.

2015最新安卓开源播放器排名云视链在榜

很多同学问我安卓上哪些开源播放器比较好,这里我就统一排行一下. 1.Dolphin播放器(Dolphin Player)是一款开源的音频和视频播放器,它支持大多数的音频和视频文件模式,也支持大部分的字幕文件格式.它是基于ffmpeg的.在自己手机上装 了一下,感觉不错,绝大部分视频和音频都能播放,同时可以设置ffmpeg内核的很多参数. 特性: 支持多种字幕文件格式(srt, sub, utf, utf8..) 支持常用的音频视频播放操作 (播放, 暂停, 前进, 倒回, 调节音量) 支持 Ht

sewise发布最新HTML5开源播放器框架

sewise的HTML5播放框架实现的播放器是一款免费.开源的多媒体播放器,以HTML5技术为平台开发,同时兼容Flash技术,无缝实现了跨平台的任意视频播放. 跨平台播放,兼容HTML5播放器 支持跨终端播放,不仅适用PC端播放,也适配ipad.iphone.android手机.平板电脑等移动终端. 支持多系统多平台,PC端支持Window.MacOS.Linux 等,移动端支持Android.IOS.Window Phone等. 兼容HTML5,确保98%的互联网用户可以看到您的视频. 支持

搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流,再到nginx-rtmp发布流,后端的服务到这里就已经全部完成了. 如果这里的流程没走通,那么这里的播放器也是没办法播放实时流的. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二

QT制作一个图片播放器

前言:使用qt制作了一个简单的图片播放器,可以播放gif.png等格式图片 先来看看播放器的功能(当然是很简陋的,没有很深入的设计): 1.点击图片列表中图片进行播放. 2.自动播放,播放的图片的间隔时间可以自己设定,时间的单位是秒. 3.自动播放的时候再点击图片列表会停止自动播放,保存当前播放的图片的顺序,再次点击自动播放的时候将从当前开始. 4.自动播放到最后一张图片的时候将会停止自动播放,再次点击自动播放的时候将会从第一张图片开始. 先上图看看具体功能: 说完功能我们聊聊制作思路和使用到的

Linux 下编译Android-VLC开源播放器详解(附源码下载)

这两天需要做音视频播放相关的东西,所以重新找了目前android下的解码库.Android自带的解码库支持不全,因此很多第三方播放器都是自带解码器,绝大部分都是使用FFMpeg作为解码库.我11年的时候也弄过视频播放器,当时也是基于FFMpeg来做.那时候网上有关Android视频解码库的资料不多,只在git上找到一个人移植FFMpeg,把它弄下来编译,有兴趣可以看看当时的文章:Android 视频播放器 faplayer 编译 . 言归正传,今天的主角是大名鼎鼎的VLC,做过视频播放器的人,应

Android平台基于Vitamio的开源播放器

农民伯伯:https://github.com/over140/OPlayer 依赖Vitamio,下载最新的Vitamio: https://github.com/yixia/VitamioBundle 流媒体测试工具: vlc media player

Qt音乐播放器制作(三)Easy Player

今天发布了EasyPlayer的第一个版本,有兴趣的朋友可以到这里下载:基于Qt的在线音乐播放器EasyPlayer v1.0. 相对于上一篇文章,主要做了以下修改,还是先放图吧: 如图所示,爱折腾的博主又修改了界面. 最明显的变化在于去除了窗口边框,实现了自定义的最小化按钮和关闭按钮来操控窗体的相应动作. 然后,就是讲搜索列表和播放列表调换了位置,这么说来,搜索列表的右边按键要换了,改成"+"比较适合点. 最后,就是你们看到的,歌词显示界面了.第一个版本实现了歌词的同步搜索和显示,但

媒体播放器之:TCPMP播放器简介

*************************************************************************************************************************** 作者:EasyWave                                                             时间:2014.09.06 类别:Media播放器-TCPMP播放器简介