尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ffmpeg 实战:下载 m3u8 视频并合并为 mp4 的完整方案
适用场景网页视频没有下载按钮用开发者工具抓到 m3u8 播放列表需要下载并合并为完整 mp4。前置工具ffmpeg开源免费下文有安装方法。全文以 Windows 为主macOS/Linux 命令同理。一、先搞清楚 m3u8 是什么m3u8 是 HLSHTTP Live Streaming协议的播放列表文件。网站为了播放流畅把一段视频切成几十上百个几秒钟的.ts小片段m3u8 就是记录这些片段顺序的目录。播放器照着目录逐个播放用户看到的就是完整视频。所以下载 m3u8 视频的本质是按目录把全部 .ts 片段下载下来再顺序拼接。而 ffmpeg 一条命令就能完成这个过程。二、安装 ffmpegWindows任选其一winget install ffmpegWin10/11 自带 winget或去 ffmpeg.org 下载 release 版本解压后把bin目录加入系统 PATHmacOSbrew install ffmpegLinuxsudo apt install ffmpegDebian/Ubuntu或sudo dnf install ffmpegFedora验证安装ffmpeg -version三、获取 m3u8 地址浏览器打开视频页并开始播放按 F12 打开开发者工具 → Network 标签筛选框输入m3u8刷新页面在请求列表中找到.m3u8文件可能有多个选带1080p/720p等清晰度标识的那个右键 → Copy → Copy link address四、下载并合并核心命令ffmpeg-ihttps://example.com/playlist.m3u8-ccopy output.mp4-i输入文件m3u8 地址-c copy直接复制音视频流不重新编码速度极快且无损output.mp4输出文件名跑完当前目录下就会出现完整的 mp4。五、常见问题与解决5.1 报 403 Forbidden防盗链很多网站校验 Referer 和 User-Agentffmpeg 默认不带这些头。手动加上ffmpeg-headersReferer: https://example.com-user_agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36-ihttps://example.com/playlist.m3u8-ccopy output.mp4Referer 填视频所在页面的地址。如果还不行说明需要登录态Cookie见 5.4。5.2 下载到一半中断HLS 下载是顺序进行的中断后重新执行同一条命令即可不会破坏已下载的内容ffmpeg 会从头重新下载所以尽量保证网络稳定。5.3 合并出来没有声音检查你抓的 m3u8 是否只是视频流有些网站音视频分离F12 里可能有两条 m3u8一个 .m3u8 纯视频、一个 .m3u8 纯音频。解决办法抓音视频合流的那条 m3u8通常文件名带av/all/mixed或者用-map 0指定全部流ffmpeg-i...-map0-ccopy output.mp45.4 需要登录的视频仅限自己账号有权访问的内容如果你已登录该网站、且账号本身有权限观看这个视频可以复用浏览器的登录态来下载。ffmpeg 通过-headers手动带上 Cookie先打开 F12 → Network 里复制请求头的 Cookie 值ffmpeg-headersReferer: https://example.com-headersCookie: session_idxxxx; vip1-ihttps://example.com/playlist.m3u8-ccopy output.mp4更省事的方案是用 yt-dlp见本系列另一篇它支持--cookies-from-browser直接读取浏览器登录态。⚠️ 只允许用自己的账号下载自己有权访问的内容不要借用他人登录态更不要用它去拿会员/付费专享内容。5.5 指定清晰度HLS 的清晰度选择有两种情况抓到的是主播放列表里面嵌套多个清晰度子列表把主列表里的某个清晰度子列表地址拿出来作为-i输入或者直接在主列表后面加参数指定需要该站点支持ffmpeg-ihttps://example.com/master.m3u8-ccopy-bsf:aaac_adtstoasc-fmp4 output.mp4六、批量下载一个 for 循环把链接放进urls.txt每行一个whilereadurl;doffmpeg-y-i$url-ccopy$(basename$url .m3u8).mp4doneurls.txt七、写在最后以上方法仅适用于自己有权访问的内容免费公开、已购买、平台允许下载的资源。付费课程、会员专享、受 DRM 保护的视频不要尝试绕过——既违法也违背技术人的底线。ffmpeg 下载合并属于保存已有内容不涉及破解放心用。下一篇讲 yt-dlp一个命令搞定绝大多数视频网站。
RELATED

