<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="/assets/rss-20b3285f.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>标签: mpv - ouuan's blog</title>
        <link>https://ouuan.moe/tag/mpv</link>
        <description>标签为 mpv 的文章 - ouuan 的博客</description>
        <lastBuildDate>Tue, 08 Aug 2023 13:26:50 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-CN</language>
        <copyright>Copyright © 2022 - 2026 ouuan
Licensed under CC BY-SA 4.0</copyright>
        <atom:link href="https://ouuan.moe/tag/mpv/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[配一下 mpv]]></title>
            <link>https://ouuan.moe/post/2023/08/mpv-tweaks</link>
            <guid>https://ouuan.moe/post/2023/08/mpv-tweaks</guid>
            <pubDate>Tue, 08 Aug 2023 13:26:50 GMT</pubDate>
            <description><![CDATA[<p>mpv 是一款 <s>神似 vim 的</s> 媒体播放器<span class="mojikumi-line-end">，</span>就是说第一眼有点劝退<span class="mojikumi-line-end">，</span>配置项很多<span class="mojikumi-line-end">，</span>但如果能花点时间进行配置还是挺香的<span class="mojikumi-line-end">，</span>而且可以写脚本实现各种功能<span class="mojikumi-line-end">。</span></p>
]]></description>
            <content:encoded><![CDATA[<p>mpv 是一款 <s>神似 vim 的</s> 媒体播放器<span class="mojikumi-line-end">，</span>就是说第一眼有点劝退<span class="mojikumi-line-end">，</span>配置项很多<span class="mojikumi-line-end">，</span>但如果能花点时间进行配置还是挺香的<span class="mojikumi-line-end">，</span>而且可以写脚本实现各种功能<span class="mojikumi-line-end">。</span></p>

<p>自从开始用 Linux 后我一直用的是 vlc<span class="mojikumi-line-end">，</span>但总感觉有点捞<span class="mojikumi-line-start">（</span><span class="mojikumi-line-end">，</span>最明显的是在暂停继续 / 快进后退时<span class="mojikumi-line-end">，</span>经常会卡几秒<span class="mojikumi-line-end">，</span>而且不是卡住不动而是边放边卡<span class="mojikumi-line-end">，</span>感觉非常神秘<span class="mojikumi-line-end">，</span>不知道能不能修<span class="mojikumi-line-end">，</span>反正我之前简单搜过没修好<span class="mojikumi-line-end">。</span>而 mpv 默认就没有这样的问题<span class="mojikumi-line-end">，</span>早就想用了<span class="mojikumi-line-end">，</span>但之前被它简陋的 UI 以及复杂的配置劝退了<span class="mojikumi-line-end">，</span>拖到现在才入坑<span class="mojikumi-line-end">。</span></p>
<aside role="note" data-v-a2ab257f><div class="shadow-md rd-1 b-l-6 my-6 bg-orange-1 dark:bg-orange-9 b-orange" data-v-a2ab257f><div class="p-3 flex justify-between items-center" data-v-a2ab257f><h2 class="flex items-center gap-1 font-bold" data-v-a2ab257f><span class="text-5 i-mdi-alert-circle-outline text-orange" data-v-a2ab257f></span><!--v-if--><span data-v-a2ab257f>Warning</span></h2><!--v-if--></div><div class="overflow-auto rd-br-1 bg-card px-6 dark:bg-bghover" data-v-a2ab257f><p>我是 <a href="https://archlinux.org/">Arch Linux</a> + <a href="https://i3wm.org/">i3</a> + <a href="https://github.com/jarun/nnn">nnn</a> 用户<span class="mojikumi-line-end">，</span>下面有一些配置可能不适用于其他用户<span class="mojikumi-line-end">。</span></p></div></div></aside>
<p>完整配置<span class="mojikumi-line-end">：</span><a href="https://github.com/ouuan/dotfiles/tree/master/.config/mpv">ouuan/dotfiles/.config/mpv</a></p>
<h2 id="入坑" class="heading"><a href="#入坑" class="heading-anchor" aria-label="章节： 入坑" tabindex="-1"></a><span>入坑</span></h2>
<h3 id="参考资料" class="heading"><a href="#参考资料" class="heading-anchor" aria-label="章节： 参考资料" tabindex="-1"></a><span>参考资料</span></h3>
<ul>
<li><a href="https://wiki.archlinux.org/title/Mpv">mpv - ArchWiki</a></li>
<li><code>/<wbr>usr<wbr>/<wbr>share<wbr>/<wbr>doc<wbr>/<wbr>mpv<wbr>/</code></li>
<li><a href="https://mpv.io/manual/stable/">Reference Manual - mpv.io</a> (<code>man mpv</code>)</li>
<li>
<span class="heimu">Google</span>
</li>
<li>
<span class="heimu">ChatGPT</span>
</li>
</ul>
<h3 id="配置文件" class="heading"><a href="#配置文件" class="heading-anchor" aria-label="章节： 配置文件" tabindex="-1"></a><span>配置文件</span></h3>
<ul>
<li><code>~/.<wbr>config<wbr>/<wbr>mpv<wbr>/<wbr>mpv<wbr>.<wbr>conf</code>: 主配置文件</li>
<li><code>~/.<wbr>config<wbr>/<wbr>mpv<wbr>/<wbr>input<wbr>.<wbr>conf</code>: key binding 配置</li>
<li><code>~/.<wbr>config<wbr>/<wbr>mpv<wbr>/<wbr>scripts<wbr>/</code>: 脚本<span class="mojikumi-line-end">，</span>放里面就会运行</li>
<li><code>~/.<wbr>config<wbr>/<wbr>mpv<wbr>/<wbr>script<wbr>-<wbr>opts<wbr>/</code>: 脚本的配置<span class="mojikumi-line-end">，</span>例如 <code>~/.<wbr>config<wbr>/<wbr>mpv<wbr>/<wbr>script<wbr>-<wbr>opts<wbr>/<wbr>osc<wbr>.<wbr>conf</code></li>
<li><code>/<wbr>usr<wbr>/<wbr>share<wbr>/<wbr>mpv<wbr>/<wbr>scripts<wbr>/</code>: 一些自带的脚本<span class="mojikumi-line-end">，</span>可以 symlink 到 <code>~/.<wbr>config<wbr>/<wbr>mpv<wbr>/<wbr>scripts<wbr>/</code></li>
</ul>
<p>有个冷知识 (?) 可以注意一下<span class="mojikumi-line-end">：</span></p>
<blockquote>
<p>Every <i>flag</i> option has a <i>no-flag</i> counterpart, e.g. the opposite of the <code>--fs</code> option is <code>--no-fs</code>. <code>--fs=yes</code> is same as <code>--fs</code>, <code>--fs=no</code> is the same as <code>--no-fs</code>.</p>
</blockquote>
<h2 id="输出" class="heading"><a href="#输出" class="heading-anchor" aria-label="章节： 输出" tabindex="-1"></a><span>输出</span></h2>
<p>其实我不是很懂这些<span class="mojikumi-line-end">，</span>但这两天进行各种尝试的感觉是<span class="mojikumi-line-end">，</span><s>少配点吧<span class="mojikumi-line-end">，</span>默认挺好的<span class="mojikumi-line-start">（</span></s></p>
<h3 id="输出质量" class="heading"><a href="#输出质量" class="heading-anchor" aria-label="章节： 输出质量" tabindex="-1"></a><span>输出质量</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-1"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-1--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">profile</span><span style="color: #403F53">=gpu-hq</span></span>
<span><span style="color: #994CC3">profile</span><span style="color: #403F53">=vo-gpu-high</span></span>
<span></span>
<span><span style="color: #403F53">[vo-gpu-high]</span></span>
<span><span style="color: #994CC3">vo</span><span style="color: #403F53">=gpu</span></span>
<span><span style="color: #994CC3">scale</span><span style="color: #403F53">=ewa_lanczossharp</span></span>
<span><span style="color: #994CC3">cscale</span><span style="color: #403F53">=ewa_lanczossharp</span></span>
<span><span style="color: #994CC3">video-sync</span><span style="color: #403F53">=display-resample</span></span>
<span><span style="color: #994CC3">interpolation</span><span style="color: #403F53">=yes</span></span>
<span><span style="color: #994CC3">tscale</span><span style="color: #403F53">=oversample</span></span>
<span></span>
<span><span style="color: #403F53">[vo-gpu-low]</span></span>
<span><span style="color: #994CC3">vo</span><span style="color: #403F53">=gpu</span></span>
<span><span style="color: #994CC3">scale</span><span style="color: #403F53">=spline36</span></span>
<span><span style="color: #994CC3">cscale</span><span style="color: #403F53">=spline36</span></span>
<span><span style="color: #994CC3">video-sync</span><span style="color: #403F53">=display-resample</span></span>
<span><span style="color: #994CC3">interpolation</span><span style="color: #403F53">=no</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">profile</span><span style="color: #D6DEEB">=gpu-hq</span></span>
<span><span style="color: #C792EA">profile</span><span style="color: #D6DEEB">=vo-gpu-high</span></span>
<span></span>
<span><span style="color: #D6DEEB">[vo-gpu-high]</span></span>
<span><span style="color: #C792EA">vo</span><span style="color: #D6DEEB">=gpu</span></span>
<span><span style="color: #C792EA">scale</span><span style="color: #D6DEEB">=ewa_lanczossharp</span></span>
<span><span style="color: #C792EA">cscale</span><span style="color: #D6DEEB">=ewa_lanczossharp</span></span>
<span><span style="color: #C792EA">video-sync</span><span style="color: #D6DEEB">=display-resample</span></span>
<span><span style="color: #C792EA">interpolation</span><span style="color: #D6DEEB">=yes</span></span>
<span><span style="color: #C792EA">tscale</span><span style="color: #D6DEEB">=oversample</span></span>
<span></span>
<span><span style="color: #D6DEEB">[vo-gpu-low]</span></span>
<span><span style="color: #C792EA">vo</span><span style="color: #D6DEEB">=gpu</span></span>
<span><span style="color: #C792EA">scale</span><span style="color: #D6DEEB">=spline36</span></span>
<span><span style="color: #C792EA">cscale</span><span style="color: #D6DEEB">=spline36</span></span>
<span><span style="color: #C792EA">video-sync</span><span style="color: #D6DEEB">=display-resample</span></span>
<span><span style="color: #C792EA">interpolation</span><span style="color: #D6DEEB">=no</span></span></code></pre></div></section>
<p>参考 <a href="https://wiki.archlinux.org/title/Mpv#High_quality_configurations">High quality configurations - mpv - ArchWiki</a><span class="mojikumi-line-end">。</span></p>
<p><code>scale</code> 和 <code>cscale</code> 是用于 upscale<span class="mojikumi-line-end">，</span>片源分辨率低于显示器才有用<span class="mojikumi-line-end">，</span>虽然 <code>ewa_<wbr>lanczossharp</code> 性能开销较大<span class="mojikumi-line-end">，</span>但只用于低分辨率就还好<span class="mojikumi-line-end">。</span>和 <code>spline36</code> 在视觉上的差异几乎没有<span class="mojikumi-line-end">，</span>性能不够就别用<span class="mojikumi-line-end">，</span>性能够的话用不用都行<span class="mojikumi-line-end">。</span></p>
<p>interpolation 可以参考 <a href="https://github.com/mpv-player/mpv/wiki/Interpolation">Interpolation · mpv Wiki</a><span class="mojikumi-line-end">，</span><code>tscale<wbr>=<wbr>oversample</code> 不会造成 <span class="mojikumi">“</span>soap opera effect<span class="mojikumi">”</span><wbr><span class="mojikumi-line-start">（</span>如果用 SVP 就可能会有<span class="mojikumi">）</span><span class="mojikumi-line-end">。</span>可以找个人物动作之类的片段开 A-B loop 对比<span class="mojikumi-line-start">（</span></p>
<p>如果播放一些高码率视频<span class="mojikumi-line-end">，</span>可能会性能不够<span class="mojikumi-line-end">，</span>所以可以两个 profile 切换<span class="mojikumi-line-end">。</span></p>
<h3 id="gpu-next" class="heading"><a href="#gpu-next" class="heading-anchor" aria-label="章节： gpu-next" tabindex="-1"></a><span>gpu-next</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-2"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-2--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #403F53">[vo-gpu-next]</span></span>
<span><span style="color: #994CC3">vo</span><span style="color: #403F53">=gpu-next</span></span>
<span><span style="color: #994CC3">scale</span><span style="color: #403F53">=spline36</span></span>
<span><span style="color: #994CC3">cscale</span><span style="color: #403F53">=spline36</span></span>
<span><span style="color: #994CC3">video-sync</span><span style="color: #403F53">=audio</span></span>
<span><span style="color: #994CC3">interpolation</span><span style="color: #403F53">=no</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #D6DEEB">[vo-gpu-next]</span></span>
<span><span style="color: #C792EA">vo</span><span style="color: #D6DEEB">=gpu-next</span></span>
<span><span style="color: #C792EA">scale</span><span style="color: #D6DEEB">=spline36</span></span>
<span><span style="color: #C792EA">cscale</span><span style="color: #D6DEEB">=spline36</span></span>
<span><span style="color: #C792EA">video-sync</span><span style="color: #D6DEEB">=audio</span></span>
<span><span style="color: #C792EA">interpolation</span><span style="color: #D6DEEB">=no</span></span></code></pre></div></section>
<p>这个最直接的作用是可以读取 Dolby Vision metadata<span class="mojikumi-line-end">，</span>不会出现颜色错误之类的<span class="mojikumi">。</span><wbr><span class="mojikumi-line-start">（</span>可以用 <a href="https://www.demolandia.net/4k-video-test/dolby-vision/page-1.html">4K Dolby Vision video test</a> 测试<span class="mojikumi">。</span><span class="mojikumi-line-end">）</span></p>
<p>但还是不太稳定<span class="mojikumi-line-end">，</span><code>scale<wbr>=<wbr>ewa_<wbr>lanczossharp</code> 可能会偶尔黑屏<span class="mojikumi-line-end">，</span><code>video<wbr>-<wbr>sync<wbr>=<wbr>display<wbr>-<wbr>resample</code> 会闪屏<span class="mojikumi-line-end">。</span></p>
<p>可以设个快捷键切换<span class="mojikumi-line-end">，</span>需要 <a href="https://github.com/CogentRedTester/mpv-scripts/blob/master/cycle-commands.lua"><code>cycle<wbr>-<wbr>commands<wbr>.<wbr>lua</code></a><span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-3"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-3--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">G               script-message cycle-commands &#39;apply-profile vo-gpu-low ; show-text &quot;vo gpu-low&quot;&#39; &#39;apply-profile vo-gpu-next ; show-text &quot;vo gpu-next&quot;&#39; &#39;apply-profile vo-gpu-high ; show-text &quot;vo gpu high&quot;&#39;</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">G               script-message cycle-commands &#39;apply-profile vo-gpu-low ; show-text &quot;vo gpu-low&quot;&#39; &#39;apply-profile vo-gpu-next ; show-text &quot;vo gpu-next&quot;&#39; &#39;apply-profile vo-gpu-high ; show-text &quot;vo gpu high&quot;&#39;</span></span></samp></pre></div></section>
<h3 id="硬件解码" class="heading"><a href="#硬件解码" class="heading-anchor" aria-label="章节： 硬件解码" tabindex="-1"></a><span>硬件解码</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-4"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-4--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">hwdec</span><span style="color: #403F53">=auto-safe</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">hwdec</span><span style="color: #D6DEEB">=auto-safe</span></span></code></pre></div></section>
<p><code>hwdec</code> 可以实测一下来看要不要开<span class="mojikumi-line-end">，</span>之前我测的时候结果变化还挺大的<span class="mojikumi-line-end">，</span>感觉主要是 CPU 连续工作一段时间性能会下降<span class="mojikumi-line-end">，</span>而且不同视频效果也不同<span class="mojikumi-line-end">，</span>可以设 key binding 控制开关<span class="mojikumi-line-end">，</span>实时看 stats<span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-5"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-5--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">g               cycle-values hwdec no auto-safe</span></span>
<span><span style="color: #403f53"></span></span>
<span><span style="color: #403f53">i               script-binding stats/display-stats-toggle</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">g               cycle-values hwdec no auto-safe</span></span>
<span><span style="color: #d6deeb"></span></span>
<span><span style="color: #d6deeb">i               script-binding stats/display-stats-toggle</span></span></samp></pre></div></section>
<h3 id="音量均衡" class="heading"><a href="#音量均衡" class="heading-anchor" aria-label="章节： 音量均衡" tabindex="-1"></a><span>音量均衡</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-6"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-6--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">af</span><span style="color: #403F53">=loudnorm</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">af</span><span style="color: #D6DEEB">=loudnorm</span></span></code></pre></div></section>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-7"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-7--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">n               cycle-values af &quot;&quot; loudnorm</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">n               cycle-values af &quot;&quot; loudnorm</span></span></samp></pre></div></section>
<p>以前听歌和看视频之间切换时经常要调音量<span class="mojikumi-line-end">，</span>加上这个就好了<span class="mojikumi-line-end">。</span></p>
<h2 id="快捷键" class="heading"><a href="#快捷键" class="heading-anchor" aria-label="章节： 快捷键" tabindex="-1"></a><span>快捷键</span></h2>
<p>key binding 很看个人习惯<span class="mojikumi-line-end">，</span>可以对着 <code>/<wbr>usr<wbr>/<wbr>share<wbr>/<wbr>doc<wbr>/<wbr>mpv<wbr>/<wbr>input<wbr>.<wbr>conf</code> 修改<span class="mojikumi-line-end">。</span>如果没啥习惯可以直接用默认的<span class="mojikumi-line-end">。</span></p>
<p>虽然感觉没太大参考价值<span class="mojikumi-line-end">，</span>但是<span class="mojikumi-line-end">：</span><a href="https://github.com/ouuan/dotfiles/blob/master/.config/mpv/input.conf">input.conf · ouuan/dotfiles</a><span class="mojikumi-line-end">。</span></p>
<h3 id="避免误触未知快捷键" class="heading"><a href="#避免误触未知快捷键" class="heading-anchor" aria-label="章节： 避免误触未知快捷键" tabindex="-1"></a><span>避免误触未知快捷键</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-8"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-8--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #403F53">no-input-default-bindings</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #D6DEEB">no-input-default-bindings</span></span></code></pre></div></section>
<p>这个可能会影响通过脚本设置快捷键<span class="mojikumi-line-end">，</span>如果不想影响脚本可以 <code>no<wbr>-<wbr>input<wbr>-<wbr>builtin<wbr>-<wbr>bindings</code><span class="mojikumi-line-end">。</span></p>
<h3 id="右键菜单" class="heading"><a href="#右键菜单" class="heading-anchor" aria-label="章节： 右键菜单" tabindex="-1"></a><span>右键菜单</span></h3>
<p><a href="https://gitlab.com/carmanaught/mpvcontextmenu">Thomas Carmichael / mpvcontextmenu · GitLab</a></p>
<p>把 <code>mpvcontextmenu</code> 文件夹放进 <code>scripts</code><span class="mojikumi-line-end">。</span>需要安装 <code>gjs</code><span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-9"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-9--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">MBTN_RIGHT      script-message mpv_context_menu_gtk</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">MBTN_RIGHT      script-message mpv_context_menu_gtk</span></span></samp></pre></div></section>
<p>调整字体<span class="mojikumi-line-end">：</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-10"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-10--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #989FB1"># script-opts/menu-engine.conf</span></span>
<span></span>
<span><span style="color: #994CC3">fontFace</span><span style="color: #403F53">=monospace</span></span>
<span><span style="color: #994CC3">fontSize</span><span style="color: #403F53">=15</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #637777"># script-opts/menu-engine.conf</span></span>
<span></span>
<span><span style="color: #C792EA">fontFace</span><span style="color: #D6DEEB">=monospace</span></span>
<span><span style="color: #C792EA">fontSize</span><span style="color: #D6DEEB">=15</span></span></code></pre></div></section>
<p>它附带了通过 GUI 打开文件的功能<span class="mojikumi">：</span><wbr><span class="mojikumi-line-start">（</span>需要安装 <code>kdialog</code> 或 <code>zenity</code><span class="mojikumi-line-end">）</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-11"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-11--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #989FB1"># script-opts/gui-dialogs.conf</span></span>
<span></span>
<span><span style="color: #994CC3">dialogPref</span><span style="color: #403F53">=kdialog</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #637777"># script-opts/gui-dialogs.conf</span></span>
<span></span>
<span><span style="color: #C792EA">dialogPref</span><span style="color: #D6DEEB">=kdialog</span></span></code></pre></div></section>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-12"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-12--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">o               script-binding add_subtitle_dialog</span></span>
<span><span style="color: #403f53">O               script-binding add_audio_dialog</span></span>
<span><span style="color: #403f53">Ctrl+o          script-binding add_files_dialog</span></span>
<span><span style="color: #403f53">Ctrl+O          script-binding append_files_dialog</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">o               script-binding add_subtitle_dialog</span></span>
<span><span style="color: #d6deeb">O               script-binding add_audio_dialog</span></span>
<span><span style="color: #d6deeb">Ctrl+o          script-binding add_files_dialog</span></span>
<span><span style="color: #d6deeb">Ctrl+O          script-binding append_files_dialog</span></span></samp></pre></div></section>
<h3 id="快进" class="heading"><a href="#快进" class="heading-anchor" aria-label="章节： 快进" tabindex="-1"></a><span>快进</span></h3>
<p>长按 <kbd>→</kbd> 快进<span class="mojikumi-line-end">。</span></p>
<p><a href="https://github.com/ouuan/dotfiles/blob/master/.config/mpv/scripts/fast-forward.lua"><code>fast<wbr>-<wbr>forward<wbr>.<wbr>lua</code></a></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-13"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-13--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">RIGHT           script-binding fast-forward</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">RIGHT           script-binding fast-forward</span></span></samp></pre></div></section>
<h3 id="每根毛都看得清清楚楚" class="heading"><a href="#每根毛都看得清清楚楚" class="heading-anchor" aria-label="章节： 每根毛都看得清清楚楚" tabindex="-1"></a><span><s>每根毛都看得清清楚楚</s></span></h3>
<p>用鼠标放大<span class="mojikumi-line-end">、</span>拖拽画面<span class="mojikumi-line-end">。</span></p>
<p><a href="https://github.com/occivink/mpv-image-viewer/blob/master/scripts/image-positioning.lua"><code>mpv<wbr>-<wbr>image<wbr>-<wbr>viewer<wbr>/<wbr>scripts<wbr>/<wbr>image<wbr>-<wbr>positioning<wbr>.<wbr>lua</code></a></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-14"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-14--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">Ctrl+WHEEL_UP   script-message cursor-centric-zoom 0.1</span></span>
<span><span style="color: #403f53">Ctrl+WHEEL_DOWN script-message cursor-centric-zoom -0.1</span></span>
<span><span style="color: #403f53">Ctrl+MBTN_LEFT  script-binding drag-to-pan</span></span>
<span><span style="color: #403f53">r               script-message rotate-video  90</span></span>
<span><span style="color: #403f53">R               script-message rotate-video -90</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">Ctrl+WHEEL_UP   script-message cursor-centric-zoom 0.1</span></span>
<span><span style="color: #d6deeb">Ctrl+WHEEL_DOWN script-message cursor-centric-zoom -0.1</span></span>
<span><span style="color: #d6deeb">Ctrl+MBTN_LEFT  script-binding drag-to-pan</span></span>
<span><span style="color: #d6deeb">r               script-message rotate-video  90</span></span>
<span><span style="color: #d6deeb">R               script-message rotate-video -90</span></span></samp></pre></div></section>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-15"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-15--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #403F53">no-window-dragging </span><span style="color: #989FB1"># for drag-to-pan</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #D6DEEB">no-window-dragging </span><span style="color: #637777"># for drag-to-pan</span></span></code></pre></div></section>
<h3 id="选择-track" class="heading"><a href="#选择-track" class="heading-anchor" aria-label="章节： 选择 track" tabindex="-1"></a><span>选择 track</span></h3>
<p>裸的 mpv 添加 / 选择 track 很不方便<span class="mojikumi-line-end">，</span>有了 <code>mpvcontextmenu</code> 就好很多了<span class="mojikumi-line-end">，</span>但我在发现它之前就自己写了两个脚本<span class="mojikumi-line-end">，</span>现在有了它就把添加文件的删了<span class="mojikumi-line-end">，</span>但选择 track 还是保留下来<span class="mojikumi-line-end">。</span></p>
<p>顺便还会在打开文件时检测当前是否是双声道<span class="mojikumi-line-end">，</span>如果不是<span class="mojikumi-line-start">（</span>例如是环绕声<span class="mojikumi-line-end">）</span>则弹出音轨选择<span class="mojikumi-line-end">。</span></p>
<p><a href="https://github.com/ouuan/dotfiles/blob/master/.config/mpv/scripts/select-track.lua"><code>select<wbr>-<wbr>track<wbr>.<wbr>lua</code></a></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-16"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-16--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">t               script-binding select-subtitle</span></span>
<span><span style="color: #403f53">T               script-binding select-audio</span></span>
<span><span style="color: #403f53">Ctrl+t          script-binding select-video</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">t               script-binding select-subtitle</span></span>
<span><span style="color: #d6deeb">T               script-binding select-audio</span></span>
<span><span style="color: #d6deeb">Ctrl+t          script-binding select-video</span></span></samp></pre></div></section>
<h3 id="重置设置" class="heading"><a href="#重置设置" class="heading-anchor" aria-label="章节： 重置设置" tabindex="-1"></a><span>重置设置</span></h3>
<p>我这里只重置了会被我的 key binding 修改的设置<span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-17"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-17--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">Ctrl+0          apply-profile reset-all ; show-text 已重置所有设置</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">Ctrl+0          apply-profile reset-all ; show-text 已重置所有设置</span></span></samp></pre></div></section>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-18"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-18--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #403F53">[reset-all]</span></span>
<span><span style="color: #994CC3">profile-desc</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">重置所有设置</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #994CC3">volume</span><span style="color: #403F53">=100</span></span>
<span><span style="color: #994CC3">mute</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #994CC3">speed</span><span style="color: #403F53">=1</span></span>
<span><span style="color: #994CC3">brightness</span><span style="color: #403F53">=0</span></span>
<span><span style="color: #994CC3">video-zoom</span><span style="color: #403F53">=0</span></span>
<span><span style="color: #994CC3">video-pan-x</span><span style="color: #403F53">=0</span></span>
<span><span style="color: #994CC3">video-pan-y</span><span style="color: #403F53">=0</span></span>
<span><span style="color: #994CC3">video-rotate</span><span style="color: #403F53">=0</span></span>
<span><span style="color: #994CC3">sub-visibility</span><span style="color: #403F53">=yes</span></span>
<span><span style="color: #994CC3">sub-scale</span><span style="color: #403F53">=1</span></span>
<span><span style="color: #994CC3">sub-pos</span><span style="color: #403F53">=100</span></span>
<span><span style="color: #994CC3">audio-delay</span><span style="color: #403F53">=0</span></span>
<span><span style="color: #994CC3">ab-loop-a</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #994CC3">ab-loop-b</span><span style="color: #403F53">=no</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #D6DEEB">[reset-all]</span></span>
<span><span style="color: #C792EA">profile-desc</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">重置所有设置</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #C792EA">volume</span><span style="color: #D6DEEB">=100</span></span>
<span><span style="color: #C792EA">mute</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #C792EA">speed</span><span style="color: #D6DEEB">=1</span></span>
<span><span style="color: #C792EA">brightness</span><span style="color: #D6DEEB">=0</span></span>
<span><span style="color: #C792EA">video-zoom</span><span style="color: #D6DEEB">=0</span></span>
<span><span style="color: #C792EA">video-pan-x</span><span style="color: #D6DEEB">=0</span></span>
<span><span style="color: #C792EA">video-pan-y</span><span style="color: #D6DEEB">=0</span></span>
<span><span style="color: #C792EA">video-rotate</span><span style="color: #D6DEEB">=0</span></span>
<span><span style="color: #C792EA">sub-visibility</span><span style="color: #D6DEEB">=yes</span></span>
<span><span style="color: #C792EA">sub-scale</span><span style="color: #D6DEEB">=1</span></span>
<span><span style="color: #C792EA">sub-pos</span><span style="color: #D6DEEB">=100</span></span>
<span><span style="color: #C792EA">audio-delay</span><span style="color: #D6DEEB">=0</span></span>
<span><span style="color: #C792EA">ab-loop-a</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #C792EA">ab-loop-b</span><span style="color: #D6DEEB">=no</span></span></code></pre></div></section>
<h2 id="听歌" class="heading"><a href="#听歌" class="heading-anchor" aria-label="章节： 听歌" tabindex="-1"></a><span>听歌</span></h2>
<h3 id="播放列表管理" class="heading"><a href="#播放列表管理" class="heading-anchor" aria-label="章节： 播放列表管理" tabindex="-1"></a><span>播放列表管理</span></h3>
<p><a href="https://github.com/jonniek/mpv-playlistmanager">jonniek/mpv-playlistmanager: Mpv lua script to create and manage playlists</a></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-19"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-19--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">P               script-binding showplaylist</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">P               script-binding showplaylist</span></span></samp></pre></div></section>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-20"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-20--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">key_moveup</span><span style="color: #403F53">=k UP</span></span>
<span><span style="color: #994CC3">key_movedown</span><span style="color: #403F53">=j DOWN</span></span>
<span><span style="color: #994CC3">key_movepageup</span><span style="color: #403F53">=Ctrl+u PGUP</span></span>
<span><span style="color: #994CC3">key_movepagedown</span><span style="color: #403F53">=Ctrl+d PGDWN</span></span>
<span><span style="color: #994CC3">key_movebegin</span><span style="color: #403F53">=^ 0 HOME</span></span>
<span><span style="color: #994CC3">key_moveend</span><span style="color: #403F53">=$ END</span></span>
<span><span style="color: #994CC3">key_selectfile</span><span style="color: #403F53">=d-d</span></span>
<span><span style="color: #994CC3">key_unselectfile</span><span style="color: #403F53">=p</span></span>
<span><span style="color: #994CC3">key_playfile</span><span style="color: #403F53">=l ENTER</span></span>
<span><span style="color: #994CC3">key_removefile</span><span style="color: #403F53">=x BS</span></span>
<span><span style="color: #994CC3">key_closeplaylist</span><span style="color: #403F53">=ESC P h</span></span>
<span></span>
<span><span style="color: #994CC3">showamount</span><span style="color: #403F53">=20</span></span>
<span><span style="color: #994CC3">text_padding_y</span><span style="color: #403F53">=15</span></span>
<span><span style="color: #994CC3">curtain_opacity</span><span style="color: #403F53">=0.3</span></span>
<span><span style="color: #994CC3">style_ass_tags</span><span style="color: #403F53">={\fs11}</span></span>
<span><span style="color: #994CC3">slice_longfilenames</span><span style="color: #403F53">=yes</span></span>
<span><span style="color: #994CC3">slice_longfilenames_amount</span><span style="color: #403F53">=120</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">key_moveup</span><span style="color: #D6DEEB">=k UP</span></span>
<span><span style="color: #C792EA">key_movedown</span><span style="color: #D6DEEB">=j DOWN</span></span>
<span><span style="color: #C792EA">key_movepageup</span><span style="color: #D6DEEB">=Ctrl+u PGUP</span></span>
<span><span style="color: #C792EA">key_movepagedown</span><span style="color: #D6DEEB">=Ctrl+d PGDWN</span></span>
<span><span style="color: #C792EA">key_movebegin</span><span style="color: #D6DEEB">=^ 0 HOME</span></span>
<span><span style="color: #C792EA">key_moveend</span><span style="color: #D6DEEB">=$ END</span></span>
<span><span style="color: #C792EA">key_selectfile</span><span style="color: #D6DEEB">=d-d</span></span>
<span><span style="color: #C792EA">key_unselectfile</span><span style="color: #D6DEEB">=p</span></span>
<span><span style="color: #C792EA">key_playfile</span><span style="color: #D6DEEB">=l ENTER</span></span>
<span><span style="color: #C792EA">key_removefile</span><span style="color: #D6DEEB">=x BS</span></span>
<span><span style="color: #C792EA">key_closeplaylist</span><span style="color: #D6DEEB">=ESC P h</span></span>
<span></span>
<span><span style="color: #C792EA">showamount</span><span style="color: #D6DEEB">=20</span></span>
<span><span style="color: #C792EA">text_padding_y</span><span style="color: #D6DEEB">=15</span></span>
<span><span style="color: #C792EA">curtain_opacity</span><span style="color: #D6DEEB">=0.3</span></span>
<span><span style="color: #C792EA">style_ass_tags</span><span style="color: #D6DEEB">={\fs11}</span></span>
<span><span style="color: #C792EA">slice_longfilenames</span><span style="color: #D6DEEB">=yes</span></span>
<span><span style="color: #C792EA">slice_longfilenames_amount</span><span style="color: #D6DEEB">=120</span></span></code></pre></div></section>
<p><s>其他都还好<span class="mojikumi-line-end">，</span>这个 <code>dd</code> / <code>p</code> 确实太 Vim 了<span class="mojikumi-line-start">（</span></s></p>
<h3 id="播放模式" class="heading"><a href="#播放模式" class="heading-anchor" aria-label="章节： 播放模式" tabindex="-1"></a><span>播放模式</span></h3>
<p>我是觉得下面这几种播放模式比较常用<span class="mojikumi-line-start">（</span>列表循环不太常用<span class="mojikumi">）</span><span class="mojikumi-line-end">，</span>而看视频时一般播完暂停比较好<span class="mojikumi-line-end">，</span>作为默认<span class="mojikumi-line-end">。</span>随机播放/单曲循环的时候一般不需要保存播放进度<span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-21"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-21--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">profile</span><span style="color: #403F53">=playmode-pause</span></span>
<span></span>
<span><span style="color: #403F53">[playmode-pause]</span></span>
<span><span style="color: #994CC3">profile-desc</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">播完暂停</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #994CC3">keep-open</span><span style="color: #403F53">=always</span></span>
<span><span style="color: #994CC3">loop-file</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #994CC3">loop-playlist</span><span style="color: #403F53">=inf</span></span>
<span><span style="color: #994CC3">shuffle</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #403F53">save-position-on-quit</span></span>
<span></span>
<span><span style="color: #403F53">[playmode-shuffle]</span></span>
<span><span style="color: #994CC3">profile-desc</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">随机播放</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #994CC3">keep-open</span><span style="color: #403F53">=yes</span></span>
<span><span style="color: #994CC3">loop-file</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #994CC3">loop-playlist</span><span style="color: #403F53">=inf</span></span>
<span><span style="color: #403F53">shuffle</span></span>
<span><span style="color: #403F53">no-save-position-on-quit</span></span>
<span></span>
<span><span style="color: #403F53">[playmode-loopfile]</span></span>
<span><span style="color: #994CC3">profile-desc</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">单文件循环</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #994CC3">keep-open</span><span style="color: #403F53">=yes</span></span>
<span><span style="color: #994CC3">loop-file</span><span style="color: #403F53">=inf</span></span>
<span><span style="color: #994CC3">loop-playlist</span><span style="color: #403F53">=inf</span></span>
<span><span style="color: #994CC3">shuffle</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #403F53">no-save-position-on-quit</span></span>
<span></span>
<span><span style="color: #403F53">[playmode-playall]</span></span>
<span><span style="color: #994CC3">profile-desc</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">顺序播放</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #994CC3">keep-open</span><span style="color: #403F53">=yes</span></span>
<span><span style="color: #994CC3">loop-file</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #994CC3">loop-playlist</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #994CC3">shuffle</span><span style="color: #403F53">=no</span></span>
<span><span style="color: #403F53">save-position-on-quit</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">profile</span><span style="color: #D6DEEB">=playmode-pause</span></span>
<span></span>
<span><span style="color: #D6DEEB">[playmode-pause]</span></span>
<span><span style="color: #C792EA">profile-desc</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">播完暂停</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #C792EA">keep-open</span><span style="color: #D6DEEB">=always</span></span>
<span><span style="color: #C792EA">loop-file</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #C792EA">loop-playlist</span><span style="color: #D6DEEB">=inf</span></span>
<span><span style="color: #C792EA">shuffle</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #D6DEEB">save-position-on-quit</span></span>
<span></span>
<span><span style="color: #D6DEEB">[playmode-shuffle]</span></span>
<span><span style="color: #C792EA">profile-desc</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">随机播放</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #C792EA">keep-open</span><span style="color: #D6DEEB">=yes</span></span>
<span><span style="color: #C792EA">loop-file</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #C792EA">loop-playlist</span><span style="color: #D6DEEB">=inf</span></span>
<span><span style="color: #D6DEEB">shuffle</span></span>
<span><span style="color: #D6DEEB">no-save-position-on-quit</span></span>
<span></span>
<span><span style="color: #D6DEEB">[playmode-loopfile]</span></span>
<span><span style="color: #C792EA">profile-desc</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">单文件循环</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #C792EA">keep-open</span><span style="color: #D6DEEB">=yes</span></span>
<span><span style="color: #C792EA">loop-file</span><span style="color: #D6DEEB">=inf</span></span>
<span><span style="color: #C792EA">loop-playlist</span><span style="color: #D6DEEB">=inf</span></span>
<span><span style="color: #C792EA">shuffle</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #D6DEEB">no-save-position-on-quit</span></span>
<span></span>
<span><span style="color: #D6DEEB">[playmode-playall]</span></span>
<span><span style="color: #C792EA">profile-desc</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">顺序播放</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #C792EA">keep-open</span><span style="color: #D6DEEB">=yes</span></span>
<span><span style="color: #C792EA">loop-file</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #C792EA">loop-playlist</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #C792EA">shuffle</span><span style="color: #D6DEEB">=no</span></span>
<span><span style="color: #D6DEEB">save-position-on-quit</span></span></code></pre></div></section>
<p>另外可以加一个 <code>no<wbr>-<wbr>keep<wbr>-<wbr>open<wbr>-<wbr>pause</code><span class="mojikumi-line-end">，</span>播完暂停时后退不会暂停<span class="mojikumi-line-end">。</span></p>
<p>快捷键切换<span class="mojikumi-line-end">：</span></p>
<section class="code-block relative my-6 shadow" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" aria-label="plain text 代码块" data-v-c675dba6>plain text</h4><ile-root id="ile-22"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-22--></div><div class="dark:hidden" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><samp><span><span style="color: #403f53">p               script-message cycle-commands &quot;apply-profile playmode-shuffle ; playlist-shuffle ; show-text 随机播放&quot; &quot;apply-profile playmode-loopfile ; playlist-unshuffle ; show-text 单曲循环&quot; &quot;apply-profile playmode-playall ; playlist-unshuffle ; show-text 顺序播放&quot; &quot;apply-profile playmode-pause ; playlist-unshuffle ; show-text 播完暂停&quot;</span></span></samp></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><samp><span><span style="color: #d6deeb">p               script-message cycle-commands &quot;apply-profile playmode-shuffle ; playlist-shuffle ; show-text 随机播放&quot; &quot;apply-profile playmode-loopfile ; playlist-unshuffle ; show-text 单曲循环&quot; &quot;apply-profile playmode-playall ; playlist-unshuffle ; show-text 顺序播放&quot; &quot;apply-profile playmode-pause ; playlist-unshuffle ; show-text 播完暂停&quot;</span></span></samp></pre></div></section>
<h3 id="playerctl" class="heading"><a href="#playerctl" class="heading-anchor" aria-label="章节： playerctl" tabindex="-1"></a><span>playerctl</span></h3>
<p>装了 <a href="https://github.com/hoyon/mpv-mpris">mpv-mpris</a> 就可以用 <a href="https://github.com/altdesktop/playerctl"><code>playerctl</code></a> 了<span class="mojikumi-line-end">。</span></p>
<p>关闭所有 mpv<span class="mojikumi">：</span><wbr><span class="mojikumi-line-start">（</span>当然 <code>killall</code> 也行就是比较暴力<span class="mojikumi-line-end">）</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="Shell 代码块" data-v-c675dba6>Shell</h4><ile-root id="ile-23"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-23--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">alias</span><span style="color: #403F53"> </span><span style="color: #4876D6">stopplay</span><span style="color: #994CC3">=</span><span style="color: #111111">&#39;</span><span style="color: #C96765">playerctl -a -p mpv stop</span><span style="color: #111111">&#39;</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">alias</span><span style="color: #D6DEEB"> </span><span style="color: #C5E478">stopplay</span><span style="color: #C792EA">=</span><span style="color: #D9F5DD">&#39;</span><span style="color: #ECC48D">playerctl -a -p mpv stop</span><span style="color: #D9F5DD">&#39;</span></span></code></pre></div></section>
<p>用 i3 的话<span class="mojikumi-line-end">，</span>可以利用 playerctl 设快捷键<span class="mojikumi-line-end">，</span>用 <a href="https://bumblebee-status.readthedocs.io/en/main/modules.html#playerctl"><code>bumblebee<wbr>-<wbr>status</code> 的 <code>playerctl</code> module</a> 显示正在播放的媒体信息<span class="mojikumi-line-end">。</span></p>
<h3 id="从命令行播放音乐" class="heading"><a href="#从命令行播放音乐" class="heading-anchor" aria-label="章节： 从命令行播放音乐" tabindex="-1"></a><span>从命令行播放音乐</span></h3>
<p>我一般都是用若干 alias 来从命令行播放音乐<span class="mojikumi-line-start">（</span>所以很少在网易云上听<span class="mojikumi-line-start">（</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="Shell 代码块" data-v-c675dba6>Shell</h4><ile-root id="ile-24"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-24--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #4876D6">play</span><span style="color: #403F53">() {</span></span>
<span><span style="color: #403F53">    </span><span style="color: #4876D6">stopplay</span><span style="color: #403F53"> </span><span style="color: #0C969B">&gt;</span><span style="color: #4876D6">/dev/null</span><span style="color: #403F53"> </span><span style="color: #0C969B">2&gt;&amp;1</span></span>
<span><span style="color: #403F53">    </span><span style="color: #4876D6">bk</span><span style="color: #403F53"> </span><span style="color: #4876D6">mpv</span><span style="color: #403F53"> </span><span style="color: #4876D6">--profile=playmode-shuffle</span><span style="color: #403F53"> </span><span style="color: #4876D6">--no-video</span><span style="color: #403F53"> </span><span style="color: #4876D6">--no-resume-playback</span><span style="color: #403F53"> </span><span style="color: #111111">&quot;</span><span style="color: #403F53">$@</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #403F53">}</span></span>
<span></span>
<span><span style="color: #994CC3">alias</span><span style="color: #403F53"> </span><span style="color: #4876D6">playjp</span><span style="color: #994CC3">=</span><span style="color: #111111">&#39;</span><span style="color: #C96765">play ~/Music/日本語の歌/</span><span style="color: #111111">&#39;</span></span>
<span><span style="color: #4876D6">...</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #82AAFF">play</span><span style="color: #D6DEEB">() {</span></span>
<span><span style="color: #D6DEEB">    </span><span style="color: #82AAFF">stopplay</span><span style="color: #D6DEEB"> </span><span style="color: #7FDBCA">&gt;</span><span style="color: #ECC48D">/dev/null</span><span style="color: #D6DEEB"> </span><span style="color: #7FDBCA">2&gt;&amp;1</span></span>
<span><span style="color: #D6DEEB">    </span><span style="color: #82AAFF">bk</span><span style="color: #D6DEEB"> </span><span style="color: #ECC48D">mpv</span><span style="color: #D6DEEB"> </span><span style="color: #82AAFF">--profile=playmode-shuffle</span><span style="color: #D6DEEB"> </span><span style="color: #82AAFF">--no-video</span><span style="color: #D6DEEB"> </span><span style="color: #82AAFF">--no-resume-playback</span><span style="color: #D6DEEB"> </span><span style="color: #D9F5DD">&quot;</span><span style="color: #D7DBE0">$@</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #D6DEEB">}</span></span>
<span></span>
<span><span style="color: #C792EA">alias</span><span style="color: #D6DEEB"> </span><span style="color: #C5E478">playjp</span><span style="color: #C792EA">=</span><span style="color: #D9F5DD">&#39;</span><span style="color: #ECC48D">play ~/Music/日本語の歌/</span><span style="color: #D9F5DD">&#39;</span></span>
<span><span style="color: #C5E478">...</span></span></code></pre></div></section>
<p>其中 <code>bk</code> 是一个我用了很多年的小 trick<span class="mojikumi-line-end">：</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="Shell 代码块" data-v-c675dba6>Shell</h4><ile-root id="ile-25"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-25--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #4876D6">bk_noalias</span><span style="color: #403F53">() {</span></span>
<span><span style="color: #403F53">    </span><span style="color: #4876D6">nohup</span><span style="color: #403F53"> </span><span style="color: #111111">&quot;</span><span style="color: #403F53">$@</span><span style="color: #111111">&quot;</span><span style="color: #403F53"> </span><span style="color: #0C969B">&lt;</span><span style="color: #4876D6">/dev/null</span><span style="color: #403F53"> </span><span style="color: #0C969B">&gt;</span><span style="color: #4876D6">/dev/null</span><span style="color: #403F53"> </span><span style="color: #0C969B">2&gt;</span><span style="color: #4876D6">/dev/null</span><span style="color: #403F53"> &amp;</span></span>
<span><span style="color: #403F53">    </span><span style="color: #4876D6">disown</span></span>
<span><span style="color: #403F53">}</span></span>
<span><span style="color: #994CC3">alias</span><span style="color: #403F53"> </span><span style="color: #4876D6">bk</span><span style="color: #994CC3">=</span><span style="color: #111111">&#39;</span><span style="color: #C96765">bk_noalias </span><span style="color: #111111">&#39;</span><span style="color: #403F53">  </span><span style="color: #989FB1"># alias 末尾空格可以继续接 alias</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #82AAFF">bk_noalias</span><span style="color: #D6DEEB">() {</span></span>
<span><span style="color: #D6DEEB">    </span><span style="color: #82AAFF">nohup</span><span style="color: #D6DEEB"> </span><span style="color: #D9F5DD">&quot;</span><span style="color: #D7DBE0">$@</span><span style="color: #D9F5DD">&quot;</span><span style="color: #D6DEEB"> </span><span style="color: #7FDBCA">&lt;</span><span style="color: #ECC48D">/dev/null</span><span style="color: #D6DEEB"> </span><span style="color: #7FDBCA">&gt;</span><span style="color: #ECC48D">/dev/null</span><span style="color: #D6DEEB"> </span><span style="color: #7FDBCA">2&gt;</span><span style="color: #ECC48D">/dev/null</span><span style="color: #D6DEEB"> &amp;</span></span>
<span><span style="color: #D6DEEB">    </span><span style="color: #C5E478">disown</span></span>
<span><span style="color: #D6DEEB">}</span></span>
<span><span style="color: #C792EA">alias</span><span style="color: #D6DEEB"> </span><span style="color: #C5E478">bk</span><span style="color: #C792EA">=</span><span style="color: #D9F5DD">&#39;</span><span style="color: #ECC48D">bk_noalias </span><span style="color: #D9F5DD">&#39;</span><span style="color: #D6DEEB">  </span><span style="color: #637777"># alias 末尾空格可以继续接 alias</span></span></code></pre></div></section>
<h2 id="杂项" class="heading"><a href="#杂项" class="heading-anchor" aria-label="章节： 杂项" tabindex="-1"></a><span>杂项</span></h2>
<h3 id="osc" class="heading"><a href="#osc" class="heading-anchor" aria-label="章节： OSC" tabindex="-1"></a><span>OSC</span></h3>
<p>显示总时长而非剩余时长<span class="mojikumi-line-end">：</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-26"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-26--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #989FB1"># script-opts/osc.conf</span></span>
<span></span>
<span><span style="color: #994CC3">timetotal</span><span style="color: #403F53">=yes</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #637777"># script-opts/osc.conf</span></span>
<span></span>
<span><span style="color: #C792EA">timetotal</span><span style="color: #D6DEEB">=yes</span></span></code></pre></div></section>
<p>全屏时移动鼠标显示 OSC<span class="mojikumi-line-end">，</span>非全屏时一直显示且不遮挡画面<span class="mojikumi-line-end">：</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-27"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-27--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #989FB1"># script-opts/osc.conf</span></span>
<span></span>
<span><span style="color: #989FB1"># it does nothing when visibility is not always</span></span>
<span><span style="color: #994CC3">boxvideo</span><span style="color: #403F53">=yes</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #637777"># script-opts/osc.conf</span></span>
<span></span>
<span><span style="color: #637777"># it does nothing when visibility is not always</span></span>
<span><span style="color: #C792EA">boxvideo</span><span style="color: #D6DEEB">=yes</span></span></code></pre></div></section>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-28"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-28--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #989FB1"># mpv.conf</span></span>
<span></span>
<span><span style="color: #403F53">[osc-not-fullscreen]</span></span>
<span><span style="color: #994CC3">profile-cond</span><span style="color: #403F53">=not fullscreen</span></span>
<span><span style="color: #994CC3">script-opts</span><span style="color: #403F53">=</span><span style="color: #994CC3">osc-visibility</span><span style="color: #403F53">=always</span></span>
<span></span>
<span><span style="color: #403F53">[osc-fullscreen]</span></span>
<span><span style="color: #994CC3">profile-cond</span><span style="color: #403F53">=fullscreen</span></span>
<span><span style="color: #994CC3">script-opts</span><span style="color: #403F53">=</span><span style="color: #994CC3">osc-visibility</span><span style="color: #403F53">=auto</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #637777"># mpv.conf</span></span>
<span></span>
<span><span style="color: #D6DEEB">[osc-not-fullscreen]</span></span>
<span><span style="color: #C792EA">profile-cond</span><span style="color: #D6DEEB">=not fullscreen</span></span>
<span><span style="color: #C792EA">script-opts</span><span style="color: #D6DEEB">=</span><span style="color: #C792EA">osc-visibility</span><span style="color: #D6DEEB">=always</span></span>
<span></span>
<span><span style="color: #D6DEEB">[osc-fullscreen]</span></span>
<span><span style="color: #C792EA">profile-cond</span><span style="color: #D6DEEB">=fullscreen</span></span>
<span><span style="color: #C792EA">script-opts</span><span style="color: #D6DEEB">=</span><span style="color: #C792EA">osc-visibility</span><span style="color: #D6DEEB">=auto</span></span></code></pre></div></section>
<h3 id="autoload" class="heading"><a href="#autoload" class="heading-anchor" aria-label="章节： autoload" tabindex="-1"></a><span>autoload</span></h3>
<p>打开一个文件时自动加载同目录下的其他文件<span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="Shell 代码块" data-v-c675dba6>Shell</h4><ile-root id="ile-29"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-29--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #4876D6">ln</span><span style="color: #403F53"> </span><span style="color: #4876D6">-s</span><span style="color: #403F53"> </span><span style="color: #4876D6">/usr/share/mpv/scripts/autoload.lua</span><span style="color: #403F53"> </span><span style="color: #4876D6">~/.config/mpv/scripts/</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #82AAFF">ln</span><span style="color: #D6DEEB"> </span><span style="color: #82AAFF">-s</span><span style="color: #D6DEEB"> </span><span style="color: #ECC48D">/usr/share/mpv/scripts/autoload.lua</span><span style="color: #D6DEEB"> </span><span style="color: #ECC48D">~/.config/mpv/scripts/</span></span></code></pre></div></section>
<p><span class="mojikumi-line-start">（</span>其实 playlistmanager 也可以启用这个功能<span class="mojikumi-line-end">，</span>只不过官方有维护 <code>autoload<wbr>.<wbr>lua</code> 就用官方的吧<span class="mojikumi">。</span><span class="mojikumi-line-end">）</span></p>
<h3 id="自动找-track" class="heading"><a href="#自动找-track" class="heading-anchor" aria-label="章节： 自动找 track" tabindex="-1"></a><span>自动找 track</span></h3>
<p>模糊匹配字幕和音轨文件<span class="mojikumi">：</span><wbr><span class="mojikumi-line-start">（</span>实际上也没有多 fuzzy<span class="mojikumi-line-end">，</span>只是部分匹配而已<span class="mojikumi-line-end">）</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-30"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-30--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">sub-auto</span><span style="color: #403F53">=fuzzy</span></span>
<span><span style="color: #994CC3">audio-file-auto</span><span style="color: #403F53">=fuzzy</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">sub-auto</span><span style="color: #D6DEEB">=fuzzy</span></span>
<span><span style="color: #C792EA">audio-file-auto</span><span style="color: #D6DEEB">=fuzzy</span></span></code></pre></div></section>
<h3 id="osd" class="heading"><a href="#osd" class="heading-anchor" aria-label="章节： OSD" tabindex="-1"></a><span>OSD</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-31"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-31--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">osd-on-seek</span><span style="color: #403F53">=msg-bar</span></span>
<span><span style="color: #994CC3">osd-playing-msg</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">File: ${filename}</span><span style="color: #111111">&quot;</span></span>
<span><span style="color: #994CC3">osd-duration</span><span style="color: #403F53">=2000</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">osd-on-seek</span><span style="color: #D6DEEB">=msg-bar</span></span>
<span><span style="color: #C792EA">osd-playing-msg</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">File: ${filename}</span><span style="color: #D9F5DD">&quot;</span></span>
<span><span style="color: #C792EA">osd-duration</span><span style="color: #D6DEEB">=2000</span></span></code></pre></div></section>
<p>快进后退的时候显示一下具体位置<span class="mojikumi-line-end">；</span>切换文件时显示一下文件名<span class="mojikumi-line-end">；</span>显示久一点<span class="mojikumi-line-end">。</span></p>
<h3 id="截图" class="heading"><a href="#截图" class="heading-anchor" aria-label="章节： 截图" tabindex="-1"></a><span>截图</span></h3>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-32"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-32--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">screenshot-directory</span><span style="color: #403F53">=~/screenshots</span></span>
<span><span style="color: #994CC3">screenshot-template</span><span style="color: #403F53">=</span><span style="color: #111111">&quot;</span><span style="color: #C96765">%F - %P - %#01n</span><span style="color: #111111">&quot;</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">screenshot-directory</span><span style="color: #D6DEEB">=~/screenshots</span></span>
<span><span style="color: #C792EA">screenshot-template</span><span style="color: #D6DEEB">=</span><span style="color: #D9F5DD">&quot;</span><span style="color: #ECC48D">%F - %P - %#01n</span><span style="color: #D9F5DD">&quot;</span></span></code></pre></div></section>
<p>截图文件名是视频文件名 + 时间戳 + 版本<span class="mojikumi-line-start">（</span>有了版本可以同一个位置截多张图<span class="mojikumi-line-end">，</span>进行对比<span class="mojikumi">）</span><span class="mojikumi-line-end">。</span></p>
<h3 id="暂停图标" class="heading"><a href="#暂停图标" class="heading-anchor" aria-label="章节： 暂停图标" tabindex="-1"></a><span>暂停图标</span></h3>
<p>试过在暂停的时候显示一个图标<span class="mojikumi-line-end">，</span>后来还是觉得去掉好一点<span class="mojikumi-line-end">，</span>改成了 <code>osd-msg cycle pause</code><span class="mojikumi-line-end">。</span></p>
<p>想要的话可以参考 <a href="https://github.com/mpv-player/mpv/issues/8155#issuecomment-707726802">@CogentRedTester - OSD-info when video is paused</a><span class="mojikumi-line-end">。</span>需要注意的是这里用到了 <span class="mojikumi">“</span>⏸<span class="mojikumi">”</span><span class="mojikumi-line-end">，</span>而 color emoji 会显示为乱码<span class="mojikumi-line-end">，</span>只能用 monochrome emoji<span class="mojikumi-line-end">，</span>可以装一个 Noto Emoji Monochrome 加在 fontconfig 里<span class="mojikumi-line-end">。</span></p>
<h3 id="在线播放" class="heading"><a href="#在线播放" class="heading-anchor" aria-label="章节： 在线播放" tabindex="-1"></a><span>在线播放</span></h3>
<p>mpv 使用了 yt-dlp<span class="mojikumi-line-end">，</span>可以直接播放很多视频网站的视频/直播<span class="mojikumi-line-end">，</span>yt-dlp 还可以直接从浏览器获取 Cookies<span class="mojikumi-line-end">：</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-33"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-33--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">ytdl-raw-options</span><span style="color: #403F53">=</span><span style="color: #994CC3">cookies-from-browser</span><span style="color: #403F53">=firefox</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">ytdl-raw-options</span><span style="color: #D6DEEB">=</span><span style="color: #C792EA">cookies-from-browser</span><span style="color: #D6DEEB">=firefox</span></span></code></pre></div></section>
<h3 id="wakatime" class="heading"><a href="#wakatime" class="heading-anchor" aria-label="章节： WakaTime" tabindex="-1"></a><span>WakaTime</span></h3>
<p><a href="https://github.com/ouuan/dotfiles/blob/master/.config/mpv/scripts/wakatime.lua"><code>wakatime<wbr>.<wbr>lua</code></a></p>
<p>有点逆天<span class="mojikumi-line-end">，</span>但是怎么不行呢（<span class="mojikumi">（</span></p>
<p>本来是想着写个记录播放历史<span class="mojikumi-line-end">，</span>但感觉有点肝不动<span class="mojikumi-line-end">，</span>然后想到了 WakaTime<span class="mojikumi-line-start">（</span></p>
<p>和记录代码不用同一个账号就不会污染数据了<span class="mojikumi-line-end">，</span>可以建个新文件夹作为 mpv 的 <code>WAKATIME_<wbr>HOME</code><span class="mojikumi-line-end">。</span></p>
<h3 id="拆分-mpv-conf" class="heading"><a href="#拆分-mpv-conf" class="heading-anchor" aria-label="章节： 拆分 mpv.conf" tabindex="-1"></a><span>拆分 <code>mpv.conf</code></span></h3>
<p>配置都写在一起感觉最大的问题在于 profile 要写最底下<span class="mojikumi-line-end">，</span>导致不能把不同板块的配置完全拆开<span class="mojikumi-line-end">。</span>可以用 <code>include</code> 来拆成多个配置文件<span class="mojikumi-line-end">。</span></p>
<section class="code-block relative my-6 shadow" itemprop="hasPart" itemscope itemtype="https://schema.org/SoftwareSourceCode" data-v-c675dba6><div class="h-6 items-center rd-t-1 bg-area px-4 dark:bg-#2A313A media-screen:important-flex" style="display:none;" data-v-c675dba6><h4 class="text-3 text-footer" itemprop="programmingLanguage" aria-label="INI 代码块" data-v-c675dba6>INI</h4><ile-root id="ile-34"><button title="复制到剪贴板" class="copy-button b-footer text-footer" data-v-63dfb2af><span class="i-mdi-content-copy" data-v-63dfb2af></span><span class="sr-only" role="status" data-v-63dfb2af></span></button></ile-root><!--ISLAND_HYDRATION_PLACEHOLDER_ile-34--></div><div class="dark:hidden" itemprop="text" data-v-c675dba6><pre class="shiki light" style="background-color: #FBFBFB" tabindex="0"><code><span><span style="color: #994CC3">include</span><span style="color: #403F53">=~~home/conf.d/output.conf</span></span>
<span><span style="color: #994CC3">include</span><span style="color: #403F53">=~~home/conf.d/playmode.conf</span></span>
<span><span style="color: #994CC3">include</span><span style="color: #403F53">=~~home/conf.d/osc.conf</span></span>
<span><span style="color: #403F53">...</span></span></code></pre></div><div class="dark:important-block" style="display:none;" data-v-c675dba6><pre class="shiki dark" style="background-color: #011627" tabindex="0"><code><span><span style="color: #C792EA">include</span><span style="color: #D6DEEB">=~~home/conf.d/output.conf</span></span>
<span><span style="color: #C792EA">include</span><span style="color: #D6DEEB">=~~home/conf.d/playmode.conf</span></span>
<span><span style="color: #C792EA">include</span><span style="color: #D6DEEB">=~~home/conf.d/osc.conf</span></span>
<span><span style="color: #D6DEEB">...</span></span></code></pre></div></section>
<p>注意 <code>~~home/</code> 是 mpv home<span class="mojikumi-line-end">，</span><code>~/</code> 才是 <code>$HOME</code><span class="mojikumi-line-end">。</span></p>
<h4 id="directory-specific-config" class="heading"><a href="#directory-specific-config" class="heading-anchor" aria-label="章节： directory-specific config" tabindex="-1"></a><span>directory-specific config</span></h4>
<p><a href="https://github.com/ouuan/dotfiles/blob/master/.config/mpv/scripts/exrc.lua"><code>exrc.lua</code></a><span class="mojikumi-line-start">（</span>写得比较粗糙<span class="mojikumi-line-end">，</span>能用就行<span class="mojikumi-line-start">（</span></p>
<p>mpv 提供了 <a href="https://mpv.io/manual/stable/#file-specific-configuration-files"><span class="mojikumi-line-start">“</span>File-specific Configuration Files<span class="mojikumi-line-end">”</span></a> 功能<span class="mojikumi-line-end">，</span>但是它不安全<span class="mojikumi-line-end">。</span>受 <a href="https://github.com/neovim/neovim/issues/20911">More secure .exrc (.nvimrc) handling · Issue #20911 · neovim/neovim</a> 启发<span class="mojikumi-line-end">，</span>可以在加载 exrc 前询问用户<span class="mojikumi-line-end">。</span></p>
<p><span class="mojikumi-line-start">（</span>我是学日语的时候听教材音频<span class="mojikumi-line-end">，</span>想自动切成单曲循环<span class="mojikumi">。</span><span class="mojikumi-line-end">）</span></p>]]></content:encoded>
            <category domain="https://ouuan.moe/tag/mpv">mpv</category>
            <category domain="https://ouuan.moe/tag/Arch%20Linux">Arch Linux</category>
            <category domain="https://ouuan.moe/tag/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB">经验分享</category>
        </item>
    </channel>
</rss>