首页 > 编程语言 >PHP中的FFmpeg安装及使用

PHP中的FFmpeg安装及使用

时间:2024-11-09 10:21:25浏览次数:5  
标签:FFmpeg FFMpeg mp4 output input PHP 安装 ffmpeg

FFmpeg简介
FFmpeg是视频处理最常用的开源软件。
它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。
关于FFMPEG视音频编解码的知识可以参考大神雷霄骅的系列教程
https://blog.csdn.net/leixiaohua1020/article/details/15811977

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');

标签:FFmpeg,FFMpeg,mp4,output,input,PHP,安装,ffmpeg
From: https://www.cnblogs.com/sathcal/p/18536394

相关文章

  • FFmpeg 简单介绍及使用
    1.简介FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开......
  • PHP ffmpeg 视频合并
    随着互联网的发展和视频技术的不断完善,视频在我们的生活中扮演着越来越重要的角色。但是,当前视频处理和编辑的需求也在不断增加,这就需要我们使用到一些专业的工具来帮助我们完成这项工作。其中,ffmpeg是一个非常流行的视频处理工具,它支持多种视频编解码格式,可以对视频进行编辑、剪......
  • php 安装ffmpeg扩展
    在使用PHP的ffmpeg扩展之前,我们首先需要安装它。1.下载ffmpeg源码我们可以在https://www.ffmpeg.org/download.html这个网址上下载最新的ffmpeg源码。2.安装ffmpeg在安装之前,我们需要安装一些必要的依赖库和工具:sudoapt-getupdatesudoapt-getinstallautoconfautomakeb......
  • PHP ffmpeg 剪辑视频
    随着互联网的发展和视频技术的不断完善,视频在我们的生活中扮演着越来越重要的角色。但是,当前视频处理和编辑的需求也在不断增加,这就需要我们使用到一些专业的工具来帮助我们完成这项工作。其中,ffmpeg是一个非常流行的视频处理工具,它支持多种视频编解码格式,可以对视频进行编辑、剪......
  • PHP中的FFmpeg操作指南
    FFmpeg是一种基于命令行的音视频处理工具,可以用于转码、剪辑、裁剪、合并、加速、调节音量等多种功能,广泛应用于多媒体领域。在PHP中,我们也可以通过调用FFmpeg的命令行参数来实现音视频处理功能。本文将介绍如何在PHP中使用FFmpeg操作音视频。一、安装FFmpeg扩展在PHP中使用FFmp......
  • 【模块一】kubernetes容器编排进阶实战之containerd安装及nerdctl客户端⼯具
    安装containerdapt/yum安装#验证仓库版本[root@k8s-node3~]#apt-cachemadisoncontainerdcontainerd|1.7.12-0ubuntu2~22.04.1|https://mirrors.aliyun.com/ubuntujammy-updates/mainamd64Packagescontainerd|1.6.12-0ubuntu1~22.04.3|https://mirrors.aliyu......
  • 音视频入门基础:FLV专题(24)——FFmpeg源码中,获取FLV文件视频信息的实现
    =================================================================音视频入门基础:FLV专题系列文章:音视频入门基础:FLV专题(1)——FLV官方文档下载音视频入门基础:FLV专题(2)——使用FFmpeg命令生成flv文件音视频入门基础:FLV专题(3)——FLVheader简介音视频入门基础:FLV专题(4)—......
  • 音视频入门基础:FLV专题(23)——FFmpeg源码中,获取FLV文件音频信息的实现(下)
    =================================================================音视频入门基础:FLV专题系列文章:音视频入门基础:FLV专题(1)——FLV官方文档下载音视频入门基础:FLV专题(2)——使用FFmpeg命令生成flv文件音视频入门基础:FLV专题(3)——FLVheader简介音视频入门基础:FLV专题(4)—......
  • ThinkPHP6,视图的安装及模板渲染和变量赋值
    tp6视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。使用think-template模板引擎,只需要安装think-view模板引擎驱动。composercreate-proje......
  • 使用ffmpeg命令处理音视频
    FFmpeg可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec(用于多个项目中音频和视频的解码器库)和libavformat(音频与视频格式转换库)。(关于一些底层方面的东西,可以参考ffmpeg和H264视频的编解码) https://www.octfgroup.com/1,获得一个文件的音视频(编码方面的)信息:ge......