{"id":13575653,"url":"https://github.com/ColumPaget/cxine","last_synced_at":"2025-04-04T22:31:44.036Z","repository":{"id":77680978,"uuid":"140188218","full_name":"ColumPaget/cxine","owner":"ColumPaget","description":"mostly MPlayer-compatible media player using libxine","archived":false,"fork":false,"pushed_at":"2024-10-21T12:45:54.000Z","size":428,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-05T11:43:31.297Z","etag":null,"topics":["c","dvd","media-player","mp4","mplayer","webm","xine"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ColumPaget.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-08T17:25:30.000Z","updated_at":"2024-11-05T10:38:47.000Z","dependencies_parsed_at":"2024-03-16T19:47:11.627Z","dependency_job_id":"75c77a9e-747a-4974-9608-10ecbd86c269","html_url":"https://github.com/ColumPaget/cxine","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fcxine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fcxine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fcxine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fcxine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ColumPaget","download_url":"https://codeload.github.com/ColumPaget/cxine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247260778,"owners_count":20910072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","dvd","media-player","mp4","mplayer","webm","xine"],"created_at":"2024-08-01T15:01:02.978Z","updated_at":"2025-04-04T22:31:39.026Z","avatar_url":"https://github.com/ColumPaget.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"CXine - A mostly mplayer compatible libxine media player\n--------------------------------------------------------\n\nCXine is a basic, keyboard-driven, X11, lib-xine based media player that is intended to be used as a keyboard-driven standalone app, or embedded in a frontend. It supports a subset of the mplayer 'slave mode' command protocol. It supports user-configurable on screen displays; embedding into another window; sticky, shaded and stayontop windows; drawing on the root window; fullscreen playback, keygrabs and 'bookmarking' (remembering position in a media item). Its only dependancies are libxine, libX11, libc and libm.\n\nAt current CXine is completely keyboard-driven, with no mouse control at all. This may change in future.\n\nAuthor\n------\ncxine is (C) 2018 Colum Paget. It is released under the GPLv3 so you may do anything with them that the GPL allows.\n\nEmail: colums.projects@gmail.com\n\n\nUsage\n-----\n```\n\tcxine [options] [url]\n```\n\nOptions\n-------\n\n```\n  -add \u003curl\u003e [title]      Add \u003curl\u003e to the playlist of an existing cxine, then exit. 'title' is an optional title to be displayed while playing\n  -queue \u003curl\u003e            If no cxine is currently running, then start up and play \u003curl\u003e, else add it to the playlist of an existing cxine.\n  +queue \u003curl\u003e [title]    Enhanced version of queue that accepts a 'title' argument\n  -enqueue \u003curl\u003e          MPlayer compatible equivalent of '-queue'\n  -esc                    Allow the 'escape' key to exit the app.\n  -win     \u003cwin id\u003e       Window settings (see below)\n  -into    \u003cwin id\u003e       Window to reparent into (xterm style option).\n  -wid     \u003cwin id\u003e       Window to reparent into (mplayer style option).\n  -parent  \u003cwin id\u003e       Window to reparent into (maximum clarity style).\n  -s \u003cwid\u003ex\u003chigh\u003e         Window size. Default is 480x360.\n  -esc                    Allow the 'escape' key to exit the app.\n  -ao \u003cao name\u003e           Audio output plugin name (default = alsa). For alsa  and oss different output devices can be selected by appending ':0', ':1' to select devices by number. For Jack, Sun and Pulse appending the device path/name instead of a number *may* work.\n  -vo \u003cvo name\u003e           Video output plugin name (default = Xv).\n  -identify               Output machine-readable track information on stdout (mplayer feature).\n  -root                   Draw on root window (equivalent to -win root).\n  -rootwin                Draw on root window (mplayer style option).\n  -fs                     Play fullscreen (mplayer style option equivalent to '-win fullscreen').\n  -background \u003cpath\u003e      Path to background image when not playing anything else. Needed for OSD to mix into.\n  -use-stdin              Read media stream from stdin (see 'Reading from Stdin' below)\n  +stdin-ctrl             Read keypresses from stdin (see 'Reading from Stdin' below)\n  -stdin-ctrl             Dont read keypresses from stdin\n  -C                      Read keypresses from stdin (see 'Reading from Stdin' below)\n  +C                      Dont read keypresses from stdin\n  -bcast \u003cport\u003e           Specify port that slave libxine players can connect to to recieve broadcasted stream.\n  -noauto                 No autoplay, items must be selected from the playlist.\n  -pause                  Start paused.\n  -mute                   Start muted.\n  -shuffle                Shuffle playlist.\n  -loop \u003cn\u003e               Repeat playback \u003cn\u003e times.\n  -title \u003ctitle\u003e          Set title displayed for this track. This argument is positional and must preceede the track it names, so for example: \"cxine -title 'title 1' track1.mp4 -title 'title 2' track2.mp4\".\n  -image-time \u003cms\u003e        Number of milliseconds to pause on an image for, until starting to play/display the next track.\n  -imagems \u003cms\u003e           Number of milliseconds to pause on an image for, until starting to play/display the next track.\n  -stop_xscreensaver      Disable screensaver during playing, re-enable it on exit, or if playback paused.\n  -screensaver            Disable screensaver during playing, re-enable it on exit, or if playback paused.\n  +screensaver            Enable screensaver during playing (use this to turn off 'disable screensaver' if you saved the config).\n  -ss                     Disable screensaver during playing, re-enable it on exit, or if playback paused.\n  -SS                     Disable screensaver during playing, re-enable it on exit BUT NOT IF PLAYBACK PAUSED.\n  +ss                     Enable screensaver during playing.\n  -idle                   Don't exit when nothing left to do, wait for commands on stdin.\n  -persist                Don't exit when nothing left to do, wait for commands on stdin.\n  -quit                   Exit when nothing left to do (use this if you saved -persist config and want to turn it off)\n  -slave                  Mplayer compatible flag, equivalent to '-persist -startms 0'.\n  -cache \u003cage\u003e            Max age of items in the download cache. Number is in seconds, but can be postfixed with 'm' for minutes, 'h' for hours and 'd' for days. e.g. '-cache 10h' means 'cache for ten hours'\n\n  -input \u003cpath\u003e           Path to pipe to read commands from (by default cxine creates a pipe in '~/.cxine/cxine.pipe'). This accepts mplayer compatible form '-input file:\u003cpath\u003e'.\n  -nowplay \u003cpath\u003e         Path to pipe to write 'now playing' info to (cxine will create this pipe if it doesn't already exist).\n  -startms \u003cmillisecs\u003e    Start playing at \u003cmillisecs\u003e'.\n  -dvd-device \u003cpath\u003e      Path to DVD device to use (default /dev/dvd)\n  -dvd-region \u003cn\u003e         DVD region num (if dvd player supports this), range 1-8\n  -dvd-lang \u003clang\u003e        Default language for DVDs\n  -osd-show               Show On Screen Display.\n  -osd-hide               Hide On Screen Display'.\n  -osd \u003cformat\u003e           Define format of OSD bar.\n  -slow                   Play halfspeed.\n  -vslow                  Play quarterspeed.\n  -loud                   Play with raised volume.\n  -vloud                  Play with maximum volume.\n  -stream                 Don't download remote urls in playlists etc. This currently only works for 'http:' (not https:) urls. This allow streaming internet radio urls.\n  -stream                 Don't download remote urls in playlists etc. This currently only works for 'http:' (not https:) urls. This allow streaming internet radio urls.\n  -webcast                Implies '-stream', treats playlists as webcast announcement files, only containing one item.\n  -playlist               Treat paths on command-line as playlist files.\n  -podcast                Implies -playlist -noauto and -show-playlist.\n  -prefix                 Append a prefix to a media url. This is mostly used with playlists, where the playlist file just names files, and -prefix is used to point the the directory they're in.\n  -keygrab                Register keygrabs, a comma-separated list of keys. See '-help keygrabs' below.\n  -helpers \u003cconfig\u003e       Register list of helper apps.\n  +helpers \u003cconfig\u003e       Prepend to list of helper apps (these helpers will be tried first).\n  -prio \u003cvalue\u003e           Set process priority in range 0-39 (requires superuser capabilities).\n  -nice \u003cvalue\u003e           Set process priority with 'nice' semantics (requires superuser capabilities).\n  -ac \u003cvalue\u003e             Set audio compression. This boosts quiet sounds, lessening the volume range. value is a percent \u003e 100 to multiply quiet sounds by.\n  -ap \u003cplugins\u003e           Comma separated list of audio post processing plugins.\n  -aplug \u003cplugins\u003e        Comma separated list of audio post processing plugins.\n  -no-video               Don't output video (for use in combination with -ap for visualization plugins).\n  -novideo                Don't output video (for use in combination with -ap for visualization plugins).\n  -bookmark               Remember where media left-off playing.\n  -no-bookmark            Don't remember where media left-off playing.\n  -save-config            Save current cxine setup.\n  -defaults               Reset to default config (this will wipe any settings prior on the command line).\n  -?                      Show this help.\n  -help                   Show this help.\n  --help                  Show this help.\n  --help keys             Show keybindings.\n  --help keygrabs         Show help for keygrab config.\n  --help osd              Show help for OSD config.\n  --help slave            Show help for MPlayer-compatible slave mode.\n  --help plugins          List available plugins.\n```\n\n\nReading From Stdin\n------------------\n\nReading media from stdin can be done using one of the following command lines:\n\n\n```\ncxine -use-stdin\ncxine -\ncxine stdin:\ncxine stdin://\n```\n\nHowever, there are some issues/caveats with this system.\n\nThe xine On Screen Display system requires something to be displayed so that it can 'mix' the onscreen text into the video. Thus cxine provides a default 'background image' (splashscreen) that can serve this purpose. The method it uses to do this is by pipeing a PNG image into it's own stdin, and then telling the xine library to read from stdin. Unfortunately this approach can't be used if we actually want to read media from stdin. Thus, if cxine detects a request to read from stdin, it won't inject the 'splashscreen'. This is fine for any media that has video output, but with audio-only media, the On Screen Display will not work. Solutions to this are:\n\n1) use an audio postprocessor that outputs video. For example:\n\n```\ncxine -ap goom stdin://\n```\n\n2) specify a different background image with  the '-background' option.\n\n```\ncxine -background /tmp/myimage.png stdin:// \n```\n\nThis method doesn't mess with stdin.\n\n3) specify an image as the first media to be played, and use '-image-ms' to advance to the next media url, like so:\n\n```\ncxine -image-ms 1 /tmp/myimage.png stdin:// \n```\n\nThese same caveats apply to situations where you want to read control keystrokes from stdin, and if doing that you cannot supply media on stdin.\n\n\nWindow Types\n------------\n\nThe -win argument accepts a window-type and an optional comma-separated list of extra settings. Window types are:\n\n```\n  none           don't open an X11 window\n  normal         normal X11 window (is the default if no type specified)\n  root           output on desktop root window\n  fullscreen     fullscreen window\n  max            fullscreen window\n  0x\u003cwin id\u003e     the hexidecimal (starting with 0x) id of a window to embed/reparent into\n  \u003cwin id\u003e       the decimal id of a window to embed/reparent into\n```\n\nAdditional window settings are:\n```\n  sticky         appear on all desktops\n  iconized       start with iconized/minimized window\n  iconic         start with iconized/minimized window\n  minimized      start with iconized/minimized window\n  min            start with iconized/minimized window\n  shaded         start with 'shaded' window (if supported by window manager)\n  ontop          keep above all other windows\n  above          keep above all other windows\n  below          keep below all other windows\n  stickontop     shorthand for sticky,ontop\n  stickabove     shorthand for sticky,ontop\n  stickbelow     shorthand for sticky,below\n```\n\nExamples:\n\n```\n  -win fullscreen,min         fullscreen window that's minimized at startup\n  -win sticky                 normal window that appears on all desktops\n  -win normal,shaded,below    normal window starts shaded and below other windows\n  -win 0x1f2bc                embed into window with hexadecimal id 1f2bc\nWhen embedding cxine into another application (e.g. a frontend) window ids can be given to '-win' either in hex (with a leading 0x) or in decimal.\n```\n\n\n\nMedia Types\n-----------\n\nDVDs can be played using the urls `dvd://0` to use dvdnav menu screen (as with a standalone DVD player), or `dvd://1`, `dvd://2`, etc to play a particular track on disk. \n\nData from stdin can be read with a url of the form `stdin://`. \n\n\nBookmarks\n---------\n\nBy default cxine 'bookmarks' the position in a video if exit is requested, and restarts from that position if the media is played again. This may not work for all media types, but it should for .mp4 videos and the like.\n\nBookmark playback can be disabled with `-no-bookmarks` or the `-startms 0` option, which tells cxine to start 0 milliseconds into the media (i.e. at the beginning).\n\n\nEscape to exit, or not\n----------------------\n\nAs a Vim user my pet peeve with mplayer is having an mplayer window popup after a download completes, while I'm in the middle of programming, and just as I hit 'escape' to switch from insert-mode to command-mode in vim. The keystroke winds up going to mplayer causing it to shutdown without playing the media. Thus cxine doesn't honor the escape key by default, but will if supplied the `-esc` option at startup. \n\n\nControl Pipes\n-------------\n\nBy default cxine creates a pipe in `~/.cxine/cxine.pipe` and is always ready to read 'slave mode' commands from there or from stdin (unlike mplayer that only does that when the `-slave` option is supplied). The path to this pipe can be changed with the `-input` option to point to a different pipe. If the pipe does not exist, cxine will create it, otherwise it will just attach ot it in reading mode. The `-input` option can take its argument raw, as `-input \u003cpath to pipe\u003e` or in `MPlayer compatible format` which is `-input file:\u003cpath to pipe\u003e`.\n\nThe `-persist` option is normally needed in conjunction with the `-input` option. `-persist` tells cxine to stay running even if it has nothing to play (otherwise it will exit). The `loadfile` slave-mode command can then be used to load up media to be played.\n\nThe mplayer-compatible `-slave` option is a combination of `-persist` and `-startms 0`, causing CXine to stay running and to start all playback from the beginning of the media.\n\nCXine also supports a `now playing` pipe specified with `-nowplay \u003cpath\u003e`. If the `-now play` option is provided, then CXine will write information about the currently playing media to the pipe. If the pipe does not exist, cxine will create it.\n\n\nAdd URL to Playlist of an Existing CXine\n---------------------------------------\n\nYou can add items to the playlist of a running CXine (which is perhaps running in `-persist` mode) with the `-add` and `-queue` options. Start up another cxine like so:\n\n```\ncxine -add \u003curl\u003e\n```\n\nThis will pass the url to a running cxine using the default cxine control pipe. The `-queue` option works the same way, except if a cxine isn't already running then it starts one up.\n\nYou can also copy-paste a URL into the cxine window.\n\n\nX11 Properties\n--------------\n\nCXine sets X11 properties on its main window with the names 'CXINE:Filename', 'CXINE:Artist', 'CXINE:Title', 'CXINE:Album', 'CXINE:Track', 'CXINE:Year' and 'CXINE:Genre' that hold information about the currently playing media. It also sets the properties 'CXINE:WIN' and 'CXINE:PID' on the root window so that applications can find it's process and window.\n\nCXine also outputs its window id on stdout at startup, in a message of the form `win_id: 0x2400001`. This is intended to allow a player application to reparent buttons into the cxine window itself.\n\n\nAudio Post Plugins\n------------------\n\nCXine can add postprocessing plugins to an audio stream. This is done with the '-ap' option. Available audio plugins are:\n\n```\n        goom            - Psychadelic audio visualization.\n        oscope          - Oscilloscope audio visualization.\n        fftscope        - FFT Scope audio visualization.\n        fftgraph        - FFT Graph audio visualization. \n        tdaudioanalyzer - Time Domain Audio Analyzer Visualisation\n        volnorm         - Normalize volume\n        noise           - Adds noise\n```\n\n\nAudio Compression\n-----------------\n\nthe -ac switch is used to set the audio compression level. This feature in used on media where sound effects (e.g. gunshots, car chase noises) are much louder than the actor's voices. The `-ac` switch takes an argument which is a percentage amount to boost quiet sounds by. Below 100% this does nothing, but the argument `-ac 150` will boost quiet sounds to a maximum of 150% their default value, while boosting louder sounds less or not at all.\n\n\nImage Slideshows and Images for Audio Tracks\n--------------------------------------------\n\nThe `-image-time` or `-imagems` options allow setting a number of milliseconds that cxine will 'pause' on an image before loading the next media item. This can be used to either create slideshows of images, or to supply an image to be displayed during the playing of audio tracks by setting the number of milliseconds to a low value. e.g.\n\n```\ncxine -image-time 2 /home/images/img1.jpg /home/mp3/track1.mp3 /home/images/img2.png /home/mp3/track2.mp3\n```\n\nThe `-background` option allows a default image to be displayed when nothing is playing. This image is redisplayed between every track, and thus will be the background for any tracks that don't have video output.\n\n\nDownloads\n---------\n\nCXine downloads media using helper apps. Either Curl, Wget or Twighbright Links need to be in your path for https/http. CXine should also be able to accept ftp: ftps: sftp: and smb: urls via curl, but these have not been tested. You can also use 'ssh:' (not sftp, this actually streams files over ssh) urls if ssh is in your path, although these have to be set up in your '.ssh/config' to auto-login. \nSo, for example the url \n\n```\n'ssh://myhost/home/music/BinaryFinary.mp3' \n```\n\nwill log into 'myhost' and use ssh to pull the file '/home/music/BinaryFinary.mp3' provided that 'myhost' has been set up in your .config with an ssh key to log in with.\n\nBroadcast\n---------\n\nCxine supports libxine-style broadcast. If the '-bcast' option is used to specify a port then any libxine player (xine, cxine, oxine etc) should be able to connect to it using the url \"slave://\u003caddress\u003e:\u003cport\u003e\" and mirror its output.\n\nStreaming\n---------\n\nThe '-stream' option is intended for use with internet radio, and only works for http:// streams. If '-stream' is supplied then http:// urls will be streamed without being downloaded to the cache directory\n\nPodcasts\n--------\n\nThe '-podcast' option is intended for use with RSS podcast urls. This feature was added in v6.0 and is somewhat experimental. '-podcast' implies '-noauto' and '-playlist' so that all urls passed on the command-line will be considered to be playlists, and tracks/episodes will not be auto-downloaded and played.\n\n\n\nOn Screen Displays\n------------------\n\nCXine supports on-screen-displays at the top and bottom of the screen. These are defined using the `-osd` switch like so:\n\ncxine -osd `top,%t now playing: %T` -osd `bottom,%tP%% %ts/%tl`\n\nThere's also a console-status bar that is output on stdout can be modified with:\n\ncxine -osd `console,%t %tP%% %ts/%tl`\n\nThe argument of the -osd option is a pair of comma-seperated strings. The first is `top` or `bottom` indicating which area of the screen the OSD should be displayed in. The second is the string to display, with the following printf-style `%` substitutions supported:\n\n```\n%%     output '%'\n%B      output current stream bitrate\n%w      output current stream video width\n%h      output current stream video height\n%o      output current stream AV offset\n%A      output artist of current track\n%T      output title of current track\n%C      output comment of current track\n%v      output audio volume (0-100)\n%av     output audio volume (0-100)\n%a4     output audio file FourCC\n%ac     output audio channels (mono, stereo, etc)\n%ab     output audio bitrate\n%as     output audio samplerate\n%aw     output audio width (compression level)\n%Ls     output size of playlist (number of queued tracks)\n%Ls     output curr track in playlist being played\n%ma     output artist for current track\n%mA     output album for current track\n%mt     output title of current track\n%mT     output title of current track\n%mY     output year for current track\n%mG     output genre for current track\n%mR     output copyright for current track\n%mc     output DVD chapter number\n%mC     output number of chapters on DVD\n%ts     output number of seconds into track\n%tS     output seconds into and duration of track as \u003cposition\u003e/\u003ctrack length\u003e\n%tl     output length of current track in seconds\n%tP     output percent into current track\n%tt     output current time in form HH:MM\n%tT     output current time in form HH:MM:SS\n%td     output current date in form YY/mm/dd\n%tD     output current date in form YYYY/mm/dd\n%tN     output current date and time in form YYYY/mm/dd HH:MM:SS\n%tw     output position in track as HH:MM:SS\n%tW     output length of track as HH:MM:SS\n%v4     output video file FourCC\n%vc     output video channels\n%vC     output video codec\n%vb     output video bitrate\n%vs     output video samplerate\n%vw     output video width \n%vh     output video height\n\n```\n\nOnscreen displays only work if there`s a video stream for them to mix into. Thus, to have an OSD when playing audio files you should either use the -background option to set a default background image, or use one of the audio post-processing visualizations, or else supply cxine with a .jpeg or .png image as the first `track` to play, and use the `-image-time` or `-imagems` options to cause the next track to start playing after the image is displayed. The image will persist and be the `video` stream for the OSD to mix into.\n\n\nPlaylist OSD\n------------\n\nPressing 'p' brings up the Playlist On Screen Display. This is a simple menu whose cursor is controlled with the arrow keys on the keyboard. Putting the cursor on a particular item and pressing 'enter' will switch playback to that item. Pressing 'u' or 'd' when an item has the cursor on it will move the item up and down in the playlist. Pressing 'delete' or 'backspace' will delete an item from the playlist. Finally pressing 'p' again will dismiss the Playlist OSD.\n\nLoad Files OSD\n--------------\n\nPressing 'l' brings up the Load Files On Screen Display. This is a simple menu whose cursor is controlled with the arrow keys on the keyboard. Putting the cursor on a particular item and pressing 'enter' will either enter a directory, or add a file to the playlist. Pressing 'delete' or 'backspace' go up one directory level. Pressing 'l' again will dismiss this menu.\n\n\nTracklists\n----------\n\nSome media files contain many tracks, but lack any tracklisting info. This can be provided with an external 'tracklist file'. These files are made of text lines in the format:\n\n```\nmm:ss name\n```\n\nWhere 'mm' is minutes into the media, and 'ss' is seconds, and 'name' is the track name or whatever else is to be displayed when this point is reached.\n\nBy default cxine looks for tracklist files at '$(mrl).tracklist', where '$(mrl)' is the media url or file path of the media file. e.g. a file at '/home/music/binary_finary.mp3' will cause a lookup for a tracklist file at '/home/music/binary_finary.mp3.tracklist'.\n\nThe tracklist path can be changed using the '-tl' or '-tracklist' command-line switches. e.g. 'cxine https://myserver/music/mixtape.mp3 -tracklist /home/tracklists/$(name).tracklist'.\n\nIn addition to '$(mrl)' there are also the variables '$(path)' and $(name). 'path' is the none-network part of a url. e.g., in 'https://myhost/music/rock.mp3' the path would be '/music/rock.mp3'. 'name' is the filename, so in 'https://myhost/music/rock.mp3' it would be 'rock.mp3'.\n\n\n\nKeybindings\n-----------\n\nCXine supports the following keys\n\n```\n\u003cescape\u003e        exit app (requires -esc command-line option)\n\u003cspacebar\u003e      pause playback\n\u003cpause\u003e         pause playback\n\u003chome\u003e          seek to start of playback\n\u003cend\u003e           seek to near end of playback\n\u003center\u003e         next item in playlist\n\u003cleft arrow\u003e    seek back 10 seconds\n                shift: previous item in playlist\n                ctrl: step back (not frame accurate like ctrl-right)\n\u003cright arrow\u003e   seek forward 10 seconds\n                shift: next item in playlist\n                ctrl: single-step 1-frame forwards\n\u003cpage up\u003e       forward dvd chapter \n\u003cpage down\u003e     back dvd chapter \n+ (or '=')      increase volume\n                shift: increase audio compression\n- (or '_')      decrease volume\n                shift: decrease audio compression\nl               display 'load files' menu\nm               mute\no               toggle online status display\ni               toggle media info display\nj               jump to playlist position (currently only works in console mode)\np               display playlist menu\nf               toggle 'fast' playback (4*speed, no sound)\ns               toggle 'slow' playback (1/4 speed, no sound)\n\u003ctab\u003e           toggle between 'raised' and 'lowered' window modes\n                ctrl: toggle 'shaded' window mode (if supported by window-manager)\n\u003cdelete\u003e        reset window to 'normal' mode. (turns off 'above', 'below' and 'shaded' modes)\n.               reset window to 'normal' mode. (turns off 'above', 'below' and 'shaded' modes)\n\u003c               prev item in playlist\n\u003e               next item in playlist\n1,2,3...        seek to n*10 percent (so 5 seeks to 50% of stream)\n```\n\nThe '+' and '-' keys represent a departure from mplayer. On the keypad they work as expected, with the 'shift' modifier alowing change of audio compression. However, on UK keyboards you have to press shift to get '+' on the non-keypad part of the keyboard. This creates confusion. Hence on the normal keyboard '=' and '-' change volume up and down, and their shifted versions '_' and '+' alter audio compression.\n\nWhen in console mode (no X11 window) the 'p' key prints out the current playlist, rather than presenting a menu. To allow movement through the playlist the 'j' key triggers a query into which either a number can by typed, or a shell-style pattern. The playlist will jump to either the track at the numbered position, or to the next track whose title or filename matches the pattern.\n\n\nThe following keys on 'internet' or 'media' keyboards are supported\n\n```\n\u003cplay\u003e\n\u003cstop\u003e\n\u003cpause playback\u003e\n\u003cnext\u003e\n\u003cprevious\u003e\n\u003cvolume up\u003e     with 'shift' causes a larger increase\n\u003cvolume down\u003e   with 'shift' causes a larger decrease\n\u003cvolume mute\u003e\n\n```\n\n\nKeygrabs\n--------\n\nCXine can grab keys for its exclusive use, meaning that that those keystrokes will be sent to it regardless of what window currently has input focus. Keygrabs are supplied to the program in a comma-seperated list after the `-keygrab` option. Recognized key names are either alphanumeric characters and punctuation, or the following names:\n\n```\nup, down, left, right       arrow keys\npgup, pgdn, home, end       page-up, page-down, home and end keys\npgup, pgdn, home, end       page-up, page-down, home and end keys\nins, del                    insert and delete keys\nvup, vdown, mute            volume up, down and mute keys found on 'internet' keyboards\nstop, play, next, prev      playback keys found on 'internet' keyboards\nvpause                      media pause key found on 'internet' keyboards\n```\n\nCXine also supports the following 'group' names that grab groups of keys:\n\n```\narrow                       left right up down\nvolume                      vup, vdown, mute\npage                        pgup, pgdn\nnav                         left, right, up, down, pgup, pgdn, home, end\nmedia                       vup, vdown, mute, stop, play, prev, next, vpause\nkeypad                      up, down, left, right pgup, pgdn, home, end, +, -\n```\n\nAll key and group names can have a modifier prepended. Available modifiers are `shift-`, `cntrl-` and `alt-`. If a key-modifier pair isn`t bound to an action, then cxine will treat the key as though it had no modifier. Thus `alt-o` can be bound to turn OSD display on-and-off without depriving other programs of use of the `o` key.\n\nCommand Mode\n------------\n\nThe -cmd option sends commands to another, already running, cxine. Many of the commands toggle between two states, like raised/unraised or paused/unpaused. Available commands are:\n\n```\npause     pause/unpause playback\nstop      stop playback\nmute      mute/unmute audio\nnext      next track\nprev      previous track\nshade     shade/unshade window\nmini      minimize/restore window\nicon      minimize/restore window\nminimize  minimize/restore window\nlower     lower window below others\nraise     raise window above others\nzcycle    cycle between raised, normal, and lowered window\n```\n\n\nSaving config\n-------------\n\nIf '-save-config' is given then cxine will remember the following settings if they are supplied:\n```\n\t\t-vo, -ao, -ac, -ap, -prefix, -keygrab, -persist/-quit, -bookmark/-no-bookmark, -screensaver/+screensaver, -show-osd/-hide-osd, -background, -input, -nowplay,  -dvd-device, -dvd-region, -dvd-lang, -helpers/+helpers\n```\n\n`-defaults` resets the config to default. It will also reset any settings prior to it  on the command-line, so it's best to pass it as the first option. You can set configs to defaults, make some changes, and then save, like this:\n```\n\t\tcxine -defaults -background myimage.jpg -ao alsa -keygrab media -save\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColumPaget%2Fcxine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FColumPaget%2Fcxine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColumPaget%2Fcxine/lists"}