Git Product home page Git Product logo

baka-mplayer's Introduction

Build Status

Overview

Baka MPlayer is a free and open source, cross-platform, libmpv based multimedia player. Its simple design reflects the idea for an uncluttered, simple, and enjoyable environment for watching tv shows.

Requirements

  • gcc
  • pkg-config
  • libmpv-dev
  • qtbase5-dev (>= 5.2.0)
    • qt5-qmake
    • qttools5-dev-tools
    • qtdeclarative5-dev
    • libqt5svg5-dev
    • libqt5x11extras5-dev
    • libqt5network5
  • youtube-dl (optional, for streaming youtube videos)

Note: Packages may be named slightly different for each distro

Get the font

Baka MPlayer was designed around the font called Noto Sans. Noto Sans was used because of its open source nature and its broad support for Unicode characters. Having the correct font installed insures that what you see is what was intended.

Get it here.

Compilation

Windows

These instructions are for cross-compiling for Windows on a Linux system (Note: the architecture can be either x86_64 or i686 depending on which platform you're compiling for).

git clone -b release https://github.com/u8sand/Baka-MPlayer.git
cd "Baka-MPlayer"
mkdir build
cp -r windows/cross-compilation/* build/
cd build
arch=x86_64
./baka-build.sh $arch

This is a very long process because you'll need to build the mingw32 toolchain mxe and all dependent libraries, libmpv.a, and finally baka-mplayer.exe. If everything succeeded without error, you'll get Baka-MPlayer.$arch.zip which should contain everything you need.

To rebuild simply delete the directory (in build) or the .zip file of what you need to rebuild and re-run ./baka-build.sh $arch.

To add custom patches, put them in src/patches/ prefixed with the name of what you're patching.

Linux

If your distribution does not provide a package, you can compile it from source. However we've made scripts for some distributions. See etc/sbin/linux/.

git clone -b release https://github.com/u8sand/Baka-MPlayer.git
cd "Baka-MPlayer"
mkdir build
cp -r linux/* build/
cd build
distro=debian_based
chmod +x $distro.sh 
./$distro.sh

If this doesn't work or the distro you use is not listed here, you'll need to build mpv and then Baka MPlayer (the dependencies above are for Baka MPlayer). For help building mpv see https://github.com/mpv-player/mpv-build. Compiling Baka MPlayer from source can be done like so:

git clone -b release https://github.com/u8sand/Baka-MPlayer.git
cd "Baka-MPlayer"
./configure
make -j `grep -c ^processor /proc/cpuinfo`
sudo make install

The configuration file will be created on first run and will be written to ~/.config/bakamplayer.ini.

macOS

As of right now you have to compile from source. You require some more dependencies which you can get from homebrew:

brew install youtube-dl
brew install mpv --with-libmpv
git clone -b release https://github.com/u8sand/Baka-MPlayer.git
cd Baka-MPlayer
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
brew install qt5
export QMAKE=/usr/local/Cellar/qt5/5*/bin/qmake
./configure CONFIG+=install_translations
make
open build

Then drag the app to your Applications folder. In the future there will be a brew formula to simplify this.

Similarly to Linux, the configuration file will be created on first run and will be written to ~/.config/bakamplayer.ini.

Other languages

By default, Baka MPlayer will compile in English if no language is specified during compilation. To compile a multi-lingual version of baka-mplayer, configure it like so:

./configure CONFIG+=install_translations

For more configuration options see the configure source file or read the manual.

You can check out which languages we currently support by checking out Baka-MPlayer/src/translations/.

Bug reports

Please use the issues tracker provided by GitHub to send us bug reports or feature requests.

baka-mplayer's People

Contributors

alfredoramos avatar amazingfate avatar arabuli avatar dependabot[bot] avatar easyteacher avatar epitron avatar erikdavison avatar godly-devotion avatar guihkx avatar jbeich avatar jqs7 avatar kienyew avatar lgbaldoni avatar matijaskala avatar micrococo avatar mikhailnov avatar muzena avatar oltulu avatar reboare avatar redranamber avatar rrooij avatar starks avatar stryaponoff avatar suhr avatar tehcereal avatar thechaoscoder avatar u8sand avatar wb9688 avatar xperience94 avatar yiip87 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

baka-mplayer's Issues

Make the keybindings configurable

With mpv-proper, it's possible to configure the keybindings via ~/.config/mpv/input.conf (at least on Linux) and remap most of the keys as well as add bindings for keys that don't have bindings. However, baka-mplayer is currently unable to inherit that from the mpv config files and does not provide that functionality on its own. The default input.conf file for mpv can be found here, and mpv's man page describes the various options. For instance, my personal input.conf is currently

RIGHT       seek  10
LEFT        seek -10
BS          quit_watch_later
CLOSE_WIN   quit_watch_later
AXIS_UP     ignore
AXIS_DOWN   ignore
AXIS_LEFT   ignore
AXIS_RIGHT  ignore
MOUSE_BTN2  ignore
MOUSE_BTN3  ignore
MOUSE_BTN4  ignore
DEL         set speed 1.0
ENTER       set pause no
PGUP        add chapter -1
PGDWN       add chapter 1

because that's closer to what I'm used to with other players. So, it would be great if baka-mplayer provided a way to either use mpv's input.conf or to configure it in its own config file. Even simply having the ability to configure it by hand in the config file directly rather than having it in the GUI would be a great start, though eventually, it should probably be in the GUI somewhere like it is with players like smplayer or vlc.

Application Settings

Create a portable way to save settings of Baka MPlayer. This includes a Setting Dialog, and perhaps an .ini file that is loaded and saved on load and on exit. This will be done through SettingsManager class derived from QSettings. Not only application specific settings but also mpv specific settings.

Merging mpv_settings

The problem is my negligence of putting version info into the settings file earlier.

Settings updating goes a lot smoother if there is version information in the settings file.

Though the master branch has this fix the release branch does not. When I merge mpv_settings and perhaps release it then people with the old version MAY lose their settings. Two possible ways around this:

  1. Next release has current master branch--hopefully everyone gets it, so later we can marge mpv_settings and everyone'll upgrade seemlessly
  2. Use AUR's update() in pkgbuild to make sure a baka-mplayer version exists in the config file; this would fix any difficulties
  3. Add further complexity to the upgrade process temporarily in the application itself (checking to see if the settings file exists; even with that added complexity any older version of baka-mplayer being run will write on top of the settings resulting in a messy settings file.

I've yet to decide, suggestions are welcome.

Hotkeys for everything

Like the old Baka MPlayer there should be a hotkey to do everything. Perhaps we will apply mpv key-bindings according to user-specified settings OR we will make certain hotkeys fire the signals to send commands to mpv. Preferably allowing mpv to handle everything except baka mplayer specific hotkeys.

Snapshots and Playback

Snapshot support; perhaps use mpv's snapshot commands.
Snapshots with/without subtitles (S | s) hotkeys.
Save snapshots in application specified location.

suggest not building with translation embedded

To get the translations work we have to set the LANG when we just start building it and embed the translation into the baka-mplayer. It works well if I build it on my own system for my own use, but if I want to distribute it with rpm or deb to people in different countries, it is not a good solution.
I suggest to set the translations in the "make install" process.

Functional Playlist

Make the playlist functional, either design it the way mpv manages playlist with mpv's playlist support or without, or make it the way the old Baka MPlayer handled the playlist.

At least make the playlist useful (a list of files passed, double click to play file, add to playlist etc..)

This will be done via a PlaylistManager class which inherits the QListWidget on the form.

IRC channel

Was wondering if anyone would be interested in setting up one on Freenode. Don't want to jump the gun and do it myself.

Primary aim would be to facilitate communication on issue #7.

Not much of a coder, but I do I have a very nice Arch setup with a full mxe toolchain ready to do any QA.

Custom Input Commands

Command-line capabilities as in the old Baka MPlayer, which can send commands to mpv or baka-mplayer. Will also be used for future features.

fails to build

Same issue whether just using make.sh directly or using debian/rules
Ex. on latest git master

~/Desktop/baka/src/Baka-MPlayer$ ./make.sh
./make.sh: 3: [: unexpected operator
Configuring...
./make.sh: 26: ./make.sh: src/Baka-MPlayer.pro: Permission denied
Compiling baka-mplayer...
make: *** No targets specified and no makefile found. Stop.

Substituting the previous make.sh works ok

Update Support

Add update support as in original Baka MPlayer; will check on the website for version information and direct user to the new update.

Update Support Features:

  • Error-proof:
    • No/unstable internet
    • Closed in the middle of a download? (should restart where it left off if the update is the same)
  • Allow user to enable/disable automatic updating
  • Configuration versioning
  • On Linux, it should tell users when there is a new update; on Windows it works as an updater

Create a Wiki for Documentation

The baka-mplayer.md documentation file doesn't seem to be the best idea. It's about time we create the Wiki (using github is fine) for documentation.

For maximal portability we'll be trying to keep the documentation file nonetheless.

Fix Strange Mpv Call Bug

Basically when opening files (through the Playlist), we have ~1/5 chance that the file will NOT open.

Debugging shows that the string is indeed passed to the signal and even make it to mpv->OpenFile, for whatever reason though the file does not begin playback.

What's known about the bug is it is caused by PlaylistManager.

Weird Error Log I got with Windows Target build 1.5.0 x86_64

Could this be the root of my problems???

TEXT COPY:

Baka MPlayer Error Info
Version: 1.5.0

Generated (UTC): 11/10/2014 09:33:52
OSVersion: Microsoft Windows NT 6.1.7601 Service Pack 1
Is64BitOperatingSystem: True
Is64BitProcess: n/a

Message: Object reference not set to an instance of an object.
Stack Trace:
at PortableSettingsProvider.SetValue(SettingsPropertyValue propVal)
at PortableSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection propvals)
at System.Configuration.SettingsBase.SaveCore()
at System.Configuration.SettingsBase.Save()
at Baka_MPlayer.Forms.MainForm.MainForm_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at Baka_MPlayer.Forms.MainForm.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Baka MPlayer Error Info
Version: 1.5.0

Generated (UTC): 11/10/2014 09:34:34
OSVersion: Microsoft Windows NT 6.1.7601 Service Pack 1
Is64BitOperatingSystem: True
Is64BitProcess: n/a

Message: Object reference not set to an instance of an object.
Stack Trace:
at PortableSettingsProvider.SetValue(SettingsPropertyValue propVal)
at PortableSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection propvals)
at System.Configuration.SettingsBase.SaveCore()
at System.Configuration.SettingsBase.Save()
at Baka_MPlayer.Forms.MainForm.MainForm_FormClosing(Object sender, FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at Baka_MPlayer.Forms.MainForm.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Static Compilation for Windows

Get Baka-MPlayer compiled for windows (for our original user-base); we'd like a stand-alone application--just the Executable and the generated accompanying .ini file for settings.

"Search Playlist" should be case-insensitive

Hi there!

First off, Baka is great! I'm really enjoying it. Clean UI, fast, light, it supports HTTPS streaming; it's quite elegant.

I just noticed a little snag: the playlist's search field is currently case-sensitive. (The version I'm using is a git checkout from last night.) I'm sure it's just an oversight. :)

