时间:2021-11-08 11:03:57
FFmpeg是视频处理最常用的开源软件。
它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。
FFmpeg安装
下载fmmpeg代码
1 |
|
安装依赖库文件
主要安装三个:yasm ,sdl1.2 和 sdl2.0
安装 yasm
1 |
|
安装sdl1.2
1 |
|
安装 sdl2.0
1 |
|
编译安装FFmpeg
进入到解压之后的 ffmpeg文件夹,依次执行以下命令:
./configure makesudo make install
测试安装成功与否
输入以下命令查看输出:
linux下 FFmpeg 命令介绍
FFmpeg 常用的命令行参数如下。
1 2 3 4 5 6 7 8 9 10 |
|
常见命令
查看文件信息
查看视频文件的元信息,比如编码格式和比特率,可以只使用-i
参数。$ ffmpeg -i input.mp4
分离视频音频流
ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流
视频转码
转换编码格式(transcoding)指的是, 将视频文件从一种编码转成另一种编码。比如转成 H.264 编码,一般使用编码器libx264
,所以只需指定输出文件的视频编码器即可。$ ffmpeg -i [input.file] -c:v libx264 output.mp4
改变分辨率
下面是改变视频分辨率(transsizing)的例子,从 1080p 转为 480p 。
$ ffmpeg \ -i input.mp4 \ -vf scale=480:-1 \ output.mp4
添加音轨
添加音轨(muxing)指的是,将外部音频加入视频,比如添加背景音乐或旁白。
$ ffmpeg \ -i input.aac -i input.mp4 \output.mp4
截图
$ ffmpeg \ -ss 01:23:45 \ -i input \ -vframes 1 -q:v 2 \ output.jpg
上面例子中,-ss 01:23:45
表示截取的时间戳, -vframes 1
指定只截取一帧,-q:v 2
表示输出的图片质量,一般是1到5之间(1 为质量最高)。
为音频添加封面
下面命令可以将音频文件,转为带封面的视频文件
$ ffmpeg \ -loop 1 \ -i cover.jpg -i input.mp3 \ -c:v libx264 -c:a aac -b:a 192k -shortest \ output.mp4
转回主题PHP中FFmpeg使用
exec方法
视频压缩
1 2 3 4 |
|
视频截图
1 2 3 4 |
|
开启这几个函数太危险了。
php-ffmpeg扩展
composer安装php-ffmpeg
composer require php-ffmpeg/php-ffmpeg
基于TP6做的测试
1 2 3 4 5 6 7 8 9 10 |
|
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
已到看生成的图片了。就是执行有点慢,估计和视频大小有关系。百M以上视频处理没测试。