05-04
0
ffmpeg安装 实现mp4转m3u8
自行选定 安装目录 我用的是 /data/ 目录
1.下载&安装nasm
# 下载
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz
# 解压
tar xvf nasm-2.14.tar.gz
# 进入目录
cd nasm-2.14
# 配置
./configure
# 编译&&安装
make && make install
2.下载&安装x264
# 下载
git clone https://code.videolan.org/videolan/x264.git
# 进入目录
cd x264
# 配置
./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
# 编译&&安装
make && make install
3.下载&安装 ffmpeg
# 下载
wget http://www.ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz
# 解压
tar xvJf ffmpeg-4.3.1.tar.xz
# 进入目录
cd ffmpeg-4.3.1
#配置
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-libx264
# 编译&&安装(这里耗时较长,20分钟+)
make && make install
配置时遇到的问题
在配置结束时,可能会出现类似提示:WARNING: using libx264 without pkg-config。
解决方案
编辑~/.bashrc文件,添加:
vi /.bashrc
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#保存后使设置生效
source ~/.bashrc
测试ffmpeg
# 进入ffmpeg安装目录,这个目录是与ffmpeg配置时的--prefix参数对应的
cd /usr/local/ffmpeg/bin
# 执行
./ffmpeg
大概率出现以下提示
./ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
解决方案:
vi /etc/ld.so.conf
#已有
include ld.so.conf.d/*.conf
# 追加内容
/usr/local/ffmpeg/lib
/usr/local/lib
# 保存后执行
ldconfig
执行ffmpeg命令
测试视频切片
创建video文件夹 在video中创建hls文件夹 上传一个index.mp4 视频 执行下面命令
ffmpeg -i index.mp4 -hls_time 10 -hls_list_size 0
-hls_segment_filename ./hls/index_%05d.ts ./hls/index.m3u8
参数说明:
-i test.mp4:指定要处理的视频文件。
-hls_time 10:指定每个切片的时间为10秒。
-hls_list_size 0:切片列表限制,无限制。
-hls_segment_filename ./hls/index_%05d.ts:自定义切片的文件名,这里会生成类似:index_00001.ts的视频文件。
./hls/index.m3u8:保存切片信息的m3u8文件
添加环境变量
#编辑
vi .bash_profile
#添加内容并保存
export PATH=/usr/local/ffmpeg/bin:$PATH
#更新配置
source ~/.bash_profile