Thanks for a great video player!

- Looking for Translators -

As the title suggests, we are looking for translators who can help out (no need to know programming or Qt, although it could help).

If you'd like to help out, check out here (https://github.com/u8sand/Baka-MPlayer/blob/master/etc/doc/baka-mplayer.md#to-add-a-new-translation). If you need more help, please leave a comment here or on irc, and we'll help you get started.
Any suggestions to improve our non-english translations are also welcome.

This is the list of languages supported so far:

Thank you very much for contributions, your names will get a place in the credits unless for some reason you tell us otherwise.

Compiling for your language is simple!
./configure CONFIG+=install_translations or ./configure CONFIG+=embed_translations

.flv files known to play with standalone mpv with full video and audio do not play in 1.5.0 build of x86_64 target for Windows

Hi,

tested out a .flv video that plays perfectly in mpv player standalone, and it plays only audio with black (blank) video in this version/build of Baka-MPlayer. FYI. I'm including a Screencap of MediaInfo on the file for debugging purposes so you guys can see the codecs involved.

I got this little error message again:

image

And on to the MediaInfo Window RE: The .flv format video:

image

error when install Baka on ubuntu

Hello
when i try to install baka-mplayer on ubuntu 14.04 x86-64 i get this error msg:

[ 86%] Building CXX object src/CMakeFiles/mainwindow.dir/ui/mainwindow.cpp.o
cd /home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/build/src && /usr/bin/c++ -DBAKA_MPLAYER_VERSION="1.9.9" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DSETTINGS_FILE="bakamplayer" -std=c++11 -fPIE -fPIC -I/home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/build/src -I/home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/src -I/usr/include/qt5 -I/usr/include/qt5/QtCore -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtSvg -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtX11Extras -o CMakeFiles/mainwindow.dir/ui/mainwindow.cpp.o -c /home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/src/ui/mainwindow.cpp
In file included from /home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/src/ui/mainwindow.cpp:2:0:
/home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/build/src/ui_mainwindow.h: In member function ‘void Ui_MainWindow::retranslateUi(QMainWindow_)’:
/home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/build/src/ui_mainwindow.h:1077:25: error: ‘class QPlainTextEdit’ has no member named ‘setPlaceholderText’
outputTextEdit->setPlaceholderText(QApplication::translate("MainWindow", "Baka MPlayer loaded...", 0));
^
make[2]: *_* [src/CMakeFiles/mainwindow.dir/ui/mainwindow.cpp.o] Error 1
make[2]: Leaving directory /home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/build' make[1]: *** [src/CMakeFiles/mainwindow.dir/all] Error 2 make[1]: Leaving directory/home/sbw983/Tools/Media/Baka-Mplayer/Baka-MPlayer/build'
make: *** [all] Error 2

