ffmpeg 下载网上m3u8的视频文件

这篇具有很好参考价值的文章主要介绍了ffmpeg 下载网上m3u8的视频文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、关于 FFmpeg

FFmpeg 是一个音视频领域使用最广泛的跨平台开源库。由C语言编写,但广泛的为 C/C++、C#、Java、Python 等主流编程语言所调用。它集合了几乎所有的编码解码库与流协议,几乎能完美处理音视频开发领域的所有需求。

二、Mac 平台安装 FFmpeg

方式一:源码安装 FFmpeg

通过编译源码安装 FFmpeg 的优点是可以把我们想要的东西都塞到FFmpeg中,不想要的就删掉,也就是根据自己的需要对FFmpeg进行裁剪。首先我们编希望达到的目标:
(1)编译出 ffmpeg、ffplay、ffprobe 三个命令行程序;
(2)只产生动态库,不产生静态库;
(3)将 fdk-aac、x264、x265集成到 FFmpeg 中(fdk-aac 会在后续 AAC 编解码时用到,x264、x265会在视频模块中用到);

1.1、安装依赖项:

a、安装 yasm

#下载 yasm 1.2.0 
$ curl http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz >yasm.tar.gz
# 解压
$ tar xzvf yasm.tar.gz
# 进入目录 yasm-1.2.0
$ cd yasm-1.2.0 
# 执行配置
$ ./configure
# 编译
$ make 
# 安装
$ sudo make install

b、安装 sdl2(如果不需要安装 ffplay 可以忽略这一步):

$ brew install sdl2

c、安装 fdk-aac

brew install fdk-aac

d、安装 x264

brew install x264

e、安装 x265

brew install x265
可通过 brew list命令查看是否安装过 fdk-aac、x264、x265;

1.2、编译 FFmpeg 源码

a、下载 FFmpeg 源码(xz、bzip 和 gzip 三种选项仅仅是压缩格式不同,内容是相同的):

官网下载地址:https://ffmpeg.org/download.html

b、下载完成解压 FFmpeg ,打开终端进入 FFmpeg 源码文件夹:

$ cd /Users/mac/Downloads/ffmpeg-4.3.2

c、执行源码目录下的 configure 脚本:

$ ./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl  --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265
--prefix
指定编译好的 FFmpeg 安装路径

--enable-shared
生成动态库

--disable-static 
不生成静态库

--enable-libfdk-aac
将 fdk-aac 内置到 FFmpeg

--enable-libx264 
将 x264 内置到 FFmpeg 中

--enable-libx265
将 x265 内置到 FFmpeg 中

--enable-gpl
x264、x265要求开启 GPL License

--enable-nonfree
fdk-aac 与 GPL 不兼容,需要通过开启 nonfree 进行配置
参考:https://github.com/FFmpeg/FFmpeg/blob/master/LICENSE.md

./configure —help | grep XXX
通过命令查看每个配置项的作用

d、编译:

$ make -j 8 && sudo make install

e、为了让bin目录中的 ffmpeg、ffprobe、ffplay 在任意位置都能够使用,需要先将 bin 目录配置到环境变量 PATH 中

# 打开环境变量
$ vim ~/.bash_profile
# 输入 i 进入编辑模式,配置 ffmpeg 环境变量,然后按 ESC,输入 :wq 退出编辑模式
export PATH=/usr/local/ffmpeg/bin:$PATH
# 执行 source 命令,是配置的环境变量生效
$ source ~/.bash_profile

如果你用的是zsh,而不是bash,只需要将上面的 .bash_profile 换成 .zprofile 。
f、检查是否安装成功:

$ ffmpeg -version

如果控制台打印以下内容说明安装成功:

ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
built with Apple clang version 11.0.3 (clang-1103.0.32.62)

g、安装成功后目录结构:

