一、关于 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_profilesource ~/.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

ffmpeg 下载网上m3u8的视频文件相关推荐

  1. m3u8解析_浅谈m3u8格式视频文件采集

    在对某在线视频网站抓包分析时,发现该站点采用m3u8格式进行视频文件传输. 通过m3u8的response可以看到,m3u8格式文件由很多段ts文件组成.那么什么是m3u8,什么是ts呢? M3U8是 ...

  2. Nginx增加m3u8流视频文件功能模块 推流和拉流

    Nginx增加m3u8流视频文件功能模块 推流和拉流 FastDFS分布式文件系统安装和配置_亲测成功 ./configure --prefix=/u06/data/apps/nginx-rtmp \ ...

  3. 使用FFmpeg将字幕文件集成到视频文件

    本文最后更新于:2015-05-25 13:12:00 原文:http://www.yaosansi.com/post/ffmpeg-burn-subtitles-into-video 向视频文件里添 ...

  4. python 实现多线程下载加密m3u8格式视频,使用FFmpeg合并

    如果你要下载的m3u8文件未加密: 请移步:https://blog.csdn.net/s_kangkang_A/article/details/103071822 上次做完了没加密的,再次记一下加密 ...

  5. m3u8及TS文件下载解密:用FFmpeg解密合并m3u8中ts文件(二)

    关于本地文件的m3u8格式 从网站上下载的m3u8文件格式是这样的 如果想用ffmpeg文件在线处理,直接把其中的XXXXXX.ts和key.key文件替换成全路径的就可以,比如这样: 然后直接用ff ...

  6. 将.m3u8转换为视频文件保存到本地

    实现将一直的视频流文件保存到本地,需要 安装ffmpeg 视频流文件地址 使用ffmpeg安装包中的ffplay.exe实现视频的播放: ffplay http://edge.linknetott.s ...

  7. 使用ffmpeg指令转换出yuv视频文件

    播放器播放的都是经过解码后的视频,也就是yuv格式的视频文件,因此在学习的过程中需要准备一下yuv格式的视频做实验素材,这里演示如何在电脑中使用ffmpeg指令将一个视频文件转换为.yuv格式. 1. ...

  8. 记录利用ffmpeg对录制好的视频文件音量调整

    如何对MP4文件的音量进行放大 经常遇到比较苦恼的事情就是拿到一个视频文件,播放的时候即使把音量条设置到最大,音量还是小,这个时候,可以用ffmpeg对文件进行修改,重新生成一个播放音量用软件进行放大 ...

  9. FFmpeg进阶: 转码输出视频文件中的音频

    很多时候为了方便收听视频文件中的音频信息,我们会将视频文件中的音频流转码输出成音频文件,方便在对应的平台上进行播放.这里就介绍一下如何通过FFmpeg将视频文件中的音频流转码成特定编码格式的音频文件. ...

  10. ffmpeg 下载后缀为.m3u8的视频文件

    首先去官网下载FFmpeghttp://ffmpeg.org/ 第一步:进入官网点击图中download 按钮 进入如下页面 第二步点击图中按钮 点击跳转到如下页面,选择图中按钮 下载解压,然后复制b ...

最新文章

  1. 2021.09 电子学会 - 软件编程(图形化)试题讲解
  2. 一张“黑洞”需要拍两年?有了它或许就不会让大家等那么久了
  3. 认真了解一下javascript
  4. PHP大文件分片上传
  5. oracle 数据库 触发器 trigger 语法
  6. 监听网络流量命令——tcpdump
  7. JS面向对象(二)——构造函数的继承
  8. 一个关于WCF调用远程链接返回405错误不允许使用此方法的问题
  9. 消息(6)——WCF,构建简单的WCF服务,MTOM编码
  10. 品尝Android(二)jQuery Mobile初探
  11. Maven SCM Release版本控制与发布
  12. STM32驱动WS2811
  13. 如何清空c盘只剩系统_c盘怎么清理到最干净只保留系统,教你如何给C盘减肥
  14. 录制Gif动画的软件-ScreenToGif
  15. Docker微服务-Mysql主从配置
  16. 【疑难杂症】Oculus Quest2 手机配对时找不到5-digit-code
  17. VMware ESXi 6.7 配置iSCSI存储(分流)
  18. 台湾繁体字和大陆汉语转换
  19. Docker(一):什么是Docker?
  20. 二叉排序树的查找、插入、创建和删除

热门文章

  1. 基于STM32的DMX512开发
  2. VPP TCP定时器
  3. 惠普z800工作站bios设置_HP工作站BIOS说明书适用Z228Z440Z230Z640Z840Z800Z620Z420Z820主板设置.doc...
  4. 安卓模拟器按键_51模拟器app下载|51模拟器 3.2.1.2 最新版
  5. HiC软件安装篇之Lachesis
  6. linux 网卡驱动编译安装包,Dell R720 安装debian系统编译网卡驱动
  7. unity3d烘焙教程 持续更新中【2020】
  8. Echarts图表没数据的时候,用图片代替暂无数据(图片自适应)
  9. 网络工程师考试-计算机网络笔记
  10. 使用Ventoy制作启动盘