<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>照烧鳗鱼 - 媒体实验</title><link href="https://blog.zhaoshaomanyu.com/" rel="alternate"/><link href="https://blog.zhaoshaomanyu.com/feeds/mei-ti-shi-yan.atom.xml" rel="self"/><id>https://blog.zhaoshaomanyu.com/</id><updated>2026-09-12T08:00:00+08:00</updated><entry><title>原生音频播放与分段加载技术实践</title><link href="https://blog.zhaoshaomanyu.com/2026/09/12/native-audio-playback-in-pelican/" rel="alternate"/><published>2026-09-12T08:00:00+08:00</published><updated>2026-09-12T08:00:00+08:00</updated><author><name>照烧鳗鱼</name></author><id>tag:blog.zhaoshaomanyu.com,2026-09-12:/2026/09/12/native-audio-playback-in-pelican/</id><summary type="html">&lt;p&gt;探讨在静态博客中如何使用浏览器原生 HTML5 Audio 标签播放音频，并配合 Nginx HTTP Range 206 实现秒级拖拽与流畅播放。&lt;/p&gt;</summary><content type="html">&lt;div class="post__content"&gt;
&lt;p&gt;在个人博客中分享播客单集、音乐片段或语音随笔时，许多人习惯直接嵌入第三方商业播放器平台的小挂件。然而，第三方挂件往往包含冗余的脚本、广告、跟踪代码，且加载缓慢。&lt;/p&gt;
&lt;p&gt;其实，现代浏览器的 HTML5 &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; 标签已经非常强大，结合 HTTP Range 206 请求，即可实现体验极佳的原生音频播放。&lt;/p&gt;
&lt;h2 id="_1"&gt;原生音频播放体验&lt;/h2&gt;
&lt;p&gt;下面嵌入了一段通过 FFmpeg 生成的标准 44.1kHz / 320kbps MP3 样例音频：&lt;/p&gt;
&lt;div class="media-container"&gt;
&lt;audio controls="" preload="metadata"&gt;
&lt;source src="/media/sample-audio.mp3" type="audio/mpeg"/&gt;
您的浏览器不支持原生 HTML5 音频播放，请下载后播放。
&lt;/audio&gt;
&lt;div class="media-caption"&gt;
音频来源：&lt;code&gt;/media/sample-audio.mp3&lt;/code&gt; | 支持快进、倒退、拖拽进度条
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="_2"&gt;实现原理与服务器配置要点&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;为什么不需要第三方 JS 库&lt;/strong&gt;：
原生的 &lt;code&gt;&amp;lt;audio controls&amp;gt;&lt;/code&gt; 体积为 0 KB，无需执行任何臃肿的 JS 逻辑，手机与电脑均能调用系统级解码芯片，省电且响应迅速。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP Range 支持 (Status 206 Partial Content)&lt;/strong&gt;：
当你在播放器中拖动进度条时，浏览器会自动发送带 &lt;code&gt;Range: bytes=start-end&lt;/code&gt; 请求头。Nginx 静态文件服务器原生支持 Range 响应，返回 &lt;code&gt;206 Partial Content&lt;/code&gt;，无需下载整首音频即可从任意位置瞬间开始播放。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;独立媒体存储策略&lt;/strong&gt;：
媒体文件存放在独立的 &lt;code&gt;/media/&lt;/code&gt; 目录下，与每次发布网站页面的 &lt;code&gt;releases/&lt;/code&gt; 隔离，避免每次部署博客时重复全量上传大型媒体。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;下载备用链接：&lt;a href="/media/sample-audio.mp3"&gt;点击下载音频文件&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content><category term="媒体实验"/><category term="音频"/><category term="Web技术"/><category term="HTML5"/><category term="媒体"/></entry><entry><title>响应式视频与浏览器原生硬件解码实践</title><link href="https://blog.zhaoshaomanyu.com/2026/09/12/responsive-video-streaming-practice/" rel="alternate"/><published>2026-09-12T08:00:00+08:00</published><updated>2026-09-12T08:00:00+08:00</updated><author><name>照烧鳗鱼</name></author><id>tag:blog.zhaoshaomanyu.com,2026-09-12:/2026/09/12/responsive-video-streaming-practice/</id><summary type="html">&lt;p&gt;演示如何使用符合通用工业标准的 H.264/AAC MP4 视频，借助原生 HTML5 Video 标签实现全平台无缝硬件解码与时间轴任意拖动。&lt;/p&gt;</summary><content type="html">&lt;div class="post__content"&gt;
&lt;p&gt;在移动设备与现代高分辨率屏幕上展示自制视频片段时，选择合适的编码容器与 HTML 标签属性至关重要。&lt;/p&gt;
&lt;h2 id="_1"&gt;原生视频演示&lt;/h2&gt;
&lt;p&gt;下方是一个标准的 H.264（Baseline/High profile）+ AAC 音频流 MP4 视频样本。它在 iOS Safari、Android Chrome、macOS 及 Windows 均能自动激活硬件加速：&lt;/p&gt;
&lt;div class="media-container"&gt;
&lt;video controls="" playsinline="" poster="/images/headshot.jpg" preload="metadata"&gt;
&lt;source src="/media/sample-video.mp4" type="video/mp4"/&gt;
您的浏览器不支持 HTML5 原生视频播放。
&lt;/video&gt;
&lt;div class="media-caption"&gt;
视频格式：MP4 (H.264 / AAC) | 包含 playsinline 属性，防止移动端强制全屏脱焦
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="_2"&gt;移动端与编码关键注意点&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;playsinline&lt;/code&gt; 属性不可忽略&lt;/strong&gt;：
在 iPhone Safari 浏览器中，如果没有这个属性，点击播放往往会被操作系统强行拉起全屏独占播放器，打断页面阅读心流。加上 &lt;code&gt;playsinline&lt;/code&gt; 可以实现内嵌原地流畅播放。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;preload="metadata"&lt;/code&gt; 节约带宽&lt;/strong&gt;：
对于单篇文章包含多个视频的情况，默认设置为 &lt;code&gt;metadata&lt;/code&gt;。浏览器只会提前拉取视频时长、尺寸和首帧关键信息，不会提前把几十兆的视频流全量缓冲进来，极大地节省了访客流量与服务器带宽。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP Range 支持&lt;/strong&gt;：
拖动视频进度条同样依赖 Web 服务器的 Range 206 响应。经测试，无论是在 Chrome 还是 Safari 中拖到任意时间点，均可秒级响应解码。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如遇到网络限制，您亦可直接通过备用链接获取：&lt;a href="/media/sample-video.mp4"&gt;下载原始视频&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</content><category term="媒体实验"/><category term="视频"/><category term="H.264"/><category term="MP4"/><category term="响应式"/></entry></feed>