CentOS 7.6中使用ffmpeg将视频由mp4格式转为m3u8格式

本文档详细介绍了在Linux系统中如何下载和安装nasm、x264以及FFmpeg,并解决了配置过程中可能出现的警告和错误。通过配置环境变量、更新动态链接库配置,确保FFmpeg能正确运行并进行视频切片测试。此外,还提供了FFmpeg的使用示例和视频转码命令。
摘要由CSDN通过智能技术生成

软件准备

以下操作均在/usr/local/src目录进行

下载&安装nasm

编译x264时会用到

操作流程

# 下载
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

下载&安装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

下载&安装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文件,添加:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

保存后使设置生效

source ~/.bashrc

然后重新执行配置命令,就不会出现WARNING的提示了。

测试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

解决方案:

编辑文件:/etc/ld.so.conf,追加内容

#已有
include ld.so.conf.d/*.conf

# 追加内容
/usr/local/ffmpeg/lib
/usr/local/lib

保存后执行:

ldconfig

然后重新执行ffmpeg命令:

./ffmpeg
# 显示信息如下
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-libx264
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

PS: 还可将ffmpeg信息加入到环境变量,以方便使用

export PATH=/usr/local/ffmpeg/bin:$PATH

测试视频切片

  1. 视频文件:test.mp4
  2. 在同目录下新建一个hls文件夹,用于存放切片文件及m3u8文件(在执行切片转换之前必须保证目录存在,不然会转换失败)。

执行命令:

ffmpeg \
-i test.mp4 \
-hls_time 10 \
-hls_list_size 0 \
-hls_segment_filename ./hls/test_%05d.ts \
./hls/test.m3u8

参数说明:

  1. -i test.mp4:指定要处理的视频文件。
  2. -hls_time 10:指定每个切片的时间为10秒。
  3. -hls_list_size 0:切片列表限制,无限制。
  4. -hls_segment_filename ./hls/test_%05d.ts:自定义切片的文件名,这里会生成类似:test_00001.ts的视频文件。
  5. ./hls/test.m3u8:保存切片信息的m3u8文件

其它

ldconfig简述

  1. ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。
  2. 其通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值