Media Player Classic Qute Theater
Clone or download
cmdrkotori manager,mpvwidget: suppress multiple calls to volume set
Volume commands come from multiple places, which can trigger so it's
best that the volume be updated only once.

Fixes #224
Latest commit 2a3ae0d Sep 3, 2018
Permalink
Failed to load latest commit information.
.tx translations: fix typo in transifex config, and pull+lupdate Aug 19, 2018
DOCS ipc: implement deltaExtraPlaytimes command Jun 16, 2018
binaries make-release-win.sh: include youtube-dl too Mar 11, 2018
images mainwindow,manager: implement enable/next/previous subtitles Jul 15, 2018
mpv-dev mpv-dev: add to project Apr 19, 2016
platform misc: fix most warnings Aug 14, 2018
text settingswindow: move format documents to resources May 28, 2016
translations settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
.gitignore translations: add transifex support Aug 19, 2018
LICENSE Merge branch 'master' of https://github.com/cmdrkotori/mpc-qt Apr 14, 2015
README.md readme: update windows build process description May 14, 2018
actioneditor.cpp misc: fix most warnings Aug 14, 2018
actioneditor.h misc: fix most warnings Aug 14, 2018
drawnplaylist.cpp q[somename] -> [somename]: the great renaming May 28, 2018
drawnplaylist.h misc: fix most warnings Aug 14, 2018
drawnslider.cpp q[somename] -> [somename]: the great renaming May 28, 2018
drawnslider.h misc: fix most warnings Aug 14, 2018
drawnstatus.cpp settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
drawnstatus.h settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
favoriteswindow.cpp helpers,main,manager,mpvwidget: implement start times Oct 8, 2017
favoriteswindow.h favorites: add to project Sep 30, 2017
favoriteswindow.ui favorites: add to project Sep 30, 2017
helpers.cpp settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
helpers.h settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
ipcjson.cpp ipc: implement deltaExtraPlaytimes command Jun 16, 2018
ipcjson.h ipc: implement deltaExtraPlaytimes command Jun 16, 2018
ipcmpris.cpp misc: remove some fixmes Aug 14, 2018
ipcmpris.h misc: remove some fixmes Aug 14, 2018
logger.cpp logger,logwindow: add logging framework to project Aug 10, 2018
logger.h logger,logwindow: add logging framework to project Aug 10, 2018
logwindow.cpp logger,logwindow: add logging framework to project Aug 10, 2018
logwindow.h logger,logwindow: add logging framework to project Aug 10, 2018
logwindow.ui logger,logwindow: add logging framework to project Aug 10, 2018
main.cpp settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
main.h logger,logwindow: add logging framework to project Aug 10, 2018
mainwindow.cpp mainwindow: use the volume sliders max/min during scroll events Sep 3, 2018
mainwindow.h settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
mainwindow.ui logger,logwindow: add logging framework to project Aug 10, 2018
make-release-win.sh make-release-win: override the version number at qmake time Aug 4, 2018
make-win-icon.sh make-win-icon: speed up build May 15, 2018
manager.cpp manager,mpvwidget: suppress multiple calls to volume set Sep 3, 2018
manager.h misc: fix most warnings Aug 14, 2018
mpc-qt.desktop .desktop: add freestanding window as a desktop action Apr 10, 2018
mpc-qt.pro translations: pull+lupdate+push Sep 2, 2018
mpvwidget.cpp manager,mpvwidget: suppress multiple calls to volume set Sep 3, 2018
mpvwidget.h misc: fix most warnings Aug 14, 2018
openfiledialog.cpp helpers,mainwindow,openfiledialog: filter media extensions Mar 16, 2018
openfiledialog.h misc: fix most warnings Aug 14, 2018
openfiledialog.ui translations,*.ui: untag most suffixes et al as translatable Nov 28, 2017
paletteeditor.cpp paletteeditor,settingswindow: add to project Aug 25, 2017
paletteeditor.h paletteeditor,settingswindow: add to project Aug 25, 2017
playlist.cpp ipc: implement deltaExtraPlaytimes command Jun 16, 2018
playlist.h ipc: implement deltaExtraPlaytimes command Jun 16, 2018
playlistwindow.cpp misc: fix most warnings Aug 14, 2018
playlistwindow.h misc: fix most warnings Aug 14, 2018
playlistwindow.ui images: use svg not png May 25, 2017
propertieswindow.cpp propertieswindow: implement save as functionality Aug 29, 2017
propertieswindow.h misc: fix most warnings Aug 14, 2018
propertieswindow.ui translations,*.ui: untag most suffixes et al as translatable Nov 28, 2017
res.qrc mainwindow,manager: implement enable/next/previous subtitles Jul 15, 2018
settingswindow.cpp settingswindow: sanitize >100% volumes when switching to lower limit Sep 3, 2018
settingswindow.h settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
settingswindow.ui settingswindow,drawnstatus: implement time field shortening Sep 3, 2018
storage.cpp mpvwidget,storage: load scripts at entry Apr 17, 2018
storage.h misc: fix most warnings Aug 14, 2018

README.md

Media Player Classic Qute Theater

A clone of Media Player Classic reimplemented in Qt.

screenshot

