抓取火神山建造的过程直播录像-制作短视频

当前(2020年春节)正值疫情爆发期间,全国上下万众一心抗击新型冠状病毒。比较引人注目的一件事便是,央视推出了一个火神山和雷神山医院的建造直播,全国上下“云监工”达到近5000万(截止2020-01-30数据)。看到这个视频,我就想能不能将这个直播画面保存下来,最后将画面只间隔选取,做个长镜头的短视频,展现出武汉版的"小汤山”医院从无到的建造过程,想想应该很振奋人心。

思路

首先获取直播流媒体的地址。然后编写一个脚本,自动从地址中下载当前时刻直播视频片段(ts文件格式),并保存到本地目录。再后,在系统中设置该脚本的自动执行的时间间隔,每隔一段时间就去抓一下视频。最后对抓取的视频片段,进行整理为短视频。

实现过程

获取直播流媒体的地址

直播平台网址是https://m.yangshipin.cn/static/2020/c0126.html. 地址获取参考https://stackoverflow.com/questions/22188332/download-ts-files-from-video-stream.

最终我获得的网站是:

https://mobilelive-play.ysp.cctv.cn/ysp/9A7AA421CEB0886A30EC77031C6893C8BA69FD329B704F8485C4498BCB18D0A976A397AC2864A552B10CBB3D7FCB2EB15B28B5C966F9BF8A90A3A0D06F8283A8270DEA3E30AEA861DA7DA5B81DD258CB378E322826849FE5ACF1C50D9DE53424/2001891501_hd.m3u8?svrtime=1580313397&pid=600016618&cdn=5201&revoi=3C838DFA3FCF88B98661EE4397856546DB7D4CF4A3D8479119FCDC6A3B05B95ECF145CD6ED28C36E61E66363C2D64CEBC5740A34F6B3A6445A82247128154B8AD17728BBCA3C3665B6F9B781290428748A01DE8F9AC62E3253E550DCA8420E2CD268CC509C7709766553D9AC4D31C3701DCBAED8ADC3D051D1E989B105CF16AD33E743CDCDB4530FF9A017C2260FED1423FD480A7ADC2651

自动下载的脚本片段

