wiki:Developer/MusicPlayers

Version 11 (modified by Brad Lanam, 9 months ago) (diff)

--

Music Players

What's required in a music player?

  • Play a file from disk (many players are playlist oriented and can only play music from their own internal playlist.)
  • Be able to play music via a socket interface.
  • Alternatively, have an API available that can be used to play music.
  • Pause and Play
  • Seek in song.
  • Speed/Pitch control.


VLC
VLC has all of the above and is actively maintained.

Unfortunately this is a bit rare. I would like to find alternatives to VLC so I am not locked in to a single vendor. At this time, it seems like the best alternative will be writing my own player -- this has its own set of problems.

mplayer can be used, but there are a lot of problems with sound glitches during startup, etc. Also mplayer and mplayer2 do not seem to have an active development community. One of the forks of mplayer (MPV) dropped the socket API.

MPD can probably be used, but it is quite complicated to set up. It is playlist oriented and can only play files from the same machine.

MPRIS can be used on Linux for many players, but the support for speed/pitch control is not common.

Someone once wanted support for HQPlayer. HQPlayer would not process commands via the socket in a timely manner, making pause/play impossible to use. It also had very poor seek sound quality.

There are claims that Foobar2000 has better quality than VLC. This is answered in the Foobar2000 FAQs. Virtually all decent music players are playing a digital stream, and it should be what is known as "bit-perfect" (i.e. no changes) from input to output. It is literally quite impossible for one player to have quality any different than another unless there are bugs or audio decoder issues. Foobar2000 does not provide a socket API to control music playback. VLC fixed a bug with sound quality issues in version 2.2.6 of VLC.