如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流
有些网站使用 flash 在线播放视频,不方便进行下载。
可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频流的地址。
取得 h.264 视频流的地址
1. 在页面上打开 Developer Tools (开发者工具),点击坐上的"手机"按钮(如下图)。
2. 在左边 "Device" 选择 "Apple iPhone" 或 "Apple iPad" 等设备,刷新页面。
3. 这时页面应该会提供 html5 的视频播放支持,定位到播放器元素,找到数据源链接(通常是一个 m3u8 文件)。
如何下载分段并加密的 .m3u8 视频流
1. 下载一个编译好的 ffmpeg 可执行文件(http://ffmpeg.org)。
2. 使用命令 ffmpeg -i http://...m3u8 -c copy out.mkv 将视频流下载并合并成 out.mkv。
4. 如果视频流并未加密,或者加密密钥(URI 存在于 m3u8 中)可以直接通过 http 访问到,通常可以正常下载(这种情况一般也可以用各种浏览器视频下载插件下载),但如果 URI 通过 https 协议,或者有 cookies 验证等机制,则需要手动下载密钥。
5. m3u8 中的密钥通常是这样的:#EXT-X-KEY:METHOD=AES-128,URI="https://xxx" 这时需要用能够在线观看到这个视频的浏览器会话去访问这个 URI (通过 cookies 验证),并保存到本地,把 m3u8 也保存到本地,密钥的 URI 改为下载好的本地路径(一个 m3u8 中可能有多个密钥,需要一一处理)。
6. 再次执行 ffmpeg 的命令,即可正常下载。
注:
使用 ffmpeg 无法直接下载 m3u8 内容的情况:
1. m3u8 中的密钥的 URI 是走 https 协议的(这时 ffmpeg 一般会提示不支持 https 协议,但可以通过自己编译一个 ffmpeg 来打开 https 的支持)。
2. URI 有 cookies 认证(这种情况应该只能用浏览器先下载密钥了)。
如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流的更多相关文章
- b站视频_下载_去水印_视频转mp4-批量下载神器
b站下载_视频_去水印_转mp4_批量下载的解决办法 以下问题均可解决 b站下载的视频如何保存到本地 b站下载的视频在那个文件夹里 b站下载视频转mp4 b站下载app b站下载在哪 b站下载视频电脑 ...
- 在线视频转gif动画工具 在线视频转gif动画工具下载
在线视频转gif动画工具 在线视频转gif动画工具下载 http://www.leawo.cn/space-1723875-do-thread-id-60715.html http://www.lea ...
- 在线视频下载利器——youtube-dl
youtube-dl是谷歌出品的在线视频下载利器,可以用来下载youtube视频(前提是你得能上youtube). 使用方法很简单,只需要在cmd下执行youtube-de.exe +视频页面网址,程 ...
- 自己开发的在线视频下载工具,基于Java多线程
比如这个在线视频: 我们可以正常播放,但是找不到下载按钮. 打开Chrome开发者工具,在Network标签页里能看到很多网络传输请求: 随便看一个请求的响应,发现类型为video,大小为500多k. ...
- Flash+fms视频录制在项目中的实际应用
Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...
- 前后端分离djangorestframework—— 在线视频平台接入第三方加密防盗录视频
加密视频 在以后的开发项目中,很可能有做在线视频的,而在线视频就有个问题,因为在线播放,就很有可能视频数据被抓包,如果这个在线视频平台有付费视频的话,这样就会有人做点倒卖视频的生意了,针对这个问题,目 ...
- Fms3和Flex打造在线视频录制和回放
本博推荐文章快速导航: Sql Server2005 Transact-SQL 新兵器学习MCAD学习 代码阅读总结 ASP.NET状态管理 DB(数据库)WAPWinFormFlex,Fms aie ...
- Android 播放在线视频
首先开启电脑上的tomcat,将视频文件放在Tomcat 7.0\webapps\ROOT中 不用修改代码,直接输入地址即可,运行如下: 播放在线视频,必须要求手机支持当前的格式,才可以播放 播放的原 ...
- Cocos2d-x官方在线视频-Cocos2d-x3.2《2048》手游开发揭秘
Cocoachina 官方在线视频 http://cn.cocos2d-x.org/tutorial/lists?id=58 一.游戏介绍 2048游戏是一款风靡全球的休闲类游戏,通过控制4X4范围内 ...
随机推荐
- CSS用类选择器在本页写样式
<title>静夜思</title><style type="text/css">p{color:#ff0000; font-size:24px ...
- process vs thread
process vs thread http://blog.csdn.net/mishifangxiangdefeng/article/details/7588727 6.进程与线程的区别:系统调度是 ...
- Adobe Flash Player 因过期而遭到阻止 更新插件 运行一次 解决方法
老机器运行 10.3.183.90 比较流畅 可是 Chrome 浏览器提示 Adobe Flash Player 因过期而遭到阻止 更新插件 运行一次 每次单击 运行一次 才运行,这样每次提醒很烦人 ...
- ios学习总结(2) -- UIButton的使用
原文地址 UIButton的类是一个UIControl子类,它实现了在触摸屏上的按钮.触摸一个按钮拦截事件和动作消息发送到目标对象时,它的挖掘.设定的目标和行动方法都继承自UIControl.这个类提 ...
- Http协议之Request和Response
GET / HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议 Cache-Control作用: 用来指定Response-Request遵循的缓存机制.各个指令含义如下Cac ...
- struts2 标签问题----escape="false" 这个属性
1.在编程过程中,会遇到这个动西,escape="false" eg: <s:fielderror escape="false"/>-------& ...
- Java vararg(动态参数)的应用
可变参数在JDK 1.5添加,刚才知道的. 以下来自<Java泛型和集合>一书. 将参数打包成一个数组传入方法中是一件让人讨厌的事,在jdk1.5中加入了一个新的功能称为vararg(动态 ...
- Andorid中的HAL
参考文章: http://blog.csdn.net/luoshengyang/article/details/6567257
- 动态调用Webservice 支持Soapheader身份验证(转)
封装的WebserviceHelp类: using System; using System.CodeDom; using System.CodeDom.Compiler; using System. ...
- hdu 1045:Fire Net(DFS经典题)
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...