$ tree
.
|____bin # 应用程序,可在终端中使用
| |____ffmpeg # 用于转码的应用程序 [文档](http://ffmpeg.org/ffmpeg.html)
| |____ffplay # 用于播放的应用程序 [文档](http://ffmpeg.org/ffplay.html)
| |____ffprobe # 用于查看文件格式的应用程序 [文档](http://ffmpeg.org/ffprobe.html)
|____include # 头文件
| |____libavcodec # 编解码库,用于音频/视频编解码
| |____libavformat # 封装格式处理,包含多媒体容器格式复用器和解复用器的库
| |____libavfilter #  滤镜特效处理
| |____libavdevice # 包含输入输出设备的库
| |____libavutil #  包含简化编程功能的工具库(大部分库都需要这个库的支持)
| |____libswresample # 音频采样数据格式转换,用于高度优化的音频重采样、重新矩阵化和样本格式转换操作
| |____libswscale # 视频像素数据格式转换,用于高度优化的图像缩放和色彩空间/像素格式转换操作
| |____libpostproc
|____lib # 动态库
| |____libpostproc.55.dylib
| |____libswscale.dylib
| |____libavutil.56.51.100.dylib
| |____libavcodec.58.91.100.dylib
| |____libswscale.5.dylib
| |____libswresample.3.dylib
| |____libavfilter.7.dylib
| |____libavformat.58.dylib
| |____libavformat.dylib
| |____libavutil.dylib
| |____libavformat.58.45.100.dylib
| |____libavutil.56.dylib
| |____libswresample.3.7.100.dylib
| |____libavcodec.dylib
| |____libavdevice.58.dylib
| |____libswresample.dylib
| |____libavdevice.dylib
| |____libavfilter.7.85.100.dylib
| |____libpostproc.dylib
| |____libavfilter.dylib
| |____libpostproc.55.7.100.dylib
| |____libswscale.5.7.100.dylib
| |____libavdevice.58.10.100.dylib
| |____libavcodec.58.dylib

h、如果安装的 ffmpeg 有问题,卸载命令:

$ cd /Users/mac/Downloads/ffmpeg-4.3.2
$ sudo make uninstall

方式二:Mac 平台也可以选择使用 Homebrew的方式进行安装(源码安装和Homebrew安装二选一):

$ brew install ffmpeg

查看 FFmpeg 是否安装成功:

$ ffmpeg -version 

如果可以成功查看版本号,说明安装成功!
如果brew install ffmpeg报错,考虑到可能是镜像原因,请更改镜像:

    # 替换brew.git:
    cd "$(brew --repo)"
    git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
    # 替换homebrew-core.git:
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
    # 应用生效
    brew update
    # 替换homebrew-bottles:
    echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
    source ~/.bash_profile

如果误操作也可以恢复默认配置:
首先执行下述命令:

# 重置brew.git:
	$ cd "$(brew --repo)"
	$ git remote set-url origin https://github.com/Homebrew/brew.git
	# 重置homebrew-core.git:
	$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
	$ git remote set-url origin https://github.com/Homebrew/homebrew-core.git

然后删掉 HOMEBREW_BOTTLE_DOMAIN 环境变量,将你终端文件
~/.bash_profile 或者 ~/.zshrcHOMEBREW_BOTTLE_DOMAIN
行删掉, 并执行 source ~/.bash_profile或者source ~/.zshrc

三、使用ffmpeg

下载视频,并将m3u8格式转为mp4格式,指令如下:

ffmpeg -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8 fileName.mp4
或者
ffmpeg -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8 -c copy fileName.mp4

下载中。。。由于视频很大,下载需要很长长长时间(1个G的视频可能需下载几小时…)。
可以通过如下指令进行下载提速(下载速度大约能提升到几到十几分钟,很棒了哦,起码比百度云快):

ffmpeg -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8 -c copy -bsf:a aac_adtstoasc fileName.mp4

如果你想用终端工具拉起视频播放,直接通过如下指令就能 播放某链接的视频

ffplay -i https://xxxx

参考链接1、https://www.jianshu.com/p/06d928f509bd
参考链接2、https://developer.aliyun.com/mirror/homebrew
参考链接3、https://zhuanlan.zhihu.com/p/142349349?app=zhihulite文章来源地址https://www.toymoban.com/news/detail-408756.html

