Linux使用ffmpeg下载m3u8并切片分割

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必不可少。

注意进行切片分割时,只支持ts文件格式。

参考文件

https://www.johnvansickle.com/ffmpeg/
https://my.oschina.net/ososchina/blog/828100
https://github.com/feixiao/ffmpeg

本文作者:Author:     文章标题:Linux使用ffmpeg下载m3u8并切片分割
本文地址:https://sunsea.im/linux-ffmpeg-m3u8-hls.html     
版权说明:若无注明,本文皆为“Sunsea's Blog”原创,转载请保留文章出处。
Last modification:November 4th, 2019 at 12:53 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment