Qt音视频开发15-mpv事件订阅
2023-09-14 09:01:41 时间
一、前言
在使用libmpv的过程中,通过对mpv事件订阅,可以更准确和准时的得知一些事件,比如文件打开成功,播放状态的改变等,而不需要定时器去读取状态,尤其是打开成功这个事件,如果不采用事件订阅,有时候视频流会卡主一阵子,比如不存在的视频流或者网络不好的情况下,有两种办法可以规避这个情况,在vlc和ffmpeg解码中也是如此,一种方法是将这个打开直接放到线程中执行,本来解码处理就是一个完整的线程类,所以直接通过标志位的更改来在线程中执行初始化,毫无压力不卡主,还有一个办法就是采用事件回调,得到打开成功以后,再去执行其他的处理比如读取视频的宽度高度等信息,这些信息一般都是需要打开文件成功以后才能读取到的。
毫无疑问mpv也支持事件订阅,通过mpv_observe_property函数将需要订阅的属性事件更改加入事件订阅队列,这个函数有四个参数,第一个参数指mpv对象(通过mpv_create产生的),第二个参数指用户数据,如果不需要的话直接填0,一般都不需要,第三个参数指属性名称,至于属性名称是啥叫啥,可以官网查阅手册(http://mpv.io/manual/master/#properties),第四个参数指属性的格式类型。一般来说都会对这几个属性事件的更改订阅:duration(文件长度)、time-pos(当前播放进度)。事件订阅好以后执行mpv_set_wakeup_callback函数设置事件回调函数处理即可。
二、功能特点
- 多线程实时播放视频流+本地视频等。
- 支
相关文章
- qt tcpsocket_qt中udp通信
- Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用
- Qt中各种消息框的使用
- QT多线程实战_Qt多线程开发项目
- C/C++ Qt 自定义Dialog对话框组件应用
- C/C++ Qt 编译打包项目
- C/C++ Qt QThread 线程组件应用
- Vmware虚拟机中CentOS安装 CentOS安装Qt的教程图解
- 如何在Linux系统中安装Qt开发环境(linux下qt安装教程)
- 使用Qt快速设置Linux时间(qt设置linux时间)
- Linux安装Qt:实现轻松易用之旅(linux中安装qt)
- 开发Linux程序,利用Qt软件实现虚拟键盘(linuxqt软键盘)
- 通信在Linux下使用Qt实现串口通信(qtlinux串口)
- 开发Linux下用Qt开发:简单易用的开发方式(linux用qt)
- Linux下的Qt编译器之旅(qt编译器linux)
- Linux Qt新版本发布,操作更流畅(linuxqt发布)
- Linux下构建Qt程序步骤(linux打开qt)
- 开发linux下 Qt 图形界面开发实践(linux下qt图形界面)
- Linux系统如何下载并安装Qt框架?(qtlinux下载)
- Qt for Linux:下载与安装指南(qt下载linux)
- 从零开始:Qt 编译在 Linux 上的指南(qt编译linux)
- 快速搭建Qt环境中的MySQL数据库(qt配置mysql数据库)
- Qt编程实现MySQL数据库调用(qt调用MySQL数据库)
- 入门Linux下Qt编程,掌握技巧!(linux下qt编程入门)
- 加速Linux应用开发——QT开发技巧大揭秘(qtlinux开发)
- 配置Linux的QT环境变量,轻松打造高效开发环境(qt环境变量linux)
- 轻松实现QT直连Microsoft SQL Server(qt直连mssql)
- Qt与SQLServer结合,提升开发效率(qt和sqlserver)
- MySQL驱动Qt开发:新开发者的进阶指南(mysql驱动 qt)
- 从 Qt 中编译到 MySQL 的进程(qt mysql 编译)