ffmpeg下载m3u8流媒体
安装
编译好的windows可用版本的下载地址(官网中可以连接到这个网站,和官方网站保持同步): http://ffmpeg.zeranoe.com/builds/
该版本为FFMPEG的Static,Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。
使用
ffmpeg.exe
ffmpeg是用于转码的应用程序
命令行进入bin目录,输入以下命令即可将m3u8下载为指定格式的文件
C:\01-python\59-ffmpeg\ffmpeg\bin\ffmpeg -i http://vodcdn.yst.vodjk.com/201909191433/2afc693f2edda43e677598144b12a31e/company/1/2019/8/1/18852t5bfe/sd/a84ccae0440549398f8080f6d336075b.m3u8 .\video\1416.mp4 # C:\01-python\59-ffmpeg\ffmpeg\bin\ffmpeg ffmpeg.exe路径 # http://vodcdn.yst.vodjk.com/201909191433/2afc693f2edda43e677598144b12a31e/company/1/2019/8/1/18852t5bfe/sd/a84ccae0440549398f8080f6d336075b.m3u8 m3u8视频url # .\video\1416.mp4 存放路径是当前文件夹下的video 名称为1416.mp4
ffplay.exe
ffplay是用于播放的应用程序。
ffplay .\3029.mp4
ffprobe.exe
ffprobe是用于查看文件格式的应用程序。
更多高级用法的文档: http://blog.csdn.net/leixiaohua1020/article/details/12751349
示例
import json, pymysql, requests, os, time, ffmpeg, asyncio, aiohttp, aiomysql, hashlib class yibao(object): def __init__(self): self.db = pymysql.connect(host='localhost', port=3306, database='cfda', user='root', password='root', charset='utf8') self.cursor = self.db.cursor() self.headers = { "user-agent": "com.xinma.yst/YST/5.5.3", "referer": "app.yst.vodjk.com", 'Content-Type': 'application/x-www-form-urlencoded' } self.url = 'https://api.yst.vodjk.com/v1/course?keyid=1004&time=1568774753613&userid=294066&app_version=5.5.3&appid=100004&uutp=android&uuid=ffffffff-dfe4-a66d-24b0-59af559c6620&usertoken=9390faed9a5a0db2818c2233e6c2ffc9&ip=172.17.100.15' self.parse_page() def parse_page(self): self.cursor.execute('SELECT id, parent_id, title, url FROM yaoshitong_class_3 where id > 1386 and id < 1401') for data in self.cursor.fetchall(): data_list = { "keyid": '1004', "time": '1568774753613', "userid": '294066', "app_version": '5.5.3', "appid": '100004', "uutp": 'android', "uuid": 'ffffffff-dfe4-a66d-24b0-59af559c6620', "usertoken": '9390faed9a5a0db2818c2233e6c2ffc9', "ip": '172.17.100.15', # ---------------------- "pagesize": '20', # "modules": 'info:5,comments:1', "modules": 'info%3A5%2Ccomments%3A1', # "courseid": '376', "courseid": str(data[1]), "page": '1', } dict2 = sorted(data_list) a = '' for key in dict2: if key != 'time': a += key + '=' + data_list[key] + '&' m = hashlib.md5() m.update(a[:-1].encode('utf-8')) md1 = m.hexdigest() data2 = md1 + 'e2fae2b4e226e878e7f81e4e7e39c9da' + data_list['time'] m = hashlib.md5() m.update(data2.encode('utf-8')) md2 = m.hexdigest() re_data = { "sign": md2, "pagesize": "20", "courseid": str(data[1]), "modules": "info:5,comments:1", "page": "1", } html = requests.post(url=self.url, headers=self.headers, data=re_data).content.decode('utf-8') print(html) data_json = json.loads(html) u3m8_url = data_json['data']['info']['catalog'][0]['lesson'][0]['video']['url'] try: name = str(data[0]) + '-' + data[1] print("C:\\01-python\\59-ffmpeg\\ffmpeg\\bin\\ffmpeg -i {} .\\video\\{}.mp4".format(u3m8_url, data[0])) os.system("C:\\01-python\\59-ffmpeg\\ffmpeg\\bin\\ffmpeg -i {} .\\video\\{}.mp4".format(u3m8_url, data[0])) print('*' * 100) except: pass time.sleep(1) # self.db.commit() if __name__ == '__main__': yibao()
ffmpeg下载m3u8流媒体的更多相关文章
- 使用ffmpeg下载m3u8流媒体
安装 编译好的windows可用版本的下载地址(官网中可以连接到这个网站,和官方网站保持同步): http://ffmpeg.zeranoe.com/builds/ 或者: 百度网盘https://p ...
- 如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流
有些网站使用 flash 在线播放视频,不方便进行下载. 可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频 ...
- 下载m3u8视频
分两种情况 同时支持m3u8和mp4文件 某些视频同时支持m3u8和mp4视频文件,将m3u8改成mp4后直接: wget -c http://www.xxx.com/xxxx.mp4 只有m3u8视 ...
- ffmpeg 下载安装和简单应用
一.ffmpeg下载 先到http://ffmpeg.org/下载ffmpeg安装文件 二.ffmpeg安装 1.解压下载完的ffmpeg-20190319-f8075b2-win64-shared. ...
- Python 爬虫实例(13) 下载 m3u8 格式视频
Python requests 下载 m3u8 格式 视频 最近爬取一个视频网站,遇到 m3u8 格式的视频需要下载. 抓包分析,视频文件是多个 ts 文件,什么是 ts文件,请去百度 ...
- ffmpeg下载安装和简单应用
先介绍一下ffmpeg:FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec —这是一个用于多个项目中音频和视频的解码器库,以及libavformat ...
- ffmpeg处理RTMP流媒体的命令 发送流媒体的命令(UDP,RTP,RTMP)
将文件当做直播送至live ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName re限制输出速率,按照 ...
- ffmpeg处理RTMP流媒体的命令和发送流媒体的命令(UDP,RTP,RTMP)
将文件当做直播送至live ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName re限制输出速率, ...
- 下载 m3u8 直播流的方法
下载 FFmpeg http://ffmpeg.org/download.html 查找直播流地址 找到目标视频对应的 m3u8 播放列表. 执行脚本 ffmpeg -i https://nhkmov ...
随机推荐
- 趣谈Linux操作系统学习笔记:第二十六讲
一.内核页表 和用户态页表不同,在系统初始化的时候,我们就要创建内核页表了 我们从内核页表的根swapper_pg_dir开始找线索,在linux-5.1.3/arch/x86/include/asm ...
- Tensorflow分布式部署和开发
关于tensorflow的分布式训练和部署, 官方有个英文的文档介绍,但是写的比较简单, 给的例子也比较简单,刚接触分布式深度学习的可能不太容易理解.在网上看到一些资料,总感觉说的不够通俗易懂,不如自 ...
- Tensorflow.nn 核心模块详解
看过前面的例子,会发现实现深度神经网络需要使用 tensorflow.nn 这个核心模块.我们通过源码来一探究竟. # Copyright 2015 Google Inc. All Rights Re ...
- LeetCode | 2 的幂
LeetCode 题库的第 231 题 —— 2 的幂 这题也是比较容易的一题,前提是找到规律即可.如果从 10 进制的角度观察 2 的幂次方,可能并不容易发现规律,那么可以从 2 进制的角度进行观察 ...
- 资源推荐:PPT快闪资源合集附配套字体下载
样例ppt下载 搜索公众号“拒收”或扫码关注公众号 回复关键字“快闪ppt”获取全部福利 本公众号只出精品,拒收劣质 或者点击菜单链接获取获取全部资源
- WPF 使用SetParent嵌套窗口
有点类似与Winform的MDI窗口. 使用函数为SetParent和MoveWindow(经常配合). [DllImport("user32.dll", SetLastError ...
- Web前端——Html常用标签及属性
html 常用的标题等标签就不记录了,只记录一下比较少见的标签以及属性 表格 table td 单元格 tr 表的行 th 表头 td或th可以下面的两个属性达到跨行或跨列 表格跨行 rowspan ...
- python3的reload(sys)
import sys reload(sys) sys.setdefaultencoding(‘utf-8’) 以上是python2的写法,但是在python3中这个需要已经不存在了,这么做也不会什么实 ...
- js获取当前日期一年的第几周
获取当前日期一年中的第几周 function theWeek() { ; now = new Date(); years = now.getYear() ) years += ); days[] = ...
- ping、网络抖动与丢包
基本概念: ping: PING指一个数据包从用户的设备发送到测速点,然后再立即从测速点返回用户设备的来回时间.也就是俗称的“网络延迟” 一般以毫秒(ms)计算 一般PING在0~100ms都 ...