<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Yukari0201&apos;s Blog</title><description>Yukari0201&apos;s Time Machine</description><link>https://yukari0201.github.io/</link><language>zh_CN</language><item><title>为个人博客添加 Giscus 评论系统（二）</title><link>https://yukari0201.github.io/posts/add-giscus-comment-system-to-blog-astro-fuwari/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/add-giscus-comment-system-to-blog-astro-fuwari/</guid><description>为 Astro + Fuwari 博客添加 Giscus 评论系统</description><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;本人最近将博客从 Hexo + NexT 迁移到了 Astro + Fuwari，期间评论系统的迁移花费了一番功夫，故写此文。&lt;/p&gt;
&lt;p&gt;同我那篇 &lt;a href=&quot;https://yukari0201.github.io/posts/add-giscus-comment-system-to-blog-hexo-next-theme/&quot;&gt;为个人博客添加 Giscus 评论系统&lt;/a&gt; 一样，本文只会教你如何在 Astro + Fuwari 下使用 Astro 评论系统，高级用法请各位参考官方文档：https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md&lt;/p&gt;
&lt;h2&gt;你需要准备的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;首先，也是前提，一个爱折腾的心&lt;/li&gt;
&lt;li&gt;一个顺畅的网络环境&lt;/li&gt;
&lt;li&gt;一个 Astro + Fuwari 的博客
&lt;ul&gt;
&lt;li&gt;如果你没有，请参考：https://github.com/saicaca/fuwari/tree/main?tab=readme-ov-file#-getting-started&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;一个 GitHub 仓库&lt;/li&gt;
&lt;li&gt;... 好像就这么多（？&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;让我们开始叭&lt;/h2&gt;
&lt;h3&gt;为 Github 仓库安装 Giscus app&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;[!WARNING]
请参考我在 Hexo + NexT 时的配置步骤&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这一步没什么好说的，完全一样，故不再赘述&lt;/p&gt;
&lt;h3&gt;为 Astro + Fuwari 博客添加 Giscus 评论系统&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
此部分内容大多复制自 &lt;a href=&quot;https://github.com/saicaca/fuwari/tree/comments&quot;&gt;Fuwari 官方仓库的 &lt;code&gt;comments&lt;/code&gt; 分支&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/hikaru-im/akari/tree/comments&quot;&gt;GitHUb@hikaru-im 的 Fork 的 &lt;code&gt;comments&lt;/code&gt; 分支&lt;/a&gt;&lt;br /&gt;
特此鸣谢&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;s&gt;碎碎念：&lt;br /&gt;
Fuwari 官方 comments 分支的 Giscus 样式不是很好看，所以我选用了 &lt;a href=&quot;https://github.com/saicaca/fuwari/pull/405&quot;&gt;PR #405&lt;/a&gt; 的 Fork 版本&lt;br /&gt;
如果你之前使用的是官方仓库的 comments 分支，可能会感觉有点不同&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;首先，在你的博客根目录执行如下命令&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm install @giscus/svelte
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后，下载此仓库 &lt;code&gt;comments&lt;/code&gt; 分支的文件（切换分支并点击 &lt;code&gt;Code&lt;/code&gt; 按钮，然后点击 &lt;code&gt;Download ZIP&lt;/code&gt; 即可），并解压到你能找的的目录&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;hikaru-im/akari&quot;}&lt;/p&gt;
&lt;p&gt;接下来，复制下列文件到你的博客的对应位置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;akari-comments/
└── src/
    ├── components/
    │   └── comment/
    │       ├── Giscus.svelte
    │       └── index.astro
    └── styles/
        ├── giscus-base.css
        ├── giscus-dark.css
        └── giscus-light.css
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并更改 &lt;code&gt;/src/components/comment/index.astro&lt;/code&gt; 最后几行的内容为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;let commentService = &quot;&quot;;
if (commentConfig?.giscus) {
	commentService = &quot;giscus&quot;;
}
---
&amp;lt;div class=&quot;card-base p-6 mb-4&quot;&amp;gt;
  {commentService === &apos;giscus&apos; &amp;amp;&amp;amp; &amp;lt;Giscus client:only=&quot;svelte&quot; /&amp;gt;}
  {commentService === &apos;&apos; &amp;amp;&amp;amp; null}
