ffmpeg网页视频流m3u8 ts实现视频下载

目录
  • 引言
  • 下载视频所有的ts切片文件

引言

现在很多视频网站播放流视频,都不是采用mp4/flv文件直接播放,而是采用m3u8/ts这种方式播放。

简单说就是,网站后台把视频切片成成百上千个xx.ts文件,一般10秒一个,每个都几百kb很小。然后通过xx.m3u8播放列表把这些文件连接起来。

通过Chrome DevTool的Network栏,我们可以清楚的看到加载过程:

我们直接点击这个playlist.m3u8播放列表文件,在旁边的preview栏中查看内容,可以看到:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:5.250000,
out000.ts
#EXTINF:9.500000,
out001.ts
#EXTINF:8.375000,
out002.ts
#EXTINF:5.375000,
out003.ts
#EXTINF:9.000000,
out004.ts
...........

那我们怎么下载呢?

下载视频所有的ts切片文件

一般的思路是,想办法把所有的ts切片文件下载下来,然后合成一个完整的视频。
然而,配合xx.m3u8播放列表文件,我们可以直接用ffmpeg在线下载播放列表中所有的视频,然后直接用ffmpeg合并为一个视频。

我们就直接执行这一句命令即可:

$ ffmpeg -i <m3u8-path> -c copy OUTPUT.mp4
$ ffmpeg -i <m3u8-path> -vcodec copy -acodec copy OUTPUT.mp4

# 例如:
ffmpeg -i https://v6.438vip.com/2018/10/17/3JAHPTdvPhQb9LrE/playlist.m3u8 -c copy  OUTPUT.mp4

然后就会看到这样的下载过程:

为什么下载播放列表就能下载所有的切片文件?

因为播放列表里的都是相对路径,既然我们有了播放列表的绝对路径,那么其它所有文件的绝对路径也就不难获取了。

好在ffmpeg直接实现了这种播放列表一键下载的方式。

以上就是ffmpeg网页视频流m3u8 ts实现视频下载的详细内容,更多关于ffmpeg网页视频流m3u8 ts下载的资料请关注我们其它相关文章!

(0)