Media Player Classic Home Cinema (mpc-hc) is considered by many to be the quintessential media player for the Windows desktop. Media Player Classic Qute Theater (mpc-qt) aims to reproduce most of the interface and functionality of mpc-hc while using libmpv to play video instead of DirectShow.

Releases

There is no RC. Despite this situation, you may test it out and determine if what works is satisfying for you. If not, please open an issue that may motivate the developer in a helpful direction.

The best version is git master, and everyone are encouraged to increase their computer-fu by compiling from source. (see sections below.) Compiling from source gives you several advantages over the usual user, such the ability to use latest and pre-release software regardless of where it comes from. Unix users, there could even be packages in your distro that help with this. (e.g. aur, ports.)

There are builds for Windows users on the release page. Every now and then the developer makes a Windows build based on a recent commit and posts it on the releases page. These use time-based versioning (e.g. 17.07 corresponds to 2017 July), are provided for the convenience of Windows users who usually do not have a development environment, and should not be considered to represent any serious release-worthy snapshot in any way. This may change when the program is more feature-complete.

Features

Nearly everything that mpc-hc does. For the most part, unwritten portions relate to setting options and streaming from devices.

Improvements over mpc-hc

Multiple playlists: When you're watching shows on your backlog, load every show into separate playlists and still keep track of the last played file for each playlist. Finally you can eliminate the need to keep track of your progress in a spreadsheet, all while never leaving the comfort of your favorite media player.

Quick queuing: Out-of-order playback in the same style of xmms/qmmp. Got some compilation albums in a playlist, but want to hear only some rock tracks for a while? Now you can, without obliterating your playlist.

Playlist searching: Multi-threaded playlist searching, in the same style as other media players. Find the tracks you want, when you want them.

Screenshot templates: Take screenshots with a custom, sleek and stylized filename. Only include the information that you want.

Looped playback: Selectively show part of video/music tracks. Amazing, isn't it?

Custom metadata: Display custom metadata in the playlist window. Want to show the artist as well as the title, down to even the encoder used? Nothing is stopping you.

Upcoming features

Native filter-chain support: Comprehensive integration of mpv/ffmpeg's filter interface/library, right inside your media player.

Encoding support like VirtualDub: Churn out memes faster. No need to open a video editor when your media player can do your job for you.

Race Inspired Cosmetic Enhancements: In-app custom styling support.

Suggestions welcome.

Compiling

Prerequisites

You need the Qt5 SDK installed and a recent edition of libmpv. On Ubuntu you can usually install the required libraries with the qtcreator, qt5-default, libqt5x11extras5-dev, qttools5-dev-tools and libmpv-dev packages. A recent edition of libmpv means either from git head or at least version 0.29.0. The mpv options for this are --enable-libmpv-shared for shared library support, and --enable-libarchive if you want to use mpc-qt as a comic book viewer.

I don't know git, how do I do this?

First ensure you have the prerequisites as mentioned above, then open a terminal and cd into your general source-code directory. If one does not exist, mkdir one.

mkdir src

cd ~/src

Then clone this git repository using the following command:

git clone https://github.com/cmdrkotori/mpc-qt.git

Finally, cd into the checked-out repository.

cd mpc-qt

Then build with qmake+make.

qmake

make -j threads

sudo make install

You're done! Later on, performing a git pull from inside the source code directory will get the latest changes.

git pull origin master

Rebuild by following the qmake+make steps as described above.

I have compiler/linker errors

Some distros have an ancient version of mpv in their repos. You can install libmpv in the following method:

Uninstall any libmpv package you may have.

sudo apt purge libmpv-dev

Fetch the mpv-build repo.

cd ~/src

git clone https://github.com/mpv-player/mpv-build.git

cd mpv-build

Select the master versions to compile.

./use-ffmpeg-master

./use-libass-master

./use-mpv-master

Follow the instructions for debian and ubuntu about making a build-deps package. (or whatever method for your distro.)

sudo apt-get install git devscripts equivs

rm -f mpv-build-deps_*_*.deb

mk-build-deps -s sudo -i

Build libmpv.

echo --enable-libmpv-shared > mpv_options

./update

./build -j4

sudo ./install

sudo ldconfig

libmpv should now be installed to /usr/local/*.

Compiling on Windows

While this program is meant for Unix, it is possible to compile it on Windows with the MSYS2 edition of Qt Creator due to the largely cross-platform Qt toolkit. MSVC is not supported. In addition, the build process needs the imagemagick, librsvg and inkscape packages to create the windows ico file. Use pacman -Ss <package description/name/etc> to find them.

Mpc-Qt can be compiled with a libmpv linked to MSYS2's ffmpeg libraries, or by using the prebuilt library from mpv.srsfckn.biz. To use the prebuilt library after cloning this repository, download libmpv from the mpv windows release page, and extract it somewhere. Place the libraries for your architechture from mpv-dev.7z (e.g. mpv-dev.7z/64) into mpv-dev/lib. Then place the include files from mpv-dev.7z (usually at mpv-dev.zip/include) into mpv-dev/include/mpv. Compile with the 64bit Qt framework as usual.

Bleeding-edge git master builds that use new features not yet in a release can usually be made with shinchiro builds of libmpv. Unpack in the same manner as above.