Custom settings handling

QSettings finds more ways to annoy me every time I try to use it to do something new. Very soon we'll most likely want to create our own settings handler.

Because I like the current format it will stay it's just the parser that will change--should allow us to use certain symbols that QSettings didn't let us use (or clobbered). This is becoming very evident in the custom-keybindings branch where Alt+1 becomes Alt%2B1...

Keybinding Interface should be graphical in nature.

Dependent on issue #21

Once keybindings are settled/set up for Baka-MPlayer, The interface for selecting and setting the keybindings should be graphical in nature, i.e. should utilize a GUI, not a text .ini file to set the properties of the keybindings.

Why? It is more straightforward in a video application to expect settings to have Graphical Dialog Interfaces rather than needing to open a text editor to jimmy around with pertainent text fields, saving the .ini file or what have you, and reopening the video application. That seems inefficent.

A more polished way of working would be to have the user open a Graphical Dialog, modify the desired parameters, apply the changes on-the-fly, and close the dialog. Then continue playing the Video content.

This is how most modern Video Players interact with users, and seems the least intrusive method of interaction.

Re: .desktop

Not sure if there is any intention of baka-mplayer being available from context menu, if so the Exec= line should end with %a letter (in gnome3 env
Possibles would be U,u,F,f
Ex.
Exec=baka-mplayer %U

- Stuff Todo -

General Issues

  • Dim desktop
    • Window doesn't fill the screen on Ubuntu.
    • Window covers screen on Windows.

Windows Specific Issues

  • mpv's status message overlay is not shown (probably because we're missing lua)
  • @godly-devotion Quick Open button's image is kinda cropped out (doesn't happen with the playlist button).

