企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 安装ffmpeg扩展 在PHP中使用ffmpeg,需要先安装ffmpeg扩展。在linux下可以通过以下命令安装: ~~~ sudo apt install ffmpeg sudo apt install php-ffmpeg ~~~ 在windows下有多种安装方式。可以从官网下载php\_ffmpeg.dll后,将其放入php/ext文件夹下,并在php.ini文件中加入以下内容: ~~~ [ffmpeg] extension=php_ffmpeg.dll ~~~ ### 转换视频 #### 执行简单的命令 使用ffmpeg转换视频的命令非常灵活,可以实现多种转换操作,例如: ~~~ $output = shell_exec("ffmpeg -i input.mp4 output.avi"); ~~~ 在这个命令中,-i参数指定了输入文件的路径,output.avi则是输出文件的路径。可以根据自己的需要,使用不同的命令实现转换操作。 #### 动态转换 使用PHP调用ffmpeg时,可以使用FFMpeg库提供的API来进行转换操作。下面是一段将mp4文件转换为webm文件的示例: ~~~php <?php require('./vendor/autoload.php'); use FFMpeg\FFMpeg; use FFMpeg\FFMpeg\Format\Video\WebM; $src = './video.mp4'; $ffmpeg = FFMpeg::create(); $video = $ffmpeg->open($src); $format = new WebM(); $format->setAudioCodec('libvorbis'); $format->setVideoCodec('libvpx'); $video->save($format, './video.webm'); ?> ~~~ ### 截图 使用ffmpeg截图也非常方便。下面是一段简单的代码,实现对视频中第5秒的画面进行截图: ~~~php <?php $src = './video.mp4'; $cmd = "ffmpeg -ss 5 -i $src -f image2 -vframes 1 -s 320x240 img.png"; shell_exec($cmd); ?> ~~~ 在这个命令中,-ss参数指定了截图要从哪一秒开始,-i参数是输入文件的路径,img.png则是输出的图片文件路径。-vframes参数指定了要截取的帧数,这里设置为1,即只截取一帧。 ### 生成缩略图 ffmpeg可以非常方便地生成缩略图。下面是一段代码示例: ~~~php <?php $src = './video.mp4'; $cmd = "ffmpeg -i $src -vf thumbnail,scale=320:240 -frames:v 1 thumb.jpg"; shell_exec($cmd); ?> ~~~ 在这个命令中,-vf参数指定了使用thumbnail、scale两个滤镜,thumbnail会在视频中等间隔的选取关键帧,并生成缩略图。通过指定scale参数,可以生成指定大小的缩略图。