lettier / movie-monad

:tv: A free and simple to use video player made with Haskell.
https://lettier.github.io/movie-monad
BSD 3-Clause "New" or "Revised" License
420 stars 24 forks source link

Keyboard shortcuts #4

Closed AntouanK closed 5 years ago

AntouanK commented 6 years ago

Do any keyboard shortcuts exist?

If not, can we add any? Maybe space to pause/play and something for audio volume and mute?

lettier commented 6 years ago

Hello @AntouanK.

I can look into adding keyboard shortcuts.

Would the following be okay?

Space bar  - Toggle Play/Pause Button
Up Arrow   - Increase Volume by 5%
Down Array - Decrease Volume by 5%
m          - Mute

:+1:

AntouanK commented 6 years ago

Sure.

Or if you want to be compatible and not think about it, maybe follow VLC? https://wiki.videolan.org/Hotkeys_table

Play/Pause | key-play-pause | Space
Volume up | key-vol-up | Ctrl-Up
Volume down | key-vol-down | Ctrl-Down
Mute | key-vol-mute | m

And one thing I would add is subtitles control so you can change them or disable/enable them. There is no way to control them anyway, right?

Cycle subtitle track | key-subtitle-track | v
Toggle subtitles | - | Ctrl-v

Hopefully if the commits you make for those are simple enough, I can try to add some more later :)

lettier commented 6 years ago

Hello @AntouanK.

I have added the keyboard shortcuts. They are in master.

Still looking into the subtitles.

:+1:

airabinovich commented 6 years ago

Hello @lettier, I think maybe a good shortcuts feature would be

+10 seconds | right-arrow -10 seconds | left-arrow

Could that be possible?

lettier commented 6 years ago

Hello @airabinovich,

Yes that is possible. I will go ahead and add those shortcuts.

:+1:

lettier commented 6 years ago

Hello @airabinovich,

I have added the left and right seek keyboard shortcuts to version 0.0.3.0.

:+1:

AntouanK commented 6 years ago

@lettier did you look at all if cycling/toggling the subtitles is possible?

https://github.com/lettier/movie-monad/issues/4#issuecomment-328761955

If you can point me to where to look at, I might have a go at it myself during the holidays. :)

lettier commented 6 years ago

Hello @AntouanK,

I have subtitle management working in a local branch. Figuring out the best way to keep it simple. :thinking:

Besides disabling or cycling through the (possibly) included subtitle streams, would you also like the ability to load a SRT file and have that override any current subtitle stream?

:+1:

AntouanK commented 6 years ago

I guess the priority should be what most users need. For me, yes, loading a .srt is useful. And just cycling/disabling is enough. But, with loading an external subtitle, you might expect to be able to sync it ( it's a 50/50 chance it's slightly out of sync ).

Another thing I might do sometimes, is change the font. But that's a nice to have I guess.

lettier commented 6 years ago

Hello @AntouanK,

I have updated master with subtitle support.

screenshot_2017-12-28_20-15-47

:+1:

AntouanK commented 6 years ago

Awesome! Thank you.

I've tried it with some .mkv files but I don't get any option to disable the subtitles.

screenshot_2017-12-29_09-24-46

lettier commented 6 years ago

Hello @AntouanK,

Thank you for trying out the subtitle feature.

What is the output of the following command?

gst-discover-1.0 /path/to/The.Simpsons.S29E09.Gone.Boy.1080p.AMZN.WEB-DL.DD+5.1.H.264-SiGMA.mkv | grep -i language

These files are known to work.

Could you try playing one of them? You can use the latest AppImage if you like.

One has known subtitle streams while the other has unknown subtitle streams.

gst-discoverer-1.0 -v Sintel_DivXPlus_6500kbps.mkv | grep -i language
        language code: zh
      Language: zh
        language code: ja
      Language: ja
        language code: pt
      Language: pt
        language code: nl
      Language: nl
        language code: fr
      Language: fr
        language code: es
      Language: es
        language code: de
      Language: de
        language code: en
      Language: en
        language code: en
      Language: en
        language code: en
      Language: en
        language code: en
      language code: de
gst-discoverer-1.0 -v ElephantsDream_DivXHD1080p_ASP.divx | grep -i language
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>
      Language: <unknown>

screenshot_2017-12-29_19-31-28

screenshot_2017-12-29_19-32-45

Unless burned in, the subtitles should never show now unless requested, regardless of any available subtitle streams, since subtitles are disabled at the start of each video. So even though the selection box doesn't show in your screenshot, the subtitle shown should not be there.

:+1:

AntouanK commented 6 years ago

This is the whole output from gst-discoverer-1.0 ./The.Simpsons.mkv

Topology:
  container: Matroska
    subtitles: Timed Text
    audio: E-AC-3 (ATSC A/52B)
    video: H.264 (High Profile)
Properties:
  Duration: 0:21:14.857000000
  Seekable: yes
  Tags:
      container format: Matroska
      audio codec: E-AC-3 audio
      language code: en
      bitrate: 86
      extended comment: DURATION=00:21:03.495000000
      video codec: H264

It only has english subtitles. And most "web-rip" videos I've seen, are like that. Movies tend to have a few more languages.

I tried the video you mentioned, and again I get no option. I'm thinking that maybe I use the older version somehow? How can I check the version I use?

lettier commented 6 years ago

Hello @AntouanK,

To access the recent subtitle feature, you'll need to build from source using the master branch or you can try the AppImage here.

The AUR is only at version 0.0.3.0.

To see what version you're using, click on the about button.

screenshot_2017-12-30_04-29-18

If building from source, you'll want to make sure that your local master branch is up to date with the remote master branch. The current pre-release, 0.0.4.0, didn't have subtitle support for a few commits. So if the about dialog says, 0.0.4.0, you'll have to pull from master and rebuild.

cd movie-monad
git checkout master
git reset --hard origin/master
git pull
# If you have `stack`
make
make run

:+1:

AntouanK commented 6 years ago

I was indeed using the wrong executable.

So when I use 0.0.4.0, the sample mkv you sent, works fine ( I can see all the subtitles ).

The Simpsons one I tried, threw an error the first time I tried it : screenshot_2017-12-30_14-03-32

Closed the app, opened it again, and it now loads just fine. I'm just mentioning it in case it's useful to you. I cannot reproduce it now.

Thank you for this feature. 👍

lettier commented 6 years ago

Hello @AntouanK,

Thank you for testing and for the error report. I'll keep an eye on it.

I'll go ahead and release version 0.0.4.0.

:+1: