CentOS7 安装 FFmpeg

2024-08-07 12:54:18 浏览数 (1)

安装

安装 epel 源

代码语言:javascript复制
yum install epel-release

安装 Nux Dextop yum 源

代码语言:javascript复制
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

安装 ffmpeg 和 ffmpeg 开发包

代码语言:javascript复制
yum install ffmpeg ffmpeg-devel

常用命令

查看视频信息

代码语言:javascript复制
ffmpeg -i mp4

提取音频

代码语言:javascript复制
ffmpeg -i input.mp4 -f mp3 -vn output.mp3
	-vn 表示去掉视频

指定时间截图

代码语言:javascript复制
ffmpeg -ss 0:28:34 -i input.mp4 -vframes 1 -q:v 2 output.jpg
	-vframes 1指定只截取一帧,-q:v 2表示输出的图片质量,一般是1到5之间(1 为质量最高)

截取某时间段的视频

代码语言:javascript复制
ffmpeg -ss 0:0:19 -i test.mp4 -to 0:13:11 -c copy test-t.mp4
	前面的时间是开始时间,后面的时间是结束时间
	-c copy表示不对视频进行任何转码或修改,只截取视频

为音频添加封面

代码语言:javascript复制
ffmpeg -loop 1 -i cover.jpg -i input.mp3 -c:v libx264 -c:a aac -b:a 192k -shortest output.mp4
	上面命令中,有两个输入文件,一个是封面图片cover.jpg,另一个是音频文件input.mp3。-loop 1参数表示图片无限循环,-shortest参数表示音频文件结束,输出视频就结束。

格式转换

代码语言:javascript复制
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
	上面的命令表式的是音频、视频都直接 copy,只是将 mp4 的封装格式转成了flv

音视频合并

代码语言:javascript复制
ffmpeg -i out.h264 -i out.aac -vcodec copy -acodec copy out.mp4

视频转 gif

代码语言:javascript复制
ffmpeg -i out.mp4 -ss 00:00:00 -t 10 out.gif

avi 转换成 mp4

代码语言:javascript复制
ffmpeg -i input.avi -c:v libx264 -s 1280x720 -pix_fmt yuv420p -b:a 63k -b:v 753k -r 18 output.mp4
	-c:v 					# 视频编码为 x264,x264编码是H264的一种开源编码格式
	-s 						# 设置分辨率
	-pix_fmt yuv420p		# 设置像素采样方式
	-b						# 设置码率
	-b:a和-b:v 				# 分别表示音频的码率和视频的码率,-b表示音频加视频的总码率
	-r 						# 帧率,表示每秒更新图像画面的次数,通常大于24肉眼就没有连贯与停顿的感觉了

mp4 转换 m3u8

代码语言:javascript复制
ffmpeg -i output.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ./hls/lucene_d.ts ./hls/lucene.m3u8
	-hls_time				# 每片的长度,单位秒
	-hls_list_size n 		# 保存的分片的数量,设置为0表示保存所有分片
	-hls_segment_filename	# 段文件的名称,d表示5位数字
	生成效果:将 output.mp4 视频文件每10秒生成一个 ts 文件,最后生成一个 m3u8 文件,m3u8文件是ts的索引

0 人点赞