Features

  • Mark the currently playing file in playlist
  • OpenSubtitles.org integration
  • Optional: after a file has finished playing (or played up to a certain percentage of the total duration), strike out the playlist item to show that they've watched it already.
    • As bonus, we can have an option that deletes the watched videos.
  • Tray icon
    • Clicking the icon toggles play/pause (show popup saying Playing/Paused)
    • If opened file is an audio file, show pop up showing {artist} - {title} or just file name (without extension) if id3 info is not available. The Hide popup setting under preferences basically hides this popup if checked.

Help and About

Information for the user about us and the project as well as a user manual.

Dialogs are done; just need a user manual.

Add Travis CI Support

Travis allows us to see if the current build successfully compiles or not. It also has a build history so we can see at what point exactly that the builds fails to compile.

http://docs.travis-ci.com

Edit: At the time of this writing, Travis is using Ubuntu 12.04 LTS, which does not have all the Qt5 files we need for it to compile successfully. For now, the files related to Travis has been moved to etc/travis/.

Build 1.5.0 x86_64 Windows: Everytime I load a .flac file for playback, I get an error dialog...

image

This is the error dialog window I am seeing without deviation for every instance of opening a .flac format auido file via the method "File" > "Open File" > (browse to file location in File Manager, aka Windows Explorer) > select .flac format audio file for Playback > click pre-hilighted "Open" button.

