From 32371b9bab895202c03e85946efd57627e901684 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Mon, 27 Aug 2018 15:02:28 -0700 Subject: mpv: Update to 0.29.0 --- pkg/mpv/config.h | 3 +- pkg/mpv/gen.lua | 9 +- pkg/mpv/gensources.awk | 12 +- pkg/mpv/mpv.1 | 3282 +++++++++++--------- .../patch/0001-Add-generated-ebml-sources.patch | 40 +- pkg/mpv/rev | 2 +- pkg/mpv/sources.txt | 195 +- pkg/mpv/src | 2 +- 8 files changed, 2012 insertions(+), 1533 deletions(-) diff --git a/pkg/mpv/config.h b/pkg/mpv/config.h index e3ef949c..51c13991 100644 --- a/pkg/mpv/config.h +++ b/pkg/mpv/config.h @@ -76,7 +76,6 @@ #define HAVE_VAPOURSYNTH_CORE 0 #define HAVE_LIBARCHIVE 0 #define HAVE_SDL2 0 -#define HAVE_SDL1 0 #define HAVE_OSS_AUDIO 0 #define HAVE_RSOUND 0 #define HAVE_SNDIO 0 @@ -141,6 +140,7 @@ #define HAVE_D3D_HWACCEL 0 #define HAVE_D3D9_HWACCEL 0 #define HAVE_GL_DXINTEROP_D3D9 0 +#define HAVE_FFNVCODEC 0 #define HAVE_CUDA_HWACCEL 0 #define HAVE_TV 0 #define HAVE_SYS_VIDEOIO_H 0 @@ -152,6 +152,7 @@ #define HAVE_WIN32_EXECUTABLE 0 #define HAVE_APPLE_REMOTE 0 #define HAVE_MACOS_TOUCHBAR 0 +#define HAVE_MACOS_COCOA_CB 0 #define CONFIGURATION "(missing)" #define MPV_CONFDIR "/etc/mpv" #define HAVE_GPL 1 diff --git a/pkg/mpv/gen.lua b/pkg/mpv/gen.lua index f524419f..2e715234 100644 --- a/pkg/mpv/gen.lua +++ b/pkg/mpv/gen.lua @@ -33,12 +33,12 @@ pkg.deps = { 'pkg/zlib/headers', } -build('copy', '$outdir/video/out/wayland/xdg-shell-v6.h', '$builddir/pkg/wayland-protocols/include/xdg-shell-unstable-v6-client-protocol.h') +build('copy', '$outdir/video/out/wayland/xdg-shell.h', '$builddir/pkg/wayland-protocols/include/xdg-shell-client-protocol.h') build('copy', '$outdir/video/out/wayland/idle-inhibit-v1.h', '$builddir/pkg/wayland-protocols/include/idle-inhibit-unstable-v1-client-protocol.h') waylandproto('video/out/wayland/server-decoration.xml', 'video/out/wayland/srv-decor.h', nil, 'video/out/wayland/srv-decor.c') table.insert(pkg.deps, { '$outdir/video/out/wayland/idle-inhibit-v1.h', - '$outdir/video/out/wayland/xdg-shell-v6.h', + '$outdir/video/out/wayland/xdg-shell.h', '$outdir/video/out/wayland/srv-decor.h', }) @@ -164,6 +164,11 @@ if options['HAVE_WAYLAND'] then end exe('mpv', { + 'input/ipc-unix.c', + 'osdep/main-fn-unix.c', + 'osdep/subprocess-posix.c', + 'osdep/terminal-unix.c', + 'osdep/timer-linux.c', 'ta/ta.c', 'ta/ta_talloc.c', 'ta/ta_utils.c', diff --git a/pkg/mpv/gensources.awk b/pkg/mpv/gensources.awk index b457c7d0..2f14ef5a 100644 --- a/pkg/mpv/gensources.awk +++ b/pkg/mpv/gensources.awk @@ -2,18 +2,16 @@ BEGIN { FS = "\"" - ignore["osdep/terminal-dummy.c"] = 1 - ignore["input/ipc-dummy.c"] = 1 - ignore["osdep/subprocess-dummy.c"] = 1 - external["video/out/wayland/xdg-shell-v6.c"] = "$builddir/pkg/wayland-protocols/xdg-shell-unstable-v6-protocol.c.o" + external["video/out/wayland/xdg-shell.c"] = "$builddir/pkg/wayland-protocols/xdg-shell-protocol.c.o" external["video/out/wayland/idle-inhibit-v1.c"] = "$builddir/pkg/wayland-protocols/idle-inhibit-v1-protocol.c.o" external["video/out/wayland/srv-decor.c"] = "video/out/wayland/srv-decor.c.o" } -/ +\(.*\),$/ { +/sources = \[/ { insources = 1 } +insources && /\]/ { insources = 0 } + +insources && / +\(.*\),$/ { src = $2 - if (src in ignore) - next if (src in external) src = external[src] if (NF == 3) diff --git a/pkg/mpv/mpv.1 b/pkg/mpv/mpv.1 index e698e6bd..f699ceda 100644 --- a/pkg/mpv/mpv.1 +++ b/pkg/mpv/mpv.1 @@ -30,6 +30,283 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. +.SS Table of Contents +.INDENT 0.0 +.IP \(bu 2 +\fI\%SYNOPSIS\fP +.IP \(bu 2 +\fI\%DESCRIPTION\fP +.IP \(bu 2 +\fI\%INTERACTIVE CONTROL\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Keyboard Control\fP +.IP \(bu 2 +\fI\%Mouse Control\fP +.UNINDENT +.IP \(bu 2 +\fI\%USAGE\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Legacy option syntax\fP +.IP \(bu 2 +\fI\%Escaping spaces and other special characters\fP +.IP \(bu 2 +\fI\%Paths\fP +.IP \(bu 2 +\fI\%Per\-File Options\fP +.IP \(bu 2 +\fI\%List Options\fP +.IP \(bu 2 +\fI\%Playing DVDs\fP +.UNINDENT +.IP \(bu 2 +\fI\%CONFIGURATION FILES\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Location and Syntax\fP +.IP \(bu 2 +\fI\%Escaping spaces and special characters\fP +.IP \(bu 2 +\fI\%Putting Command Line Options into the Configuration File\fP +.IP \(bu 2 +\fI\%File\-specific Configuration Files\fP +.IP \(bu 2 +\fI\%Profiles\fP +.IP \(bu 2 +\fI\%Auto profiles\fP +.UNINDENT +.IP \(bu 2 +\fI\%TAKING SCREENSHOTS\fP +.IP \(bu 2 +\fI\%TERMINAL STATUS LINE\fP +.IP \(bu 2 +\fI\%LOW LATENCY PLAYBACK\fP +.IP \(bu 2 +\fI\%PROTOCOLS\fP +.IP \(bu 2 +\fI\%PSEUDO GUI MODE\fP +.IP \(bu 2 +\fI\%OPTIONS\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Track Selection\fP +.IP \(bu 2 +\fI\%Playback Control\fP +.IP \(bu 2 +\fI\%Program Behavior\fP +.IP \(bu 2 +\fI\%Video\fP +.IP \(bu 2 +\fI\%Audio\fP +.IP \(bu 2 +\fI\%Subtitles\fP +.IP \(bu 2 +\fI\%Window\fP +.IP \(bu 2 +\fI\%Disc Devices\fP +.IP \(bu 2 +\fI\%Equalizer\fP +.IP \(bu 2 +\fI\%Demuxer\fP +.IP \(bu 2 +\fI\%Input\fP +.IP \(bu 2 +\fI\%OSD\fP +.IP \(bu 2 +\fI\%Screenshot\fP +.IP \(bu 2 +\fI\%Software Scaler\fP +.IP \(bu 2 +\fI\%Audio Resampler\fP +.IP \(bu 2 +\fI\%Terminal\fP +.IP \(bu 2 +\fI\%TV\fP +.IP \(bu 2 +\fI\%Cache\fP +.IP \(bu 2 +\fI\%Network\fP +.IP \(bu 2 +\fI\%DVB\fP +.IP \(bu 2 +\fI\%ALSA audio output options\fP +.IP \(bu 2 +\fI\%GPU renderer options\fP +.IP \(bu 2 +\fI\%Miscellaneous\fP +.UNINDENT +.IP \(bu 2 +\fI\%AUDIO OUTPUT DRIVERS\fP +.IP \(bu 2 +\fI\%VIDEO OUTPUT DRIVERS\fP +.IP \(bu 2 +\fI\%AUDIO FILTERS\fP +.IP \(bu 2 +\fI\%VIDEO FILTERS\fP +.IP \(bu 2 +\fI\%ENCODING\fP +.IP \(bu 2 +\fI\%COMMAND INTERFACE\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%input.conf\fP +.IP \(bu 2 +\fI\%General Input Command Syntax\fP +.IP \(bu 2 +\fI\%List of Input Commands\fP +.IP \(bu 2 +\fI\%Input Commands that are Possibly Subject to Change\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Hooks\fP +.IP \(bu 2 +\fI\%Legacy hook API\fP +.UNINDENT +.IP \(bu 2 +\fI\%Input Command Prefixes\fP +.IP \(bu 2 +\fI\%Input Sections\fP +.IP \(bu 2 +\fI\%Properties\fP +.IP \(bu 2 +\fI\%Property list\fP +.IP \(bu 2 +\fI\%Inconsistencies between options and properties\fP +.IP \(bu 2 +\fI\%Property Expansion\fP +.IP \(bu 2 +\fI\%Raw and Formatted Properties\fP +.UNINDENT +.IP \(bu 2 +\fI\%ON SCREEN CONTROLLER\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Using the OSC\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%The Interface\fP +.IP \(bu 2 +\fI\%Key Bindings\fP +.UNINDENT +.IP \(bu 2 +\fI\%Configuration\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Config Syntax\fP +.IP \(bu 2 +\fI\%Command\-line Syntax\fP +.IP \(bu 2 +\fI\%Configurable Options\fP +.IP \(bu 2 +\fI\%Script Commands\fP +.UNINDENT +.UNINDENT +.IP \(bu 2 +\fI\%STATS\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Usage\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Font\fP +.UNINDENT +.IP \(bu 2 +\fI\%Configuration\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Configurable Options\fP +.IP \(bu 2 +\fI\%Different key bindings\fP +.UNINDENT +.UNINDENT +.IP \(bu 2 +\fI\%LUA SCRIPTING\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Example\fP +.IP \(bu 2 +\fI\%Details on the script initialization and lifecycle\fP +.IP \(bu 2 +\fI\%mp functions\fP +.IP \(bu 2 +\fI\%Advanced mp functions\fP +.IP \(bu 2 +\fI\%mp.msg functions\fP +.IP \(bu 2 +\fI\%mp.options functions\fP +.IP \(bu 2 +\fI\%mp.utils functions\fP +.IP \(bu 2 +\fI\%Events\fP +.IP \(bu 2 +\fI\%List of events\fP +.IP \(bu 2 +\fI\%Extras\fP +.UNINDENT +.IP \(bu 2 +\fI\%JAVASCRIPT\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Example\fP +.IP \(bu 2 +\fI\%Similarities with Lua\fP +.IP \(bu 2 +\fI\%Differences from Lua\fP +.IP \(bu 2 +\fI\%Language features \- ECMAScript 5\fP +.IP \(bu 2 +\fI\%Unsupported Lua APIs and their JS alternatives\fP +.IP \(bu 2 +\fI\%Scripting APIs \- identical to Lua\fP +.IP \(bu 2 +\fI\%Additional utilities\fP +.IP \(bu 2 +\fI\%Timers (global)\fP +.IP \(bu 2 +\fI\%CommonJS modules and \fBrequire(id)\fP\fP +.IP \(bu 2 +\fI\%The event loop\fP +.UNINDENT +.IP \(bu 2 +\fI\%JSON IPC\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Socat example\fP +.IP \(bu 2 +\fI\%Command Prompt example\fP +.IP \(bu 2 +\fI\%Protocol\fP +.IP \(bu 2 +\fI\%Commands\fP +.IP \(bu 2 +\fI\%UTF\-8\fP +.UNINDENT +.IP \(bu 2 +\fI\%CHANGELOG\fP +.IP \(bu 2 +\fI\%EMBEDDING INTO OTHER PROGRAMS (LIBMPV)\fP +.IP \(bu 2 +\fI\%C PLUGINS\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%C plugins location\fP +.IP \(bu 2 +\fI\%API\fP +.IP \(bu 2 +\fI\%Linkage to libmpv\fP +.IP \(bu 2 +\fI\%Examples\fP +.UNINDENT +.IP \(bu 2 +\fI\%ENVIRONMENT VARIABLES\fP +.IP \(bu 2 +\fI\%EXIT CODES\fP +.IP \(bu 2 +\fI\%FILES\fP +.IP \(bu 2 +\fI\%FILES ON WINDOWS\fP +.UNINDENT .SH SYNOPSIS .nf \fBmpv\fP [options] [file|URL|PLAYLIST|\-] @@ -72,6 +349,10 @@ Seek forward/backward 1 minute. Shift+arrow does a 5 second exact seek (see Seek to the previous/next subtitle. Subject to some restrictions and might not always work; see \fBsub\-seek\fP command. .TP +.B Ctrl+Shift+Left and Ctrl+Shift+Right +Adjust subtitle delay so that the next or previous subtitle is displayed +now. This is especially useful to sync subtitles to audio. +.TP .B [ and ] Decrease/increase current playback speed by 10%. .TP @@ -81,6 +362,17 @@ Halve/double current playback speed. .B BACKSPACE Reset playback speed to normal. .TP +.B Shift+BACKSPACE +Undo the last seek. This works only if the playlist entry was not changed. +Hitting it a second time will go back to the original position. +See \fBrevert\-seek\fP command for details. +.TP +.B Shift+Ctrl+BACKSPACE +Mark the current position. This will then be used by \fBShift+BACKSPACE\fP +as revert position (once you seek back, the marker will be reset). You can +use this to seek around in the file and then return to the exact position +where you left off. +.TP .B < and > Go backward/forward in the playlist. .TP @@ -131,8 +423,9 @@ Exit fullscreen mode. .B T Toggle stay\-on\-top (see also \fB\-\-ontop\fP). .TP -.B w and e -Decrease/increase pan\-and\-scan range. +.B w and W +Decrease/increase pan\-and\-scan range. The \fBe\fP key does the same as +\fBW\fP currently, but use is discouraged. .TP .B o (also P) Show progression bar, elapsed time and total duration on the OSD. @@ -146,8 +439,9 @@ Toggle subtitle visibility. .B j and J Cycle through the available subtitles. .TP -.B x and z -Adjust subtitle delay by +/\- 0.1 seconds. +.B z and Z +Adjust subtitle delay by +/\- 0.1 seconds. The \fBx\fP key does the same as +\fBZ\fP currently, but use is discouraged. .TP .B l Set/clear A\-B loop points. See \fBab\-loop\fP command for details. @@ -167,8 +461,9 @@ overriding them almost completely with the normal subtitle style. See Toggle subtitle VSFilter aspect compatibility mode. See \fB\-\-sub\-ass\-vsfilter\-aspect\-compat\fP for more info. .TP -.B r and t -Move subtitles up/down. +.B r and R +Move subtitles up/down. The \fBt\fP key does the same as \fBR\fP currently, but +use is discouraged. .TP .B s Take a screenshot. @@ -195,10 +490,30 @@ Activate/deactivate deinterlacer. .TP .B A Cycle aspect ratio override. +.TP +.B Ctrl h +Toggle hardware video decoding on/off. +.TP +.B Alt+LEFT, Alt+RIGHT, Alt+UP, Alt+DOWN +Move the video rectangle (panning). +.TP +.B Alt + and Alt \- +Combining \fBAlt\fP with the \fB+\fP or \fB\-\fP keys changes video zoom. +.TP +.B Alt+BACKSPACE +Reset the pan/zoom settings. +.TP +.B F9 +Show the playlist and the current position in it (useful only if a UI window +is used, broken on the terminal). +.TP +.B F10 +Show the list of audio and subtitle streams (useful only if a UI window is +used, broken on the terminal). .UNINDENT .sp (The following keys are valid only when using a video output that supports the -corresponding adjustment, or the software equalizer (\fB\-\-vf=eq\fP).) +corresponding adjustment.) .INDENT 0.0 .TP .B 1 and 2 @@ -580,6 +895,12 @@ T} T{ Set a list of items T} _ +T{ +\-toggle +T} T{ +Append an item, or remove if if it already exists +T} +_ .TE .sp Although some operations allow specifying multiple \fB,\fP\-separated items, using @@ -587,9 +908,14 @@ this is strongly discouraged and deprecated, except for \fB\-set\fP\&. .sp Without suffix, the action taken is normally \fB\-set\fP\&. .sp -Some options (like \fB\-\-sub\-file\fP, \fB\-\-audio\-file\fP, \fB\-\-opengl\-shader\fP) are +Some options (like \fB\-\-sub\-file\fP, \fB\-\-audio\-file\fP, \fB\-\-glsl\-shader\fP) are aliases for the proper option with \fB\-append\fP action. For example, \fB\-\-sub\-file\fP is an alias for \fB\-\-sub\-files\-append\fP\&. +.sp +Some options only support a subset of the above. +.sp +Options of this type can be changed at runtime using the \fBchange\-list\fP +command, which takes the suffix as separate operation parameter. .SS Playing DVDs .sp DVDs can be played with the \fBdvd://[title]\fP syntax. The optional @@ -661,8 +987,8 @@ setting them to \fIno\fP\&. Even suboptions can be specified in this way. .sp .nf .ft C -# Use opengl video output by default. -vo=opengl +# Use GPU\-accelerated video output by default. +vo=gpu # Use quotes for text that can contain spaces: status\-msg="Time: ${time\-pos}" .ft P @@ -740,6 +1066,11 @@ e.g. \fB[my\-profile]\fP\&. All following options will be part of the profile. A description (shown by \fB\-\-profile=help\fP) can be defined with the \fBprofile\-desc\fP option. To end the profile, start another one or use the profile name \fBdefault\fP to continue with normal options. +.sp +You can list profiles with \fB\-\-profile=help\fP, and show the contents of a +profile with \fB\-\-show\-profile=\fP (replace \fB\fP with the profile +name). You can apply profiles on start with the \fB\-\-profile=\fP option, +or at runtime with the \fBapply\-profile \fP command. .INDENT 0.0 .INDENT 3.5 .IP "Example mpv config file with profiles" @@ -759,7 +1090,7 @@ demuxer\-readahead\-secs=20 [slow] profile\-desc="some profile name" # reference a builtin profile -profile=opengl\-hq +profile=gpu\-hq [fast] vo=vdpau @@ -882,8 +1213,51 @@ decoder frame dropping is enabled with the \fB\-\-framedrop\fP options. .IP \(bu 2 Cache state, e.g. \fBCache: 2s+134KB\fP\&. Visible if the stream cache is enabled. The first value shows the amount of video buffered in the demuxer in seconds, -the second value shows \fIadditional\fP data buffered in the stream cache in -kilobytes. (\fBdemuxer\-cache\-duration\fP and \fBcache\-used\fP properties.) +the second value shows the sum of the demuxer forward cache size and the +\fIadditional\fP data buffered in the stream cache in kilobytes. +(\fBdemuxer\-cache\-duration\fP, \fBdemuxer\-cache\-state\fP, \fBcache\-used\fP +properties.) +.UNINDENT +.SH LOW LATENCY PLAYBACK +.sp +mpv is optimized for normal video playback, meaning it actually tries to buffer +as much data as it seems to make sense. This will increase latency. Reducing +latency is possible only by specifically disabling features which increase +latency. +.sp +The builtin \fBlow\-latency\fP profile tries to apply some of the options which can +reduce latency. You can use \fB\-\-profile=low\-latency\fP to apply all of them. You +can list the contents with \fB\-\-show\-profile=low\-latency\fP (some of the options +are quite obscure, and may change every mpv release). +.sp +Be aware that some of the options can reduce playback quality. +.sp +Most latency is actually caused by inconvenient timing behavior. You can disable +this with \fB\-\-untimed\fP, but it will likely break, unless the stream has no +audio, and the input feeds data to the player at a constant rate. +.sp +Another common problem is with MJPEG streams. These do not signal the correct +framerate. Using \fB\-\-untimed\fP or \fB\-\-no\-correct\-pts \-\-fps=60\fP might help. +.sp +For livestreams, data can build up due to pausing the stream, due to slightly +lower playback rate, or "buffering" pauses. If the demuxer cache is enabled, +these can be skipped manually. The experimental \fBdrop\-buffers\fP command can +be used to discard any buffered data, though it\(aqs very disruptive. +.sp +In some cases, manually tuning TCP buffer sizes and such can help to reduce +latency. +.sp +Additional options that can be tried: +.INDENT 0.0 +.IP \(bu 2 +\fB\-\-opengl\-glfinish=yes\fP, can reduce buffering in the graphics driver +.IP \(bu 2 +\fB\-\-opengl\-swapinterval=0\fP, same +.IP \(bu 2 +\fB\-\-vo=xv\fP, same +.IP \(bu 2 +without audio \fB\-\-framedrop=no \-\-speed=1.01\fP may help for live sources +(results can be mixed) .UNINDENT .SH PROTOCOLS .sp @@ -934,14 +1308,15 @@ Play a path from Samba share. \fBbd://[title][/device]\fP \fB\-\-bluray\-device=PATH\fP .INDENT 0.0 .INDENT 3.5 -Play a Blu\-ray disc. Currently, this does not accept ISO files. Instead, -you must mount the ISO file as filesystem, and point \fB\-\-bluray\-device\fP -to the mounted directory directly. +Play a Blu\-ray disc. Since libbluray 1.0.1, you can read from ISO files +by passing them to \fB\-\-bluray\-device\fP\&. .sp \fBtitle\fP can be: \fBlongest\fP or \fBfirst\fP (selects the default playlist); \fBmpls/\fP (selects .mpls playlist); -\fB\fP (select playlist with the same index). You can list -the available playlists with \fB\-\-msg\-level=bd=v\fP\&. +\fB\fP (select playlist with the same index). mpv will list +the available playlists on loading. +.sp +\fBbluray://\fP is an alias. .UNINDENT .UNINDENT .sp @@ -960,7 +1335,7 @@ thing. .INDENT 0.0 .INDENT 3.5 Play a DVD using the old libdvdread code. This is what MPlayer and -older mpv versions use for \fBdvd://\fP\&. Use is discouraged. It\(aqs +older mpv versions used for \fBdvd://\fP\&. Use is discouraged. It\(aqs provided only for compatibility and for transition, and to work around outstanding dvdnav bugs (see "DVD library choices" above). .UNINDENT @@ -1033,11 +1408,29 @@ absolute path. .UNINDENT .UNINDENT .sp +\fBappending://PATH\fP +.INDENT 0.0 +.INDENT 3.5 +Play a local file, but assume it\(aqs being appended to. This is useful for +example for files that are currently being downloaded to disk. This will +block playback, and stop playback only if no new data was appended after +a timeout of about 2 seconds. +.sp +Using this is still a bit of a bad idea, because there is no way to detect +if a file is actually being appended, or if it\(aqs still written. If you\(aqre +trying to play the output of some program, consider using a pipe +(\fBsomething | mpv \-\fP). If it really has to be a file on disk, use tail to +make it wait forever, e.g. \fBtail \-f \-c +0 file.mkv | mpv \-\fP\&. +.UNINDENT +.UNINDENT +.sp \fBfd://123\fP .INDENT 0.0 .INDENT 3.5 Read data from the given file descriptor (for example 123). This is similar to piping data to stdin via \fB\-\fP, but can use an arbitrary file descriptor. +mpv may modify some file descriptor properties when the stream layer "opens" +it. .UNINDENT .UNINDENT .sp @@ -1173,6 +1566,9 @@ subtitles. .UNINDENT .UNINDENT .TP +.B \fB\-\-vlang=<...>\fP +Equivalent to \fB\-\-alang\fP and \fB\-\-slang\fP, for video tracks. +.TP .B \fB\-\-aid=\fP Select audio track. \fBauto\fP selects the default, \fBno\fP disables audio. See also \fB\-\-alang\fP\&. mpv normally prints available audio tracks on the @@ -1204,15 +1600,6 @@ If video is disabled, mpv will try to download the audio only if media is streamed with youtube\-dl, because it saves bandwidth. This is done by setting the ytdl_format to "bestaudio/best" in the ytdl_hook.lua script. .TP -.B \fB\-\-ff\-aid=\fP, \fB\-\-ff\-sid=\fP, \fB\-\-ff\-vid=\fP -Select audio/subtitle/video streams by the FFmpeg stream index. The FFmpeg -stream index is relatively arbitrary, but useful when interacting with -other software using FFmpeg (consider \fBffprobe\fP). -.sp -Note that with external tracks (added with \fB\-\-sub\-files\fP and similar -options), there will be streams with duplicate IDs. In this case, the -first stream in order is selected. -.TP .B \fB\-\-edition=\fP (Matroska files only) Specify the edition (set of chapters) to use, where 0 is the first. If set @@ -1245,6 +1632,8 @@ considered 0.) \fBpp%\fP seeks to percent position pp (0\-100). .sp \fB#c\fP seeks to chapter number c. (Chapters start from 1.) +.sp +\fBnone\fP resets any previously set option (useful for libmpv). .INDENT 7.0 .INDENT 3.5 .IP "Examples" @@ -1275,13 +1664,16 @@ Plays chapters 2 and 3, and exits. .UNINDENT .UNINDENT .TP -.B \fB\-\-end=