前言
最近《流浪地球》比较火,想找资源下载看看,无奈只找到了网址 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`
do
a=$((1000+$i))
str1=$str${a:1:3}\.ts # 生成 string "out000.ts"~"out999.ts"
echo $str1
wget 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`
do
a=$((1000+$i))
str1=$str${a:1:3}\.ts # 生成 string "out000.ts"~"out999.ts"
echo $str1
google-chrome https\:\/\/doubanzyv4\.tyswmp\.com\:888\/2019\/02\/07\/hLShLmXEtVqiYix9\/$str1
sleep 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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37506.html