More: The file will play, after I minimize the Error Dialog, but this is unexpected behavior.

Dim Light's turns off if mainwindow is moved

Location:

// note: focusWindow will be 0 if anything is clicked outside of our program which is useful

Reason: focusWindow will be 0 if anything is clicked outside of our program which is useful. The only other problem is that when dragging by the top handle it will be 0 resulting in lights going off, this is a side effect which will have to stay for now.

List of recently viewed files

It would be great if one of the menu items in baka-mplayer had a list of recently viewed files (presumably with the most recent at the top and least recent at the bottom) so that it's easy to find and reopen files that you viewed recently but didn't finish (or like to review frequently). IIRC, vlc and smplayer both default to 10 files, though it would be great if it were configurable. I'd probably be a bit extreme about it and want to make the list 100+ files long (which I can do with smplayer by editing its config file directly - while it's configurable, it normally maxes out at something like 20), so 10 is a bit low for what I'd like, but it's probably enough for most folks and even just having a list would be great. Similarly, it would be great if you could delete items from the list by clicking on a delete icon next to it or right-clicking and selecting delete or whatever made sense; being able to delete items becomes more critical when you're loony like me and have 100+ files in the list, but I expect that it isn't really required for most folks (I usually get around the lack of such functionality in smplayer by editing its config file directly). The only functionality along those lines that vlc and smplayer provide is to clear the entire list, not remove individual items. So, I certainly don't think that it's critical to be able to delete individual items from the list, but it definitely would be nice. Regardless, having a list of recently viewed files would be a nice addition and bring baka-mplayer's feature set closer to that of more mature video players (or even ahead in this case if it allowed for the deletion of individual items or let the list be configured to be ridiculously long).

RE: 1.5.0 Windows x86_64 Target

After uninstalling, and trying out the 1.5.0 x86 Windows Target from Softpedia's Mirror location, I can happily report that the beforementioned Issue Reports I submitted RE: Video formats playing audio, but black/blank screen seem to be contained to the x86_64 Target release for Windows, and not something that affects the 1.5.0 release on the x86 Target release as well. I would reccomend Windows users stick to the x86 build until the x86_64 Target gets some more work done on it.

qmake builds on Launchpad

I wouldn't mind making baka-mplayer builds avail. for ubuntu 14.04 & higher but see an issue I can't figure out.
If using cmake then the builds are successful, whether the 2.0 release or the current git switched back to a cmake build.
However if doing current git with qmake it always fails to find libmpv-dev. - ex.
make[1]: Entering directory '/build/buildd/baka-mplayer-2.0.0'
sh make.sh
Project ERROR: mpv development package not found
On the other hand the same debian package build done locally with qmake works.
If anyone has any ideas that would be great, if need be I can provide links to the build logs
Thanks

Media Management

Support for selecting audio/video/subtitle tracks as well as external subtitles; chapter support and media information.

Integrate our own online video stream support

As you might know, mpv has removed support for playing Youtube and etc. This was because the library they used--libquvi--was buggy and is not being actively maintained properly.
Livestreamer is a command line utility (seems to have API) that can pipe the video stream into mpv.
Being able to play Youtube videos and etc will definitely be useful (and will also match the old Baka MPlayer's features, although that feature has been broken for sometime...)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.