PHP-FFMpeg 操作音视频
🎈 安装 PHP-FFMpeg
在使用 ffmpeg 之前,需要
安装软件
和操作命令库
软件根据系统,自行选择安装,而操作命令库需要根据下列的命令进行安装
🎈 视频中提取一张图片
这里的
video.mp4
准备的是一段宫崎骏的视频片段FFMpeg\FFMpeg::create
中需要指定系统软件中ffmpeg
和ffprobe
的安装位置通过
FFMpeg\Coordinate\TimeCode::fromSeconds
可以指定提取第几秒的视频作为图片保存
🎈 视频中提取多张图片
🎈 调整视频大小
FFMpeg\Coordinate\Dimension
可以设置调整后的分辨率ResizeFilter::RESIZEMODE_FIT
是缩放模式中的一种,按照给定值进行调整ResizeFilter::RESIZEMODE_INSET
是缩放模式中的一种,按照给定的尺寸,等比缩放,如果设置的宽高比跟原视频不一样,那会自动根据宽或高进行等比缩放ResizeFilter::RESIZEMODE_SCALE_WIDTH
是缩放模式中的一种,高按照给定值,宽进行比例缩放ResizeFilter::RESIZEMODE_SCALE_HEIGHT
是缩放模式中的一种,宽按照给定值,高进行比例缩放true / false
是否强制使用最近的纵横比标准
🎈 视频添加水印
通过
watermark
可以设置水印的相关信息,第一个参数是设置水印的地址,第二个参数里面可以设置水印位置参数position:
可以选择relative
相对定位,或者absolute
绝对定位,如果选择absolute
,则只需要填写x
和y
坐标即可top / bottom / left / right:
四个方位上下左右距离边缘的位置
🎈 生成音频波形
可以看到,想要生成音频波形,必须使用的是音频文件,如果是视频文件,需要先将其中的音频提取出来
waveform:
中可以设置波形图的长宽还有波形颜色
🎈 音频转换
Flac;
为无损压缩格式setAudioChannels:
声道设置,1 单声道,2 双声道,3 立体声setAudioKiloBitrate:
比特率
🎈 给音频添加元数据
支持给音频添加标题、艺术家、专辑、艺术家、作曲家、曲目、年份、描述、艺术品等
🎈 拼接多个音视频
如果想把多个音视频拼成一个音视频的话,可以使用
concat
命令concat:
参数中设置想拼接的各个短视频saveFromSameCodecs:
设置拼接后的视频名称,第二个参数设置为true
则允许复制参数,可以加速文件的生成
🎈 截取音视频
TimeCode::fromSeconds:
有两个参数,第一个是从第几秒开始截取,第二个是截取多少秒,如果不填,则截取到最后
🎈 提取 gif 动图
使用
gif
命令可以提取视频中的动图fromSeconds
可以设置从第几秒开始提取,Dimension
可以设置大小和持续的时间
🎈 裁剪视频
通过
crop
可以裁剪视频Dimension:
设置裁剪后的视频尺寸Point:
指定要裁剪的点,x
、y
坐标和是否动态裁剪
这里
x
的值是t*100
是从画面左边移动到右边这样裁剪,值越大,移动速度越快
🎈 转换视频格式
setKiloBitrate:
设置视频比特率setAudioChannels:
声道设置,1 单声道,2 双声道,3 立体声setAudioKiloBitrate:
设置音频比特率
🎈 调整视频帧率
framerate:
可以设置视频的帧速率大家应该都知道,视频其实是由一张张图片组成的,而一秒中播放 30 张以上其实肉眼就会把图片看成视频了,这里的
30
就是所谓的帧速了,一般设置60
即可,为了测试这里设置成1000
🎈 获取音视频信息
可以通过
format
获取音视频的所有信息可以通过
get
获取指定信息的值
版权声明: 本文为 InfoQ 作者【极客飞兔】的原创文章。
原文链接:【http://xie.infoq.cn/article/374f66ddb8e270370a6d9c696】。未经作者许可,禁止转载。
评论