C++ HTML Other
Latest commit 78c4816 Jan 25, 2018 @cmdrkotori cmdrkotori readme: clarify ubuntu packages
Fixes #158.
Permalink
Failed to load latest commit information.
DOCS docs: ipc: update with mpris info Sep 30, 2017
external favorites: add to project Sep 30, 2017
images .pro: add install section Aug 19, 2017
mpv-dev mpv-dev: add to project Apr 19, 2016
platform .pro,platform/unify: pass PREFIX as a define to resourcesPath Aug 20, 2017
text settingswindow: move format documents to resources May 28, 2016
translations translations,*.ui: untag most suffixes et al as translatable Nov 28, 2017
.gitignore release: win: add sha512 summ verification Oct 8, 2017
.gitmodules .pro: add install section Aug 19, 2017
LICENSE Merge branch 'master' of https://github.com/cmdrkotori/mpc-qt Apr 14, 2015
README.md readme: clarify ubuntu packages Jan 25, 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 helpers,translations: make key/mouse modifiers translatable Nov 28, 2017
helpers.h helpers,translations: make key/mouse modifiers translatable Nov 28, 2017
ipcjson.cpp ipcjson: remove extra listen command Jan 25, 2018
ipcjson.h mpvwidget,[many]: split control code from ui code Oct 29, 2017
ipcmpris.cpp mpvwidget,[many]: split control code from ui code Oct 29, 2017
ipcmpris.h mpvwidget,[many]: split control code from ui code Oct 29, 2017
main.cpp settings,manager,main: implement time step customization Nov 28, 2017
main.h favorites: add to project Sep 30, 2017
mainwindow.cpp mainwindow: use checkable zoom levels Nov 5, 2017
mainwindow.h mpvwidget,[many]: split control code from ui code Oct 29, 2017
mainwindow.ui translations,*.ui: untag most suffixes et al as translatable Nov 28, 2017
make-release-win.sh release: win: add sha512 summ verification Oct 8, 2017
manager.cpp settings,manager,main: implement time step customization Nov 28, 2017
manager.h settings,manager,main: implement time step customization Nov 28, 2017
mpc-qt.desktop Add files via upload Sep 22, 2017
mpc-qt.pro Add Russian translation (Part 1) Nov 5, 2017
mpvwidget.cpp mpvwidget,[many]: split control code from ui code Oct 29, 2017
mpvwidget.h mpvwidget,[many]: split control code from ui code Oct 29, 2017
openfiledialog.cpp [many]: implement open file dialog Mar 5, 2017
openfiledialog.h [most]: use c++11 class member initialization May 31, 2017
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 [many]: cosmetics Sep 21, 2017
playlist.h [most]: use c++11 class member initialization May 31, 2017
playlistwindow.cpp main,playlistwindow: keep playlists visible after min/restore Aug 30, 2017
playlistwindow.h main,playlistwindow: keep playlists visible after min/restore Aug 30, 2017
playlistwindow.ui images: use svg not png May 25, 2017
propertieswindow.cpp propertieswindow: implement save as functionality Aug 29, 2017
propertieswindow.h propertieswindow: implement save as functionality Aug 29, 2017
propertieswindow.ui translations,*.ui: untag most suffixes et al as translatable Nov 28, 2017
qactioneditor.cpp helpers,translations: make key/mouse modifiers translatable Nov 28, 2017
qactioneditor.h qactioneditor: set sane width defaults Jun 11, 2017
qdrawnplaylist.cpp [many]: cosmetics Sep 21, 2017
qdrawnplaylist.h [most]: use c++11 class member initialization May 31, 2017
qdrawnslider.cpp slider: use bitmaps to display sliders Nov 30, 2017
qdrawnslider.h slider: use bitmaps to display sliders Nov 30, 2017
qdrawnstatus.cpp qdrawnslider,qdrawnstatus: use QWidget as base class Mar 8, 2017
qdrawnstatus.h [most]: use c++11 class member initialization May 31, 2017
qscreensaver.cpp rename QScreenSaver to lowercase Mar 29, 2017
qscreensaver.h [many]: optimization run Apr 20, 2017
res.qrc settingswindow,helpers,[others]: implement basic styling Aug 24, 2017
settingswindow.cpp settings,manager,main: implement time step customization Nov 28, 2017
settingswindow.h settings,manager,main: implement time step customization Nov 28, 2017
settingswindow.ui translations,*.ui: untag most suffixes et al as translatable Nov 28, 2017
storage.cpp storage: remember corrected config path Oct 11, 2017
storage.h playlist: make string(list) converters m3u-compat parsers Sep 30, 2015

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 and libmpv-dev packages. A recent edition of libmpv means either from git head or at least version 0.26.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 and fetch the stats submodule

cd mpc-qt

git submodule update --init

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

git submodule update

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

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.

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.