标题:Qt音视频开发14-mpv读取和控制
作者:liudianwu
日期:2020-08-20 17:38
内容:
## 一、前言
用mpv来读取文件的信息,以及设置当前播放进度,音量、静音等,和当时vlc封装的功能一样,只不过vlc是通过调用函数接口去处理,而mpv是通过读取和设置属性来处理,vlc支持定时器或者线程中函数方法去读取状态,也支持事件回调去拿到对应的状态改变,mpv当然也支持,而且还更方便,主要的工作量或者花费的时间在如何知道有哪些属性、分别是什么功能含义,这个在官方都列出来了(http://mpv.io/manual/master/#options、http://mpv.io/manual/master/#list-of-input-commands、http://mpv.io/manual/master/#properties),不过都是英文就是,大部分程序员应该是没有什么难度的,大不了鼠标右键翻译成中文即可,哈哈,相信不少人都这么干过,很多浏览器默认就支持鼠标右键菜单翻译的,实在是很方便的,本人在查阅很多英文文档的时候,用的也是蛮多的,包括Qt官方的文档和BUG报告页面,但是建议在搜索问题的时候还是建议尽量用英文的描述去搜索,这样才能搜索的更精确。
常用的一些属性:
1. 视频原始宽度高度 width height
2. 视频缩放后宽度高度 dwidth dheight
3. 保存视频文件 stream-record 为空则表示停止录像
4. 视频宽高比 video-aspect
5. 暂停播放 pause yes表示暂停no表示继续
6. 视频文件时长 duration
7. 静音 mute yes表示静音no表示非静音
8. 音量 volume int值0-100
9. 获取播放进度 time-pos
10. 设置播放进度 seek
11. 当前音轨 aid
12. 音轨数量 track-list/count
13. 截图 screenshot-to-file
## 二、功能特点
1. 多线程实时播放视频流+本地视频等。
2. 支持windows+linux+mac。
3. 多线程显示图像,不卡主界面。
4. 自动重连网络摄像头。
5. 可设置是否保存到文件以及文件名。
6. 可直接拖曳文件到mpvwidget控件播放。
7. 支持h265视频流+rtmp等常见视频流。
8. 可暂停播放和继续播放。
9. 支持存储单个视频文件和定时存储视频文件。
10. 自定义顶部悬浮条,发送单击信号通知,可设置是否启用。
11. 可设置画面拉伸填充或者等比例填充。
12. 可对视频进行截图(原始图片)和截屏。
13. 录像文件存储MP4文件。
14. 支持qsv、dxva2、d3d11va等硬解码。
## 三、效果图
## 四、相关站点
1. 国内站点:[https://gitee.com/feiyangqingyun/QWidgetDemo](https://gitee.com/feiyangqingyun/QWidgetDemo)
2. 国际站点:[https://github.com/feiya ..