到了这里,关于ffmpeg 下载网上m3u8的视频文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DPlayer m3u8 视频禁止下载

    正常的 m3u8 格式视频通过控制台是无法下载的,但是可以通过插件下载,下面介绍如何规避这个问题。 思路: 后端生成一个一次性的密钥,前端放在请求头中 ,可以防止大部分插件下载。这里只说前端。 集成 DPlayer 播放器这里就不说了,网上一大推。

    2024年01月24日
    浏览(40)
  • python 批量下载m3u8的视频

     前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:点击跳转 目录 一,猫抓获取视频地址 二,安装配置ffmpeg 1,windows使用 2,python使用 三,碧站视频 四,合并ts文件 1,背景 2,实现 4,缺点 五,下载m3u8视频 1,背景 2,实现V1 3,实

    2024年02月13日
    浏览(44)
  • Python 实现 m3u8 视频下载

    m3u8 是一种 基于文本的媒体播放列表文件格式 ,通常用于指定流媒体播放器播放在线媒体流。它是一个简单的文本文件,其中包含多个由 URI 引用的媒体资源文件的 URL。m3u8 文件通常包含多个 ts 文件的链接,这些 ts 文件是实际的视频和音频数据文件,通常是通过 HTTP 协议传

    2024年02月07日
    浏览(53)
  • 【python】多线程下载m3u8分段视频

    1.说明 m3u8是一种传输数据的方式,比如说一集20分钟的完整视频被分割成一千多段一两秒的小视频,客户端播放的时候是感觉是连续,但如果你要下载这集视频,那就要把一千多个小视频全都下载然后自己拼接成一个完整视频。拼接的话很简单,像格式工厂等很多软件都可以

    2024年02月12日
    浏览(43)
  • 在AWS Lambda中使用FFmpeg处理m3u8视频流

    在直播里领域,我们经常需要对视频流进行处理。FFmpeg则是该领域中处理的利器。这篇文章,我们将以视频流截图为例,讲解如何在AWS Lambda中对m3u8视频流进行截图。因为Lambda是无服务架构,其本地存储是不可靠的,于是最后我们需要将截图文件上传S3桶。 这块的方案可以见

    2024年02月03日
    浏览(59)
  • 关于FFmpeg将m3u8合并成mp4之后时长不对的解决方法

    导致时长不对的合并方法 concat方法会导致合并的视频时长有问题 时长正确的合并方法 使用读取m3u8文件的方式合并,合并出的视频时长是正确的。(注意:生成本地m3u8文件的时候要注意ts文件是否在下载时已经解密。如果已经解密,则生成的m3u8文件中不需要#EXT-X-KEY。) 参考

    2024年02月11日
    浏览(57)
  • ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)

    FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率

    2024年02月09日
    浏览(69)
  • 关于vue播放flv,m3u8视频流(监控)的方法

    前文: 随着前端大屏页面的逐渐壮大,客户的需求也越来越多,大屏上面展示的事物也越来越丰     富。其中实时播放监控的需求逐步增加,视频流格式也是有很多种,用到最多的.flv、.m3u8。 一、 JessibucaPlayer插件用来播放flv流 1.首先是先把文件放在vue项目的public下面 2.在

    2023年04月15日
    浏览(89)
  • 安卓实现M3U8文件的下载和播放

    现如今网络上的视频大多数都是m3u8格式的,使用m3u8格式有以下好处 1. 方便切换码率,例如从高清转到蓝光 2. 节约流量,m3u8实际切割成一段段的TS后缀视频,传统请求是把整个文件流返回去,网络不好或者文件过大时,都会造成响应缓慢,m3u8则是返回一个个的ts文件,当前

    2023年04月20日
    浏览(55)
  • 如何将页面m3u8、blob类型的视频链接下载下来?

    有时候访问页面遇到喜欢的视频,会直接使用代码检查,找到视频链接直接拷贝下载,但是遇到video标签中的链接带有blob(如图),直接拷贝访问是无法下载的。我们需要按以下步骤来实现目的: 1.F12开启代码检查,点击代码区,CTR+F调出搜索框,输入video,找到video标

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包