前言

最近《流浪地球》比较火,想找资源下载看看,无奈只找到了网址 http://m.tlyy.tv/ ,但是我的chrome插件也嗅探不到网页上的视频。。于是乎,右击页面,inspect 走起…

步骤

首先发现

m3u8文件映入眼帘 /偷笑,m3u8文件是什么文件呢,copy address and wget 下来看看:
文件 playlist.m3u8 内容如下,可见网页里的视频是根据这个 playlist 组织的 ts 流一段一段组成视频播放的。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:14
#EXTINF:5.966667,
out000.ts
#EXTINF:4.300000,
out001.ts
#EXTINF:5.166667,
out002.ts
#EXTINF:5.700000,
out003.ts
#EXTINF:4.433333,
out004.ts
#EXTINF:5.166667,
out005.ts
#EXTINF:4.833333,
out006.ts
#EXTINF:5.500000,
out007.ts
#EXTINF:4.900000,
out008.ts
.......
#EXTINF:5.733333,
out1444.ts
#EXTINF:0.266667,
out1445.ts
#EXT-X-ENDLIST

而且ts流命名规范有规律,易下载,一开始打算来个shell脚本用 wget 解决

#!/bin/bash
str="out"for i in `seq 0 1000`
doa=$((1000+$i))str1=$str${a:1:3}\.ts # 生成 string "out000.ts"~"out999.ts"echo $str1wget https\:\/\/doubanzyv4\.tyswmp\.com\:888\/2019\/02\/07\/06SfTJsUSa6nKqG9\/$str1 -P ./ts_list/
done

但是下着下着发现老是一直 connecting,就卡住了(可能是网络问题),后来就发现chrome 下载这种文件特别快,但是要注意控制延迟,因为 chrome 下载序列数目有限,超出就会下载错误,shell 脚本如下:

#!/bin/bash
str="out"for i in `seq 0 999`
doa=$((1000+$i))str1=$str${a:1:3}\.ts # 生成 string "out000.ts"~"out999.ts"echo $str1google-chrome https\:\/\/doubanzyv4\.tyswmp\.com\:888\/2019\/02\/07\/hLShLmXEtVqiYix9\/$str1sleep 1s  # 延迟1s,视网速而定
done

下载完所有 ts 流文件之后,开始合成,祭出大杀器:ffmpeg,利用 mpeg concat 分离器,先在 ts 文件目录下创建一个文本文件 filelist.txt,即 ts 流文件的顺序列表:

file ‘out000.ts’
file ‘out001.ts’
file ‘out002.ts’

file ‘out1349.ts’
当然要借助程序( C )实现啦:

#include <stdio.h>int main(void)
{FILE *fp = NULL;fp = fopen("./ts_list/filelist.txt", "w+");for (int i = 0; i < 1350; i++){fprintf(fp, "file \'out");fprintf(fp, "%03d", i);fputs(".ts\'\n", fp);}fclose(fp);
}

然后打开在文件目录打开 terminal ,利用 ffmpeg 合成:

ffmpeg -f concat -i filelist.txt -c copy output.mkv

大概一分钟就好了(如果出错,可尝试其他的输出格式:flv,mp4, wmv,avi),目录下便有了 output.mkv, enjoy it!

附:ffmpeg实用命令

ffmpeg -i input.mp4 output.mp3 # 从视频中抽取音频
ffmpeg -i input.mp4 -ss 00:01:20 -c copy -t 10 output.mp4 #从00:01:20开始截取10s钟视频输出
ffmpeg -i input.mp4 -c:v copy -an input-no-audio.mp4 #去除视频中音频
ffmpeg -i input-no-audio.mp4 -i input.mp3 -c copy output.mp4 #合并音视频

参考资料

  • https://www.jianshu.com/p/a9bccc12229b
  • https://zhidao.baidu.com/question/1888515562979217228.html

