Skip to content
Alberto Fanjul edited this page Jan 4, 2023 · 15 revisions

miracle-sinkctl

Is a controller connected to miracle-wifid which selects interface to use and manage RSTP communication, program to play audio/video screening and UIBC (input on source from sink) interaction.

Options:

$ miracle-sinkctl --help
miracle-sinkctl [OPTIONS...] ...

Control a dedicated local sink via MiracleCast.
  -h --help                      Show this help
     --help-commands             Show avaliable commands
     --version                   Show package version
     --log-level <lvl>           Maximum level for log messages
     --log-journal-level <lvl>   Maximum level for journal log messages
     --gst-debug [cat:]lvl[,...] List of categories an level of debug
     --audio <0/1>               Enable audio support (default 1)
     --scale WxH                 Scale to resolution
  -p --port <port>                  Port for rtsp (default 1991)
     --uibc                         Enables UIBC
  -e --external-player           Configure player to use
     --res <n,n,n>               Supported resolutions masks (CEA, VESA, HH)
                                    default CEA  0000001F
                                    default VESA 00000003
                                    default HH   00000000
     --help-res                  Shows avaliable values for res

Detail of resolutions avaliable

You need to sum them in hex, so to support only 5 first resolutions CEA

01+02+04+08+10=1F

e.g:

miracle-sinkctl --res 1F,00,00

If you need to support only 1920x1080@25 CEA

e.g:

miracle-sinkctl --res 1000,00,00 
$ miracle-sinkctl --help-res
CEA resolutions:
	 0 00000001  640x 480@60
	 1 00000002  720x 480@60
	 2 00000004  720x 480@60
	 3 00000008  720x 576@50
	 4 00000010  720x 576@50
	 5 00000020 1280x 720@30
	 6 00000040 1280x 720@60
	 7 00000080 1920x1080@30
	 8 00000100 1920x1080@60
	 9 00000200 1920x1080@60
	10 00000400 1280x 720@25
	11 00000800 1280x 720@50
	12 00001000 1920x1080@25
	13 00002000 1920x1080@50
	14 00004000 1920x1080@50
	15 00008000 1280x 720@24
	16 00010000 1920x1080@24
VESA resolutions:
	 0 00000001  800x 600@30
	 1 00000002  800x 600@60
	 2 00000004 1024x 768@30
	 3 00000008 1024x 768@60
	 4 00000010 1152x 854@30
	 5 00000020 1152x 854@60
	 6 00000040 1280x 768@30
	 7 00000080 1280x 768@60
	 8 00000100 1280x 800@30
	 9 00000200 1280x 800@60
	10 00000400 1360x 768@30
	11 00000800 1360x 768@60
	12 00001000 1366x 768@30
	13 00002000 1366x 768@60
	14 00004000 1280x1024@30
	15 00008000 1280x1024@60
	16 00010000 1440x1050@30
	17 00020000 1440x1050@60
	18 00040000 1440x 900@30
	19 00080000 1440x 900@60
	20 00100000 1600x 900@30
	21 00200000 1600x 900@60
	22 00400000 1600x1200@30
	23 00800000 1600x1200@60
	24 01000000 1680x1024@30
	25 02000000 1680x1024@60
	26 04000000 1680x1050@30
	27 08000000 1680x1050@60
	28 10000000 1920x1200@30
HH resolutions:
	 0 00000001  800x 480@30
	 1 00000002  800x 480@60
	 2 00000004  854x 480@30
	 3 00000008  854x 480@60
	 4 00000010  864x 480@30
	 5 00000020  864x 480@60
	 6 00000040  640x 360@30
	 7 00000080  640x 360@60
	 8 00000100  960x 540@30
	 9 00000200  960x 540@60
	10 00000400  848x 480@30
	11 00000800  848x 480@60

external-player:

external-player option allows to change the player used by miraclecast. Is a wrapper that receives the params avaliable on miraclecast. You can create yours and play stream as you want. See an example wrapping vlc

    RUN="vlc rtp://@:$PORT"

https://github.com/albfan/miraclecast/blob/master/res/miracle-vlc#L66

extend request protocol

Some implementations extend miracast protocol (see Microsoft extension) Through miraclecast ini file you can extend protocol to provide extra parameters needed:

[sinkctl]
extends.<key>=<value>

example:

https://github.com/albfan/miraclecast/blob/master/res/sinkctl.protocol-extension.example