现在许多视频网站都将视频切片进行实时流传输。我遇到过两种描述文件:m3u8和mpd。下面分别谈谈怎么由m3u8(ts)或mpd(m4s)获取视频。

1.m3u8

方法一:用ffmpeg提取、合并m3u8中的ts视频。这个方法我有的时候成功,有的时候出错,就不介绍了。

方法二:用文本编辑器(比如记事本、notepad++等)打开*.m3u8文件,里边可能记录了不同分辨率的.m3u8地址,也有可能是一连串命名规律的.ts视频地址。如果里边没有.ts的视频地址,则选择我们需要的分辨率的.m3u8下载,直到获取.ts视频地址,用批量下载工具(比如Internet Download Manager、浏览器插件Chrono下载管理器等)下载.ts视频,最后在cmd中把它们合并成一个视频,合并代码是copy /b   文件1+文件2+...+文件名n   输出后的文件名,例如copy /b d:\*.ts combine.ts(*表示批量处理即合并文件夹下所有的ts文件)。这样就大功告成了!

如果我没有m3u8文件,可以打开浏览器,按f12调出开发者工具,选择network,然后打开视频页面,在network下看看有没有加载m3u8。你也有可能看到一堆.ts的链接,那么获取其中一个ts的地址,再把视频进度条拉倒最后,查看最后一次加载的ts地址,通过这两个地址,我们可以得到这一系列ts的命名规律,用批量下载工具下载它们,最后在cmd中用上面的方法合成就可以了!

如果我不想下载完整的视频,而只想截取其中的几分钟,我通常的做法是只下载m3u8文件,用PotPlayer打开,利用PotPlayer的录制视频功能得到需要的片段,这样不需要下载完整的视频浪费等待的时间或流量,也省去了合并ts这一步骤。

利用ffmpeg下载m3u8文件,命令与参数讲解。

  • ffmpeg -i https://host/index.m3u8 -c copy moguo.mp4
  • -i 指定m3u8文件地址,支持http、https路径
  • -c copy 将ts文件合并成指定文件格式,例如mp4

2.mpd

mpd的地位和m3u8一样,只是描述视频的文本而不是视频。所以用文本编辑器阅读mpd。

mpd内描述了两种类型(mimeType)的文件:video和audio,即视频和音频,每种类型又包括了一个*.mp4的视频头和一连串*.m4s视频。操作思路是先分别合并视频和音频的*.mp4+*.m4s,得到video.mp4和audio.mp4,最后再合并音频和视频。下面说说具体的操作步骤。

打开mpd,找到media=”xxxxx$RepresentationID$-$Number$.m4s” initialization=”xxxxx$RepresentationID$.mp4″

上面的m4s和mp4的文件名只是一个例子。我就以这个例子来讲,大家灵活变通。这段代码至少出现两次,一个是音频一个是视频。$RepresentationID$可以在后面的<Representation id=”xxx”…></Representation>里找到,而且这里面还提供了文件类型(video或audio)、分辨率等等信息,我们可以选择我们需要的视频和音频对应的RepresentationID。$Number$通常是从1开始一直增加到某个整数(因为m4s有很多个)这个大家下载的时候可以试探一下,也可以用上面提到的用开发者工具的方法看看最后截止到那个文件名。得到了*.m4s和*.mp4的地址,用批量下载工具(比如Internet Download Manager、浏览器插件Chrono下载管理器等)下载就可以了。建议音频文件下载到一个文件夹,视频文件下载到另一个文件夹,方便之后合并,否则容易搞混。

这样我们就得到了视频和音频的*.mp4+*.m4s。但这时候的*.mp4是看不了的,因为它只是一个视频(音频)头。在cmd中合并它们。合并代码是copy /b   文件1+文件2+...+文件名n   输出后的文件名,例如copy /b d:\video\1.mp4 d:\video\*.m4s video.mp4。这个时候mp4已结可以打开了,一个只有声音,一个只有画面。

最后用ffmpeg合并video.mp4和audio.mp4。大家先网上搜索ffmpeg下载。然后在ffmpeg.exe的文件夹中打开cmd,输入ffmpeg.exe -i "d:\video\video.mp4" -
i "d:\audio\audio.mp4" -c:v copy -c:a copy "D:\final.mp4"
就大功告成了。

如果没有mpd文件,可以打开浏览器,按f12调出开发者工具,选择network,然后打开视频页面,在network下看看有没有加载mpd。你也有可能看到一堆.m4s和几个.mp4的链接,通过这些链接得到命名规律,用批量下载工具下载它们,最后用上面两段的方法合并它们!


这两种方法描述很复杂,其实操作起来很简单。

