ffmpeg网页视频流m3u8 ts实现视频下载
引言
现在很多视频网站播放流视频,都不是采用mp4/flv文件直接播放,而是采用m3u8/ts这种方式播放。
简单说就是,网站后台把视频切片成成百上千个xx.ts文件,一般10秒一个,每个都几百kb很小。然后通过xx.m3u8播放列表把这些文件连接起来。
通过Chrome DevTool的Network栏,我们可以清楚的看到加载过程:

我们直接点击这个playlist.m3u8播放列表文件,在旁边的preview栏中查看内容,可以看到:
#EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-ALLOW-CACHE:YES #EXT-X-TARGETDURATION:11 #EXTINF:5.250000, out000.ts #EXTINF:9.500000, out001.ts #EXTINF:8.375000, out002.ts #EXTINF:5.375000, out003.ts #EXTINF:9.000000, out004.ts ...........
那我们怎么下载呢?
下载视频所有的ts切片文件
一般的思路是,想办法把所有的ts切片文件下载下来,然后合成一个完整的视频。
然而,配合xx.m3u8播放列表文件,我们可以直接用ffmpeg在线下载播放列表中所有的视频,然后直接用ffmpeg合并为一个视频。
我们就直接执行这一句命令即可:
$ ffmpeg -i <m3u8-path> -c copy OUTPUT.mp4 $ ffmpeg -i <m3u8-path> -vcodec copy -acodec copy OUTPUT.mp4 # 例如: ffmpeg -i https://v6.438vip.com/2018/10/17/3JAHPTdvPhQb9LrE/playlist.m3u8 -c copy OUTPUT.mp4
然后就会看到这样的下载过程:

为什么下载播放列表就能下载所有的切片文件?
因为播放列表里的都是相对路径,既然我们有了播放列表的绝对路径,那么其它所有文件的绝对路径也就不难获取了。
好在ffmpeg直接实现了这种播放列表一键下载的方式。
以上就是ffmpeg网页视频流m3u8 ts实现视频下载的详细内容,更多关于ffmpeg网页视频流m3u8 ts下载的资料请关注脚本之家其它相关文章!
相关文章
将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程
这篇文章主要介绍了将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10
VSCode 安装 Copilot 详细过程和实例代码(最新推荐)
Copilot 作为一款 AI 辅助编程工具,可以极大地提高开发效率,让编程变得更加轻松愉快,在实际开发过程中,我们要注意审查和测试生成的代码,确保其符合项目需求和标准,这篇文章主要介绍了VSCode 安装 Copilot 详细过程和实例,需要的朋友可以参考下2024-05-05
VSCODE内使用Jupyter模式运行backtrader不展示图片、图片尺寸无法自定义的解决方案
VSCODE中使用Jupyter模式运行backtrader时,图片无法展示或调整尺寸,通过修改matplotlib的全局设置,并将配置文件传递给cerebro.plot,可以解决图片展示和尺寸调整的问题,感兴趣的朋友一起看看吧2025-02-02
使用git config --global设置用户名和邮件问题
这篇文章主要介绍了使用git config --global设置用户名和邮件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05
301重定向代码合集(iis,asp,php,asp.net,apache)
脚本之家将SEO工作中所需要的301转向代码进行了整理,收藏并分享,以备查阅。2011-02-02


最新评论