相关推荐

网易云音乐外链播放器获取与嵌入全攻略:从原理到实战

网易云音乐外链播放器获取与嵌入全攻略:从原理到实战

1. 项目背景与核心价值 最近在折腾个人博客和社交媒体主页,想给访客分享一些我常听的音乐歌单,营造点氛围。直接甩个网易云音乐的歌单ID或者二维码,总觉得不够“原生”,跳转到App的体验有割裂感。于是,我就琢磨着怎么把…

📅 2026/10/15 21:11:18
把碧蓝航线的每日重复劳动交给托管脚本,一个月能省下多少时间

把碧蓝航线的每日重复劳动交给托管脚本,一个月能省下多少时间

把碧蓝航线的每日重复劳动交给托管脚本,一个月能省下多少时间 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 碧…

📅 2026/8/23 16:18:21
猫抓浏览器扩展:网页媒体资源嗅探与M3U8流媒体下载,从此告别找不到源文件

猫抓浏览器扩展:网页媒体资源嗅探与M3U8流媒体下载,从此告别找不到源文件

猫抓浏览器扩展:网页媒体资源嗅探与M3U8流媒体下载,从此告别找不到源文件 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 深…

📅 2026/9/20 22:27:57
MORE NEWS

更多资讯

📰

H5原生调用摄像头全攻略:从getUserMedia到移动端适配

先说一个我自己的真实经历。之前做移动端H5项目,页面需要直接用浏览器能力打开摄像头做人像采集。第一版Demo在电脑Chrome上跑,结果白屏,控制台日志打出一个NotAllowedError。我第一反应是权限被浏览器拦了,排查一圈下来才发现&am…

📰

仓颉编程语言动态特性实战:反射机制与 TypeInfo 类型完全指南

文档编程语言 【免费下载链接】cangjie_docs 仓颉编程语言开发者文档。 项目地址: https://gitcode.com/Cangjie/cangjie_docs 点击查看 免费下载 仓颉(Cangjie)编程语言将反射作为核心动态特性,开发者可通过标准库 std.reflect …

📰

AI速递实战:资讯筛选五层漏斗与20分钟高效清单法

如果你每天醒来第一件事就是刷各种AI消息,你多半会有一种感觉:消息太多,能用的太少。我做《衍辉AI速递》这段时间,最大的体会不是“信息不够”,而是“筛选信息比阅读信息更花精力”。10.8这期一共收录了11条资讯&#…

📰

Android端侧AI实战:Gemini 4 Argon接入、模型量化与性能调优

Gemini 4 Argon 这名字最近在 Android 开发圈里刷屏,但我猜多数人和我一样,第一反应不是去抢体验名额,而是先想清楚一个问题:它到底改变了我们接入 AI 的方式,还是只是又一个“跑分更好看”的模型?我把手上…

📰

C#类型系统深度解析:值类型、引用类型与内存管理

简介:本资源是面向C#初学者的编程基础实验文档,聚焦数据类型与变量的核心概念,帮助学习者系统掌握强类型语言中变量声明、内存占用、取值范围等关键知识点。资源以Windows窗体应用程序为实践载体,通过ComboBox动态切换数据类型&am…

📰

帧、流与协议:音视频传输的三层结构深度解析

1. 这不是“播放卡顿”的问题,而是你根本没看懂视频在你设备里到底经历了什么很多人一听到“帧”“流”“流媒体协议”,第一反应是:“哦,就是视频卡不卡的事吧?”——这就像说“心脏跳动”只是“人有没有晕倒”的问题。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