docs: clean up players page

- Remove unmaintained/obsolete and proprietary players
  - Daum PotPlayer
  - MPC-HC
  - OMXPlayer
  - QuickTime
- Add new players
  - IINA
- Change player order
- Add OS and license columns
- Add colored icons for supported transport methods
- Add note about --player-passthrough
- Fix footnotes and known issues section
This commit is contained in:
bastimeyer 2023-11-20 21:11:54 +01:00 committed by Sebastian Meyer
parent 34768a3113
commit 4664d25bad
1 changed files with 46 additions and 73 deletions

View File

@ -8,15 +8,26 @@ There are three different modes of transporting the stream to the player.
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
:class: sd-w-100
* - Name * - Name
- Description - Description
* - Standard input pipe * - Standard input pipe
- This is the default behaviour when there are no other options specified. - This is the default behavior when there are no other options specified.
* - Named pipe (FIFO) * - Named pipe (FIFO)
- Use the :option:`--player-fifo` option to enable. - See the :option:`--player-fifo` option.
* - HTTP * - HTTP
- Use the :option:`--player-http` or :option:`--player-continuous-http` options to enable. - See the :option:`--player-http` and :option:`--player-continuous-http` options.
.. note::
Streamlink also allows passing the resolved stream URL through to the player as its first launch argument
when using the :option:`--player-passthrough` option.
This does only work if the player has support the specific streaming protocol built in. The player will then do
all the data fetching on its own while Streamlink will just wait for the player process to end.
Some streaming protocols like DASH can't be passed through to the player.
Player compatibility Player compatibility
@ -27,89 +38,57 @@ modes.
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
:class: sd-w-100
* - Name * - Name
- OS
- License
- stdin pipe - stdin pipe
- named pipe - named pipe
- HTTP - HTTP
* - `Daum Pot Player`_
- Yes
- No
- Yes [1]_
* - `MPC-HC`_
- Yes [2]_
- No
- Yes [1]_
* - `MPlayer`_
- Yes
- Yes
- Yes
* - `mpv`_
- Yes
- Yes
- Yes
* - `OMXPlayer`_
- No
- Yes
- Yes [4]_
* - `QuickTime`_
- No
- No
- No
* - `VLC media player`_ * - `VLC media player`_
- Yes [3]_ - :fab:`windows;fa-xl` :fab:`apple;fa-xl` :fab:`linux;fa-xl`
- Yes - GPL2 / LGPL2.1
- Yes - :octicon:`thumbsup;1em;sd-text-success` [1]_
- :octicon:`thumbsup;1em;sd-text-success`
- :octicon:`thumbsup;1em;sd-text-success`
* - `mpv`_
- :fab:`windows;fa-xl` :fab:`apple;fa-xl` :fab:`linux;fa-xl`
- GPL2 / LGPL2.1
- :octicon:`thumbsup;1em;sd-text-success`
- :octicon:`thumbsup;1em;sd-text-success`
- :octicon:`thumbsup;1em;sd-text-success`
* - `MPlayer`_
- :fab:`windows;fa-xl` :fab:`apple;fa-xl` :fab:`linux;fa-xl`
- GPL2
- :octicon:`thumbsup;1em;sd-text-success`
- :octicon:`thumbsup;1em;sd-text-success`
- :octicon:`thumbsup;1em;sd-text-success`
* - `IINA`_
- :fab:`apple;fa-xl`
- GPL3
- :octicon:`thumbsup;1em;sd-text-success` [2]_
- :octicon:`thumbsdown;1em;sd-text-danger`
- :octicon:`thumbsdown;1em;sd-text-danger`
.. [1] :option:`--player-continuous-http` must be used. .. [1] Some versions of VLC might be unable to use the stdin pipe and
Using HTTP with players that rely on Windows' codecs to access HTTP
streams may have a long startup time since Windows tend to do multiple
HTTP requests and Streamlink will attempt to open the stream for each
request.
.. [2] Stdin requires MPC-HC 1.7 or newer.
.. [3] Some versions of VLC might be unable to use the stdin pipe and
prints the error message prints the error message
VLC is unable to open the MRL 'fd://0' VLC is unable to open the MRL 'fd://0'
Use one of the other transport methods instead to work around this. Use one of the other transport methods instead to work around this.
.. [4] :option:`--player-continuous-http` has been reported to work for HLS .. [2] Requires the ``--stdin`` player argument (:option:`--player-args`)
streams when also using the timeout option for omxplayer
(see `When using OMXPlayer the stream stops unexpectedly`_.)
Other stream types may not work as expected, it is recommended that
:option:`--player-fifo` be used.
.. _Daum Pot Player: https://potplayer.daum.net .. _VLC media player: https://videolan.org/
.. _MPC-HC: https://mpc-hc.org/ .. _mpv: https://mpv.io/
.. _MPlayer: https://mplayerhq.hu .. _MPlayer: https://mplayerhq.hu/
.. _mpv: https://mpv.io .. _IINA: https://iina.io/
.. _OMXPlayer: https://www.raspberrypi.org/documentation/raspbian/applications/omxplayer.md
.. _QuickTime: https://apple.com/quicktime
.. _VLC media player: https://videolan.org
Known issues and workarounds Known issues and workarounds
---------------------------- ----------------------------
MPC-HC reports "File not found"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Upgrading to version 1.7 or newer will solve this issue since reading data
from standard input is not supported in version 1.6.x of MPC-HC.
MPC-HC only plays sound on Twitch streams
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Twitch sometimes returns badly muxed streams which may confuse players. The
following workaround was contributed by MPC-HC developer @kasper93:
*To fix this problem go to options -> internal filters -> open splitter
settings and increase "Stream Analysis Duration" this will let ffmpeg to
properly detect all streams.*
Using :option:`--player-passthrough hls <--player-passthrough>` has also been
reported to work.
MPlayer tries to play Twitch streams at the wrong FPS MPlayer tries to play Twitch streams at the wrong FPS
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is a bug in MPlayer, using the MPlayer fork `mpv`_ instead This is a bug in MPlayer, using the MPlayer fork `mpv`_ instead
@ -130,9 +109,3 @@ Some versions of Mplayer cannot play Youtube Live streams. And errors like:
Seek failed Seek failed
Switching to a recent fork such as mpv resolves the issue. Switching to a recent fork such as mpv resolves the issue.
When using OMXPlayer the stream stops unexpectedly
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When reading from a fifo pipe OMXPlayer will quit when there is no data, to fix
this you can supply the timeout option to OMXPlayer using :option:`--player "omxplayer --timeout 20" <--player>`.
For live streams it might be beneficial to also add the omxplayer parameter ``--live``.