<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>XwXStudio</title>
  
  
  <link href="http://xwxstudio.com/atom.xml" rel="self"/>
  
  <link href="http://xwxstudio.com/"/>
  <updated>2026-03-18T08:23:52.644Z</updated>
  <id>http://xwxstudio.com/</id>
  
  <author>
    <name>XwX</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>beamer</title>
    <link href="http://xwxstudio.com/beamer/"/>
    <id>http://xwxstudio.com/beamer/</id>
    <published>2023-12-31T17:07:15.000Z</published>
    <updated>2026-03-18T08:23:52.644Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="Beamer"><a href="#Beamer" class="headerlink" title="Beamer"></a>Beamer</h1><blockquote><p>想记一下<code>Beamer</code>里我比较喜欢的几个写法；当然明天再写就是了。。。<br>弃坑了。。。</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>All Hail Lelouch!</title>
    <link href="http://xwxstudio.com/Lelouch/"/>
    <id>http://xwxstudio.com/Lelouch/</id>
    <published>2023-10-31T16:11:46.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">  <script id="hbeData" type="hbeData" data-hmacdigest="8d9b7e487ee0a0b8a2ce0f911db320dd45db3d0f6fb492c2b33d3aaafd819303">eed3e687009b6dd9dbeca59f29b6cbdc320bb6c2c088a5384dc12b4d898eb424664edc4054dff853233c2d5542309c4a36c38788184495f2901099bfe80b40744a6de939e0ef6722ce625862e0cf7249f3db5539056aa1058e5bbc72389e16c62cf6a9559a9d6ea8007db0354d45b6b7361d5976422b5d626d3613ad92241079b73087df08bbef7797abd49e24e9339be81715a23fdd07b08e1a8f67c10be55efa49a9afd4e07ccf895a271f14844a153855ea6cd9df19be7deb92191dde777fefbc5043814e69840f6cb97b1d37b7eb3471d9a00028297d530551ee09137665d38f27732c2d0d7464ca5f0c09a53d4f2829ce1cd8b5f5f6ecb0ce0fbec95c4293de006b69933ca1f3196807ef2365abf436b74d13e5a1d7a1cb26871aba75ef961f4fd31f43bd4a88c772ab92f78260045af08d20574dae237aae28b27af58b3089edba95f5015c6c9aab2352ee7c828dd8afbdf15bcac7c9adadfe974b3a4d248d774e02bb79954d5f0bb3a2c9d82d28fcb607df15fff21b6950c86c5d51b4cd0d586e1c12d8604edda3cc6a6b64de2765c584cc30e2bb0338464b99982d847dc8f81fd997f2e4fee266e7e391d6e4c7fbef08b22717d90b40e776a281f473d5787e5c11c32ca215fe607be2de62121ee66e1a9d4588a230c9f7085ef1fef53ec16c5d2abe36c58bb3bbb55c9c0a0a126472a67c89c83ca45fc79cb05eb07eb24c0d958a33ee29cb5ea60a750293e9e514282b702651000571596249613972d2379a47cd52db1a816948da6a3ff8f7335a4bbd258f075e7843950bd356d04c807705b000a2f044fdd99e6acfe7e9f263e812cfd87812e27b91045d3c6aa0d7b0f7d81b59851f6493012c780629451f8157ac208627d6e6fb860d409091a89cc8441734ce6ff97b19ce2f39792e47eaf59b07aa1decb80a781d015325066940a6df140c153f55a0e9a0ea4350661e27fc81cec44758138db41f46940b69bc7955b0aeaafd528b57a2cb77e8ff3192c034ee50be3c8397971706dc7074cbe1a9b806fc49ff9482c21c10ba8a07997d0321bf5503650e43bb40e29a392c02282ebbf6858700b98c700e48919651bf533d7dd7122a8dc5a590900c6056a5835e29b55033ab160c0c39fc4e1f2952ccabbbfb77a5480e81f5b7d363050f9b23fa53a4ff9a441894761fe497b08b7d35ee6eab56a00b4c0e205d2c922db77ab6259b239e79a80f81d8fb52897b997ee467cdb38d13b3b9fc61bb4837753f2f45ef33beaf4486e56ba085cda21080cb00efbf315d867bd0cde7912c2680a5e4d5f4be19bba7e025fc1ee0d4d83e6e63861cc91bc3a17cbe74abed131c86a2059c051f861eaf5347e57d609f881fe9a2e65af12c7a095020277c73eb77030abf38a06e66c1c128125c6aa6dca267dbcbaa7ef746f292b54db7c90e87620eafa1bfe6c8be4cf11b919d600d0113d253498706ee4060aa5cc97ad459372b168c4604101c9dbf05333bfa628d63922adba75d417f3dcfecffa330bf54b67ea5b06d5f18db4bca16cf43a2c3a89532c6c140f14634da5ab8e4561b2d1ae2565228109ca2fbc07bac2e0a3c05248c964f71218641a65d08e1b67d311d7088740fab19cb686f75492d6dc42b3b07b6c5f56d1f4731545b5691006f35bb7010a1ec4cd47e790c5d8cc4b84907a79effac316f7bd27202ba9fd0671f5b20db1ea830cf073da4738f4c8e2033940aff97b7915d34629be818ddcdae99535d1fcf39f791976ef68b63b9af3eefad71ace9d0d2e55fa15092def6fec46a427cd80ade7ee0c383e0243b2b4a563c34dde36adb0d7f9d791c45846ab379437d2a250048200fa837effd57a85f49720063a934f1c3e72df9c3fcb9a420b1e5fe17f2c0981b4940d983cf6260f1bcb20996e8b29bab81e27320145b16e59b25ff3d1fb304c4420ba8138a1c486eab56cc1a2386e293e8a40057fe79bea10238d1c4f447763f0d5a3ce0a304bef1dc166ecb1ee98b1ad97d8a348ec517d1302b9fbc97c9e76bfcf0cba9996afc704a394a8bed4175211d9e1c6792</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">密码？</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">密码？</summary>
    
    
    
    
  </entry>
  
  <entry>
    <title>直播拉流小工具</title>
    <link href="http://xwxstudio.com/liver/"/>
    <id>http://xwxstudio.com/liver/</id>
    <published>2023-06-14T16:27:31.000Z</published>
    <updated>2026-03-18T08:26:31.543Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="如题"><a href="#如题" class="headerlink" title="如题"></a>如题</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">liverc=<span class="string">&quot;&quot;</span><span class="variable">$HOME</span><span class="string">&quot;/.liverc&quot;</span></span><br><span class="line">url=<span class="string">&#x27;https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids&#x27;</span></span><br><span class="line">greeting=<span class="string">&#x27;GET DA⭐ZE&#x27;</span></span><br><span class="line"><span class="built_in">bye</span>=<span class="string">&#x27;Enjoy Yourself!!&#x27;</span></span><br><span class="line">sorry=<span class="string">&#x27;DAMEDAYO!&#x27;</span></span><br><span class="line">tip=<span class="string">&#x27;Press Enter To Exit...&#x27;</span></span><br><span class="line">append_tip=<span class="string">&#x27;Using Options:&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> IFS=<span class="string">&#x27; &#x27;</span> <span class="built_in">read</span> name ID; <span class="keyword">do</span></span><br><span class="line">        table+=([<span class="string">&quot;<span class="variable">$ID</span>&quot;</span>]=<span class="string">&quot;<span class="variable">$name</span>&quot;</span>)</span><br><span class="line"><span class="keyword">done</span> &lt; <span class="string">&quot;<span class="variable">$liverc</span>&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;Requesting...&quot;</span></span><br><span class="line">respond=$(curl -s4 \</span><br><span class="line">        <span class="string">&#x27;https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids&#x27;</span> \</span><br><span class="line">        -H <span class="string">&#x27;Content-Type: application/json&#x27;</span> \</span><br><span class="line">        -d <span class="string">&#x27;&#123;&quot;uids&quot;: [&#x27;</span>$(IFS=,; <span class="built_in">echo</span> <span class="string">&quot;<span class="variable">$&#123;!table[*]&#125;</span>&quot;</span>)<span class="string">&#x27;]&#125;&#x27;</span>)</span><br><span class="line">IDs=($(<span class="built_in">echo</span> <span class="variable">$respond</span> | jq <span class="string">&#x27;.[&quot;data&quot;]| &#x27;</span>keys<span class="string">&#x27;&#x27;</span> | sed -e <span class="string">&#x27;s/&quot;//g&#x27;</span> -e <span class="string">&#x27;s/,/ /g&#x27;</span> -e <span class="string">&#x27;s/\[//g&#x27;</span> -e <span class="string">&#x27;s/\]//g&#x27;</span>))</span><br><span class="line"><span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$greeting</span>&quot;</span></span><br><span class="line"></span><br><span class="line">count=1</span><br><span class="line"><span class="keyword">for</span> ID <span class="keyword">in</span> <span class="variable">$&#123;IDs[@]&#125;</span> ; <span class="keyword">do</span></span><br><span class="line">        result=$(<span class="built_in">echo</span> <span class="variable">$respond</span> | jq <span class="string">&#x27;.[&quot;data&quot;] | .[&quot;&#x27;</span><span class="variable">$&#123;ID&#125;</span><span class="string">&#x27;&quot;] | [.live_status, .title, .live_time, .room_id, .short_id]&#x27;</span>)</span><br><span class="line">        title=$(<span class="built_in">echo</span> <span class="variable">$result</span> | sed -e <span class="string">&#x27;s/.*&quot;\(.*\)&quot;.*/\1/&#x27;</span> -e <span class="string">&#x27;s/&quot;//g&#x27;</span> -e <span class="string">&#x27;s/&quot;//g&#x27;</span> -e <span class="string">&#x27;s/【/「/g&#x27;</span> -e <span class="string">&#x27;s/】/」/g&#x27;</span>)</span><br><span class="line">        result=$(<span class="built_in">echo</span> <span class="variable">$result</span> | sed -e <span class="string">&#x27;s/&quot;.*&quot;, //g&#x27;</span> -e <span class="string">&#x27;s/, / /g&#x27;</span> -e <span class="string">&quot;s/\[//g&quot;</span> -e <span class="string">&#x27;s/\]//g&#x27;</span>)</span><br><span class="line">        IFS=<span class="string">&#x27; &#x27;</span> <span class="built_in">read</span> live_status live_time room_id short_id&lt;&lt;&lt; <span class="variable">$result</span></span><br><span class="line">        <span class="keyword">if</span> [[ <span class="variable">$&#123;live_status&#125;</span> == 1 || <span class="variable">$1</span> == <span class="string">&#x27;-p&#x27;</span> ]]; <span class="keyword">then</span></span><br><span class="line">                <span class="keyword">if</span> [[ <span class="variable">$&#123;short_id&#125;</span> !=  0 ]]; <span class="keyword">then</span> room_id=<span class="variable">$&#123;short_id&#125;</span>; <span class="keyword">fi</span></span><br><span class="line">                live_time=$(<span class="built_in">date</span> -d @<span class="variable">$live_time</span> +<span class="string">&quot;%H:%M:%S&quot;</span>)</span><br><span class="line">                buffer+=<span class="string">&#x27;printf &quot;%d\t%s\t\e[90m%s\e[0m\t\e[32m%s\e[0m\t%s\n&quot; &quot;&#x27;</span><span class="variable">$count</span><span class="string">&#x27;&quot; &quot;&#x27;</span><span class="variable">$&#123;table[&quot;<span class="variable">$&#123;ID&#125;</span>&quot;]&#125;</span><span class="string">&#x27;&quot; &quot;&#x27;</span><span class="variable">$&#123;title&#125;</span><span class="string">&#x27;&quot; &quot;&#x27;</span><span class="variable">$&#123;live_time&#125;</span><span class="string">&#x27;&quot; &quot;&#x27;</span><span class="variable">$&#123;room_id&#125;</span><span class="string">&#x27;&quot;;&#x27;</span></span><br><span class="line">                room_ids+=(<span class="variable">$room_id</span>)</span><br><span class="line">                count=$((<span class="variable">$&#123;count&#125;</span>+<span class="number">1</span>))</span><br><span class="line">        <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [[ <span class="variable">$buffer</span> != <span class="string">&#x27;&#x27;</span> ]]</span><br><span class="line"><span class="keyword">then</span></span><br><span class="line">        buffer=<span class="string">&#x27;printf &quot;\e[34mNO\tNickname\tTitle\tStart\tRoom_ID\n\e[0m&quot;;&#x27;</span><span class="variable">$buffer</span></span><br><span class="line">        <span class="built_in">eval</span> <span class="string">&quot;<span class="variable">$buffer</span>&quot;</span> | column -t -s $<span class="string">&#x27;\t&#x27;</span></span><br><span class="line">        <span class="keyword">if</span> [[ <span class="variable">$1</span> != <span class="string">&#x27;&#x27;</span> ]]; <span class="keyword">then</span></span><br><span class="line">          <span class="keyword">if</span> [[ <span class="variable">$1</span> == <span class="string">&#x27;-p&#x27;</span> ]]; <span class="keyword">then</span></span><br><span class="line">            <span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$bye</span>&quot;</span></span><br><span class="line">            <span class="built_in">exit</span> 0</span><br><span class="line">          <span class="keyword">elif</span> [[ <span class="variable">$1</span> == <span class="string">&#x27;-a&#x27;</span> ]]; <span class="keyword">then</span></span><br><span class="line">            my_opt=<span class="string">&quot;-a&quot;</span><span class="string">&quot; &quot;</span><span class="string">&quot;<span class="variable">$&#123;*:2&#125;</span>&quot;</span></span><br><span class="line">            <span class="built_in">printf</span> <span class="string">&quot;\e[34m%s%s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$append_tip</span>&quot;</span> <span class="string">&quot;<span class="variable">$&#123;*:2&#125;</span>&quot;</span></span><br><span class="line">          <span class="keyword">fi</span></span><br><span class="line">        <span class="keyword">fi</span></span><br><span class="line">        <span class="keyword">if</span> [[ <span class="variable">$&#123;#room_ids[@]&#125;</span> != 0 ]]; <span class="keyword">then</span></span><br><span class="line">          <span class="built_in">let</span> total=<span class="variable">$&#123;#room_ids[@]&#125;</span></span><br><span class="line">          <span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;choose...&quot;</span></span><br><span class="line">          <span class="built_in">read</span> -a choices</span><br><span class="line">          <span class="keyword">if</span> [[ $(<span class="built_in">echo</span> <span class="variable">$choices</span> | grep -E <span class="string">&#x27;a|A&#x27;</span>) != <span class="string">&#x27;&#x27;</span> ]]; <span class="keyword">then</span></span><br><span class="line">            choices=<span class="string">&quot;<span class="subst">$(seq -s &#x27; &#x27; 0 $(($total - 1)</span>))&quot;</span></span><br><span class="line">          <span class="keyword">fi</span></span><br><span class="line">          <span class="keyword">for</span> choice <span class="keyword">in</span> <span class="variable">$&#123;choices[@]&#125;</span>; <span class="keyword">do</span></span><br><span class="line">            <span class="keyword">if</span> [[ <span class="variable">$choice</span> =~ ^[0-9]+$ ]] &amp;&amp; [[ <span class="variable">$choice</span> -le <span class="variable">$&#123;#room_ids[@]&#125;</span> ]]; <span class="keyword">then</span></span><br><span class="line">              run=<span class="string">&quot;<span class="variable">$&#123;room_ids[$(($choice - 1))]&#125;</span>&quot;</span><span class="string">&quot; &quot;</span><span class="string">&quot;<span class="variable">$&#123;my_opt&#125;</span>&quot;</span></span><br><span class="line">              <span class="built_in">printf</span> <span class="string">&quot;\e[35mbili-live %s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$run</span>&quot;</span></span><br><span class="line">              <span class="built_in">exec</span> bili-live <span class="variable">$&#123;run&#125;</span> &amp;</span><br><span class="line">            <span class="keyword">fi</span></span><br><span class="line">          <span class="keyword">done</span></span><br><span class="line">      <span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$bye</span>&quot;</span></span><br><span class="line">      <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">      <span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$sorry</span>&quot;</span></span><br><span class="line">      <span class="built_in">printf</span> <span class="string">&quot;\e[35m%s\e[0m\n&quot;</span> <span class="string">&quot;<span class="variable">$tip</span>&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">read</span></span><br></pre></td></tr></table></figure><blockquote><p>~&#x2F;.liverc实例如下</p></blockquote><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">hanser 11073</span><br><span class="line">小缘 5055</span><br><span class="line">泠鸢yousa 282994</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>FFmpeg 笔记</title>
    <link href="http://xwxstudio.com/FFmpeg/"/>
    <id>http://xwxstudio.com/FFmpeg/</id>
    <published>2023-05-28T15:53:24.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><ul><li><code>-i</code> 指定输入文件</li><li><code>-y</code> 忽略警告(覆盖已有文件)</li><li><code>-hwaccel cuda</code> 硬件加速</li><li><code>-b:v</code> 视频码率, 音频改为<code>-b:a</code>即可 </li><li><code>-r</code> fps</li><li><code>-vf scale=1080:-1</code> 保持原始比例缩放, 或者直接<code>-s</code></li><li><code>-vf subtitle</code> 渲染硬字幕, 软字幕指定两个输入文件后用 <code>-c copy</code></li><li><code>-ss xx:xx:xx -t 120</code> 剪出开始时间<code>xx:xx:xx</code>的后<code>120</code>秒, 到结尾用<code>-sseof</code></li><li><code>-f concat -i list.txt</code> 连接视频, 必须用list文件指定输入</li></ul><blockquote><p>一些例子</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">ffmpeg -i test.mkv -vf subtitles=test.srt output.mp4</span><br><span class="line">ffmpeg -i test.srt test.ass</span><br><span class="line">ffmpeg -i test.mp4 -i test.srt -c copy output.mkv</span><br><span class="line">ffmpeg -i img.jpg -q 75 out.jpg</span><br><span class="line">ffmpeg -i organ.mp3 -ss 00:00:xx -t 120 output.mp3</span><br><span class="line">ffmpeg -y -hwaccel cuda -i input.mp4 -c:a copy -c:v hevc_nvenc -b:v 5M output.mp4</span><br><span class="line">ffmpeg -hwaccel cuda -i 2.mp4 -c:a copy -c:v hevc_nvenc -r 25 -vf scale=1600:-1 out2.mp4</span><br><span class="line">ffmpeg -hwaccel cuda -i .\shana11.mkv -c:v mpeg4 -c:a aac -b:v 256k -b:a 64k -ar 44100 -vf scale=480x272,subtitles=shana11.ass -r 23.976 shana-psp-11.mp4 -y <span class="comment">#PSP</span></span><br><span class="line">ffmpeg -hwaccel cuda -f concat -i input.txt -c:v hevc out.mp4</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>我的mpv配置文件</title>
    <link href="http://xwxstudio.com/mpv/"/>
    <id>http://xwxstudio.com/mpv/</id>
    <published>2023-02-05T16:38:32.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>主要来自<code>vcb</code>社区的推荐配置。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br></pre></td><td class="code"><pre><span class="line">script-opts=ytdl_hook-ytdl_path=/usr/bin/yt-dlp</span><br><span class="line"></span><br><span class="line">vo=gpu</span><br><span class="line">gpu-context=waylandvk</span><br><span class="line">gpu-api=vulkan</span><br><span class="line">hwdec=nvdec-copy</span><br><span class="line">idle</span><br><span class="line">pause</span><br><span class="line"># vulkan-device=&#x27;NVIDIA GeForce RTX 2050&#x27;</span><br><span class="line"># vulkan-device=&#x27;Intel(R) Graphics (ADL GT2)&#x27;</span><br><span class="line"></span><br><span class="line"># ao=pipewire</span><br><span class="line">alang=jpn,zh,chs,zh-Hans</span><br><span class="line">audio-file-auto=exact</span><br><span class="line">volume-max=100</span><br><span class="line">audio-pitch-correction</span><br><span class="line"></span><br><span class="line">osd-on-seek=msg-bar</span><br><span class="line">osd-font=&quot;HYZhengYuan-55S&quot;</span><br><span class="line">osd-font-size=40</span><br><span class="line">osd-playing-msg=&quot;$&#123;filename&#125;&quot;</span><br><span class="line"></span><br><span class="line"># profile=gpu-hq</span><br><span class="line"># icc-profile-auto</span><br><span class="line">profile=high-quality</span><br><span class="line">blend-subtitles=video</span><br><span class="line">deband</span><br><span class="line">scale=ewa_lanczossharp</span><br><span class="line">cscale=catmull_rom</span><br><span class="line">video-sync=display-resample</span><br><span class="line">interpolation</span><br><span class="line">tscale=oversample</span><br><span class="line">#autofit-larger=50%</span><br><span class="line"># window-scale=0.667</span><br><span class="line"># autofit=1920</span><br><span class="line"># autofit-smaller=50%x50%</span><br><span class="line"># video-aspect=1.9</span><br><span class="line"></span><br><span class="line">slang=chs,sc,zh,chi,zho,zh-Hans</span><br><span class="line">sub-auto=fuzzy</span><br><span class="line">sub-font=&quot;HYZhengYuan-55S&quot;</span><br><span class="line"># sub-scale=0.8</span><br><span class="line"># sub-font=&quot;FZZhunYuan-M02&quot;</span><br><span class="line"></span><br><span class="line">glsl-shaders=&quot;~~/shaders/FSR.glsl&quot;</span><br><span class="line"></span><br><span class="line">[intel]</span><br><span class="line">vo=gpu</span><br><span class="line">gpu-context=wayland</span><br><span class="line">gpu-api=opengl</span><br><span class="line">vaapi-device=&#x27;Intel(R) Graphics (ADL GT2)&#x27;</span><br><span class="line">hwdec=vaapi-copy</span><br><span class="line">glsl-shaders=&quot;~~/shaders/FSR.glsl&quot;</span><br><span class="line"># scale=lanczos</span><br><span class="line"></span><br><span class="line"># mpv-handler profile</span><br><span class="line">[danmaku]</span><br><span class="line">pause=no</span><br><span class="line">loop=inf</span><br><span class="line">profile=bili-v</span><br><span class="line">vf=lavfi=&quot;fps=fps=60:round=down&quot;</span><br><span class="line">referrer=&quot;https://www.bilibili.com/&quot;</span><br><span class="line">script=&quot;/home/xwx/.config/mpv/scripts/bilibiliAssert/main.lua&quot;</span><br><span class="line"></span><br><span class="line">[bili-live]</span><br><span class="line"># msg-level=all=v</span><br><span class="line"># autofit=960</span><br><span class="line">pause=no</span><br><span class="line">referrer=&#x27;https://live.bilibili.com&#x27;</span><br><span class="line">script-opts-append=osc-visibility=never</span><br><span class="line">ytdl-raw-options=format=best[vcodec!=hevc]</span><br><span class="line">ytdl-raw-options-append=cookies-from-browser=chrome</span><br><span class="line"># ytdl-raw-options-append=external-downloader=aria2c</span><br><span class="line"># ytdl-raw-options-append=downloader-args=&#x27;aria2c:&quot;-x 8 -k 1M&quot;&#x27;</span><br><span class="line"></span><br><span class="line">[bili-v]</span><br><span class="line"># msg-level=all=v</span><br><span class="line"># autofit=960</span><br><span class="line">pause=no</span><br><span class="line">referrer=&#x27;https://www.bilibili.com&#x27;</span><br><span class="line">script-opts-append=osc-visibility=never</span><br><span class="line">ytdl-raw-options-append=&quot;cookies-from-browser=chrome&quot;</span><br><span class="line">ytdl-raw-options-append=&quot;external-downloader=aria2c&quot;</span><br><span class="line">ytdl-raw-options-append=&quot;downloader-args=aria2c:&#x27;-x 8 -k 1M&#x27;&quot;</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="life" scheme="http://xwxstudio.com/categories/life/"/>
    
    <category term="video" scheme="http://xwxstudio.com/categories/life/video/"/>
    
    
    <category term="mpv" scheme="http://xwxstudio.com/tags/mpv/"/>
    
  </entry>
  
  <entry>
    <title>使用yt-dlp和mpv浏览B站直播</title>
    <link href="http://xwxstudio.com/ytdl/"/>
    <id>http://xwxstudio.com/ytdl/</id>
    <published>2022-11-09T14:06:44.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>用了<code>yt-dlp</code>和<code>mpv</code>，摆烂 + 快乐摸鱼！</p><blockquote><p>bili-live</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"><span class="keyword">if</span> [ <span class="variable">$#</span> == 1 ]</span><br><span class="line"><span class="keyword">then</span></span><br><span class="line">        m --profile=bili-live \</span><br><span class="line">            https://live.bilibili.com/<span class="string">&quot;<span class="variable">$1</span>&quot;</span></span><br><span class="line"><span class="keyword">elif</span> [ <span class="variable">$#</span> == 3 ] &amp;&amp; [ <span class="string">&quot;<span class="variable">$2</span>&quot;</span> == <span class="string">&#x27;-r&#x27;</span> ]</span><br><span class="line"><span class="keyword">then</span></span><br><span class="line">        time=$(<span class="built_in">date</span> <span class="string">&quot;+%m%d%H%M%S&quot;</span>)</span><br><span class="line">        filename=<span class="string">&quot;/home/xwx/Media/Live/<span class="variable">$&#123;3&#125;</span>-<span class="variable">$&#123;time&#125;</span>.flv&quot;</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Record in ~/Media/Live/&quot;</span></span><br><span class="line">        m --profile=bili-live \</span><br><span class="line">            --stream-record=<span class="string">&quot;<span class="variable">$&#123;filename&#125;</span>&quot;</span> \</span><br><span class="line">            https://live.bilibili.com/<span class="string">&quot;<span class="variable">$1</span>&quot;</span></span><br><span class="line"><span class="keyword">elif</span> [ <span class="variable">$#</span> &gt; 2 ] &amp;&amp; [ <span class="string">&quot;<span class="variable">$2</span>&quot;</span> == <span class="string">&#x27;-a&#x27;</span> ]</span><br><span class="line"><span class="keyword">then</span></span><br><span class="line">        m --profile=bili-live \</span><br><span class="line">            https://live.bilibili.com/<span class="string">&quot;<span class="variable">$1</span>&quot;</span> \</span><br><span class="line">            <span class="string">&quot;<span class="variable">$&#123;*:3&#125;</span>&quot;</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;bili-live:Wrong Arg!&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br></pre></td></tr></table></figure><blockquote><p>m</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line">cmd=<span class="string">&#x27;mpv.exe&#x27;</span></span><br><span class="line">opt=<span class="string">&#x27;&#x27;</span></span><br><span class="line"></span><br><span class="line">params=<span class="string">&quot;&quot;</span></span><br><span class="line">urls=<span class="string">&quot;&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span> arg <span class="keyword">in</span> <span class="string">&quot;<span class="variable">$@</span>&quot;</span>; <span class="keyword">do</span></span><br><span class="line">  <span class="keyword">if</span> [[ <span class="variable">$arg</span> == http* ]]; <span class="keyword">then</span></span><br><span class="line">    urls+=<span class="string">&quot; <span class="variable">$arg</span>&quot;</span></span><br><span class="line">  <span class="keyword">elif</span> [[ <span class="variable">$arg</span> == *=* ]]; <span class="keyword">then</span></span><br><span class="line">    <span class="keyword">if</span> [[ <span class="variable">$arg</span> != --* ]]; <span class="keyword">then</span></span><br><span class="line">      arg=<span class="string">&quot;--<span class="variable">$arg</span>&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line">    params+=<span class="string">&quot; <span class="variable">$arg</span>&quot;</span></span><br><span class="line">  <span class="keyword">else</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Unknown Arg: <span class="variable">$arg</span>&quot;</span> &gt;&amp;2</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line">  <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;exec $cmd$params<span class="variable">$urls</span>&quot;</span> | bash</span><br></pre></td></tr></table></figure><blockquote><p>例子<br>bili-live 593 # For Just Live<br>bili-live r 196 # For 自溜</p></blockquote><!-- > bili-live v BV1j4411W7F7 # For 别人的自溜 --><!-- > bili-live vp BV1MX4y1o7gJ 10 # For Multiple Parts 别人的自溜 --><!-- > bili-live rn Angel 255 # For Named 自溜  --><p>关注泠鸢yousa喵，关注泠鸢yousa谢谢喵！</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="video" scheme="http://xwxstudio.com/categories/video/"/>
    
    <category term="tech" scheme="http://xwxstudio.com/categories/video/tech/"/>
    
    
    <category term="mpv" scheme="http://xwxstudio.com/tags/mpv/"/>
    
    <category term="bilibili" scheme="http://xwxstudio.com/tags/bilibili/"/>
    
    <category term="yt-dlp" scheme="http://xwxstudio.com/tags/yt-dlp/"/>
    
    <category term="shell" scheme="http://xwxstudio.com/tags/shell/"/>
    
  </entry>
  
  <entry>
    <title>GitHub 代理</title>
    <link href="http://xwxstudio.com/github-proxy/"/>
    <id>http://xwxstudio.com/github-proxy/</id>
    <published>2022-10-15T15:04:44.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git config --global http.https://github.com.proxy socks5://127.0.0.1:xxxx</span><br><span class="line">git config --global http.https://github.com.proxy http://127.0.0.1:xxxx</span><br></pre></td></tr></table></figure><p>不设会很难受，所以设了，嗯。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="tech" scheme="http://xwxstudio.com/categories/tech/"/>
    
    
    <category term="Git" scheme="http://xwxstudio.com/tags/Git/"/>
    
    <category term="Github" scheme="http://xwxstudio.com/tags/Github/"/>
    
  </entry>
  
  <entry>
    <title>网线很细————Hanser一专！</title>
    <link href="http://xwxstudio.com/hanser/"/>
    <id>http://xwxstudio.com/hanser/</id>
    <published>2022-09-07T16:14:39.000Z</published>
    <updated>2026-03-18T08:27:54.945Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>终于收到了等待了一个月的专辑，忙忙碌碌的一天中刚有机会仔细地聆听这张专辑。即使小天使的专辑我是一定会支持的，但是当我看到这仿佛是我喜欢的人的大集合<code>Staff</code>的时候我还是一下子兴奋了起来，无论是<code>yunomi</code>和<code>40mP</code>这种大手还是憨憨的众多<code>好朋友</code>们，都是我在所谓<code>泛二次元</code>这样一个现在已经让我看不懂的圈子里面最初能让我心动的那一批人。由此，<code>Hanser</code>的这张首专让我在收到专辑之前就无比期待，作为鸟蛋，甚至比当时收到<code>yousa</code>的二专时都还要期待。</p><blockquote><p>二专是《折纸信笺》！</p></blockquote><p>如果说<code>yousa</code>是认真的女神<del>经</del>的话，憨色其实就像是我<del>从小看着长大</del>的大姐姐，亲切的声音，率真的性格，偶尔搞怪但是总是认真的处事，光听着讲话就很有意思，所以我从斗鱼以来——尽管那时候因为种种原因只能听录播，所以也没参加过活动，演唱会也没能去——就一直把Hanser当作陪伴电台来听的，草草回眸，竟已好多年（六年？<del>还算新粉吧</del>）。<code>小缘</code>十年，<code>yousa</code>二专，<code>Hanser</code>演唱会， 都是我想与同好们，或者说是我心中的那个向往着某些美好事物的那个我共度的时光，也不知是憨or鸟说过，这些重要节点不论是对于她们自己还是对于我们这些同好而言都是非常重要的时刻，能相聚在一起是偶然也是种必然。但是我宁愿做这美好流年的过客，因为我们这个时代好像一切都匆匆，<code>人</code>也好，<code>事</code>也好，但是<code>物</code>，却反常地越来越恒久，所以我今天抱着带着封条的专辑外壳，下意识地表现出了我未能料想到的依赖，因为在我心里，这就是我刚刚过去的这段已经悄无声息地流淌而过的时空的绝对坐标（工科生想不出词儿了）。</p><p>晚些，我终于拿着歌词本，完整地听了一遍专辑，看到鸟憨各自写了好几首，又在这些歌中找到了让我眼前一亮的歌。这些歌才听了一遍暂且放下不谈，听完回味时拿着歌词本想了想，回想起我现在的生活，很有感触，拿起键盘就写下了上面这一小段，算是笔记也好日记也罢，在此留档。最后，虽然跑题了，但是我还是想说，我庆幸我当初可以喜欢鸟，喜欢憨，喜欢毛哥，还有其他的可爱的朋友们，<del>尤其是一起唱过jbf的毛憨</del>。</p><p><img src="https://s2.loli.net/2022/09/08/IQ7SMzY3mdwFOK1.jpg" alt="IMG_20220907_231031"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="life" scheme="http://xwxstudio.com/categories/life/"/>
    
    <category term="note" scheme="http://xwxstudio.com/categories/life/note/"/>
    
    
    <category term="note" scheme="http://xwxstudio.com/tags/note/"/>
    
    <category term="Hanser" scheme="http://xwxstudio.com/tags/Hanser/"/>
    
  </entry>
  
  <entry>
    <title>《来自深渊》剧场版</title>
    <link href="http://xwxstudio.com/Abyss/"/>
    <id>http://xwxstudio.com/Abyss/</id>
    <published>2022-08-04T16:24:08.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">  <script id="hbeData" type="hbeData" data-hmacdigest="09f747233b9132323b88711ce1e1f0f9a66ee374bcaf3a8e88f23162e2e272ee">eed3e687009b6dd9dbeca59f29b6cbdc320bb6c2c088a5384dc12b4d898eb424664edc4054dff853233c2d5542309c4a36c38788184495f2901099bfe80b40744a6de939e0ef6722ce625862e0cf7249f3db5539056aa1058e5bbc72389e16c62cf6a9559a9d6ea8007db0354d45b6b7361d5976422b5d626d3613ad92241079b73087df08bbef7797abd49e24e9339be81715a23fdd07b08e1a8f67c10be55efa49a9afd4e07ccf895a271f14844a153855ea6cd9df19be7deb92191dde777fefbc5043814e69840f6cb97b1d37b7ebdb290f30990cb608d54261fbf9ba78e75270b88ef9f1e54dcea860417276f2041f94037f7e27405ce9f40a722d1416400c3526b25cf1e1f4c3b1e617fb37053b5a2d4321403c03149f7c880d634a6d40cd4374d26369df6ce50e9f4ea0b524ea7717e63e43f00b295f278fd1ba1b9329ff8c3ff1bd9a3df3324479516378c8747d8ae3b31f6224ad468f46301e5703f2a9e434b9b34a320123175234d74194fcaa705ca0ee64789751361b019ec1acc8cf00ba6a16667a798c3f20d0a4cd27a71bc90dbe9e70efc3c0555de1515819ef55cded9d3a74d62b460ea6800962eccfc15624bd90dffb431808cdb986373ad9cda15205e983ad8a7a8364d6f6992ede708e4618abedfc6f4966c7f8fbeb1e0cdffe079bdd59db1d41f0a42e40b6c11762466dbccaa826969d9be286c94645ca2d08f8cfc9e8c7b03fdb8c0f67c37f4d1c3a24115a7ba8cb76c05e849ae41f01470be503cf350f5464e8fb7be5890425a334c93da9534976c8530bc1b44d92b3493b4f8d45a07a0d8bd658a6a91c9c265a03ce796ce57eccd2caf0cdf365d71ecd050ef010d39e6fb3f9546381c87289bd1e832043bb8f0854fccbc6f1deb7cb3df3c1d69ac5925f3a23f2e385168d51538aef1565d1f588a4ae96a39ec91b73d82342080f2158aaee207fb5b69db10ad80fdf83a92fb8ed5079a7ab8c7a9c3d64c163fc25db530ea3dfa482a437b9cb8b48a21d9bc563db2d166a1b3eb56bd9577073d0239c182950889ddfccbf1f6e9093e85dd605bd09d64ec105adecaccd6768ff07a2916d774863507a9eee98b58f68a09f60e3dc73c964de4ad747ed6cc070c6245cb9dcb053978095fb8e76a0a392c6e5689b693772dde8fea7f11a218073ef0906513c3067e19602cda0a53ea18b77ba89ae2fe67778cc84cfda41c53c0ea3670a9ef911419a4d4454ab3c7abf0539c68e248d22872d0f176df740ff8209cf8a94efa2c7f83dc2d190fe1c72e00b51194bfe49f911a7dad01b61654c95925fde54075ef7921383a6f0cae15ab898a6b845fd13d81fb83723c035311a580524445e985a61137715852ebd0853bff3e33f97801e2723eeea1bce831aa2af1c47eda92f2505359dd9c374295a80782f638ae2731aafa277a050eaf740f849c1e6f72255eec64f843e75d5d6f57bcc6030e7f8e7e4833209d6dddef128672e2c290fe3870aab13fa7d84e1be2bfbf758586e522aa59c6bd4677564a7dc3c922e43ef7bbbda8056441d87fa81bc5a5454766893df4f7d24593e734185f74e5b6da93e9d8ff39284c2fea5376ce096cb0928eef1a74ca06de559eefd5da447b49a70e8d30d7ac9a40900ed2b52758903d42095aa8fa7a17709aac8efbbed7f40beedca97b7d5f8e7d62767d14eb4315960aee1f7d5e8472eb4dd03a1030f58fd88668101f1112f1638457d7da16a9fcc1b42183679ebb8ea1bf0bc0947a8bae34ed31b70691e032fa6d2d0d7c670c9a26a9b91506c233985e5beded689185ec8b4293f0e44608a5d46c2d8ead0115094ec4c6b553a9c74ea0622a7f2d6091f74e6ef6e7dc6db8a8ad49be3c5ed48a69824a82644881d5b32898ab0e7d44d9edcc017589d879a49923c5858a47f3ef8f3b8a4d2d65c96e5da158026348fc55543f5243226c092efab41d6e8c7fe2be2eaa68f5d0937001fc9510c42c543035a9ba40dc040273c938173e0a4b426b169e581d102c22c185f1eb0ccd382ce053f2988c20607dd09493081cf2a53c4701790cf8a2ceb486794bd8f26b0add63932140e721ee2236118f06fa29883643925db56cb0ce2dea06723d302a966bf85f2a618dac6fd35c4882a68dd4d2a9c3f3e35b45bc33811dce44369df94f611600abe72d3dec32375fdecf484be85aa8bda430a698c8183b58159d522252ec3fe093b0795d64fe3fc7ae15c5ad150ee14fe4aedcccf55b757208b181f3bd1bb4e7c7431ad52052e966e03dff0ffe328a6ac4782882313a05b8d1cf059baca86deef6c5d28bbad2b3ea06f16e2b8b83e3385c4af9e4d20540f0c256606de62971e6069a99deefd67b508b6abd3e344bfa30178eb741ccc1c8ced736e2f172da15dae0b5df64fde6c5de5b720e612dfdccc7f8818da177dc6c88931cd036a8caa08e56c36629d003aab469a3620ae9ea6903e479f60c17ba6bc6c1eac4c6ecdeb9c9f15c97ebfe8c1cfa92544894790f3e19d9e72774ba3841c346692bd24dfc757647a45715097c83317d12ccefefd1d0dc1622dc711d3e04215c8faab814121eda96efb7f05cd7542332a530249f2096066dbcb344b088466526c813a34cb9c6e86f87df58345bf5cf75ea09a801adf4856b22051bbea97d8f724f8bacf8cdedc63d4a4f6e31032304c44594b1ab41de710033ba231e39ccad5a27910009e1eadfb56184fa223a52e1d1c73bf23074e7869fdb9006c5f2311484719c089558c6e6ad9ed75db962ce2158efba0364c26e49373a8d3b10a1673860037636b11d5296b74bba462ff42b7f53bb1175c9c0b96f912cd83918a9ed082c460a2becc6ac89fcff4ef3b88b71d5150f7cb238b07ec57f36bd9fb2a69ac9c16b3465dcc48cfe3175a25d00e8d69a5e6feae3b9127272ba4de34d7943c8653b54480ae3addd48a8a63ef2345a00cd89a19500ccff8fb393e3526511f742d96358ac7cea85fbd40bc63929d2f5c768bffc601ace0ba73befc35beafff4196ca6660fb640c2c8c2715c1839bc0c5b5079ac6b0fbdf05a298b8704638e376c62edca81a9c29ade9125a94c9072d13815b3c7ba17a13a8f76624336e2645a0be85245b0c35636f447865ce449bd8ae521ec239763197182927</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">密码？</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">密码？</summary>
    
    
    
    <category term="life" scheme="http://xwxstudio.com/categories/life/"/>
    
    <category term="note" scheme="http://xwxstudio.com/categories/life/note/"/>
    
    
    <category term="ACG" scheme="http://xwxstudio.com/tags/ACG/"/>
    
    <category term="Comment" scheme="http://xwxstudio.com/tags/Comment/"/>
    
  </entry>
  
  <entry>
    <title>用VLC实现同子网下的从Win到Android的视频分享及播放</title>
    <link href="http://xwxstudio.com/VLC/"/>
    <id>http://xwxstudio.com/VLC/</id>
    <published>2022-04-07T02:12:00.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="一切的开始"><a href="#一切的开始" class="headerlink" title="一切的开始"></a>一切的开始</h1><p>最近厌烦了在阿B上看番的各种圣光和介质问题，进而转向下载补番党。但是，在电脑上下载完了之后，不能好好地躺在床上看，不然就要忍受现在电脑对手机的缓慢传输速度，或者是网盘的不可靠性。对于我这种<code>好事者</code>来说实在是难以忍受，因为宿舍里有路由器和校园网进线，所以我就想到了能不能用网络共享这种有点老的东西来实现，后来就想到了<code>SMB</code>，就有了这篇分享。</p><h1 id="电脑分享"><a href="#电脑分享" class="headerlink" title="电脑分享"></a>电脑分享</h1><p>如果是<code>Windows</code>的话，在<code>文件资源管理器</code>中找到你想要分享的文件夹按照<code>属性-共享-网络文件和文件夹共享-共享...</code>的方式打开共享设置界面，确认除了<code>Administrator</code>之外还有你自己的账号（一般是自己的微软账号），点击共享，就设置完毕了。</p><h1 id="手机看视频"><a href="#手机看视频" class="headerlink" title="手机看视频"></a>手机看视频</h1><ol><li>在<code>Google play</code>里面下载<code>VLC</code></li><li><code>VLC</code>中<code>浏览</code>界面下，一般过一会儿就探测到<code>共享</code>出现在<code>本地网络</code>里面了，可以加收藏</li><li>如果没有及时出现，可以尝试添加<ol><li>选择<code>SMB</code>协议</li><li><code>IP</code>在电脑<code>网络与Internet设置</code>中可以查看，路由器使用的网段一般是<code>192.168.x.x</code></li></ol></li></ol><h2 id="字幕"><a href="#字幕" class="headerlink" title="字幕"></a>字幕</h2><p>可以在播放界面找到字幕和音频的快速设置，所以即使是外挂字幕也可以用这个方法快乐共享。</p><h1 id="此外"><a href="#此外" class="headerlink" title="此外"></a>此外</h1><p><code>VLC</code>还可以看IP电视，这里分享一个仓库<a href="https://github.com/iptv-org/iptv">IPTV</a>，同时也可以直接<a href="https://github.com/search?q=iptv">GitHub搜索IPTV</a>。获得<code>m3u</code>和<code>m3u8</code>格式之后，使用任意平台的<code>VLC</code>或者<code>PotPlayer</code>均可以播放。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="life" scheme="http://xwxstudio.com/categories/life/"/>
    
    <category term="video" scheme="http://xwxstudio.com/categories/life/video/"/>
    
    
    <category term="VLC" scheme="http://xwxstudio.com/tags/VLC/"/>
    
  </entry>
  
  <entry>
    <title>Kindle配合Calibre的简单使用</title>
    <link href="http://xwxstudio.com/kindle/"/>
    <id>http://xwxstudio.com/kindle/</id>
    <published>2022-02-25T15:58:50.000Z</published>
    <updated>2023-04-01T13:20:00.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="Calibre安装"><a href="#Calibre安装" class="headerlink" title="Calibre安装"></a>Calibre安装</h1><p>官网脚本自动安装</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo -v &amp;&amp; wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin</span><br></pre></td></tr></table></figure><h2 id="插件安装"><a href="#插件安装" class="headerlink" title="插件安装"></a>插件安装</h2><p>接着上<a href="https://github.com/apprenticeharper/DeDRM_tools">GitHub</a>下载<code>DeDRM_plugin</code>，否则没法导出<code>kindle</code>商店买的电子书。</p><blockquote><p>此时记得先解压一次。</p></blockquote><p>在<code>Calibre</code>中，后面操作如下<code>首选项&gt;插件&gt;从文件加载插件</code>,选中<code>DeDRM_plugin.zip</code>,随后重启<code>Calibre</code>即可。</p><h3 id="插件配置"><a href="#插件配置" class="headerlink" title="插件配置"></a>插件配置</h3><p>接着需要将<code>Kindle</code>序列号输入插件的设置中,在<code>首选项&gt;插件</code>界面下,选择<code>自定义该插件</code>,选择<code>eInk Kindle ebooks</code>,按下”+”号,输入序列号（不需要空格）。</p><p>其中<code>Kindle序列号</code>在<code>设置&gt;设备信息</code>界面中可以找到。</p><h1 id="Kindle"><a href="#Kindle" class="headerlink" title="Kindle"></a>Kindle</h1><blockquote><p>版本为 Kindle Paperwhite（第十代）</p></blockquote><h1 id="从Kindle商店购买并加工为无加密的文件"><a href="#从Kindle商店购买并加工为无加密的文件" class="headerlink" title="从Kindle商店购买并加工为无加密的文件"></a>从Kindle商店购买并加工为无加密的文件</h1><p>搜索引擎搜索<code>Kindle商店</code>，在我的账户下拉菜单里找到<code>管理我的内容与设备</code>，在此页面可以下载加密后的文件。<br>下面看到<code>Calibre</code>，将文件添加书籍后，进行转换书籍至需要的格式，DeDRM便会自动运行，得到非加密的文件。</p><blockquote><p>当然你也可以在类似<a href="https://singlelogin.me/">z-library</a>之类的找到想要的文档。<br><del>当然现在想用 <code>z-library</code> 可以去了解一下 <a href="https://www.torproject.org/">Tor</a>。</del></p></blockquote><h1 id="网络电子书传进Kindle"><a href="#网络电子书传进Kindle" class="headerlink" title="网络电子书传进Kindle"></a>网络电子书传进Kindle</h1><p>添加书籍，传输进去即可。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="life" scheme="http://xwxstudio.com/categories/life/"/>
    
    <category term="read" scheme="http://xwxstudio.com/categories/life/read/"/>
    
    
    <category term="Kindle" scheme="http://xwxstudio.com/tags/Kindle/"/>
    
    <category term="电纸书" scheme="http://xwxstudio.com/tags/%E7%94%B5%E7%BA%B8%E4%B9%A6/"/>
    
    <category term="阅读" scheme="http://xwxstudio.com/tags/%E9%98%85%E8%AF%BB/"/>
    
  </entry>
  
  <entry>
    <title>Git笔记</title>
    <link href="http://xwxstudio.com/Git/"/>
    <id>http://xwxstudio.com/Git/</id>
    <published>2022-02-09T13:37:07.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="安装Git"><a href="#安装Git" class="headerlink" title="安装Git"></a>安装Git</h2><p>由于我用的是manjaro，所以就直接<code>yay</code>了。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yay -Sy git</span><br></pre></td></tr></table></figure><p><a href="http://git-scm.com/downloads">其他系统下载</a></p><blockquote><p>如果是<code>Win</code>系统可以安装后右键打开<code>Git GUI</code>（</p></blockquote><h2 id="基础配置"><a href="#基础配置" class="headerlink" title="基础配置"></a>基础配置</h2><ul><li>首先是报上名来。</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git config --global user.name <span class="string">&quot;whoami&quot;</span></span><br><span class="line">git config --global user.email myemail@example.com</span><br></pre></td></tr></table></figure><p>如果不放心是否成功可以查一下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git config --list</span><br></pre></td></tr></table></figure><ul><li>接着就初始化本地仓库</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git init</span><br><span class="line">git add --all</span><br><span class="line">git commit -m <span class="string">&#x27;init&#x27;</span></span><br></pre></td></tr></table></figure><ul><li>然后是加公钥</li></ul><p>先是自己机子生成一下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -t rsa -C <span class="string">&quot;myemail@example.com&quot;</span></span><br></pre></td></tr></table></figure><p>现在<code>～/.ssh/id_rsa.pub</code>里面已经出现了公钥，全部复制即可。</p><p>再是加入到Github上的设置里</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">个人主页&gt;头像右边的小三角&gt;Settings&gt;SSH and GPG keys&gt;New ssh key</span><br></pre></td></tr></table></figure><h2 id="简单命令"><a href="#简单命令" class="headerlink" title="简单命令"></a>简单命令</h2><ol><li>添加远程仓库</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git remote add origin git@github.com:username/repo.git</span><br></pre></td></tr></table></figure><ol start="2"><li>克隆仓库</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> git@github.com:username/repo.git</span><br></pre></td></tr></table></figure><ol start="3"><li>从远程仓库获取分支</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git fetch origin</span><br></pre></td></tr></table></figure><ol start="4"><li>合并分支</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git merge origin/master</span><br></pre></td></tr></table></figure><ol start="5"><li>下载远程代码并合并</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git pull &lt;远程主机名&gt; &lt;远程分支名&gt;(:&lt;本地分支名&gt;)</span><br></pre></td></tr></table></figure><ol start="6"><li>上传本地代码并合并</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git push &lt;远程主机名&gt; &lt;本地分支名&gt;(:&lt;远程分支名&gt;)</span><br></pre></td></tr></table></figure><ol start="7"><li>分支管理</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">VSCode</span><br></pre></td></tr></table></figure><h2 id="上传代码"><a href="#上传代码" class="headerlink" title="上传代码"></a>上传代码</h2><h3 id="方法一"><a href="#方法一" class="headerlink" title="方法一"></a>方法一</h3><ol><li>初始化本地仓库</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git init</span><br></pre></td></tr></table></figure><ol start="2"><li>加入本地代码</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">git add --all</span><br><span class="line">git commit -m <span class="string">&#x27;MESSAGE&#x27;</span></span><br><span class="line">git remote add origin git@github.com:username/reponame.git</span><br><span class="line">git push origin master （小心github的默认分支是main，如果你用master可以上传并删除main）</span><br></pre></td></tr></table></figure><ol start="3"><li>分支管理</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">VSCode</span><br></pre></td></tr></table></figure><h3 id="方法二"><a href="#方法二" class="headerlink" title="方法二"></a>方法二</h3><ol><li>克隆仓库</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> git@github.com:username/reponame.git</span><br></pre></td></tr></table></figure><ol start="2"><li>加入本地代码</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> ALL_YOUR_CODE/* THIS_REPO/</span><br><span class="line">git add --all</span><br><span class="line">git commit -m <span class="string">&#x27;MESSAGE&#x27;</span></span><br><span class="line">git push origin master （小心github的默认分支是main，如果你用master可以上传并删除main）</span><br></pre></td></tr></table></figure><ol start="3"><li>分支管理</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">VSCode</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="tech" scheme="http://xwxstudio.com/categories/tech/"/>
    
    
    <category term="Git" scheme="http://xwxstudio.com/tags/Git/"/>
    
    <category term="Github" scheme="http://xwxstudio.com/tags/Github/"/>
    
  </entry>
  
  <entry>
    <title>Minecraft服务器(ListAndBak)</title>
    <link href="http://xwxstudio.com/MC/"/>
    <id>http://xwxstudio.com/MC/</id>
    <published>2022-02-02T01:54:20.000Z</published>
    <updated>2026-03-18T08:17:24.976Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试." data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">  <script id="hbeData" type="hbeData" data-hmacdigest="43cb6e8e44e51afb72af2efbddb791882150a677d413f864a74c6e0178df1d58">4d12e5ce38fe85588d8c80e0a09e07aaeea01f19d27895f5018fa5b30d7852701eff8b3da68bf55e81e335c731885221ea9c981718198560bc8a995484e719bce3c6e6faf7fb93573df38a4e7e2f567329c0d38f573c30efaeae6bb388123152b0778cf4377ee565f24d9f04918f0708ebf168660bc078020cd5b05db39d76a3cf30ee00b90d98e8262057e2298f0e242eee3ef5ae73f57daeb7d26322cff33960414f22952a42b08d79c8c279e75a71b47f505f1ccc8cb6b8e4e6a91317da9cc2fd6cec288fbe5c17e41de52931dbcda7befd284f943e4f6c68c272f553086e0db6466a04b6ca6e965aa183d7caea75b7b3b608a257868a3d59cb4178fec7e5aacb037d454e6c75c26cc32f0d8e53fcb27aa3fcfd350d053e7a53553d625761777bc845ecf8ea45a24229dcbfd4481a4cb78f897008700cb89c970f560835b359ccbec74e77381f60c4346a5d7d20e460a89f1c814b22dc0399cced228650af38cc21649f867ac1c93d0d067928cd186f658826018535de1f1d8a6579c7189ecef725d525be12009fce49cdc1c2cbab77b9700abfd85008b4076371402e3ce1854796ce52db1169248f0bbe5648db56fe0382b19d2b5a967903e2fb3eb45a3506f11212137f283435b772215b4f4c639cd9dbd7e8f4eac37d8769229ab251a5b73791e41fba77669abb9f39757946489ff4fe39ae4ddcee4f74322bb4151c0c1af0edc6b84fd62f3cf65de678790d5ce7fcf67aea666fe628766a152de5d686a623eb6b9448c210450d73d5cde15e381dc730239d796bf1f055e4ad448ac1456b246a42ad822f258731d9b49721f4912d08d8d2fc3a108183d4bdb4ae59f7af2485936e5b61bb391896beaadb8ba3a651408dd679f95bf534930d47eb8f12eee4bf8aff33ef0be615f39d292f77a3968ee5c22d346093d64618588dd16aac1a7446b3aff74214a07cb2cab591986421009be14c8d0d3b6d9d81c7ce1d4b7ff02af89254a94158d5a561b176d5605a267ad8a147957b63b037c34882925a5045218fadd8bde41019a941d4c74f8fe947d79791a260a7d03b8c6d05318870898b81fba0d37bf189c99ea0a48eb3587af723697ede4d70f35c42ddbb7e3f4a027d8c0b46959556e64020e2520843a6513946179c41b4677775f13de6b100bf092603408f6eb2afbe1e1948e640a001de2456d649789145219da89e57df7d30afbfdec74fdaa6419cff7f6f8f44218e8c07bab63cc962eabd82ac081d7fc080b2bfbc23440c28fac3c009745c84705cdccf70dbcac012ed32c2e8de6dcf67c1036ce024f1b2b8f2db68ac33fb0f36878af607ae555423a9b2573b9d791d001f8f4d2738133cbd9ce08fb091b1d9870180a5d876565b7ad37df7403152b42fcd944238629278fead98b297d477e9b471623937912cab4bd960a4180d1a4e80560d6b467fc02a1d3eb190c4ea619ba1333a15e1e8708bb2a93ddd0582c3c0427133578e8142c30b595eda5038e6c390ddd220ed48c54cdc6f7d63c7ab5d97a1bf09e69db3c541b117b11eeb64ef2e7785235d4db4d2d0654b5d77f24567d53b25c6cc3d912aee800bf7ccb34a68431d0897284e7d53117eee712e60c93c29f2673650c6c1bbfacda232e6089f574abf882cbef5068e60536a7ce96688307af76b2ef7f5efbf0b3b0192bcb1cff197c3836a5d1e9e936d1e2c87bb1e3c5ecd54007fa94f945d6524701766ba41c30a1d3e01ac339108e6afe57b6fcdee2efe7906ec9b315cb37e931f3745b530519148dd781117e613b6be3369402272d79df97796c94ccc821a9094bd15a04593f1e8f8fb6d602f2859d57577f3c7d9309b7da19506817d9a14520a022efca40de32081777c9c477acfeb2940b2420e9686f5ea7cfea4763a9f35fc4aa2380762dfd1b719ddd12dfd63bffd845f7b1bb5ef47f4be9f3de80276c8bbf588eba9a824a5d10c0b021693b64f9cb481f39392327745cc0f2f5f922d1a5e225dc7179e811c37082c9c5c01a6aea47f260da351abbdc7eb261b161de727f868378d04d0f1fc6ad08c5516235eff498a8ce805f3caf35bd4387ea9da9b37a670263ff19060b55d7d838718dd9b393d2a26a3b5da54267f93029a788de57c8a80b9c78be71997a5e1f4212751c6fddc63ed24f6af6f83c93cf329171b0f1334c244863d10290a9765e02feb59f08fba84414ff850c432df8d8148d4662cf8131638dcd659325c42cbdcbdef47af5d0eb992f126a6f1fdfd8e12440b33c3dd613fdebced8248079fd4a752567b76217eda1a1730084d1fee43ca94aaa95a094137a9f7a94a400055f2d74f0ec3a6cae043661fb1d08ce9a0e8c7ebb1e8ef6c8b42d208939c416e8d13ac313fc790c8690726217f334de4bb3facd35a9ab9cb159667d0b39955bfff803425cecc237c5dc36b247f9e6c1dc59994745d5688c4a9814375d5625f9f0ccfe9d4924898ac8ae2e86c581321162f2d77428d13ee6abe80d60f56e23aa04cb715d2ea8d0c8c1f02129b20594c920a5e1692c51c50585636df7171d38cb4b338ce45605c0644ea1084b9391b6c4813a6446d32e1e5cf6bb291a35811983d91cd2c90547b1549deea2c8ed9dca9a1a076b11240cb3c0c35f67dd2c4ddba1a64ad887e89ff44d26d6da185513096e0aac722994a172f1527788a2c1754419c534ca3cc52a76de5d9fc2d0e172696a4d4a53daeb5cfe0151eda9485078a0006b6357e82d91947e4af79983a6dba508c123c0a51c08319d0444763ecd1a43c79b242fbc82b73c68c11091bc78471828da35fbd79c1a011b0ee96dd9069d16fc63767e6abf74aaae4f92cbeb48b5c54e97dead19220249f0640976c41d69020bc6ea3130305bd943ea3938e9c1682b7a6fe03d7</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">我的Minecraft正版玩家名是？</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">我的Minecraft正版玩家名是？</summary>
    
    
    
    
    <category term="Games" scheme="http://xwxstudio.com/tags/Games/"/>
    
    <category term="Minecraft" scheme="http://xwxstudio.com/tags/Minecraft/"/>
    
  </entry>
  
  <entry>
    <title>记录利用docker开设Hexo框架简单博客</title>
    <link href="http://xwxstudio.com/Hexo/"/>
    <id>http://xwxstudio.com/Hexo/</id>
    <published>2022-02-01T14:00:00.000Z</published>
    <updated>2023-04-01T13:20:00.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h1><h2 id="云服务器"><a href="#云服务器" class="headerlink" title="云服务器"></a>云服务器</h2><ul><li>系统：<strong>Ubuntu</strong></li><li>使用域名：<strong>xwxstudio.com</strong></li></ul><h2 id="Node-js"><a href="#Node-js" class="headerlink" title="Node.js"></a>Node.js</h2><h3 id="从NodeSource安装"><a href="#从NodeSource安装" class="headerlink" title="从NodeSource安装"></a>从<a href="https://github.com/nodesource/distributions#debinstall">NodeSource</a>安装</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -</span><br><span class="line">sudo apt-get install -y nodejs</span><br></pre></td></tr></table></figure><p>或者<code>yay -Sy nodejs</code></p><h2 id="Hexo"><a href="#Hexo" class="headerlink" title="Hexo"></a>Hexo</h2><h3 id="官方文档的npm安装。"><a href="#官方文档的npm安装。" class="headerlink" title="官方文档的npm安装。"></a>官方文档的npm安装。</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash</span><br></pre></td></tr></table></figure><p>或者<code>yay -Sy npm</code></p><h3 id="在Node背景下的Hexo安装。"><a href="#在Node背景下的Hexo安装。" class="headerlink" title="在Node背景下的Hexo安装。"></a>在Node背景下的Hexo安装。</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-cli -g</span><br><span class="line"><span class="comment">#初始化文件夹</span></span><br><span class="line">hexo init .</span><br><span class="line">npm install</span><br><span class="line"><span class="comment">#在4000端口开放服务</span></span><br><span class="line">hexo server</span><br><span class="line"><span class="comment">#指定端口使用参数 -p</span></span><br></pre></td></tr></table></figure><h2 id="docker"><a href="#docker" class="headerlink" title="docker"></a>docker</h2><h3 id="使用官方安装脚本自动安装。"><a href="#使用官方安装脚本自动安装。" class="headerlink" title="使用官方安装脚本自动安装。"></a>使用官方安装脚本自动安装。</h3><p>从阿里云用<strong>cURL</strong>安装：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun</span><br></pre></td></tr></table></figure><p>关于<strong>docker-compose</strong>的安装可以参考<a href="https://www.runoob.com/docker/docker-compose.html">菜鸟教程</a>。</p><p>或者<code>yay -Sy docker docker-compose</code></p><h1 id="Hexo配置"><a href="#Hexo配置" class="headerlink" title="Hexo配置"></a>Hexo配置</h1><h2 id="文件目录"><a href="#文件目录" class="headerlink" title="文件目录"></a>文件目录</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">.</span><br><span class="line">├── _config.yml</span><br><span class="line">├── package.json</span><br><span class="line">├── scaffolds</span><br><span class="line">├── source</span><br><span class="line">|   ├── _drafts</span><br><span class="line">|   └── _posts</span><br><span class="line">└── themes</span><br></pre></td></tr></table></figure><blockquote><p><code>_config.yml</code>：<code>Hexo</code>的配置文件<br><code>themes</code>：放主题文件的文件夹<br><code>source/_drafts</code>：放草稿的文件夹<br><code>source/_posts</code>：放帖子的文件夹</p></blockquote><h2 id="基本信息配置"><a href="#基本信息配置" class="headerlink" title="基本信息配置"></a>基本信息配置</h2><p>详见<a href="https://hexo.io/zh-cn/docs/configuration">Hexo配置</a></p><h1 id="Docker配置"><a href="#Docker配置" class="headerlink" title="Docker配置"></a>Docker配置</h1><h2 id="Dockerfile"><a href="#Dockerfile" class="headerlink" title="Dockerfile"></a>Dockerfile</h2><h3 id="hexo镜像"><a href="#hexo镜像" class="headerlink" title="hexo镜像"></a>hexo镜像</h3><ul><li>仅仅作Hexo模板的初始化</li></ul><figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">FROM</span> node:latest</span><br><span class="line"></span><br><span class="line"><span class="keyword">MAINTAINER</span> XwX</span><br><span class="line"></span><br><span class="line"><span class="keyword">WORKDIR</span><span class="language-bash"> /hexo</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">RUN</span><span class="language-bash"> npm install hexo-cli -g\</span></span><br><span class="line"><span class="language-bash">&amp;&amp; hexo init .\</span></span><br><span class="line"><span class="language-bash">&amp;&amp; npm install</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">EXPOSE</span> <span class="number">4000</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">CMD</span><span class="language-bash"> [<span class="string">&quot;/bin/bash&quot;</span>]</span></span><br></pre></td></tr></table></figure><ul><li>运行<code>docker build -t &#39;hexo&#39; .</code></li></ul><h3 id="blog镜像"><a href="#blog镜像" class="headerlink" title="blog镜像"></a>blog镜像</h3><ul><li>生成具体博客镜像</li></ul><figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">FROM</span> hexo:latest</span><br><span class="line"></span><br><span class="line"><span class="keyword">MAINTAINER</span> name &lt;mail&gt;</span><br><span class="line"></span><br><span class="line"><span class="keyword">WORKDIR</span><span class="language-bash"> /hexo</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">EXPOSE</span> <span class="number">4000</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">CMD</span><span class="language-bash"> [<span class="string">&quot;/usr/bin/env&quot;</span>,<span class="string">&quot;hexo&quot;</span>,<span class="string">&quot;server&quot;</span>]</span></span><br></pre></td></tr></table></figure><ul><li>运行<code>docker build -t  &#39;blog&#39;  . </code></li></ul><h2 id="docker-compose-yml"><a href="#docker-compose-yml" class="headerlink" title="docker-compose.yml"></a>docker-compose.yml</h2><ul><li>在具体文件夹创建容器</li></ul><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">&#x27;3&#x27;</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">blog:</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">build:</span></span><br><span class="line">      <span class="attr">context:</span> <span class="string">.</span></span><br><span class="line">      <span class="attr">dockerfile:</span> <span class="string">Dockerfile</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">&#x27;blog&#x27;</span></span><br><span class="line">    <span class="attr">container_name:</span> <span class="string">hexo-blog</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;80:4000&quot;</span></span><br><span class="line">      <span class="attr">volumes:</span></span><br><span class="line">        <span class="bullet">-</span> <span class="string">$HOME/.ssh:/root/.ssh</span></span><br><span class="line">        <span class="bullet">-</span> <span class="string">.:/hexo</span></span><br></pre></td></tr></table></figure><ul><li><p>开启容器：<code>docker-compose up -d</code></p></li><li><p>关闭容器：<code>docker-compose down</code></p></li></ul><h1 id="写作"><a href="#写作" class="headerlink" title="写作"></a>写作</h1><h2 id="修改"><a href="#修改" class="headerlink" title="修改"></a>修改</h2><ul><li>直接对宿主机文件进行操作即可实现hexo博客的创建，配置与写作。</li></ul><h2 id="文件管理"><a href="#文件管理" class="headerlink" title="文件管理"></a>文件管理</h2><ul><li>直接使用<code>Git</code>对本地和云端的数据进行版本管理。</li><li>可以使用<code>VScode</code>进行<code>Git</code>的pull和push操作。</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="tech" scheme="http://xwxstudio.com/categories/tech/"/>
    
    
    <category term="Hexo" scheme="http://xwxstudio.com/tags/Hexo/"/>
    
    <category term="Docker" scheme="http://xwxstudio.com/tags/Docker/"/>
    
    <category term="Blog" scheme="http://xwxstudio.com/tags/Blog/"/>
    
  </entry>
  
</feed>
