关闭

菜单

人气:加载中...

探灵档案 (2015)

豆瓣6.1分

主演:吴昕  潘粤明  马浴柯  王景春  莫小棋  朱雨辰  洪天明  陈国坤  莫小奇  刘颖仪  张耀天  

导演:彭发  又名:

豆瓣精彩点评:

快云

无需安装任何插件,即可快速播放

奇艺视频

无需安装任何插件,即可快速播放

腾讯视频

无需安装任何插件,即可快速播放

优酷视频

剧情介绍

前言

本想着这周给大家分享一下,如何制作恐怖片的屏幕跳字(python模拟实现),结果在找原来看过的恐怖片视频素材的时候,发现网站并没有提供直接的下载渠道。

这部悬疑/侦探恐怖片《探灵档案》,是在 2014 年上映的网剧,非常好看,男主是陈冠希哥哥演的。但由于题材问题,许多正规视频平台把它下架了。


"


而如果想找到视频素材,必须从一些小型的盗版视频站,也正是因为小型盗版站没有提供直接的链接,给了这么一次视频爬取的练手机会。

ps:如果对恐怖片感兴趣,可以自行搜索看下~剧情很有意思。

好啦,话不多说,下面进入实战教程。

环境准备

开始之前,先来介绍一下相关环境。

  • python3.7
  • 系统 mac os
  • 开发工具 pycharm

定位网站及分析

关于网站的详情,这里不多做介绍,毕竟是盗版站,相关主站链接就不贴了,感兴趣的同学看图学思路就好。

打开浏览器,在视频播放的网站,开启浏览器开发者工具f12


"


可以看到,默认的视频文件并不是单一提供了 mp4 或者其它的视频格式文件。

而是由许多 ts 文件组成的。

在爬取之前,先要了解几个概念。

  1. 什么是 ts 文件?

ts是日本高清摄像机拍摄下进行的封装格式,全称为mpeg2-ts。ts即"transport stream"的缩写。mpeg2-ts格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。
百度百科

如果看了这段百度官方的解释,还是不懂的话,我用能理解的语言来解释下。

封装格式,在之前的 《用python玩转视频剪辑,秀的飞起!》介绍过,回顾看下,你就会明白,其实 ts 格式文件类似 mp4 的文件。你可以理解为它是一小段的视频文件,也可以用播放器单独打开,就像下图这样:


"


这是我已经爬好的 ts 文件,大家可以看下,每个 ts 片段体积非常小,最大的文件体积不超过 1mb。

而一个网站的在线完整视频,则是由这些小碎片文件组合而成,当视频缓冲时,就会不断向网站服务端发送请求,得到接下来的 ts 小片段。

  1. 如何获取全部的 ts 文件?

伴随着 ts 文件,还存在一个资源集合文件,m3u8文件。

m3u8 是 unicode 版本的 m3u,用 utf-8 编码。"m3u" 和 "m3u8" 文件都是苹果公司使用的 http live streaming(hls) 协议格式的基础,这种协议格式可以在 iphone 和 macbook 等设备播放。
hls 的工作原理是把整个流分成一个个小的基于 http 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。
wiki百科

看完这段 wiki 官方解释,其实说的就是我第一个问题最后标红的部分。所以,用通俗易懂的话再来解释下 m3u8 文件。

hls 是新一代流媒体传输协议,它其实就是将一个大的媒体文件(.mp4等封装格式的文件)进行分片处理,并且同时会将分片文件的资源路径记录在 m3u8 文件里,用于提供给客户端。客户端依据该 m3u8 文件即可获取对应的媒体资源,进行播放。

  1. m3u8文件在哪里?

上面摸清了基础的概念,那 m3u8 文件究竟在哪里?来看下:


"


只需要在开发者工具中,搜索下 m3u8 过滤下,就能看到相关请求地址。接下来,只需要用谷歌浏览器请求下,便可以下载 m3u8 文件了。

里面的内容:


"


有许许多多的 ts 名称,这便是每个切割的小片段。

ps:当然,有的视频可能会遇到加密的情况,一般是有一个单独的 key 文件存在,而在 m3u8 文件中,也会存在一个 key 引用的内容。本次没有遇到,不过多赘述。

爬取实现思路

大体讲下爬取的思路,代码具体实现不放出来了,后面会给出源码地址。

  1. 首先,把 m3u8 文件下载下来。
  2. 读取 m3u8 文件中的内容,正则匹配出含有 .ts 文件的行。
  3. python模拟浏览器发出请求,获取文件流。
  4. 写入到本地文件
  5. 合并 ts 文件,转为 mp4 文件。

合并文件

这步分为两种情况,不同操作系统,合并方式也不同。

  1. windows

windows 的比较方便,cmd 中使用以下命令:

copy /b d:xxxdownload_ts* d:xxxdownload_tsnew.mp4

这个命令我没有使用,windows的同学可以自行试下。

  1. mac os

mac os 的就需要下载 ffmeg 了(之前在python玩转视频剪辑的文章中也提到过),不多赘述。

# cat命令合并文件 cat *.ts > final.ts # 转视频格式 ffmpeg -y -i final.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc 01.mp4

最后合成的成果图:


"


结语

本期内容就到这里啦,关于我自己写的这部分爬虫代码,如果有同学想借鉴的话,后台回复 m3 即可获得源码地址。

当然,这个小爬虫写的并不是很完善,只用了单线程在跑,要知道,如果想要速率,尤其是在 ts 文件居多的情况下,单线程跑是很慢的。

而我还在代码中加了延时函数,所以更慢了。。。

总之呢,因为我这些篇文章的时候是"多线程" 工作,程序下载 ts 跑着,我这边就先写着文章的分析部分,等分析部分写完了,ts文件也下载好了~

这不就是很通俗的一个多线程实例吗!

本篇略长,分析的基础理论很多,感兴趣的小伙伴可以耐心看完,那么下期再见啦!

战争片探灵档案高清在线观看由没事影院整理于网络,并免费提供探灵档案剧照,探灵档案hdbd高清版,探灵档案酷播在线播放等资源,在线播放有酷播,腾讯视频,优酷视频,爱奇艺视频等多种在线播放模式,在播放不流畅的情况下可以尝试切换播放源。观看《探灵档案》切勿长时间用眼过度,避免用眼疲劳,如果你喜欢这部片子,可以分享给你的亲朋好友一起免费观看。没事影院收集各类经典电影,是电影爱好者不二的网站选择!