ffmpeg简介
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
这个项目最早由Fabrice Bellard发起,现在由Michael Niedermayer维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward(快速前进)"。
一、在Linux下安装ffmpeg
1、下载编译好的git最新版
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz.md5
2、校验下载的文件
md5sum -c ffmpeg-git-amd64-static.tar.xz.md5
出现ffmpeg-git-amd64-static.tar.xz: OK
表示校验通过。
3、解压文件包
tar xvf ffmpeg-git-amd64-static.tar.xz
4、安装并使用
解压完成之后就可以直接使用了,相当于绿色软件了,但必须要在当前路径下使用./ffmpeg 参数
的方式或者用绝对路径的方式运行,更建议进行全局安装,将ffmpeg移动到shell的路径中。
首先使用echo $PATH
查看路径。可能会输出下面类似的内容/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
,然后将解压获得的ffmpeg复制到获取的任意一个路径中即可,推荐/usr/bin
路径。
此时即可在任意地方使用ffmpeg
命令了。
二、ffmpeg下载m3u8并切片
1、ffmpeg直接下载m3u8
ffmpeg -threads 2 -i "m3u8地址" -c copy -movflags +faststart 文件名.MP4
-threads 2
表示使用的线程数,这里设置为2线程,可以根据自己服务器的性能进行设定,也可以不设定默认为单线程。-i "m3u8地址"
表示输入地址,其中m3u8既可以是网络地址也可以是本地视频路径。-c copy
表示不进行转码,直接复制m3u8地址中的音视频流。-movflags +faststart
表示将moov box移动到文件的头部,以便于快速播放。文件名.MP4
表示输出的文件格式,其中MP4可以替换成mkv、ts等支持的视频封装格式。
2、ffmpeg边下载m3u8边切片分割
ffmpeg -threads 2 -i "m3u8地址" -c copy -map 0 -f segment -segment_list 生成新m3u8地址索引名.m3u8 -segment_time 900 新文件名%03d.ts
-map 0 -f segment -segment_list 生成新m3u8地址索引名.m3u8 -segment_time 900
表示切片分割参数,缺一不可。-segment_time 900
表示每900秒进行一次分割切片,时间可根据需要自行设置。新文件名%03d.ts
表示生成新的切片文件,其中%03d.ts
必不可少。
参考文件
https://www.johnvansickle.com/ffmpeg/
https://my.oschina.net/ososchina/blog/828100
https://github.com/feixiao/ffmpeg
One comment
[...]https://sunsea.im/linux-ffmpeg-m3u8-hls.html 第三方编译好的,供参考[...]