在上述寻找地址的地方其实有提到一个自动下载工具(m3u8x),但这里作为学习,还是采用编写python脚本的方式来实现。脚本如下

 1 import requests
 2
 3 url=‘https://mobilelive-play.ysp.cctv.cn/ysp/9A7AA421CEB0886A30EC77031C6893C8BA69FD329B704F8485C4498BCB18D0A976A397AC2864A552B10CBB3D7FCB2EB15B28B5C966F9BF8A90A3A0D06F8283A8270DEA3E30AEA861DA7DA5B81DD258CB378E322826849FE5ACF1C50D9DE53424/2001891501_hd.m3u8?svrtime=1580313397&pid=600016618&cdn=5201&revoi=3C838DFA3FCF88B98661EE4397856546DB7D4CF4A3D8479119FCDC6A3B05B95ECF145CD6ED28C36E61E66363C2D64CEBC5740A34F6B3A6445A82247128154B8AD17728BBCA3C3665B6F9B781290428748A01DE8F9AC62E3253E550DCA8420E2CD268CC509C7709766553D9AC4D31C3701DCBAED8ADC3D051D1E989B105CF16AD33E743CDCDB4530FF9A017C2260FED1423FD480A7ADC2651‘
 4 headers = {"Connection": "keep-alive",
 5         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",
 6  "Accept":"*/*" ,
 7  "Origin":"https://m.yangshipin.cn" ,
 8  "Sec-Fetch-Site":"cross-site" ,
 9  "Sec-Fetch-Mode":"cors" ,
10  "Referer":"https://m.yangshipin.cn/static/2020/c0126.html?from=groupmessage&isappinstalled=0" ,
11  "Accept-Encoding":"gzip, deflate, br" ,
12  "Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8" ,
13  "If-Modified-Since":"Thu, 30 Jan 2020 00:03:07 GMT" ,
14         }
15
16 r1 = requests.get(url, stream=True,headers= headers)
17
18 fnames= r1.text.split(‘\n‘)[-6::2]
19 print(fnames)
20
21 import time
22
23 def download_file(url):
24     local_filename = url.split(‘/‘)[-1]
25     # NOTE the stream=True parameter below
26     with requests.get(url, stream=True) as r:
27         r.raise_for_status()
28         gt = time.gmtime(time.time())
29         local_filename = ‘{:4d}{:02d}{:02d}-{:02d}{:02d}.ts‘.format(gt.tm_year,gt.tm_mon, gt.tm_mday, gt.tm_hour, gt.tm_min)
30         with open(local_filename, ‘wb‘) as f:
31             for chunk in r.iter_content(chunk_size=8192):
32                 if chunk: # filter out keep-alive new chunks
33                     f.write(chunk)
34                     # f.flush()
35     return local_filename
36
37 download_file(‘https://mobilelive-play.ysp.cctv.cn/ysp/A197B7700944C6A8FE1F3A4384EC3DB3EFB4915F1ABA51A9E765C3E4D5492FB5CCC9754A5383AE916B1234F6AA8B37809E669A611CECF72538ED2981F211834C740EC82B9CCEA4A04F7DE249E9C5BA5DEA370A03B75EB4BD78C9ADBCC3788E16/‘+fnames[-1])
38   
注意这里的头文件requests需要给一定header,否则网站认为你是程序访问的,不给你返回,头文件的信息可通过右击步骤一中的网站,copy as cUrl来得到。

脚本自动执行

本人机器上运行的为linux系统,采用cron来设置定时执行脚本比较方便,参考https://blog.csdn.net/katyusha1/article/details/78619549

cron中的设置为

0-59/5 * * * * python ~/Downloads/a.py.

制作短视频

ffmpeg是个优秀的视频处理命令行工具。处理过程中,视频抓取采用的是每5每种抓一次,只选视频片段的一帧,保存为图片,讲图片合成视频即可。 如下为处理的bash脚本。

1 i=1
2 for avi in `ls -rt 2020*.ts`
3 do
4 ffmpeg -i $avi -vframes 1 pics/$i.jpeg
5 i=$((i+1))
6 done
7 ffmpeg -i pics/%d.jpeg aa.mp4

最终的视频结果如(到目前为止)

Sorry, your browser doesn‘t support embedded videos.

与技术无关

直播造医院,充分表达面对疫情国人的决心,也展示了了不起的中国速度,为中国的土木人点赞。

原文地址:https://www.cnblogs.com/zwlwf/p/12243074.html

时间: 2024-10-31 06:19:59

抓取火神山建造的过程直播录像-制作短视频的相关文章

关于直播系统和短视频系统安卓手机屏幕适配的方向思路

直播与短视频的接踵而至,将互联网推向了网红经济时代,而智能手机的更新迭代为二者的发展提供了"温床".但随着Android机型的增多,设备碎片化的程度也在不断加深,因此为了保证用户在不同Android机型下的体验效果一致,我们需要对各种手机屏幕进行适配.下面我们就来聊下直播系统和短视频系统Android机型的适配问题.1. 布局组件的适配关于组件的适配,这里有几种不同的适配方案.一是使用密度无关像素dp或独立比例像素sp单位指定尺寸:二是多使用相对布局(RelativeLayout)或线

逃离直播困境,短视频源码是蓝海?

作者/布谷惠泽 来源/山东布谷鸟网络  3月7日晚,熊猫直播COO张菊元在工作群发布长消息宣布遣散员工,引发圈内震动.次日,官方微博宣布关闭服务器,下架苹果商店APP,坐实了之前熊猫直播倒闭的传言.前几日,熊猫直播位于北京望京soho的办公区,已经见不到往日摩肩接踵的场面,工作人员大多已经离开,而一些从各地赶来的主播以及工会负责人,则是在现场就平台拖欠的工资,分成欠款,以及拿回合同等事宜进行着交涉.  实际上,熊猫直播上除了曾被各大平台频频挖角的那几位大咖,以及部分吸金能力不俗的实力网红,更多的

视频解析方案:解析各大直播平台、短视频

有时候我们需要解析出短视频的真实地址,引用到我们的网站中. 下面给大家推荐一些解析网站,请大家认真看我的下面: 解析抖音真实地址网站:http://aliqb.cn/ 解析各大平台直播和短视频网站1:http://new.flvurl.cn/ 解析各大平台直播和短视频网站2:https://api.berryapi.net/docs.html 有用就给我点个赞评论下吧,各位弟弟们 原文地址:https://www.cnblogs.com/sixgodbiao/p/11980160.html

OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播

参考博客 http://blog.chinaunix.net/uid-11344913-id-4665455.html 在osx系统下通过ffmpeg查看设备 ffmpeg -f avfoundation -list_devices true -i "" 显示结果如下: SingerdeMacBook-Pro:~ Singer$ ffmpeg -f avfoundation -list_devices true -i "" ffmpeg version 3.0 Co

使用Chrome快速实现数据的抓取(四)——优点

些一个抓取WEB页面的数据程序比较简单,大多数语言都有相应的HTTP库,一个简单的请求响应即可,程序发送Http请求给Web服务器,服务器返回HTML文件.交互方式如下: 在使用DevProtocol驱动Chrome抓取数据时,交互过程则如下图所示: 此时Chrome在中间充当了一个代理的角色,看上去变得更加复杂了,实际上却对于我们的蜘蛛程序大有帮助.本文就简单的总结下这种方式存在如下优点. 获取动态生成的网页内容 现在很多的网页内容的内容并不是一开是就能直接通过最初的Http请求直接获取到的,

使用 Python 抓取欧洲足球联赛数据

Web Scraping 在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤 数据的采集和获取 数据的清洗,抽取,变形和装载 数据的分析,探索和预测 数据的展现 其中首先要做的就是获取数据,并提炼出有效地数据,为下一步的分析做好准备. 数据的来源多种多样,以为我本身是足球爱好者,而世界杯就要来了,所以我就想提取欧洲联赛的数据来做一个分析.许多的网站都提供了详细的足球数据,例如: 网易 http://goal.sports.163.com/ 腾讯体育 http://so

短视频时代火了的那些网红,能在直播领域延续辉煌吗?

端午节在朋友圈火了一下的“通过快手看中国农村现状”的文章,虽然后来被证实数据和结论有部分失实,不过却让我们把注意力重新拉回了短视频领域.在喧喧嚷嚷的直播时代,短视频的存在是否还有其价值?直播和短视频,两者之间又是一种怎么样的关系? Papi酱做直播也能火吗? 严格来说,虽然Papi酱之前在文字和图片平台也做过相应的努力,但直到最近一年找准了核心用户的定位后,才通过短视频这种载体火了起来,一时之间洛阳纸贵,估值1.2亿的Papi第一单广告就卖了2200万元. 不过就在Papi大火的2016上半年,

房东要给我涨800房租,生气的我用Python抓取帝都几万套房源信息,我主动涨了1000。

老猫我在南五环租了一个80平两居室,租房合同马上到期,房东打电话问续租的事,想要加房租:我想现在国家正在也在抑制房价,房子价格没怎么涨,房租应该也不会涨,于是霸气拒绝了,以下是聊天记录:确认不续租之后,两三年没找过房的我上网搜索租房,没想到出来一坨自如,蛋壳,贝壳等中介网站:进去看看,各种房照非常漂亮,但是一看房租,想送给自己一首<凉凉>:附近房租居然比我当前房租高1000多RMB:自我安慰下,这些网站房源价格不是真实的,于是切换到我爱我家,链家等大中介平台,结果发现房租价格都差不多:心想这才

抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程

本文主要介绍如何抓取网页中的内容.如何解决乱码问题.如何解决登录问题以及对所采集的数据进行处理显示的过程.效果如下所示: 1.下载网页并加载至HtmlAgilityPack 这里主要用WebClient类的DownloadString方法和HtmlAgilityPack中HtmlDocument类LoadHtml方法来实现.主要代码如下. var url = page == 1 ? "http://www.cnblogs.com/" : "http://www.cnblogs