<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>M3u8 on Jason Swift's blogs</title><link>https://anemele.github.io/blog/tags/m3u8/</link><description>Recent content in M3u8 on Jason Swift's blogs</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 01 Jul 2026 16:26:31 +0800</lastBuildDate><atom:link href="https://anemele.github.io/blog/tags/m3u8/rss.xml" rel="self" type="application/rss+xml"/><item><title>播放本地 m3u8 视频仍然需要网络</title><link>https://anemele.github.io/blog/post/2026/07/playing-local-m3u8-still-requires-network/</link><pubDate>Wed, 01 Jul 2026 16:26:31 +0800</pubDate><guid>https://anemele.github.io/blog/post/2026/07/playing-local-m3u8-still-requires-network/</guid><description>&lt;p&gt;m3u8 格式的视频即使在本地播放也需要经过网络，这是由视频格式本身决定的，与系统无关。&lt;/p&gt;
&lt;p&gt;先前开发一个 m3u8 视频下载程序，视频文件是很多短片段，播放需要合并，因为是 termux 环境，担心算力不足，考虑再开发一个本地服务器，模拟在线方式播放本地 m3u8 视频，运行良好。&lt;/p&gt;
&lt;p&gt;问题暴露于月末流量限速，因为之前流畅的视频出现卡顿现象，似乎被限速了，可是这是本地视频，本地服务器啊！疑问发生，探索开始。&lt;/p&gt;
&lt;p&gt;首先搜索网络，但是没找到本地播放 m3u8 视频的例子，似乎这还是首例？然后询问 AI，给出的答案是 termux 是安卓应用，安卓系统所有 App 通信都是走网络栈，浏览器访问本地服务器，仍然视为外部网络服务，也就受运营商限速影响。&lt;/p&gt;
&lt;p&gt;这个说法看着有理，于是开始钻研绕过安卓网络栈的方法，例如使用本地播放器，尝试了 vlc 和 mpv 播放器，仍然限速。新的疑问产生了，本地播放器播放本地视频，完全不使用网络，为何还会限速？是不是 AI 编造谎言？&lt;/p&gt;
&lt;p&gt;为了检验安卓网络栈通信的说法，开启飞行模式启动本地服务器，发现浏览器正常打开网页，这说明 AI 确实胡说；飞行模式使用本地播放器无法播放本地 m3u8 视频，这说明很可能是 m3u8 视频格式问题。&lt;/p&gt;
&lt;p&gt;虽然没有找到确切文档，但实际情况如此，可以作为结论：即使是本地 m3u8 视频也需要联网播放。&lt;/p&gt;
&lt;p&gt;后续用 ffmpeg 合并成单一 ts 文件，本地播放器播放，解决问题。
另外这个操作并不怎么吃算力，近两千 ts 文件，平均 1~2 MB，只花费两分钟就完成合并。&lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;</description></item></channel></rss>