软件安装包版本
一 在centos7.2 上安装ffmpeg(待查证)
1. 安装依赖
sudo yum install -y yum-utils epel-release
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y nasm yasm libass-devel libvpx-devel libvpx-tools libwebp-devel libx264-devel libx265-devel libtheora-devel x264-devel x265-devel ffmpeg-devel
2. 下载ffmpeg源码
cd /usr/local/src
sudo wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
sudo tar -xvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
3. 配置ffmpeg
sudo ./configure --prefix="/usr/local" --enable-gpl --enable-libass --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libtheora --enable-nonfree --enable-openssl --enable-shared --enable-version3
4. 编译安装
sudo make
sudo make install
5. 验证安装
ffmpeg -version
6.创建软连接(附加)
sudo ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/bin/ffprobe /usr/bin/ffprobe
方式二:下载源码包
压缩包地址 https://www.ffmpeg.org/releases/
wget https://www.ffmpeg.org/releases/ffmpeg-3.4.13.tar.gz
tar -zxvf ffmpeg-3.4.13.tar.gz
-
指定安装目录
安装路径 "/usr/local/ffmpeg"
cd ffmpeg-5.1
./configure --prefix=/usr/local/ffmpeg
./configure --prefix=/usr/local/ffmpeg --enable-openssl --disable-x86asm
make && make install
-
配置变量
vi /etc/profile 在最后PATH添加环境变量: export PATH=$PATH:/usr/local/ffmpeg/bin
4.使配置变量生效
source
source /etc/profile
5.测试ffmpeg是否成功
ffmpeg
ffmpeg -version
二 ffmpeg 的使用教程
1. FFmpeg 学习资料
中文官网: https://ffmpeg.p2hp.com/download.html
博客学习网址:
https://blog.csdn.net/qq_56591814/article/details/144864353
https://blog.csdn.net/Dontla/article/details/135371373
1. Linux上查看ffmpeg安装位置
- which ffmpeg
- type -a ffmpeg
- whereis ffmpeg
- find / -name ffmpeg 2>/dev/null
- dpkg -l ffmpeg
rmp -ql ffmpeg - ls /usr/bin/ffmpeg
2. 测试 ffmpeg 的使用
- 使用ffmpeg将 MP4 转换为 MU38
sh
ffmpeg -i /data4t/wwwroot/xcx.3shi1.com/JQ/tp/public/11.mp4
-f segment -segment_time 10 -segment_format mpegts
-segment_list /data4t/wwwroot/t.3shi1.cn/movietrs/202511/04/1762237060.m3u8
-c copy -bsf:v h264_mp4toannexb
-map 0 /data4t/wwwroot/t.3shi1.cn/movietrs/202511/04//1762237060-%04d.ts
angular2html
参数说明:
-i : 这个是输入文件参数,后面直接跟输入文件的路径
-c copy : 这个选项告诉ffmpeg使用复制流的方式来处理视频和音频数据,不进行重新编码
-bsf:v h264_mp4toannexb
这个选项是比特流过滤器(Bitstream Filter)的简写,
用于将 H.264 NAL 单元格式从 MP4 封装中的起始码前缀(start code prefix)转换为 Annex B 格式。
Annex B 格式通常用于裸流文件(raw stream files),比如用于网络传输或某些特定的视频处理需求。
-map 0: 这个选项是用来选择输入文件中的流.
0 表示第一个输入文件,
-map 0 表示复制所有的流
-f segment :
指定ffmpeg的输出格式为"segment".意味着ffmpeg会将暑期视频分割成多个小片段,而不是生成一个单一的视频文件
-segment_time 10:
这个参数指定了每个视频片段的时长,单位是秒.
10 表示每个片段长度为 10秒, 如果有个1分钟的视频,他将被分割成6个10秒.
-segment_format mpegts:
这个参数指定了输出视频片段的格式.mpegts 表示输出格式为 MPEG_TS(MPEG)传输流,
这是一种广泛用于流媒体的格式.这意味着每个视频片段将是一个独立的 MPEG-TS文件.
-segment_list
这个参数用于生成一个包含所有分割片段列表的文件. 你可以指定一个文件名,
例如 -segment_list playlist.m3u8,这将创建一个 M3U8 播放列表文件,
其中包含了所有 MPEG-TS 片段的引用,通常用于流媒体播放。
这里,output%03d.ts 是输出文件名的模式,
%03d 是一个占位符,表示数字将被格式化为至少三位数(例如,output001.ts, output002.ts 等)。
这确保了文件名的顺序性和唯一性。
3. 获取视频时长的方式
- ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 your_video.mp4
- ffmpeg -i your_video.mp4 2>&1 | grep Duration
- ffmpeg -i your_video.mp4 -f null - 2>&1 | grep Stream
4. 获取视频封面
ffmpeg -i input.mp4 -ss 00:00:05 -frames:v 1 output.jpg
ffmpeg -i input.mp4 -vf 'select=eq(pict_type,I),fps=1' -frames:v 1 output.jpg
angular2html
for file in *.mp4; do
ffmpeg -i "$file" -ss 00:00:05 -frames:v 1 "${file%.mp4}.jpg"
done
4 .学习记录
-
输出其他格式
ffmpeg -i input.avi output.mp4
-
将输出文件的视频比特率设置为64千比特每秒。
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.mp4
-
将输出文件的帧率强制设置为24帧每秒。
ffmpeg -i input.avi -r 24 output.mp4
-
将输入文件(仅适用于原始格式)的帧率强制设置为1帧/秒,将输出文件的帧率设置为24帧/秒:
ffmpeg -r 1 -i input.m2v -r 24 output.mp4
-
基本配置
angular2html
# 查看支持的编解码器
ffmpeg -codecs
# 查看支持的文件格式
ffmpeg -formats
# 查看支持的滤镜
ffmpeg -filters
# 查看支持的协议
ffmpeg -protocols
- 常用配置
angular2html
# 日志级别
ffmpeg -loglevel quiet|panic|fatal|error|warning|info|verbose|debug|trace
# 覆盖输出文件
ffmpeg -y -i input.mp4 output.avi -y表示自动覆盖已经存在的输出文件
# 指定线程数
ffmpeg -threads 4 -i input.mp4 output.avi
- 常用命令详解
angular2html
# 音频格式转换
wav -> pcm
ffmpeg -i input.wav -f s16le -ar 16000 -ac 1 -acodec pcm_s16le output.pcm
参数说明:
-f s16le:指定输出格式为有符号16位小端PCM
-ar 16000:设置采样率为16kHz
-ac 1:设置为单声道
-acodec pcm_s16le:指定音频编解码器为PCM 16位小端
PCM 转 WAV
MP3 转 WAV
WAV 转 MP3