相关推荐

  • ffmpeg播放器实现详解之视频显示(推荐)

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它包括了目前领先的音/视频编码库libavcodec. FFmpeg是在 Linux 下开发出来的,但它可以在包括 Windows 在内的大多数操作系统中编译.这个项目是由 Fabrice Bellard 发起的,现在由 Michael Niedermayer 主持.可以轻易地实现多种视频格式之间的相互转换,例如可以将摄录下的视频avi等转成现在视频网站所采用的flv格式. ffplay是ffmpeg源码中一个

  • FFmpeg视频处理入门教程(新手必看)

    目录 一.概念 1.1 容器 1.2 编码格式 1.3 编码器 二.FFmpeg 的使用格式 三.常用命令行参数 四.常见用法 4.1 查看文件信息 4.2 转换编码格式 4.3 转换容器格式 4.4 调整码率 4.5 改变分辨率(transsizing) 4.6 提取音频 4.7 添加音轨 4.8 截图 4.9 裁剪 4.10 为音频添加封面 五.参考链接 FFmpeg是视频处理最常用的开源软件. 它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是

  • Python 如何利用ffmpeg 处理视频素材

    目录 前言 一.安装 二.subprocess调用 三.ffmpy3 转码 解复用 复用 拆分成图片 四.最后 前言 第一次处理视频素材可以手动用剪映来处理,然后再用代码进行自动化处理,不然连朝哪个方向自动化处理可能都不知道 那清楚处理流程之后,怎么用Python来处理视频素材呢? ffmpeg! ffmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序 使用这个神器,便可以处理各种视频素材内容,极度舒适 下面一行来分享一下如何使用这个神器 一.安装 首先需要在ffm

  • 音视频基本概念和FFmpeg的简单入门教程详解

    目录 写在前面 基本概念 容器/文件(Conainer/File): 媒体流(Stream): 数据帧/数据包(Frame/Packet): 编解码器(Codec): 复用(mux): 解复用(mux): 帧率(Frame rate): 码率(Bit Rate): FFmpeg 第一条FFmpeg命令 FFmpeg命令处理流程 FFmpeg常用命令 总结 [参考] 写在前面 最近正好有音视频编辑的需求,虽然之前粗略的了解过FFmpeg不过肯定是不够用的,借此重新学习下: 基本概念 ffmpeg概

  • ffmpeg播放器实现详解之框架搭建过程

    ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a testbed for the various FFmpeg APIs. ffplay中的代码充分调用了ffmpeg中的函

  • ffmpeg网页视频流m3u8 ts实现视频下载

    目录 引言 下载视频所有的ts切片文件 引言 现在很多视频网站播放流视频,都不是采用mp4/flv文件直接播放,而是采用m3u8/ts这种方式播放. 简单说就是,网站后台把视频切片成成百上千个xx.ts文件,一般10秒一个,每个都几百kb很小.然后通过xx.m3u8播放列表把这些文件连接起来. 通过Chrome DevTool的Network栏,我们可以清楚的看到加载过程: 我们直接点击这个playlist.m3u8播放列表文件,在旁边的preview栏中查看内容,可以看到: #EXTM3U #

  • Python爬虫爬取ts碎片视频+验证码登录功能

    目标:爬取自己账号中购买的课程视频. 一.实现登录账号 这里采用的是手动输入验证码的方式,有能力的盆友也可以通过图像识别的方式自动填写验证码.登录后,采用session保持登录. 1.获取验证码地址 第一步:首先查看验证码对应的代码,可以从图中看到验证码图片的地址是:https://per.enetedu.com/Common/CreateImage?tmep_seq=1613623257608 颜色标红的部分tmep_seq=1613623257608,是为了解决浏览器缓存问题加的时间戳,因此

  • Python下载ts文件视频且合并的操作方法

    目录 一.ts文件的由来 二.下载ts文件 1.下载index.m3u8,并做相应处理 2.下载ts文件 三.合并ts文件 参考文章: 一.ts文件的由来 ts文件,ts即"Transport Stream"的缩写,特点就是要求从视频流的任一片段开始都是可以独立解码的,非常适合网络视频播放. 打开网址:https://www.kan35.com/play/210314-3-1.html,要怎么才能把这个视频下载到电脑上呢? 按F12发现,这些视频被切割成无数个细小的片断,如图: 上图中

  • python基于tkinter制作m3u8视频下载工具

    这是我为了学习tkinter用python 写的一个下载m3u8视频的小程序,程序使用了多线程下载,下载后自动合并成一个视频文件,方便播放. 目前的众多视频都是m3u8的播放类型,只要知道视频的m3u8地址,就可以完美下载整个视频. m3u8地址获取 打开浏览器,点开你要获取地址的视频 重要的来了,右键>>审查元素或者按F12也可以 根据开发或测试的实际环境选择相应的设备,选择iphone6 plus 选择好了以后,刷新页面,点击漏斗,选择media,一定刷新之后再点击,没出来的话切换几下选项

  • js blob类型url的视频下载问题的解决

    blob下载问题的详细描述 我想用src url blob:https://www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386下载视频,但是不知道应该怎么做. 有没有下载这类视频的通用方法? 推荐的解决方法 我在Vimeo中找到了一个使用blob url下载视频的方法(读了这篇文章,我才知道做法).我正在使用Google Chrome,具体步骤如下: 1.打开More Tools(更多工具)→Developer Tools(开发工具) 2.检

  • Python实现视频下载与合成的示例代码

    目录 模块使用 开发环境 案例实现 1.明确需求 2.代码实现步骤 实现代码 模块使用 requests >>> pip install requests (数据请求 第三方模块) re # 正则表达式 去匹配提取数据 json 开发环境 Python 3.8 解释器 Pycharm 2021.2 版本 建议 win + R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内镜像源 案例实现 1.明确需求 采集内容, 先分析一个视频

  • Golang调用FFmpeg转换视频流的实现

    目录 问题背景 方法实现 1. 使用FFmpeg-go封装好的方法 2. 直接调用FFmpeg 总结 问题背景 问题背景是在,由于视频采集端使用的是H264编码采集的裸流,而网络流媒体大多是以FLV为主的直播方式进行的,为了实现实时直播,当前是打算直接使用FFmpeg将H264裸流实时转成FLV视频流. 为什么是使用FLV视频流呢,因为相对简单,加上FLV Header后将每个NALU打包成Tag并进去大致就行了.但是这块怕有疏忽,最终还是想使用成熟的工具FFmpeg. 方法实现 1. 使用FF

  • python爬取m3u8连接的视频

    本文为大家分享了python爬取m3u8连接的视频方法,供大家参考,具体内容如下 要求:输入m3u8所在url,且ts视频与其在同一路径下 #!/usr/bin/env/python #_*_coding:utf-8_*_ #Data:17-10-08 #Auther:苏莫 #Link:http://blog.csdn.net/lingluofengzang #PythonVersion:python2.7 #filename:download_movie.py import os import

  • python 视频下载神器(you-get)的具体使用

    you-get是github上python的一个开源库(https://github.com/soimort/you-get),使用you-get你只需要取得视频所在网页链接地址就可以很轻松的下载下来,目前you-get所支持的网站包含国内外几十个网站(youtube.twitter.腾讯.爱奇艺.优酷.bilibili等),基本上可以满足你的需求. 1.you-get可以直接通过命令行使用 前提是你要先安装you-get:pip install you-get 下载命令:you-get  yo

  • python b站视频下载的五种版本

    项目地址: https://github.com/Henryhaohao/Bilibili_video_download 介绍 对于单P视频:直接传入B站av号或者视频链接地址(eg: 49842011或者https://www.bilibili.com/video/av49842011) 对于多P视频: 1.下载全集:直接传入B站av号或者视频链接地址(eg: 49842011或者https://www.bilibili.com/video/av49842011) 2.下载其中一集:传入那一集

随机推荐