由M3U8(TS)或MPD(M4S)获取视频相关推荐

  1. 网页视频流m3u8/ts视频下载(之ffmpeg)

    首先,本文不打算对 m3u8/ts.ffmpeg 进行科普,请自行了解. 下面的篇幅送给明白的你 ^_^ 单刀直入步入正题,使用浏览器F12(或其他抓包工具)获取视频页的 m3u8 文件URL地址. ...

  2. m3u8+ts模式的视频采集(看看新闻网)

    文章目录 前言 调研 代码处理 前言 最近有一个采集看看新闻网指定电视栏目的需求,正好是m3u8+ts的模式,就写个文章记录一下 调研 去网页上看了一眼传过来的是一堆ts文件和一个m3u8文件 点开m ...

  3. python多线程爬取ts文件并合成mp4视频

    python多线程爬取ts文件并合成mp4视频 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python多线程爬取ts文件并合成mp4视频 前言 一.分析页面 ...

  4. mpd、hls视频了解

    参考文章: 1.自适应流媒体传输(四)--深入理解MPD - 腾讯云开发者社区-腾讯云 (tencent.com) HLS及M3U8介绍_51CTO博客_m3u8解析 m3u8对应文件在哪儿(详解m3 ...

  5. 解密m3u8/ts视频流

    有些通过浏览器插件捕获的视频流是无法播放的,原因是服务器对其进行了加密,本文用于记录自己第一次m3u8解密的过程 m3u8是一种流媒体格式,以文件列表的形式存在,里面记录了版本号.加密方式.文件列表等 ...

  6. 干货,用UI自动化方式获取视频信息,请勿恶意爬虫

    这一期我们来分享利用UI自动化方式获取视频信息 1.分析请求数据(包括解析文章请求.内容请求.视频请求.token等解析): # -*- coding = utf-8 -*- # ---------- ...

  7. python,ffprobe获取视频信息

    背景 需要获取视频基础信息,如果分辨率.大小.播放时长等,研究发现ffprobe工具已经提供了非常全面的视频信息,用ffprobe分析视频很简单,且看我是怎么在python码中调用ffprobe来提取 ...

  8. ffmpeg获取视频时长和分辨率

    文章目录 ffmpeg获取视频文件时长和分辨率 获取视频时长 获取视频分辨率 ffmpeg获取视频文件时长和分辨率 获取视频时长 import os import subprocess# video_ ...

  9. Facebook Java爬虫获取视频数据

    前言部分 前置说明 ​ 截止到本文发表前,该爬虫方法因为htmlunit的问题,已经无法正常运行,由于本人后续不再维护相关功能,所以不会修复此问题.如果是迫切需要解决方案的读者可以忽略本文,寻求其它解 ...

最新文章

  1. Python 列表生成式的使用
  2. Tomaso A.Poggio教授丨人工智能的下一个突破点在何处?
  3. Eboot.bib中0x30000000到0x300020000内存的作用
  4. 二维动态规划降维误差一般为多少_动态规划 所有题型的总结
  5. boost::histogram::indexed用法的测试程序
  6. views display a summary count number
  7. XCTF-MISC-新手区:pdf
  8. java nio长连接实现_kio: kio是基于jdk 1.6 nio实现的TCP长连接即时通讯框架。
  9. 微信wx.request
  10. 大势要落地!开发者应该关注的 AI 应用落地实践
  11. 第一章 建立数学模型
  12. pythonqq机器人酷q_基于python和酷Q的QQ机器人开发实践(1)
  13. Excel: 批量去除空格的函数——trim函数, substitute函数,clean函数
  14. Codeforces Round #507 B. Shashlik Cooking
  15. kali火狐浏览器设置中文
  16. B站成长期UP主有哪些涨粉机会?
  17. echarts画出特殊形状的柱状图
  18. 织梦如何添html5播放器,织梦ckplayer视频播放器插件安装使用教程
  19. java 解析 manifest_详解Manifest
  20. 外链代发切勿用群发器

热门文章

  1. C# Task 多线程 开始 暂停 停止
  2. 暑假教师计算机培训总结,暑假信息技术培训心得总结
  3. UAV图像拼接软件编译环境配置
  4. 无法加载文件 D:\xxx\xxx\xxx\activate.ps1,因为在此系统上禁止运行脚本
  5. 如何将SSH公钥上载到现有Droplet
  6. springboot 有趣的banner
  7. 独孤思维:两天出5单,净利润300+
  8. java把mysql大数据量表每个文件最多10MB分批次写入到txt文件中
  9. 汉字文章转换拼音的好工具 pinyinConvert.v20120709
  10. 群辉的docker里点点就能用的免费企业ERP应用(odoo13)