网页视频下载(TS流下载合成)相关推荐

  1. 截获视频网站 ts流 视频 网络嗅探 IPTV OTT 数据流 音视频数据 码流 ts 流

    忽然想把最近的技术总结一下.做ts流 IP数据流也有5年之久了.接触了大大小小的项目.例如网络嗅探 通过sniffer 获取IP包.ts 码流分析等.今天把二者结合起来可以应用到手机终端.或者工程仪表 ...

  2. vue3下载文件流 下载excel

    //点击下载按钮qaGetDebitVoucher:async (id:any)=>{let res=await $axios.get($api.qaGetDebitVoucher+id,{ r ...

  3. 20210122 记一次防止m3u8网页视频被破解和下载的思路

    主流解决方案 基础 前端读取 m3u8 文件,获得有哪些 ts 文件,并把 ts 文件组合拼装给 video 标签进行播放. 因此一个 m3u8 文件带有多个 ts 文件的链接. m3u8文件{ts的 ...

  4. html网页视频边缓存边下载的实现方式

    页面使用的标签: <video id="video1" width="900" style="margin-top:15px;" co ...

  5. JavaCV音视频开发宝典:rtp点到点音视频传输TS流(一对一音视频直播)

    <JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 ​ 前言 在开始之前,我们需要了解一点rtp协议相关的知识. 当然了,相信很多小伙伴应 ...

  6. 下载网页视频的软件 下载网页视频的方法

    视频已然成为一种非常有力的展示方式,我们想要下载视频内容,需要用到下载网页视频的软件,如今这类软件有很多.下载网页视频的方法,也因为使用的软件不同,方法各异.下面我们就来看详细介绍吧! 一.下载网页视 ...

  7. Python 爬取ts流视频

    准备工具 1.安装python,本机环境linux+python3.6 2.直接开撸,基本的包需要pip install 3.话不多说直接干 https://www.******.com/video/ ...

  8. IDM无法下载.ts文件解决方案

    IDM无法下载.ts文件解决方案 无法下载TS文件问题实例 解决方案 1.利用IDM获取下载链接 2.利用.ts下载软件下载文件 [N_m3u8DL-CLI_TS]软件下载 软件使用方法 下载.ts文 ...

  9. 关于m3u8格式的视频文件ts转mp4下载和key加密问题

    一,利用网站浏览器F12键,利用谷歌浏览器插件找到视频的.m3u8文件,并打开. 二,打开m3u8文件后,里面有很多.ts的链接,和key的链接. 三,保存为html文件,下载ts文件,代码如下:可加 ...

最新文章

  1. java中调用python
  2. Linux数据库性能优化--文件系统相关优化
  3. 毕设开发总结-3D游戏框架及网络对战游戏的开发(1)
  4. 自己动手写事件总线(EventBus)
  5. Invalid connection string format, a valid format is: host:port:sid
  6. npm run dev/build/serve
  7. Flex学习笔记(2)——使用ActionScript脚本
  8. 信息学奥数一本通(1170:计算2的N次方)
  9. jsp加载常量的探讨
  10. 官宣,Shane Miller 当选 Rust 基金会首任主席
  11. 证件照处理软件(IDPhoto Processor)免费版 v3.2.10
  12. Android解决getExternalStorageDirectory在29后废弃问题,亲测能用
  13. LeetCode1359. 有效的快递序列数目
  14. 中国松针油市场趋势报告、技术动态创新及市场预测
  15. uniapp开发微信小程序生成二维码海报
  16. 销售开发新客户的方法 如何开拓新客户
  17. MFC加载GIF动画
  18. 【C语言】通过C语言实现简单的三子棋
  19. FreeBSD12.1软件包管理工具ports常见用法
  20. wx小程序订阅消息概念和应用场景理解(一次性消息一定要人手动触发)

热门文章

  1. 热敏电阻、RTD和热电偶之间的区别
  2. 2019 最新 JAVA eclipse 中文汉化包 安装教程
  3. android 屏幕取词 像有道,有道词典更新 Android版推出扩充词库 桌面版支持Firefox5取词...
  4. linux 磁盘配额工具,磁盘配额管理 quotatool
  5. 物联网5G工业级无线cpe路由器设备
  6. linux内核编程memcpy,memcpy--内核崩溃后memcpy
  7. [UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一
  8. 保姆级教程--类图怎么画
  9. 高光谱吉林一号硬盘记录
  10. ArcGIS实验操作一:绘制自定义线、垂直、平行线(附实验数据下载)