• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP中的FFmpeg安装及使用

php 搞代码 3年前 (2022-02-28) 28次浏览 已收录 0个评论

本文和大家分享PHP中的FFmeg装置及应用,心愿能帮忙到大家

FFmpeg简介

FFmpeg是视频解决最罕用的开源软件。
它功能强大,用处宽泛,大量用于视频网站和商业软件(比方 Youtube 和 iTunes),也是许多音频和视频格式的规范编码/解码实现。
对于FFMPEG视音频编解码的常识能够参考大神雷霄骅的系列教程
https://www.gaodaima.com/leixiao…

FFmpeg装置

下载fmmpeg代码

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

装置依赖库文件

次要装置三个:yasm ,sdl1.2 和 sdl2.0

装置 yasm

sudo apt-get install yasm

装置sdl1.2

sudo apt-get install libsdl1.2-dev

装置 sdl2.0

sudo apt-get install libstl2-dev

编译装置FFmpeg

进入到解压之后的 ffmpeg文件夹,顺次执行以下命令:

./configure
make
sudo make install

测试装置胜利与否

输出以下命令查看输入:

linux下 FFmpeg 命令介绍

FFmpeg 罕用的命令行参数如下。

-c:指定编码器
-c copy:间接复制,不通过从新编码(这样比拟快)
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输出文件
-an:去除音频流
-vn: 去除视频流
-preset:指定输入的视频品质,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
-y:不通过确认,输入时间接笼罩同名文件。

常见命令

查看文件信息

查看视频文件的元信息,比方编码格局和比特率,能够只应用-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办法

视频压缩

public static function reSize($path, $outPath, $toSize)
{
    $shell = "ffmpeg -i " . $path . " -strict -2  -y -fs " . $toSize . "  ". $outPath . " 2>&1";
    exec($shell, $output, $ret);
    return $ret;
}

视频截图

public static function screenshot($path, $outPath)
{
    $shell = "ffmpeg -i " . $path . " -ss 1 -y -frames:v 1 -q:v 1 " . $outPath . " 2>&1";
    exec($shell, $output, $ret);
    return $res;
}

php-ffmpeg扩大

composer装置php-ffmpeg
$ composer require php-ffmpeg/php-ffmpeg

根本用法

require 'vendor/autoload.php';
$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open('video.mpg');
$video
    ->filters()
    ->resize(new FFMpeg\Coordinate\Dimension(320, 240))
    ->synchronize();
$video
    ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
    ->save('frame.jpg');
$video
    ->save(new FFMpeg\Format\Video\X264(), 'export-x264.mp4')
    ->save(new FFMpeg\Format\Video\WMV(), 'export-wmv.wmv')
    ->save(new FFMpeg\Format\Video\WebM(), 'export-webm.webm');

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP中的FFmpeg安装及使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址