zoukankan      html  css  js  c++  java
  • 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:UsersAdministratorVideos	est.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 和 维基百科。


  • 相关阅读:
    59. Spiral Matrix II
    58. Length of Last Word
    57. Insert Interval
    56. Merge Intervals
    55. Jump Game
    54. Spiral Matrix
    53. Maximum Subarray
    52. N-Queens II
    51. N-Queens
    java封装学习
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/12101330.html
Copyright © 2011-2022 走看看