&amp;lt;/div&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后，更改一些文件，让评论系统显示&lt;/p&gt;
&lt;p&gt;你可以参考这两个链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://github.com/saicaca/fuwari/compare/main...comments&lt;/li&gt;
&lt;li&gt;https://github.com/saicaca/fuwari/compare/comments...hikaru-im:akari:comments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当然，为了各位着想，我也会列出具体需要修改的文件&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/tsconfig.json&lt;/code&gt;&lt;br /&gt;
在 &lt;code&gt;&quot;paths&quot;&lt;/code&gt; 中添加：&lt;code&gt;&quot;@styles/*&quot;: [&quot;src/styles/*&quot;],&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    &quot;paths&quot;: {
      &quot;@components/*&quot;: [&quot;src/components/*&quot;],
      &quot;@assets/*&quot;: [&quot;src/assets/*&quot;],
      &quot;@constants/*&quot;: [&quot;src/constants/*&quot;],
      &quot;@utils/*&quot;: [&quot;src/utils/*&quot;],
      &quot;@i18n/*&quot;: [&quot;src/i18n/*&quot;],
      &quot;@layouts/*&quot;: [&quot;src/layouts/*&quot;],
      &quot;@styles/*&quot;: [&quot;src/styles/*&quot;],
      &quot;@/*&quot;: [&quot;src/*&quot;]
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;[!WARNING]
注意：&lt;code&gt;//&lt;/code&gt; 开头的是注释，无需添加！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;src/pages/posts/[...slug].astro&lt;/code&gt;&lt;br /&gt;
开头 &lt;code&gt;---&lt;/code&gt; 之后添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import Comment from &quot;@components/comment/index.astro&quot;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后一个 &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; 前添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    &amp;lt;Comment post={entry}&amp;gt;&amp;lt;/Comment&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/src/types/config.ts&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// 开头添加
import type * as Giscus from &quot;@giscus/svelte&quot;;

// 末尾添加
export type CommentConfig = {
	giscus?: GiscusConfig;
};

type GiscusConfig = {
	repo: Giscus.Repo;
	host?: string;
	repoId: string;
	category: string;
	categoryId: string;
	mapping?: Giscus.Mapping;
	term?: string;
	strict?: Giscus.BooleanString;
	reactionsEnabled?: Giscus.BooleanString;
	emitMetadata?: Giscus.BooleanString;
	inputPosition?: Giscus.InputPosition;
	theme?: Giscus.Theme;
	lang?: Giscus.AvailableLanguage;
	loading?: Giscus.Loading;
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置：&lt;br /&gt;
&lt;code&gt;/src/config.ts&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// 开头更改（只需要添加 CommentConfig, 即可）
import type {
	CommentConfig,
	ExpressiveCodeConfig,
	LicenseConfig,
	NavBarConfig,
	ProfileConfig,
	SiteConfig,
} from &quot;./types/config&quot;;

// 末尾添加并更改
// 你应该参考 https://giscus.app/ 生成的配置进行修改
export const commentConfig: CommentConfig = {
	giscus: {
		repo: &quot;Yukari0201/Yukari0201.github.io&quot;,
		repoId: &quot;R_kgDOK3p0uA&quot;,
		category: &quot;Announcements&quot;,
		categoryId: &quot;DIC_kwDOK3p0uM4CjDgc&quot;,
		mapping: &quot;pathname&quot;,
		strict: &quot;0&quot;,
		reactionsEnabled: &quot;1&quot;,
		emitMetadata: &quot;1&quot;,
		inputPosition: &quot;top&quot;,
		theme: &quot;reactive&quot;,
		lang: &quot;zh-CN&quot;,
		loading: &quot;lazy&quot;,
	},
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这一步，你需要访问 https://giscus.app/ ，根据网站生成的配置自行修改，具体步骤相信各位都能看懂，我就直接复制了（&lt;s&gt;懒&lt;/s&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;访问 https://giscus.app ，在 &lt;code&gt;仓库：&lt;/code&gt; 部分输入 &lt;code&gt;&amp;lt;你的 Github 用户名&amp;gt;/&amp;lt;你存储评论的仓库名&amp;gt;&lt;/code&gt;&lt;br /&gt;
并在 &lt;code&gt;Discussion 分类&lt;/code&gt; 部分选择一个 Discussion 分类（推荐 &lt;code&gt;Announcements&lt;/code&gt; 分类，以确保新 discussion 只能由仓库维护者和 giscus 创建）&lt;br /&gt;
&lt;s&gt;提示：在 &lt;code&gt;主题&lt;/code&gt; 部分可以选择评论系统的配色方案，对于 NexT 的深色主题，我推荐 &lt;code&gt;noborder_gray&lt;/code&gt;&lt;/s&gt;&lt;br /&gt;
对于本文或 &lt;a href=&quot;https://github.com/hikaru-im/akari/tree/comments&quot;&gt;GitHUb@hikaru-im 的 Fork 的 &lt;code&gt;comments&lt;/code&gt; 分支&lt;/a&gt;，此步是不必要的&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;giscus.app.png&quot; alt=&quot;giscus.app&quot; /&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;启用 giscus&lt;/code&gt; 中 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 的属性&lt;/th&gt;
&lt;th&gt;对应在 &lt;code&gt;/src/config.ts&lt;/code&gt; 中的配置项&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-repo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;repo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-repo-id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;repoId&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-category&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;category&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-category-id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;categoryId&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;需要自行修改的就以上这些，最多再添加一个 &lt;code&gt;lang&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
如果你使用本文或 &lt;a href=&quot;https://github.com/hikaru-im/akari/tree/comments&quot;&gt;GitHUb@hikaru-im 的 Fork 的 &lt;code&gt;comments&lt;/code&gt; 分支&lt;/a&gt;，请将 &lt;code&gt;theme&lt;/code&gt; 设置为 &lt;code&gt;reactive&lt;/code&gt; 以契合主题&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;大功告成！&lt;/h2&gt;
&lt;p&gt;你可以运行如下命令来测试一下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm run dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;点进文章界面，滑到最底下，应该就可以看到评论框了&lt;/p&gt;
&lt;p&gt;确认无误后，即可部署了&lt;/p&gt;
&lt;h2&gt;碎碎念&lt;/h2&gt;
&lt;p&gt;你可以在 https://github.com/Yukari0201/Yukari0201.github.io 看到我的博客的所有源码，所以，放心评论叭&lt;/p&gt;
&lt;p&gt;&lt;s&gt;博客评论系统换了一套，结果还是没有人发评论（&lt;/s&gt;&lt;br /&gt;
&lt;s&gt;博客都迁移了一套，结果还是几乎没有人发评论（&lt;/s&gt;&lt;/p&gt;
</content:encoded></item><item><title>我的新博客！</title><link>https://yukari0201.github.io/posts/my-new-blog/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/my-new-blog/</guid><description>This is the first post of my new Astro blog.</description><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;昨天和今天，我将我的博客从 Hexo + NexT 迁移到 Astro + Fuwari.&lt;/p&gt;
&lt;p&gt;之后会慢慢将文章也都迁移过来。&lt;/p&gt;
&lt;p&gt;各位敬请期待啦！&lt;/p&gt;
</content:encoded></item><item><title>为 mpv 播放器添加长按倍速功能</title><link>https://yukari0201.github.io/posts/adding-long-press-speed-control-to-mpv-player/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/adding-long-press-speed-control-to-mpv-player/</guid><pubDate>Thu, 22 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;观前提醒&lt;/h2&gt;
&lt;p&gt;本教程依赖于 &lt;code&gt;inputevent.lua&lt;/code&gt;&lt;br /&gt;
::github{repo=&quot;natural-harmonia-gropius/input-event&quot;}&lt;/p&gt;
&lt;h2&gt;让我们开始叭&lt;/h2&gt;
&lt;h3&gt;“安装”inputevent.lua&lt;/h3&gt;
&lt;p&gt;访问 &lt;a href=&quot;https://github.com/natural-harmonia-gropius/input-event&quot;&gt;input-event 项目地址&lt;/a&gt;，下载 &lt;code&gt;inputevent.lua&lt;/code&gt;，并将此文件放在你的 mpv 配置文件夹的 &lt;code&gt;scripts&lt;/code&gt; 目录中&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt; 用户的 mpv 配置文件夹的路径一般为 &lt;code&gt;%APPDATA%\mpv&lt;/code&gt; 或 &lt;code&gt;mpv.exe&lt;/code&gt; 同路径的 &lt;code&gt;portable_config&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt; &amp;amp; &lt;strong&gt;macOS&lt;/strong&gt; 用户的 mpv 配置文件夹的路径一般为 &lt;code&gt;~/.config/mpv&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;最终你的 mpv 配置文件夹的内容应该类似于下面所示：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;~/.config/mpv/ 或 %APPDATA%\mpv\ 或 portable_config\
├── script-opts/
│   └── xxx.conf - (你的脚本的配置文件)
├── scripts/
│   ├── xxx.lua - (你的其他脚本)
│   └── inputevent.lua
├── shaders/
│   └── xxx.glsl - (你的着色器)
├── input.conf
└── mpv.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置 input.conf&lt;/h3&gt;
&lt;p&gt;在你的 &lt;code&gt;input.conf&lt;/code&gt; 中写入下面几行，并保存&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 长按右方向键倍速播放，释放恢复
RIGHT seek 5                            #event: click
RIGHT no-osd set speed 2                #event: press
RIGHT ignore                            #event: release
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::note[(推荐) 配置 mpv.conf]&lt;/p&gt;
&lt;p&gt;推荐在你的 &lt;code&gt;mpv.conf&lt;/code&gt; 中写入如下配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;input-doubleclick-time=200
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;原因参见：&lt;br /&gt;
https://github.com/natural-harmonia-gropius/input-event?tab=readme-ov-file#how-to-use&lt;/p&gt;
&lt;p&gt;:::&lt;/p&gt;
&lt;p&gt;这样就可以长按 &lt;code&gt;右方向键&lt;/code&gt; 实现2倍速播放视频啦～&lt;/p&gt;
&lt;p&gt;同时，单击 &lt;code&gt;右方向键&lt;/code&gt; 仍旧是 mpv 默认的快进5秒，并没有影响到默认快捷键&lt;/p&gt;
&lt;h2&gt;完结撒花~&lt;/h2&gt;
&lt;h3&gt;结束后还要说的事情&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;inputevent.lua&lt;/code&gt; 脚本是对 mpv 的 &lt;code&gt;input.conf&lt;/code&gt; 做了增强，不仅能实现本文所讲的功能，还能自由搭配，实现更多功能，详情请参考官方文档：&lt;br /&gt;
https://github.com/natural-harmonia-gropius/input-event?tab=readme-ov-file&lt;/p&gt;
&lt;p&gt;我期待各位配置出独一无二只属于你自己的快捷键，到时候别忘了分享一下哦～&lt;/p&gt;
&lt;h3&gt;一点私货（逃～&lt;/h3&gt;
&lt;p&gt;我的 mpv 自用配置：https://github.com/Yukari0201/mpv-config&lt;/p&gt;
</content:encoded></item><item><title>为个人博客添加 Giscus 评论系统</title><link>https://yukari0201.github.io/posts/add-giscus-comment-system-to-blog-hexo-next-theme/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/add-giscus-comment-system-to-blog-hexo-next-theme/</guid><description>为 Hexo + NexT 博客添加 Giscus 评论系统</description><pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;[!WARNING]
本人已经将博客从 Hexo + NexT 迁移到 Astro + Fuwari，故本文不再更新。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;本人最近将博客的评论系统由 &lt;a href=&quot;https://utteranc.es&quot;&gt;Utterances&lt;/a&gt; 迁到了 &lt;a href=&quot;https://giscus.app&quot;&gt;Giscus&lt;/a&gt;，故写此文，作为备忘，同时也是分享。&lt;/p&gt;
&lt;p&gt;本文只会简单介绍 giscus 在 Hexo + NexT 主题下的配置，更多高级用法请各位参考官方文档：https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md&lt;/p&gt;
&lt;h2&gt;让我们开始叭&lt;/h2&gt;
&lt;h3&gt;为 Github 仓库安装 Giscus app&lt;/h3&gt;
&lt;p&gt;访问 https://github.com/apps/giscus ，将 giscus app 安装到你想要存储评论的仓库中&lt;/p&gt;
&lt;p&gt;Giscus 是基于 GitHub Discussions API 的评论系统，所以别忘了 &lt;strong&gt;为此仓库开启 &lt;a href=&quot;https://docs.github.com/en/discussions&quot;&gt;GitHub Discussions&lt;/a&gt;&lt;/strong&gt; 哦～&lt;/p&gt;
&lt;h3&gt;为 Hexo + NexT 博客安装 giscus&lt;/h3&gt;
&lt;p&gt;在你的博客目录下打开命令行，执行以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install hexo-next-giscus
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后，复制 &lt;a href=&quot;https://github.com/next-theme/hexo-next-giscus&quot;&gt;hexo-next-giscus&lt;/a&gt; 项目 Readme 中 &lt;code&gt;Configure&lt;/code&gt; 部分的代码块到你的 &lt;code&gt;_config.next.yml&lt;/code&gt; 中&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;giscus:
  enable: false
  repo: # Github repository name
  repo_id: # Github repository id
  category: # Github discussion category
  category_id: # Github discussion category id
  # Available values: pathname | url | title | og:title
  mapping: pathname
  # Available values: 0 | 1
  reactions_enabled: 1
  # Available values: 0 | 1
  emit_metadata: 1
  # Available values: light | light_high_contrast | light_protanopia | light_tritanopia | dark | dark_high_contrast | dark_protanopia | dark_tritanopia | dark_dimmed | preferred_color_scheme | transparent_dark | noborder_light | noborder_dark | noborder_gray | cobalt | purple_dark
  theme: light
  # Available values: en | zh-CN
  lang: en
  # Place the comment box above the comments
  input_position: bottom
  # Load the comments lazily
  loading: lazy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并在 &lt;code&gt;_config.next.yml&lt;/code&gt; 中 设置 &lt;code&gt;comments.active&lt;/code&gt; 为 &lt;code&gt;giscus&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Multiple Comment System Support
comments:
  # Choose a comment system to be displayed by default.
  active: giscus
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置 Giscus&lt;/h3&gt;
&lt;p&gt;访问 https://giscus.app ，在 &lt;code&gt;仓库：&lt;/code&gt; 部分输入 &lt;code&gt;&amp;lt;你的 Github 用户名&amp;gt;/&amp;lt;你存储评论的仓库名&amp;gt;&lt;/code&gt;&lt;br /&gt;
并在 &lt;code&gt;Discussion 分类&lt;/code&gt; 部分选择一个 Discussion 分类（推荐 &lt;code&gt;Announcements&lt;/code&gt; 分类，以确保新 discussion 只能由仓库维护者和 giscus 创建）&lt;br /&gt;
提示：在 &lt;code&gt;主题&lt;/code&gt; 部分可以选择评论系统的配色方案，对于 NexT 的深色主题，我推荐 &lt;code&gt;noborder_gray&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;giscus.app.png&quot; alt=&quot;giscus.app&quot; /&gt;&lt;/p&gt;
&lt;p&gt;最后，下滑至 &lt;code&gt;启用 giscus&lt;/code&gt; 部分，复制下表中提到的内容至 &lt;code&gt;_config.next.yml&lt;/code&gt; 中&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;启用 giscus&lt;/code&gt; 中 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 的属性&lt;/th&gt;
&lt;th&gt;对应在 &lt;code&gt;_config.next.yml&lt;/code&gt; 中的配置项&lt;/th&gt;
&lt;th&gt;&lt;code&gt;_config.next.yml&lt;/code&gt; 中的注释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-repo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;repo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Github repository name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-repo-id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;repo_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Github repository id&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-category&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;category&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Github discussion category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-category-id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;category_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Github discussion category id&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-theme&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;theme&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;比如：我的 &lt;code&gt;_config.next.yml&lt;/code&gt; 中 &lt;code&gt;giscus&lt;/code&gt; 部分是这样：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;giscus:
  enable: true
  repo: Yukari0201/yukari0201.github.io # Github repository name
  repo_id: R_kgDOK3p0uA # Github repository id
  category: Announcements # Github discussion category
  category_id: DIC_kwDOK3p0uM4CjDgc # Github discussion category id
  # Available values: pathname | url | title | og:title
  mapping: pathname
  # Available values: 0 | 1
  reactions_enabled: 1
  # Available values: 0 | 1
  emit_metadata: 1
  # Available values: light | light_high_contrast | light_protanopia | light_tritanopia | dark | dark_high_contrast | dark_protanopia | dark_tritanopia | dark_dimmed | preferred_color_scheme | transparent_dark | noborder_light | noborder_dark | noborder_gray | cobalt | purple_dark
  theme: noborder_gray
  # Available values: en | zh-CN
  lang: zh-CN
  # Place the comment box above the comments
  input_position: bottom
  # Load the comments lazily
  loading: lazy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;大功告成！&lt;/h2&gt;
&lt;p&gt;你可以运行如下命令来测试一下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo clean
hexo server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;点进文章界面，滑到最底下，应该就可以看到评论框了&lt;/p&gt;
&lt;p&gt;确认无误后，即可部署了&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对于一键部署的博客来说，只需要运行 &lt;code&gt;hexo generate -d&lt;/code&gt; 即可&lt;/li&gt;
&lt;li&gt;对于使用 GitHub Actions 来部署的博客来说（比如我的博客），只需要提交(commit)并推送(push)即可&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;(补充) 从 Utterances/Gitalk 迁到 Giscus&lt;/h2&gt;
&lt;p&gt;请参考：&lt;br /&gt;
https://docs.github.com/en/discussions/managing-discussions-for-your-community/moderating-discussions#converting-an-issue-to-a-discussion&lt;/p&gt;
&lt;p&gt;将已有的 Issue 转换为 Discussion 即可，这样就可以继承已有的评论，实现几乎无缝迁移&lt;/p&gt;
&lt;h2&gt;碎碎念&lt;/h2&gt;
&lt;p&gt;你可以在 https://github.com/Yukari0201/Yukari0201.github.io 看到我的博客的所有源码，所以，放心评论叭&lt;/p&gt;
&lt;p&gt;&lt;s&gt;博客评论系统换了一套，结果还是没有人发评论（&lt;/s&gt;&lt;/p&gt;
</content:encoded></item><item><title>优化 mpv 播放器的在线视频体验</title><link>https://yukari0201.github.io/posts/mpv-streaming-media/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/mpv-streaming-media/</guid><description>借助 yt-dlp 等工具来优化 mpv 播放器的在线视频体验</description><pubDate>Sat, 08 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;开始之前的一点私货（逃&lt;/h2&gt;
&lt;p&gt;我的 mpv 自用配置：
::github{repo=&quot;Yukari0201/mpv-config&quot;}&lt;/p&gt;
&lt;p&gt;联系阅读：
&lt;a href=&quot;https://www.bilibili.com/read/cv21234242&quot;&gt;[Tip]使用yt-dlp增强mpv player流媒体解析能力&amp;amp;解锁登陆用户分辨率&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;观前提醒(消歧义)&lt;/h2&gt;
&lt;p&gt;本篇所讲的播放在线视频的方案为 &lt;strong&gt;mpv&lt;/strong&gt; + &lt;strong&gt;yt-dlp&lt;/strong&gt;，&lt;/p&gt;
&lt;p&gt;而非 &lt;strong&gt;ff2mpv&lt;/strong&gt;、&lt;strong&gt;Play-With-MPV&lt;/strong&gt;、&lt;strong&gt;使用 MPV 播放 + mpv-handler&lt;/strong&gt; 这样的 扩展/脚本 方案&lt;/p&gt;
&lt;p&gt;提到的 扩展/脚本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ff2mpv https://github.com/woodruffw/ff2mpv&lt;/li&gt;
&lt;li&gt;Play-With-MPV https://greasyfork.org/zh-CN/scripts/444056-play-with-mpv&lt;/li&gt;
&lt;li&gt;使用 MPV 播放（需配合 mpv-handler 使用） https://greasyfork.org/zh-CN/scripts/416271-play-with-mpv&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;目录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;mpv 播放器如何播放在线视频
&lt;ul&gt;
&lt;li&gt;直接拖放链接&lt;/li&gt;
&lt;li&gt;使用内置控制台脚本(console.lua)&lt;/li&gt;
&lt;li&gt;命令行用法&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;缓存(cache)配置&lt;/li&gt;
&lt;li&gt;内置的 ytdl_hook 脚本相关
&lt;ul&gt;
&lt;li&gt;前提条件&lt;/li&gt;
&lt;li&gt;ytdl_hook 脚本配置
&lt;ul&gt;
&lt;li&gt;常规选项部分&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--ytdl-raw-options&lt;/code&gt; 部分&lt;/li&gt;
&lt;li&gt;&lt;code&gt;script-opts/ytdl_hook.conf&lt;/code&gt; 部分(&lt;code&gt;--script-opts&lt;/code&gt; 部分)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;代理相关
&lt;ul&gt;
&lt;li&gt;[推荐] 在 &lt;code&gt;mpv.conf&lt;/code&gt; 中设置代理&lt;/li&gt;
&lt;li&gt;通过环境变量 &lt;code&gt;http_proxy&lt;/code&gt; 来设置代理&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(补充) 脚本 &lt;a href=&quot;https://github.com/christoph-heinrich/mpv-quality-menu&quot;&gt;mpv-quality-menu&lt;/a&gt; 的使用介绍&lt;/li&gt;
&lt;li&gt;(补充) 优化 Bilibili 视频的观看体验
&lt;ul&gt;
&lt;li&gt;[推荐] 使用 bilibiliAssert 脚本&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;mpv 播放器如何播放在线视频&lt;/h2&gt;
&lt;h3&gt;直接拖放链接&lt;/h3&gt;
&lt;p&gt;将在线视频链接从浏览器地址栏拖到 mpv 播放窗口中即可开始播放。&lt;/p&gt;
&lt;p&gt;视频演示：&lt;a href=&quot;https://www.bilibili.com/video/BV1nQ4y1a7gw?p=2&quot;&gt;【软件分享】开源的全平台视频播放器MPV 使用教程 p02&lt;/a&gt; 的演示&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1nQ4y1a7gw&amp;amp;p=2&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;感谢：&lt;a href=&quot;https://space.bilibili.com/111138665&quot;&gt;Bilibili@FinnR&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;使用内置控制台脚本(console.lua)&lt;/h3&gt;
&lt;p&gt;联系阅读：&lt;a href=&quot;https://www.bilibili.com/read/cv27512307&quot;&gt;[Tip]使用mpv自带控制台脚本console.lua执行输入命令&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;打开 mpv 播放器，使用快捷键 &amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt; 打开内置 console&lt;br /&gt;
然后输入 &lt;code&gt;loadfile &amp;lt;视频链接&amp;gt;&lt;/code&gt;，并回车，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;loadfile https://www.bilibili.com/video/BV1qM4y1w716/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：视频链接中不能有特殊字符，如果有，请将视频链接用半角引号(&lt;code&gt;&quot;&quot;&lt;/code&gt; 或 &lt;code&gt;&apos;&apos;&lt;/code&gt;)包裹起来&lt;/p&gt;
&lt;h3&gt;命令行用法&lt;/h3&gt;
&lt;p&gt;前提条件：你已经将 mpv 的路径添加到了 环境变量 PATH 中&lt;/p&gt;
&lt;p&gt;然后命令行输入 &lt;code&gt;mpv &amp;lt;视频链接&amp;gt;&lt;/code&gt;，并回车，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mpv https://www.bilibili.com/video/BV1qM4y1w716/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：视频链接中不能有特殊字符，如果有，请将视频链接用半角引号(&lt;code&gt;&quot;&quot;&lt;/code&gt; 或 &lt;code&gt;&apos;&apos;&lt;/code&gt;)包裹起来&lt;/p&gt;
&lt;h2&gt;缓存(cache)配置&lt;/h2&gt;
&lt;p&gt;mpv 播放器的缓存(cache)用来提前读取数据，提供更流畅的播放体验，避免播放过程中的卡顿或跳帧（常见原因：网络波动、磁盘延迟）&lt;/p&gt;
&lt;p&gt;相关选项参见官方手册：&lt;br /&gt;
https://mpv.io/manual/master/#cache&lt;br /&gt;
https://mpv.io/manual/master/#demuxer&lt;/p&gt;
&lt;p&gt;我挑出了几个比较有用的选项，并更改为适用于大部分场景的配置，你可以参考一下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 根据视频是否为是为网络链接来决定是否启用缓存。
# 即：对网络视频启用缓存，对本地视频不启用缓存
cache=auto
# 可选值 &amp;lt;yes|no|auto&amp;gt;(默认auto)

# 将缓存写入内存
cache-on-disk=no
# 可选值 &amp;lt;yes|no&amp;gt;(默认yes)
# yes - 将将缓存写入一个磁盘上的临时文件
# no - 将缓存写入内存

# 最大向后缓存大小(默认 150MiB)
demuxer-max-bytes=150MiB
# 最大允许保留的已播放的内容的数据大小(默认 50MiB)
demuxer-max-back-bytes=50MiB

# 设置10秒缓存滞后时间，可以节省功耗(默认值 0, 即禁用缓存滞后)
demuxer-hysteresis-secs=10
# 官方手册说设置为 10 对大部分情况都有用
# 此选项的意思是：
# 达到 --demuxer-max-bytes 的限制后，直到缓存中剩下多少秒时才重新开始缓冲  
# 这可以显著节省功耗（不启用时，会不停缓冲；启用时，会将视频分成好几段缓冲）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意: &lt;code&gt;--demuxer-max-back-bytes&lt;/code&gt; 和&lt;strong&gt;向前缓存&lt;/strong&gt;不尽相同。&lt;br /&gt;
文字解释起来有点麻烦，我放张图吧...&lt;br /&gt;
&lt;img src=&quot;--demuxer-max-back-bytes.png&quot; alt=&quot;--demuxer-max-back-bytes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;内置的 ytdl_hook 脚本相关&lt;/h2&gt;
&lt;p&gt;mpv 可以调用 yt-dlp 来增强网络视频播放能力，这依赖内置脚本 ytdl_hook.lua&lt;/p&gt;
&lt;h3&gt;前提条件&lt;/h3&gt;
&lt;h4&gt;&quot;安装&quot; yt-dlp&lt;/h4&gt;
&lt;p&gt;Windows 用户：&lt;br /&gt;
去 yt-dlp 官方 Github Releases 下载 yt-dlp.exe，将 yt-dlp.exe 放入 mpv.exe 的同路径下 或 系统 PATH 中&lt;br /&gt;
yt-dlp 官方 Github Releases: https://github.com/yt-dlp/yt-dlp/releases&lt;/p&gt;
&lt;p&gt;Linux 用户：&lt;br /&gt;
常见的发行版通过包管理器安装即可&lt;br /&gt;
例如 Arch Linux&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S yt-dlp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其他建议直接看 yt-dlp 的 Wiki：https://github.com/yt-dlp/yt-dlp/wiki/Installation&lt;/p&gt;
&lt;h3&gt;ytdl_hook 脚本配置&lt;/h3&gt;
&lt;h4&gt;常规选项部分&lt;/h4&gt;
&lt;p&gt;参见: https://mpv.io/manual/master/#options-ytdl&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 启用内置的 ytdl_hook 脚本
ytdl=yes
# 可选值 &amp;lt;yes|no&amp;gt;(默认值: yes)

# 设置直接传递给 youtube-dl 的视频格式/质量，示例即为默认值
ytdl-format=bestvideo+bestaudio/best
# 这部分怎么写应该查看 yt-dlp 的文档
# https://github.com/yt-dlp/yt-dlp#format-selection  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;默认的配置已经足够使用，非必要不建议更改&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;--ytdl-raw-options&lt;/code&gt; 部分&lt;/h4&gt;
&lt;p&gt;参见: https://mpv.io/manual/master/#options-ytdl-raw-options&lt;/p&gt;
&lt;p&gt;&lt;code&gt;--ytdl-raw-options&lt;/code&gt; 用于将自定义选项传递给 yt-dlp，可用选项参见: https://github.com/yt-dlp/yt-dlp#usage-and-options&lt;br /&gt;
选项应为选项参数键值成对的方式传递(&lt;code&gt;&amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;&lt;/code&gt;)，没有参数的选项后面必须加上等号 &lt;code&gt;=&lt;/code&gt;&lt;br /&gt;
多个键值对之间用半角逗号 &lt;code&gt;,&lt;/code&gt; 隔开，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ytdl-raw-options=write-subs=,force-ipv6=,sub-langs=[zh,en]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实际使用时，更推荐使用多个 &lt;code&gt;--ytdl-raw-options-append&lt;/code&gt;，例如上面的选项也可以写为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ytdl-raw-options-append=write-subs=
ytdl-raw-options-append=force-ipv6=
ytdl-raw-options-append=sub-langs=zh,en
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我挑出了几个比较有用的选项，列在下面：&lt;br /&gt;
&lt;strong&gt;注意&lt;/strong&gt;：&lt;strong&gt;不要乱加空格美化&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 从浏览器导入 cookies，解锁已登录账户的分辨率
ytdl-raw-options-append=cookies-from-browser=firefox
# 示例为导入 Firefox 的 cookies
# 你可以将 firefox 换成你正在使用的其它浏览器名，支持 brave, chrome, chromium, edge, firefox, opera, safari, vivaldi

# 也可以导入文件的 cookies，只支持绝对路径
#ytdl-raw-options-append=cookies=cookies.txt

# 如果URL同时指向视频和播放列表（例如B站分p视频），解析为播放列表
ytdl-raw-options-append=yes-playlist=

# 解析字幕
ytdl-raw-options-append=write-subs=

# 限制选择字幕语言
ytdl-raw-options-append=sub-langs=all
# sub-langs=all 表示选择所有字幕
# 你可以使用正则表达式来限制选择字幕语言，例如：
#ytdl-raw-options-append=sub-langs=ai.*,zh.*,en.*,ja.*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[Tips] 你可以命令行运行如下命令导出 Firefox 浏览器的 cookies 为 &lt;code&gt;cookies.txt&lt;/code&gt;，其他浏览器也同理&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yt-dlp --cookies cookies.txt --cookies-from-browser firefox
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;&lt;code&gt;script-opts/ytdl_hook.conf&lt;/code&gt; 部分(&lt;code&gt;--script-opts&lt;/code&gt; 部分)&lt;/h4&gt;
&lt;p&gt;mpv 实际上是通过内置的 ytdk_hook 脚本调用 yt-dlp 的，所以类似于其他脚本，它也可以通过在 mpv 设置文件夹的 script-opts 文件夹中新建一个 ytdl_hook.conf 来设置脚本选项&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：&lt;code&gt;ytdl_hook.conf&lt;/code&gt; 文件的编码应为 UTF-8，换行应为 LF(Unix)&lt;/p&gt;
&lt;p&gt;所有可用的选项看官方手册：https://mpv.io/manual/master/#options-ytdl&lt;/p&gt;
&lt;p&gt;大部分情况下，&lt;strong&gt;默认的配置已经足够使用，非必要不建议更改&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;代理相关&lt;/h2&gt;
&lt;p&gt;听不懂请直接跳过&lt;/p&gt;
&lt;p&gt;部分代理软件支持 Tun 方式或 TProxy/Redirect 方式设置透明代理，如果你正在使用，可以跳过此部分&lt;/p&gt;
&lt;p&gt;由于 mpv 不会使用系统代理设置，所以如果想要播放某些地域限制的 URL，需要手动设置代理&lt;/p&gt;
&lt;p&gt;以下两种方式&lt;strong&gt;选择其中一种&lt;/strong&gt;即可&lt;/p&gt;
&lt;h3&gt;[推荐] 在 &lt;code&gt;mpv.conf&lt;/code&gt; 中设置代理&lt;/h3&gt;
&lt;p&gt;参见:&lt;br /&gt;
https://mpv.io/manual/master/#options-http-proxy&lt;br /&gt;
https://mpv.io/manual/master/#options-ytdl-raw-options&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 你应该将下面的 http://127.0.0.1:3128 自行更改为你的代理地址
# 我只不过是将官方文档的示例照抄过来了而已

# 让 mpv 使用 http(s) 代理
http-proxy=http://127.0.0.1:3128
# 让 yt-dlp 使用 http(s) 代理
ytdl-raw-options-append=proxy=http://127.0.0.1:3128
# 虽然 yt-dlp 支持 socks，但由于此选项的值会被传递给 mpv，所以还是只能使用 http 代理
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;通过环境变量 &lt;code&gt;http_proxy&lt;/code&gt; 来设置代理&lt;/h3&gt;
&lt;p&gt;参见: https://mpv.io/manual/master/#environment-variables-http-proxy&lt;/p&gt;
&lt;p&gt;经我测试，yt-dlp 也会使用此环境变量设置的代理，所以不必再在 &lt;code&gt;mpv.conf&lt;/code&gt; 中作其他设置&lt;/p&gt;
&lt;p&gt;将环境变量 &lt;code&gt;http_proxy&lt;/code&gt; 的值自行设置为你的代理地址即可，&lt;strong&gt;只支持 http 类型的代理&lt;/strong&gt;，例如 &lt;code&gt;http://127.0.0.1:3128&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;具体设置方式:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux: 请参考 &lt;a href=&quot;https://wiki.archlinux.org/title/Environment_variables&quot;&gt;ArchWiki&lt;/a&gt; 或 &lt;a href=&quot;https://wiki.archlinuxcn.org/wiki/%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F&quot;&gt;Arch Linux 中文维基&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windwos: TODO&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;(补充) 脚本 &lt;a href=&quot;https://github.com/christoph-heinrich/mpv-quality-menu&quot;&gt;mpv-quality-menu&lt;/a&gt; 的使用介绍&lt;/h2&gt;
&lt;p&gt;脚本 &lt;a href=&quot;https://github.com/christoph-heinrich/mpv-quality-menu&quot;&gt;mpv-quality-menu&lt;/a&gt; 的功能：让你可以在播放在线视频时更改在线音视频流质量。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;mpv-quality-menu.png&quot; alt=&quot;mpv-quality-menu&quot; /&gt;&lt;/p&gt;
&lt;p&gt;介绍完功能，那么接下来就该介绍如何使用了：&lt;/p&gt;
&lt;p&gt;访问 mpv-quality-menu 的 &lt;a href=&quot;https://github.com/christoph-heinrich/mpv-quality-menu/releases&quot;&gt;Github Releases&lt;/a&gt;，下载 &lt;code&gt;quality-menu.lua&lt;/code&gt;，并将其放入 &lt;code&gt;&amp;lt;你的mpv配置文件夹&amp;gt;\scripts\&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后编辑 &lt;code&gt;input.conf&lt;/code&gt;，写入如下两行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;F     script-binding quality_menu/video_formats_toggle
Alt+f script-binding quality_menu/audio_formats_toggle
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;意为：按 大写&lt;code&gt;F&lt;/code&gt; 选择视频流质量，按 &lt;code&gt;Alt+f&lt;/code&gt; 选择音频流质量。&lt;br /&gt;
你也可以更改为你喜欢的快捷键。&lt;/p&gt;
&lt;p&gt;如果想更改脚本设置，请将 Github Releases 部分的 &lt;code&gt;quality-menu.conf&lt;/code&gt; 也一并下载下来，放入 &lt;code&gt;&amp;lt;你的mpv配置文件夹&amp;gt;\scripts-opts\&lt;/code&gt;，并参考注释自行更改其中的选项。&lt;br /&gt;
&lt;strong&gt;注意&lt;/strong&gt;：&lt;code&gt;quality-menu.conf&lt;/code&gt; 文件的编码应为 UTF-8，换行应为 LF(Unix)&lt;/p&gt;
&lt;p&gt;最终你的 mpv 配置文件夹结构应该类似于下面这样&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;~/.config/mpv/ 或 portable_config/
├── script-opts/
│   ├── quality-menu.conf
│   └── *.conf (你的脚本的配置文件)
├── scripts/
│   ├── quality-menu.lua
│   └── *.lua (你的其他脚本)
├── shaders/
│   └── *.glsl (你的着色器)
├── input.conf
└── mpv.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;(补充) 优化 Bilibili 视频的观看体验&lt;/h2&gt;
&lt;p&gt;在读完上述部分后，各位读者可能会遇到一个问题，当 &lt;code&gt;mpv.conf&lt;/code&gt; 文件中存在如下部分时，如果播放B站视频，会多出一个 &lt;code&gt;slang&lt;/code&gt;(字幕语言) 为 &lt;code&gt;danmaku&lt;/code&gt; 的字幕，切换至此字幕会导致卡死&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 限制选择字幕语言
ytdl-raw-options-append=sub-langs=all
# sub-langs=all 表示选择所有字幕
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如下图中，如果切换至 &lt;code&gt;danmaku&lt;/code&gt; 字幕，mpv 播放器画面会卡死&lt;br /&gt;
&lt;img src=&quot;sub-langs=all.png&quot; alt=&quot;sub-langs=all&quot; /&gt;&lt;/p&gt;
&lt;p&gt;原因：&lt;code&gt;danmaku&lt;/code&gt; 是 xml 格式的 B站弹幕，mpv 无法正常渲染，所以切换过去会卡死&lt;/p&gt;
&lt;p&gt;解决方案有两种，先说最简单的一种：&lt;br /&gt;
将上面的内容改为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 限制选择字幕语言
ytdl-raw-options-append=sub-langs=all,-danmaku
# sub-langs=all,-danmaku 表示选择所有字幕，并排除 danmaku 字幕
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时字幕列表中便不会有 &lt;code&gt;danmaku&lt;/code&gt; 字幕，比如下图：&lt;br /&gt;
&lt;img src=&quot;sub-langs=all,-danmaku.png&quot; alt=&quot;sub-langs=all,-danmaku&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;[推荐] 使用 bilibiliAssert 脚本&lt;/h3&gt;
&lt;p&gt;如果你想看到 B站的弹幕，那么可以使用 MPV-Play-BiliBili-Comments(bilibiliAssert) 脚本，即第二种解决方案&lt;/p&gt;
&lt;p&gt;使用方式：&lt;br /&gt;
访问 MPV-Play-BiliBili-Comments 的 &lt;a href=&quot;https://github.com/itKelis/MPV-Play-BiliBili-Comments&quot;&gt;Github 项目地址&lt;/a&gt;，点击右侧的绿色的 &lt;code&gt;Code&lt;/code&gt;，然后点击 &lt;code&gt;Download ZIP&lt;/code&gt; 下载项目源码(下载下的文件名一般为 &lt;code&gt;MPV-Play-BiliBili-Comments-main.zip&lt;/code&gt;)&lt;br /&gt;
然后解压压缩文件，并将里面的 &lt;code&gt;bilibiliAssert&lt;/code&gt; 文件夹解压至 &lt;code&gt;&amp;lt;你的 mpv 配置文件夹&amp;gt;\scripts\&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Windows 用户：如果你的系统中安装了 Python，并且将 Python 添加到了环境变量 PATH 中，那么可以删除掉 &lt;code&gt;Danmu2Ass.exe&lt;/code&gt;&lt;br /&gt;
Linux &amp;amp; macOS 用户：必须安装 Python，可以且建议删除掉 &lt;code&gt;Danmu2Ass.exe&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;最终你的 mpv 配置文件夹应该类似于下面这样&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;~/.config/mpv/ 或 portable_config/
├── script-opts/
│   └── *.conf (你的脚本的配置文件)
├── scripts/
│   ├── bilibiliAssert/
│   │   ├── Danmu2Ass.exe
│   │   ├── Danmu2Ass.py
│   │   └── main.lua
│   └── *.lua (你的其他脚本)
├── shaders/
│   └── *.glsl (你的着色器)
├── input.conf
└── mpv.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要定制化弹幕样式，请自行查看项目 Readme&lt;/p&gt;
</content:encoded></item><item><title>MPC-BE/HC + MPCVR 使用教程</title><link>https://yukari0201.github.io/posts/mpc-mpcvr-usage-tutorial/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/mpc-mpcvr-usage-tutorial/</guid><description>初步设置 MPC-BE/HC + MPCVR</description><pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;观前声明&lt;/h2&gt;
&lt;p&gt;本人将主力播放器换成了 mpv 已经有很长一段时间了，所以本篇教程的更新或许不会那么及时。&lt;br /&gt;
我的 mpv 自用配置：https://github.com/Yukari0201/mpv-config&lt;/p&gt;
&lt;p&gt;本教程基于 Windows11 编写，兼容 Windows10 (x64)。&lt;br /&gt;
32位 或 更低版本的 Windows 不保证兼容。&lt;/p&gt;
&lt;p&gt;由于个人更喜欢使用 MPC-BE ，所以本教程更侧重于 MPC-BE + MPCVR，但也会给出 MPC-HC 的推荐设置。&lt;/p&gt;
&lt;p&gt;由于我 &lt;a href=&quot;https://scoop.sh/&quot;&gt;scoop&lt;/a&gt; 用入魔了，所以增加了一些 scoop 相关的内容。&lt;strong&gt;不明白请直接跳过&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;目录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;兵欲善其事，必先利其器 -- 安装各播放器组件
&lt;ul&gt;
&lt;li&gt;安装 MPC-BE + MPCVR&lt;/li&gt;
&lt;li&gt;安装 MPC-HC + MPCVR&lt;/li&gt;
&lt;li&gt;写给 scoop 用户：
&lt;ul&gt;
&lt;li&gt;用 scoop 安装 MPC-BE + MPCVR&lt;/li&gt;
&lt;li&gt;用 scoop 安装 MPC-HC + MPCVR&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;简单调教 MPC-BE / MPC-HC
&lt;ul&gt;
&lt;li&gt;简单调教 MPC-BE
&lt;ul&gt;
&lt;li&gt;音频部分&lt;/li&gt;
&lt;li&gt;视频部分&lt;/li&gt;
&lt;li&gt;杂项&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;简单调教 MPC-HC
&lt;ul&gt;
&lt;li&gt;音频部分&lt;/li&gt;
&lt;li&gt;视频部分&lt;/li&gt;
&lt;li&gt;杂项&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;MPCVR 推荐设置&lt;/li&gt;
&lt;li&gt;完结撒花 ✿ヽ(°▽°)ノ✿
&lt;ul&gt;
&lt;li&gt;TODOs&lt;/li&gt;
&lt;li&gt;一些有用的教程指路&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;兵欲善其事，必先利其器——安装各播放器组件&lt;/h2&gt;
&lt;p&gt;MPC-BE 和 MPC-HC 根据个人喜好二选一即可。&lt;/p&gt;
&lt;h3&gt;安装 MPC-BE + MPCVR&lt;/h3&gt;
&lt;h4&gt;安装 MPC-BE&lt;/h4&gt;
&lt;p&gt;去 MPC-BE 的 &lt;a href=&quot;https://github.com/Aleksoid1978/MPC-BE/releases&quot;&gt;Github Releases&lt;/a&gt; 或 &lt;a href=&quot;https://sourceforge.net/projects/mpcbe/files/MPC-BE/Release%20builds/&quot;&gt;Source Forge&lt;/a&gt;  下载最新版本的安装包（名称类似 &lt;code&gt;MPC-BE.&amp;lt;版本号&amp;gt;.x64-installer.zip&lt;/code&gt;），解压并运行安装程序&lt;br /&gt;
安装程序有简体中文，大多数选项我相信各位都能看懂，所以我只提一点：&lt;br /&gt;
在 &lt;code&gt;选择组件&lt;/code&gt; 这一步请全部勾选，或者至少勾选 &lt;code&gt;MPC Video Renderer &amp;lt;版本号&amp;gt;&lt;/code&gt;，这样就把 MPCVR 也顺带安装好了（同时请跳过本文的 &lt;code&gt;安装 MPC Video Renderer&lt;/code&gt; 部分）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_Install_Select-Components.png&quot; alt=&quot;MPC-BE_Install_Select-Components&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;安装 MPC Video Renderer&lt;/h4&gt;
&lt;p&gt;如果你在 MPC-BE 的安装过程中，&lt;code&gt;选择组件&lt;/code&gt; 这一步勾选了 &lt;code&gt;MPC Video Renderer &amp;lt;版本号&amp;gt;&lt;/code&gt;，那么请跳过此部分。&lt;/p&gt;
&lt;p&gt;去 MPCVR 的 &lt;a href=&quot;https://github.com/Aleksoid1978/VideoRenderer/releases&quot;&gt;Github Releases&lt;/a&gt; 下载最新版本的 MPCVR（名称类似 &lt;code&gt;MpcVideoRenderer-&amp;lt;版本号&amp;gt;.zip&lt;/code&gt;），将其解压至一个你&lt;strong&gt;不会去删除&lt;/strong&gt;的路径中，然后 点击 &lt;code&gt;Install_MPCVR_64.cmd&lt;/code&gt; -&amp;gt; &lt;code&gt;鼠标右键&lt;/code&gt;  -&amp;gt; &lt;code&gt;以管理员身份运行&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;安装 MPC-HC + MPCVR&lt;/h3&gt;
&lt;h4&gt;安装 MPC-HC&lt;/h4&gt;
&lt;p&gt;MPC-HC 的官方版本早已停更，现在是由 clsid2 进行维护。&lt;/p&gt;
&lt;p&gt;去 MPC-HC 的 &lt;a href=&quot;https://github.com/clsid2/mpc-hc/releases/latest&quot;&gt;Github Releases&lt;/a&gt; 下载最新版本的安装包（名称类似 &lt;code&gt;MPC-HC.&amp;lt;版本号&amp;gt;.x64.exe &lt;/code&gt;），解压并运行安装程序&lt;br /&gt;
安装程序有简体中文，大多数选项我相信各位都能看懂，所以我也是只提一点：
在 &lt;code&gt;选择组件&lt;/code&gt; 这一步请保持默认选项（即勾选全部组件）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-HC_Install_Select-Components.png&quot; alt=&quot;MPC-HC_Install_Select-Components.png&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;安装 MPC Video Renderer&lt;/h4&gt;
&lt;p&gt;MPC-HC 的默认安装选项已集成 MPCVR，无须另行安装。&lt;/p&gt;
&lt;h3&gt;写给 scoop 用户：&lt;/h3&gt;
&lt;h4&gt;用 scoop 安装 MPC-BE + MPCVR&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;scoop bucket add extras
scoop install mpc-be
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;scoop bucket add Yukari0201 https://github.com/Yukari0201/scoop-bucket
sudo scoop install Yukari0201/mpcvr
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
mpcvr 需要使用管理员权限来安装，所以：&lt;br /&gt;
你可能需要启用 sudo（&lt;a href=&quot;https://learn.microsoft.com/zh-cn/windows/advanced-settings/sudo/#prerequisites&quot;&gt;Windows11 24H2 及以后&lt;/a&gt;）&lt;br /&gt;
或安装 sudo（Windows10 及 Windows11 24H2 以前的版本）&lt;code&gt;scoop install sudo&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;用 scoop 安装 MPC-HC + MPCVR&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;scoop bucket add extras
scoop install mpc-hc-fork
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;便携版本的 MPC-HC 也已集成 MPCVR，无须另行安装。&lt;/p&gt;
&lt;h2&gt;简单调教 MPC-BE / MPC-HC&lt;/h2&gt;
&lt;h3&gt;简单调教 MPC-BE&lt;/h3&gt;
&lt;p&gt;点击 &lt;code&gt;鼠标右键&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 或 &lt;code&gt;查看&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 进入设置&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_Settings.png&quot; alt=&quot;MPC-BE_Settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Tips：更改完别忘了点击右下角的 &lt;code&gt;应用(A)&lt;/code&gt; 哦~&lt;/p&gt;
&lt;h4&gt;音频部分&lt;/h4&gt;
&lt;p&gt;大部分选项无须更改&lt;/p&gt;
&lt;p&gt;&lt;code&gt;音频&lt;/code&gt; -&amp;gt; &lt;code&gt;音频渲染器&lt;/code&gt; -&amp;gt; &lt;code&gt;0. MPC Audio Renderer&lt;/code&gt;(即默认选项)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_Settings-Audio.png&quot; alt=&quot;MPC-BE_Settings-Audio&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;音频&lt;/code&gt; -&amp;gt; &lt;code&gt;声音处理&lt;/code&gt; -&amp;gt; &lt;code&gt;声道合成&lt;/code&gt; -&amp;gt; &lt;code&gt;混合声道至&lt;/code&gt; -&amp;gt; &lt;code&gt;&amp;lt;根据你的设备更改&amp;gt;&lt;/code&gt;(其中，&lt;code&gt;立体声&lt;/code&gt; 即 &lt;code&gt;双声道&lt;/code&gt;)&lt;br /&gt;
注意：&lt;strong&gt;不要&lt;/strong&gt;勾选 &lt;code&gt;要求解码器输出 2.0 立体声&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_Settings-Audio-Processing.png&quot; alt=&quot;MPC-BE_Settings-Audio-Processing&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;内置滤镜&lt;/code&gt; -&amp;gt; &lt;code&gt;音频解码器&lt;/code&gt; -&amp;gt; &lt;code&gt;音频解码器设置&lt;/code&gt; -&amp;gt; &lt;code&gt;直通 (S/PDIF、HDMI)&lt;/code&gt; -&amp;gt; 部分勾选 &lt;code&gt;你的设备支持的格式&lt;/code&gt;&lt;br /&gt;
注意：此部分选项只有拥有高端的音频设备(独立声卡/外置DAC)且需要直通某些格式的音频的用户才需要更改，一般用户无须更改&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_MPCAD.png&quot; alt=&quot;MPC-BE_MPCAD&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;视频部分&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;视频&lt;/code&gt; -&amp;gt; &lt;code&gt;视频渲染器&lt;/code&gt; -&amp;gt; 改为 &lt;code&gt;MPC 渲染器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;内置滤镜&lt;/code&gt; -&amp;gt; &lt;code&gt;视频解码器&lt;/code&gt; -&amp;gt; &lt;code&gt;视频解码器设置&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_MPCVD_v2.png&quot; alt=&quot;MPC-BE_MPCVD&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;输出格式&lt;/code&gt; -&amp;gt; &lt;strong&gt;不勾选&lt;/strong&gt; &lt;code&gt;转换为RGB&lt;/code&gt; (即保持默认)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;硬件加速&lt;/code&gt; -&amp;gt; &lt;code&gt;首选解码器&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;如果你使用 MPCVR 或 madVR，保持默认的 &lt;code&gt;D3D11, DXVA2&lt;/code&gt; 即可
&lt;ul&gt;
&lt;li&gt;选项的意思是，首先尝试使用 &lt;code&gt;D3D11 (Native)&lt;/code&gt; 硬件解码，失败（例如其他不兼容 &lt;code&gt;D3D11 (Native)&lt;/code&gt; 的视频渲染器，像是 &lt;code&gt;EVR&lt;/code&gt;）则使用 &lt;code&gt;DXVA2 (Native)&lt;/code&gt; 硬件解码&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Nvidia 显卡（除了 MX 系列）的用户也可以选择N卡专用的 &lt;code&gt;NVDEC (Nvidia only)&lt;/code&gt;，可以多硬解一些格式&lt;/li&gt;
&lt;li&gt;Nvidia MX 系列显卡由于被老黄阉割了视频编解码单元，建议选择 &lt;code&gt;D3D11cb&lt;/code&gt; 或 &lt;code&gt;D3D12cb&lt;/code&gt;，并在 &lt;code&gt;显卡选择&lt;/code&gt; 部分选择你的 &lt;code&gt;核显&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;D3D12cb&lt;/code&gt;(&lt;code&gt;D3D12 copy-back&lt;/code&gt;) 比 &lt;code&gt;D3D11cb&lt;/code&gt;(&lt;code&gt;D3D11 copy-back&lt;/code&gt;) 更新，但在极端场景下才能感知到两者的性能差距。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不推荐&lt;/strong&gt; 选择 &lt;code&gt;DXVA2&lt;/code&gt;(&lt;code&gt;DXVA2 Native&lt;/code&gt;)，它在部分情况下会出现画质损失&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;杂项&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;记忆文件的播放位置 --- &lt;code&gt;播放器&lt;/code&gt; -&amp;gt; &lt;code&gt;历史&lt;/code&gt; -&amp;gt; &lt;code&gt;记住文件位置&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在进度条上显示章节标记 --- &lt;code&gt;播放器&lt;/code&gt; -&amp;gt; &lt;code&gt;界面&lt;/code&gt; -&amp;gt; &lt;code&gt;显示章节标记&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;鼠标指向进度条时显示视频缩略图 --- &lt;code&gt;播放器&lt;/code&gt; -&amp;gt; &lt;code&gt;界面&lt;/code&gt; -&amp;gt; &lt;code&gt;搜索时显示预览&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;开始播放后自动改变窗口大小 --- &lt;code&gt;播放器&lt;/code&gt; -&amp;gt; &lt;code&gt;窗口尺寸&lt;/code&gt; -&amp;gt; &lt;code&gt;开始播放后&lt;/code&gt; -&amp;gt; &lt;code&gt;按照视频大小缩放&lt;/code&gt; (建议 &lt;code&gt;100%&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;自动播放播放列表中的下一个视频 --- &lt;code&gt;回放&lt;/code&gt; -&amp;gt; &lt;code&gt;打开设置&lt;/code&gt; -&amp;gt; &lt;code&gt;额外添加到播放列表&lt;/code&gt; (建议 &lt;code&gt;文件夹中的所有文件&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;更改字幕最大渲染分辨率(避免出现字幕很糊的情况) --- -&amp;gt; &lt;code&gt;字幕&lt;/code&gt; -&amp;gt; &lt;code&gt;渲染&lt;/code&gt; -&amp;gt; &lt;code&gt;纹理设置(......)&lt;/code&gt; -&amp;gt; &lt;code&gt;最大纹理分辨率&lt;/code&gt; (建议改为 &lt;code&gt;自身屏幕分辨率&lt;/code&gt; / &lt;code&gt;1920x1080&lt;/code&gt; 或许也已够用)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;简单调教 MPC-HC&lt;/h3&gt;
&lt;p&gt;点击 &lt;code&gt;鼠标右键&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 或 &lt;code&gt;查看&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 进入设置&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-HC_Settings.png&quot; alt=&quot;MPC-HC_Settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Tips：更改完别忘了点击右下角的 &lt;code&gt;应用(A)&lt;/code&gt; 哦~&lt;/p&gt;
&lt;h4&gt;音频部分&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;回放&lt;/code&gt; -&amp;gt; &lt;code&gt;输出&lt;/code&gt; -&amp;gt; &lt;code&gt;音频渲染器&lt;/code&gt; -&amp;gt; 选择 &lt;code&gt;MPC 音频渲染器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;MPC-HC 还有一个 &lt;code&gt;SaneAR 音频渲染器&lt;/code&gt; 可用，但我不熟，所以暂时还是推荐使用和 MPC-BE 一样的 &lt;code&gt;MPC 音频渲染器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-HC_Settings-Audio.png&quot; alt=&quot;MPC-HC_Settings-Audio&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;内部滤镜&lt;/code&gt; -&amp;gt; &lt;code&gt;内部 LAV Filters 设置&lt;/code&gt; -&amp;gt; &lt;code&gt;音频解码器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Mixing&lt;/code&gt; 选项页：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/LAVAD_Mixing.png&quot; alt=&quot;LAVAD_Mixing&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Mixer&lt;/code&gt; -&amp;gt; 勾选 &lt;code&gt;Enable Mixing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mixer&lt;/code&gt; -&amp;gt; &lt;code&gt;Output Spesker Cofiguration&lt;/code&gt; -&amp;gt; &lt;code&gt;&amp;lt;根据你的设备更改&amp;gt;&lt;/code&gt;（其中 &lt;code&gt;Stereo&lt;/code&gt; 即为 &lt;code&gt;双声道/立体声&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Don&apos;t mix Stereo sources&lt;/code&gt;(双声道/立体声用户请勾选)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Clipping Protectiom&lt;/code&gt;(如果音频设备不是太差，建议取消勾选)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Audio Settings&lt;/code&gt; 选项页：&lt;br /&gt;
注意：此部分选项只有拥有高端的音频设备(独立声卡/外置DAC)且需要直通某些格式的音频的用户才需要更改，一般用户无须更改&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/LAVAD_Audio-Settings.png&quot; alt=&quot;LAVAD_Audio-Settings&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Bitstreaming(S/PDIF,HDMI)&lt;/code&gt; -&amp;gt; &lt;code&gt;Formats&lt;/code&gt; 勾选 &lt;code&gt;你的设备支持的格式&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;如果不清楚自己的设备支持的格式，可以在 &lt;code&gt;Bitstreaming(S/PDIF,HDMI)&lt;/code&gt; -&amp;gt; &lt;code&gt;Options&lt;/code&gt; -&amp;gt; 勾选 &lt;code&gt;Fallback to PCM if Bitstreaming is not supported&lt;/code&gt;，该选项的意思是不支持直通的格式交给LAV解码。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;视频部分&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;回放&lt;/code&gt; -&amp;gt; &lt;code&gt;输出&lt;/code&gt; -&amp;gt; &lt;code&gt;DirectShow 视频&lt;/code&gt; -&amp;gt; 选择 &lt;code&gt;MPC 视频渲染器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;内部滤镜&lt;/code&gt; -&amp;gt; &lt;code&gt;内部 LAV Filters 设置&lt;/code&gt; -&amp;gt; &lt;code&gt;视频解码器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/LAVVD.png&quot; alt=&quot;LAVVD&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Hardware Acceleration&lt;/code&gt; -&amp;gt; &lt;code&gt;Hardware Decoder to use:&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;如果你使用 MPCVR 或 madVR，请选择 &lt;code&gt;D3D11&lt;/code&gt;，且不要在下方的 &lt;code&gt;Hardware Device to Use&lt;/code&gt; 部分选择显卡，保持默认的 &lt;code&gt;Automatic(native)&lt;/code&gt; 即可&lt;/li&gt;
&lt;li&gt;Nvidia MX 系列显卡由于被老黄阉割了视频编解码单元，建议选择 &lt;code&gt;D3D11&lt;/code&gt;，并在下方的 &lt;code&gt;Hardware Device to Use&lt;/code&gt; 部分选择你的 &lt;code&gt;核显&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不推荐&lt;/strong&gt; 选择 &lt;code&gt;DXVA2 (native)&lt;/code&gt;，它在部分情况下会出现画质损失&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Output Formats&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RGB Output levels&lt;/code&gt; -&amp;gt; 选择 &lt;code&gt;PC (0-255)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Dithering Mode&lt;/code&gt; -&amp;gt; 抖动算法，看电影居多建议 &lt;code&gt;Oredered Dithering&lt;/code&gt;，看动漫居多建议 &lt;code&gt;Random Dithering&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;实际上，在本篇教程的使用场景(渲染器选用 MPCVR)下，绝大多数情况下输出的都是和原片精度相同的YUV数据，&lt;code&gt;RGB Output levels&lt;/code&gt; 和 &lt;code&gt;Dithering Mode&lt;/code&gt; 的选项&lt;strong&gt;绝大部分情况下&lt;/strong&gt;都不会生效&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;杂项&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;记忆文件的播放位置 --- &lt;code&gt;播放器&lt;/code&gt; -&amp;gt; &lt;code&gt;记忆文件播放位置&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;鼠标指向进度条时显示视频缩略图 --- &lt;code&gt;调节&lt;/code&gt; -&amp;gt; &lt;code&gt;在进度条显示视频预览&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;开始播放后自动改变窗口大小 --- &lt;code&gt;回放&lt;/code&gt; -&amp;gt; &lt;code&gt;缩放与对齐&lt;/code&gt; -&amp;gt; &lt;code&gt;自动缩放&lt;/code&gt; (默认已勾选；建议 100% [默认])&lt;/li&gt;
&lt;li&gt;自动播放文件夹中的下一个视频 --- &lt;code&gt;回放&lt;/code&gt; -&amp;gt; &lt;code&gt;回放结束后&lt;/code&gt; (建议 &lt;code&gt;播放文件夹中的下一个文件&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;更改字幕最大渲染分辨率 (避免出现字幕很糊的情况) --- &lt;code&gt;字幕&lt;/code&gt; -&amp;gt; &lt;code&gt;纹理设置（……)&lt;/code&gt; -&amp;gt; &lt;code&gt;最大纹理分辨率&lt;/code&gt; (建议改为 &lt;code&gt;自身屏幕分辨率&lt;/code&gt; / &lt;code&gt;1920x1080&lt;/code&gt; 也已够用)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LAV Filters 的三个组件都能显示托盘图标，在 &lt;code&gt;内部滤镜&lt;/code&gt; -&amp;gt; &lt;code&gt;内部 LAV Filters 设置&lt;/code&gt; -&amp;gt; &lt;code&gt;分离器&lt;/code&gt;/&lt;code&gt;视频解码器&lt;/code&gt;/&lt;code&gt;音频解码器&lt;/code&gt; - 勾选左下角的 &lt;code&gt;Enable System Tray Icon&lt;/code&gt; 即可&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/LAV_Enable-Sysytem-Tray-Icon.png&quot; alt=&quot;LAV_Enable-Sysytem-Tray-Icon&quot; /&gt;&lt;/p&gt;
&lt;p&gt;效果：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/LAV_Tray-Icons.png&quot; alt=&quot;LAV_Tray-Icons&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;MPCVR 推荐设置&lt;/h2&gt;
&lt;h3&gt;让 MPC-BE/HC 使用 MPCVR 作为视频渲染器&lt;/h3&gt;
&lt;p&gt;（如果你认真看完了 &lt;code&gt;简单调教 MPC-BE / MPC-HC&lt;/code&gt; 部分，就会发现其实我们已经让播放器使用 MPCVR 作为视频渲染器了）&lt;br /&gt;
但为了避免各位不小心忘记这一点（同时方便跳着看本文的童鞋），这里就再提一下。&lt;/p&gt;
&lt;h4&gt;MPC-BE 使用 MPCVR 作为视频渲染器&lt;/h4&gt;
&lt;p&gt;点击 &lt;code&gt;鼠标右键&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 或 &lt;code&gt;查看&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 进入设置&lt;br /&gt;
&lt;code&gt;视频&lt;/code&gt; -&amp;gt; &lt;code&gt;视频渲染器&lt;/code&gt; -&amp;gt; 改为 &lt;code&gt;MPC 渲染器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;如果要进入 MPCVR 的设置，请点击右边的 &lt;code&gt;属性&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-BE_Settings_MPCVR.png&quot; alt=&quot;MPC-BE_Settings_MPCVR&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;MPC-HC 使用 MPCVR 作为视频渲染器&lt;/h4&gt;
&lt;p&gt;点击 &lt;code&gt;鼠标右键&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 或 &lt;code&gt;查看&lt;/code&gt; -&amp;gt; &lt;code&gt;选项&lt;/code&gt; 进入设置&lt;br /&gt;
&lt;code&gt;回放&lt;/code&gt; -&amp;gt; &lt;code&gt;输出&lt;/code&gt; -&amp;gt; &lt;code&gt;DirectShow 视频&lt;/code&gt; -&amp;gt; 选择 &lt;code&gt;MPC 视频渲染器&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;如果要进入 MPCVR 的设置，请点击右边的 &lt;code&gt;设置&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPC-HC_Settings_MPCVR.png&quot; alt=&quot;MPC-HC_Settings_MPCVR&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;调整 MPCVR 的设置&lt;/h3&gt;
&lt;p&gt;进入 MPCVR 的设置界面（方法在本文 &lt;code&gt;让 MPC-BE/HC 使用 MPCVR 作为视频渲染器&lt;/code&gt; 部分已经提到过），你会看到下图的界面：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPCVR_default.png&quot; alt=&quot;MPCVR_default&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我不会班门弄斧地详细讲解各个选项的具体作用，如果需要了解，请看 MPC Video Renderer 的官方说明（内容是俄语，请善用翻译）：https://mpc-be.org/forum/index.php?topic=381&lt;/p&gt;
&lt;p&gt;进入设置界面后，请根据下文文字内容自行更改（如果懒也可以直接抄下图内容，但我建议对各选项有一定了解后根据个人需要自行更改）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gcore.jsdelivr.net/gh/Yukari0201/Blog-CDN@main/images/MPC-MPCVR-usage-tutorial/MPCVR_custom.png&quot; alt=&quot;MPCVR_custom&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;[左上] 勾选 &lt;code&gt;Use Direct3D 11&lt;/code&gt; （Windows10/11 默认已勾选）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[左上] &lt;code&gt;Texture format&lt;/code&gt;(运算精度) - 更改为 &lt;code&gt;16-bit Floating Point&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;性能捉急可以选择 &lt;code&gt;10-bit Integer&lt;/code&gt;，不建议选择 &lt;code&gt;8-bit Integer&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[右上] &lt;code&gt;Show Statistics&lt;/code&gt; 下方的 &lt;code&gt;Fixed font size&lt;/code&gt; 请更改为 &lt;code&gt;Increase font by window&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;此选项是关于 MPCVR 的统计信息的（播放视频时通过 &lt;code&gt;Ctrl+j&lt;/code&gt; 可以调出），更改此选项是为了避免出现统计信息的字体过小，不方便查看的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[右下] &lt;code&gt;Wait for V-Blank before Present&lt;/code&gt; - 勾选可能会改善播放的流畅性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;DXVA2 and D3D11 video processor&lt;/code&gt; -&amp;gt; &lt;code&gt;Use for:&lt;/code&gt; 全部取消勾选&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DXVA2 and D3D11 video processor&lt;/code&gt; 会代替下文 &lt;code&gt;Shader video processor&lt;/code&gt; 部分的设置，它的性能最好，但质量取决于显卡，并且可能受显卡驱动的影响导致颜色不准确（我就遇到过画面偏绿和画面偏灰暗的情况），非特殊情况&lt;strong&gt;不建议&lt;/strong&gt;使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Shader video processor&lt;/code&gt; 部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Chroma scaling&lt;/code&gt; - 建议 &lt;code&gt;Catmull-Rom&lt;/code&gt;，性能捉急可以选择 &lt;code&gt;Bilinear&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;此选项选择的算法用于放大 yuv420/422 视频的色度（一般来说感知不是很明显）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Upscaling&lt;/code&gt; - 建议 &lt;code&gt;Jinc2m&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;此选项选择的算法用于放大视频画面（如 720p -&amp;gt; 1080p）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Downscaling&lt;/code&gt; - 建议 &lt;code&gt;Bicubic&lt;/code&gt;/&lt;code&gt;Bicubic sharp&lt;/code&gt;，后者比前者更锐利一点
&lt;ul&gt;
&lt;li&gt;此选项选择的算法用于缩小视频画面（如 2160p -&amp;gt; 1080p）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Use the &quot;Upscaling&quot; method to reducing the frame to 50%&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;此选项的意思为：目标尺寸≥源视频的50%时，使用与&quot;Upscaling&quot;相同的算法进行缩小视频画面。&lt;br /&gt;
是否勾选取决于你的个人喜好，我个人不勾选并在 &lt;code&gt;Downscaling&lt;/code&gt; 部分使用 &lt;code&gt;Bicubic sharp&lt;/code&gt; 算法。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Use dithering&lt;/code&gt;(使用抖动) - 强烈建议勾选&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;HDR&lt;/code&gt; 部分&lt;br /&gt;
这部分因为我没有可用的 HDR 显示器，暂时就不细讲了&lt;br /&gt;
有这方面需求的用户请根据 MPCVR 官方说明进行更改&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Prefer Dolby Vision over PQ and HLG&lt;/code&gt; 如果你需要观看 Dolby Vision 内容，请勾选&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Passthrough to display&lt;/code&gt; - 如果显示器支持 HDR，请一定勾选&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Windows HDR&lt;/code&gt; - 选择 &lt;code&gt;自动切换至 HDR 模式&lt;/code&gt; 的方式，默认不自动切换
&lt;ul&gt;
&lt;li&gt;如果显示器支持 HDR，请自行更改此选项&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;If passthrough is impossible or disabled, then:&lt;/code&gt; -&amp;gt; &lt;code&gt;Convert to SDR&lt;/code&gt; - 如果显示器不支持 HDR，请勾选
&lt;ul&gt;
&lt;li&gt;这将在 无法直通 HDR 数据给显示器时 或 不勾选 &lt;code&gt;Passthrough to display&lt;/code&gt; 时 将 HDR 转换为 SDR&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最后，别忘了点击右下角的 &lt;code&gt;应用(A)&lt;/code&gt;，然后开启你的影音体验叭！&lt;/p&gt;
&lt;h2&gt;完结撒花 ✿ヽ(°▽°)ノ✿&lt;/h2&gt;
&lt;h3&gt;TODOs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Nvidia RTX / Intel VSR 的使用教程&lt;/s&gt; (不打算写了)
&lt;ul&gt;
&lt;li&gt;即 &lt;code&gt;DXVA2 and D3D11 video processor&lt;/code&gt; -&amp;gt; 勾选 &lt;code&gt;Use for resizing&lt;/code&gt; -&amp;gt; &lt;code&gt;Request Super Resolution&lt;/code&gt; 部分&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;一些有用的教程指路&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://hooke007.github.io/DirectShow+/mpc.html&quot;&gt;⚙️ 简易快速的mpcvr高画质播放方案指南&lt;/a&gt; - 略有过时（MPCVR 更的太勤了）&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vcb-s.com/archives/16609&quot;&gt;基于 MPC-HC 和 madVR 的播放器配置入门&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;萬年冷凍庫：
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://lysandria1985.blogspot.com/2013/01/2-lav-filters.html&quot;&gt;系列之2─強大的外掛解碼方案-LAV Filters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lysandria1985.blogspot.com/2013/01/3-madvr.html&quot;&gt;系列之3─最強渲染器-madVR&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;知乎搬运（上篇）：https://zhuanlan.zhihu.com/p/73960527&lt;/li&gt;
&lt;li&gt;知乎搬运（下篇）：https://zhuanlan.zhihu.com/p/73968849&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hooke007/MPV_lazy/discussions/254&quot;&gt;Potplayer的合格安装与调校&lt;/a&gt; - LAV 以及 madVR 部分很值得参考
&lt;ul&gt;
&lt;li&gt;https://tieba.baidu.com/p/7171344019&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Markdown Extended Features</title><link>https://yukari0201.github.io/posts/markdown-extended/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/markdown-extended/</guid><description>Read more about Markdown features in Fuwari</description><pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;GitHub Repository Cards&lt;/h2&gt;
&lt;p&gt;You can add dynamic cards that link to GitHub repositories, on page load, the repository information is pulled from the GitHub API.&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;Fabrizz/MMM-OnSpotify&quot;}&lt;/p&gt;
&lt;p&gt;Create a GitHub repository card with the code &lt;code&gt;::github{repo=&quot;&amp;lt;owner&amp;gt;/&amp;lt;repo&amp;gt;&quot;}&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;::github{repo=&quot;saicaca/fuwari&quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Admonitions&lt;/h2&gt;
&lt;p&gt;Following types of admonitions are supported: &lt;code&gt;note&lt;/code&gt; &lt;code&gt;tip&lt;/code&gt; &lt;code&gt;important&lt;/code&gt; &lt;code&gt;warning&lt;/code&gt; &lt;code&gt;caution&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;:::note
Highlights information that users should take into account, even when skimming.
:::&lt;/p&gt;
&lt;p&gt;:::tip
Optional information to help a user be more successful.
:::&lt;/p&gt;
&lt;p&gt;:::important
Crucial information necessary for users to succeed.
:::&lt;/p&gt;
&lt;p&gt;:::warning
Critical content demanding immediate user attention due to potential risks.
:::&lt;/p&gt;
&lt;p&gt;:::caution
Negative potential consequences of an action.
:::&lt;/p&gt;
&lt;h3&gt;Basic Syntax&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;:::note
Highlights information that users should take into account, even when skimming.
:::

:::tip
Optional information to help a user be more successful.
:::
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Custom Titles&lt;/h3&gt;
&lt;p&gt;The title of the admonition can be customized.&lt;/p&gt;
&lt;p&gt;:::note[MY CUSTOM TITLE]
This is a note with a custom title.
:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::note[MY CUSTOM TITLE]
This is a note with a custom title.
:::
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;GitHub Syntax&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;[!TIP]
&lt;a href=&quot;https://github.com/orgs/community/discussions/16925&quot;&gt;The GitHub syntax&lt;/a&gt; is also supported.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; [!NOTE]
&amp;gt; The GitHub syntax is also supported.

&amp;gt; [!TIP]
&amp;gt; The GitHub syntax is also supported.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Spoiler&lt;/h3&gt;
&lt;p&gt;You can add spoilers to your text. The text also supports &lt;strong&gt;Markdown&lt;/strong&gt; syntax.&lt;/p&gt;
&lt;p&gt;The content :spoiler[is hidden &lt;strong&gt;ayyy&lt;/strong&gt;]!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;The content :spoiler[is hidden **ayyy**]!

&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Expressive Code Example</title><link>https://yukari0201.github.io/posts/expressive-code/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/expressive-code/</guid><description>How code blocks look in Markdown using Expressive Code.</description><pubDate>Wed, 10 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here, we&apos;ll explore how code blocks look using &lt;a href=&quot;https://expressive-code.com/&quot;&gt;Expressive Code&lt;/a&gt;. The provided examples are based on the official documentation, which you can refer to for further details.&lt;/p&gt;
&lt;h2&gt;Expressive Code&lt;/h2&gt;
&lt;h3&gt;Syntax Highlighting&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/syntax-highlighting/&quot;&gt;Syntax Highlighting&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Regular syntax highlighting&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;This code is syntax highlighted!&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Rendering ANSI escape sequences&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;ANSI colors:
- Regular: [31mRed[0m [32mGreen[0m [33mYellow[0m [34mBlue[0m [35mMagenta[0m [36mCyan[0m
- Bold:    [1;31mRed[0m [1;32mGreen[0m [1;33mYellow[0m [1;34mBlue[0m [1;35mMagenta[0m [1;36mCyan[0m
- Dimmed:  [2;31mRed[0m [2;32mGreen[0m [2;33mYellow[0m [2;34mBlue[0m [2;35mMagenta[0m [2;36mCyan[0m

256 colors (showing colors 160-177):
[38;5;160m160 [38;5;161m161 [38;5;162m162 [38;5;163m163 [38;5;164m164 [38;5;165m165[0m
[38;5;166m166 [38;5;167m167 [38;5;168m168 [38;5;169m169 [38;5;170m170 [38;5;171m171[0m
[38;5;172m172 [38;5;173m173 [38;5;174m174 [38;5;175m175 [38;5;176m176 [38;5;177m177[0m

Full RGB colors:
[38;2;34;139;34mForestGreen - RGB(34, 139, 34)[0m

Text formatting: [1mBold[0m [2mDimmed[0m [3mItalic[0m [4mUnderline[0m
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Editor &amp;amp; Terminal Frames&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/frames/&quot;&gt;Editor &amp;amp; Terminal Frames&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Code editor frames&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;Title attribute example&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!-- src/content/index.html --&amp;gt;
&amp;lt;div&amp;gt;File name comment example&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Terminal frames&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;This terminal frame has no title&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;Write-Output &quot;This one has a title!&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Overriding frame types&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;Look ma, no frame!&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;# Without overriding, this would be a terminal frame
function Watch-Tail { Get-Content -Tail 20 -Wait $args }
New-Alias tail Watch-Tail
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Text &amp;amp; Line Markers&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/text-markers/&quot;&gt;Text &amp;amp; Line Markers&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Marking full lines &amp;amp; line ranges&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Line 1 - targeted by line number
// Line 2
// Line 3
// Line 4 - targeted by line number
// Line 5
// Line 6
// Line 7 - targeted by range &quot;7-8&quot;
// Line 8 - targeted by range &quot;7-8&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Selecting line marker types (mark, ins, del)&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;function demo() {
  console.log(&apos;this line is marked as deleted&apos;)
  // This line and the next one are marked as inserted
  console.log(&apos;this is the second inserted line&apos;)

  return &apos;this line uses the neutral default marker type&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adding labels to line markers&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// labeled-line-markers.jsx
&amp;lt;button
  role=&quot;button&quot;
  {...props}
  value={value}
  className={buttonClassName}
  disabled={disabled}
  active={active}
&amp;gt;
  {children &amp;amp;&amp;amp;
    !active &amp;amp;&amp;amp;
    (typeof children === &apos;string&apos; ? &amp;lt;span&amp;gt;{children}&amp;lt;/span&amp;gt; : children)}
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adding long labels on their own lines&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// labeled-line-markers.jsx
&amp;lt;button
  role=&quot;button&quot;
  {...props}

  value={value}
  className={buttonClassName}

  disabled={disabled}
  active={active}
&amp;gt;

  {children &amp;amp;&amp;amp;
    !active &amp;amp;&amp;amp;
    (typeof children === &apos;string&apos; ? &amp;lt;span&amp;gt;{children}&amp;lt;/span&amp;gt; : children)}
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Using diff-like syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;+this line will be marked as inserted
-this line will be marked as deleted
this is a regular line
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+this is an actual diff file
-all contents will remain unmodified
 no whitespace will be removed either
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Combining syntax highlighting with diff-like syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;  function thisIsJavaScript() {
    // This entire block gets highlighted as JavaScript,
    // and we can still add diff markers to it!
-   console.log(&apos;Old code to be removed&apos;)
+   console.log(&apos;New and shiny code!&apos;)
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Marking individual text inside lines&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;function demo() {
  // Mark any given text inside lines
  return &apos;Multiple matches of the given text are supported&apos;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Regular expressions&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;The words yes and yep will be marked.&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Escaping forward slashes&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;Test&quot; &amp;gt; /home/test.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Selecting inline marker types (mark, ins, del)&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;function demo() {
  console.log(&apos;These are inserted and deleted marker types&apos;);
  // The return statement uses the default marker type
  return true;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Word Wrap&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/word-wrap/&quot;&gt;Word Wrap&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Configuring word wrap per block&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Example with wrap
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;// Example with wrap=false
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Configuring indentation of wrapped lines&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Example with preserveIndent (enabled by default)
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;// Example with preserveIndent=false
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Collapsible Sections&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/plugins/collapsible-sections/&quot;&gt;Collapsible Sections&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// All this boilerplate setup code will be collapsed
import { someBoilerplateEngine } from &apos;@example/some-boilerplate&apos;
import { evenMoreBoilerplate } from &apos;@example/even-more-boilerplate&apos;

const engine = someBoilerplateEngine(evenMoreBoilerplate())

// This part of the code will be visible by default
engine.doSomething(1, 2, 3, calcFn)

function calcFn() {
  // You can have multiple collapsed sections
  const a = 1
  const b = 2
  const c = a + b

  // This will remain visible
  console.log(`Calculation result: ${a} + ${b} = ${c}`)
  return c
}

// All this code until the end of the block will be collapsed again
engine.closeConnection()
engine.freeMemory()
engine.shutdown({ reason: &apos;End of example boilerplate code&apos; })
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Line Numbers&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/plugins/line-numbers/&quot;&gt;Line Numbers&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Displaying line numbers per block&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// This code block will show line numbers
console.log(&apos;Greetings from line 2!&apos;)
console.log(&apos;I am on line 3&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;// Line numbers are disabled for this block
console.log(&apos;Hello?&apos;)
console.log(&apos;Sorry, do you know what line I am on?&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Changing the starting line number&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;Greetings from line 5!&apos;)
console.log(&apos;I am on line 6&apos;)
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Simple Guides for Fuwari</title><link>https://yukari0201.github.io/posts/guide/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/guide/</guid><description>How to use this blog template.</description><pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Cover image source: &lt;a href=&quot;https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/208fc754-890d-4adb-9753-2c963332675d/width=2048/01651-1456859105-(colour_1.5),girl,_Blue,yellow,green,cyan,purple,red,pink,_best,8k,UHD,masterpiece,male%20focus,%201boy,gloves,%20ponytail,%20long%20hair,.jpeg&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This blog template is built with &lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;. For the things that are not mentioned in this guide, you may find the answers in the &lt;a href=&quot;https://docs.astro.build/&quot;&gt;Astro Docs&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Front-matter of Posts&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
---
&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribute&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The title of the post.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;published&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The date the post was published.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A short description of the post. Displayed on index page.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The cover image path of the post.&amp;lt;br/&amp;gt;1. Start with &lt;code&gt;http://&lt;/code&gt; or &lt;code&gt;https://&lt;/code&gt;: Use web image&amp;lt;br/&amp;gt;2. Start with &lt;code&gt;/&lt;/code&gt;: For image in &lt;code&gt;public&lt;/code&gt; dir&amp;lt;br/&amp;gt;3. With none of the prefixes: Relative to the markdown file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The tags of the post.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;category&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The category of the post.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;draft&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;If this post is still a draft, which won&apos;t be displayed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Where to Place the Post Files&lt;/h2&gt;
&lt;p&gt;Your post files should be placed in &lt;code&gt;src/content/posts/&lt;/code&gt; directory. You can also create sub-directories to better organize your posts and assets.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/content/posts/
├── post-1.md
└── post-2/
    ├── cover.png
    └── index.md
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Markdown Example</title><link>https://yukari0201.github.io/posts/markdown/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/markdown/</guid><description>A simple example of a Markdown blog post.</description><pubDate>Sun, 01 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;An h1 header&lt;/h1&gt;
&lt;p&gt;Paragraphs are separated by a blank line.&lt;/p&gt;
&lt;p&gt;2nd paragraph. &lt;em&gt;Italic&lt;/em&gt;, &lt;strong&gt;bold&lt;/strong&gt;, and &lt;code&gt;monospace&lt;/code&gt;. Itemized lists
look like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;this one&lt;/li&gt;
&lt;li&gt;that one&lt;/li&gt;
&lt;li&gt;the other one&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that --- not considering the asterisk --- the actual text
content starts at 4-columns in.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Block quotes are
written like so.&lt;/p&gt;
&lt;p&gt;They can span multiple paragraphs,
if you like.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., &quot;it&apos;s all
in chapters 12--14&quot;). Three dots ... will be converted to an ellipsis.
Unicode is supported. ☺&lt;/p&gt;
&lt;h2&gt;An h2 header&lt;/h2&gt;
&lt;p&gt;Here&apos;s a numbered list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;first item&lt;/li&gt;
&lt;li&gt;second item&lt;/li&gt;
&lt;li&gt;third item&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note again how the actual text starts at 4 columns in (4 characters
from the left side). Here&apos;s a code sample:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Let me re-iterate ...
for i in 1 .. 10 { do-something(i) }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you probably guessed, indented 4 spaces. By the way, instead of
indenting the block, you can use delimited blocks, if you like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define foobar() {
    print &quot;Welcome to flavor country!&quot;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(which makes copying &amp;amp; pasting easier). You can optionally mark the
delimited block for Pandoc to syntax highlight it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import time
# Quick, count to ten!
for i in range(10):
    # (but not *too* quick)
    time.sleep(0.5)
    print i
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;An h3 header&lt;/h3&gt;
&lt;p&gt;Now a nested list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;First, get these ingredients:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;carrots&lt;/li&gt;
&lt;li&gt;celery&lt;/li&gt;
&lt;li&gt;lentils&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Boil some water.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dump everything in the pot and follow
this algorithm:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; find wooden spoon
 uncover pot
 stir
 cover pot
 balance wooden spoon precariously on pot handle
 wait 10 minutes
 goto first step (or shut off burner when done)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not bump wooden spoon or it will fall.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Notice again how text always lines up on 4-space indents (including
that last line which continues item 3 above).&lt;/p&gt;
&lt;p&gt;Here&apos;s a link to &lt;a href=&quot;http://foo.bar&quot;&gt;a website&lt;/a&gt;, to a &lt;a href=&quot;local-doc.html&quot;&gt;local
doc&lt;/a&gt;, and to a &lt;a href=&quot;#an-h2-header&quot;&gt;section heading in the current
doc&lt;/a&gt;. Here&apos;s a footnote [^1].&lt;/p&gt;
&lt;p&gt;[^1]: Footnote text goes here.&lt;/p&gt;
&lt;p&gt;Tables can look like this:&lt;/p&gt;
&lt;p&gt;size material color&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;9 leather brown
10 hemp canvas natural
11 glass transparent&lt;/p&gt;
&lt;p&gt;Table: Shoes, their sizes, and what they&apos;re made of&lt;/p&gt;
&lt;p&gt;(The above is the caption for the table.) Pandoc also supports
multi-line tables:&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;keyword text&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;red Sunsets, apples, and
other red or reddish
things.&lt;/p&gt;
&lt;p&gt;green Leaves, grass, frogs
and other things it&apos;s
not easy being.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;A horizontal rule follows.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Here&apos;s a definition list:&lt;/p&gt;
&lt;p&gt;apples
: Good for making applesauce.
oranges
: Citrus!
tomatoes
: There&apos;s no &quot;e&quot; in tomatoe.&lt;/p&gt;
&lt;p&gt;Again, text is indented 4 spaces. (Put a blank line between each
term/definition pair to spread things out more.)&lt;/p&gt;
&lt;p&gt;Here&apos;s a &quot;line block&quot;:&lt;/p&gt;
&lt;p&gt;| Line one
| Line too
| Line tree&lt;/p&gt;
&lt;p&gt;and images can be specified like so:&lt;/p&gt;
&lt;p&gt;Inline math equations go in like so: $\omega = d\phi / dt$. Display
math should get its own line and be put in in double-dollarsigns:&lt;/p&gt;
&lt;p&gt;$$I = \int \rho R^{2} dV$$&lt;/p&gt;
&lt;p&gt;$$
\begin{equation*}
\pi
=3.1415926535
;8979323846;2643383279;5028841971;6939937510;5820974944
;5923078164;0628620899;8628034825;3421170679;\ldots
\end{equation*}
$$&lt;/p&gt;
&lt;p&gt;And note that you can backslash-escape any punctuation characters
which you wish to be displayed literally, ex.: `foo`, *bar*, etc.&lt;/p&gt;
</content:encoded></item><item><title>Include Video in the Posts</title><link>https://yukari0201.github.io/posts/video/</link><guid isPermaLink="true">https://yukari0201.github.io/posts/video/</guid><description>This post demonstrates how to include embedded video in a blog post.</description><pubDate>Tue, 01 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Include Video in the Post
published: 2023-10-19
// ...
---

&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;YouTube&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Bilibili&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1fK4y1s7Qf&amp;amp;p=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item></channel></rss>