利用ffmepg下载在线视频文件

自从知道浏览器的开发者模式以后,看视频的时候就会看看能不能找到视频源文件下载下来,后来发现对于以前的网站,往往是可以找到原视频下载的,但是近些年,采用了流媒体,视频被切分为片段,数量从几百到几千不等,因此通过开发者模式手动下载视频变得不太可能,尤其是对于带有加密的流媒体文件。了解到这些流媒体后,找了一些资料,并参考别人的经验,成功下载并合成了。因此记录一下下载过程,以备不时之需。

以谷歌浏览器为例,打开早些年的网站,并使用F12快捷键进入开发者模式,打开network项,F5刷新界面,获得页面加载资源视图。找到一直在加载的文件,或者使用过滤器寻找mp4文件,可找到如下文件,右键复制地址,通过下载器便可将文件下载至本地。

在此介绍一种更为简便的方法,使用IDM下载器,在浏览器中安装插件后,打开视频便可自动找到视频文件,操作简单。

右上角为IDM图标,已自动寻找到视频文件
右上角即为IDM下载器,已找到视频文件

 点击后即可下载

IDM下载界面

 而近些年的网站,因为流媒体技术的应用,大多数采用切片文件(.TS),为了下载并转码获得原视频,可采用ffmpeg工具,该工具可通过官网免费下载点此跳转。解压后将bin目录添加至环境变量的路径栏,即可通过cmd指令窗口调用。

对于成百上千个TS文件,手动下载是不切实际的,因此我们需要利用流媒体文件的目录.m3u8文件进行下载。按照上面介绍的方法,在过滤器中寻找m3u8文件。

第二个是所需的目录文件

 将目录文件下载至本地,用记事本打开目录文件,可查看流媒体是否加密,以及切片的数量。观察切片文件是否有具体地址!!!若缺少具体地址,则需在过滤器中寻找一个TS文件,获取文件的存储地址。利用记事本的替换功能给每个切片文件添加实际地址。

不含实际地址
添加实际地址后的目录文件

获得能够用于直接下载的目录文件(.m3u8)后,使用CMD窗口条用ffmpeg工具下载转码。在线下载并转码的指令为

ffmpeg -protocol_whitelist "file,https,crypto,tcp,http,tls" -i index.m3u8 -c copy out.mp4

执行效果如下

扫描二维码关注公众号,回复: 11317073 查看本文章
正常执行过程
下载转码后的文件

ffmpeg是强大的流媒体处理软件,同样可以快速转码本地的文件。对于本地文件,只需要将切片文件地址指向本地的切片文件即可,密钥文件.key同样需要修改为本地密钥。执行本地转码时,指令也有所差别。

ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy new.mp4

第一篇博客就到此为止了,写得确实比较简略,因为我对其中很多也不甚了解,本博客只作为个人笔记,大家如有不懂可参考以下几篇博客进行深入学习。

1.m3u8及TS文件下载解密:用FFmpeg解密合并m3u8中ts文件(一)

2.m3u8及TS文件下载解密:用FFmpeg解密合并m3u8中ts文件(二)

https://blog.csdn.net/u014516174/article/details/70338655

猜你喜欢

转载自blog.csdn.net/Brother_PIN/article/details/106824493