首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php-ffmpeg相关操作简介

php操作ffmpeg有两个扩展,一个是ffmpeg-php,这个是不依赖ffmpeg,需要编译安装并在 php.ini 中启用。还有一个是php-ffmpeg,使用php-ffmpeg需要安装ffmpeg软件,对于ffmpeg的安装可以看看我之前的文章【Linux安装ffmpeg】

ffmpeg-php官方已经很久没有更新了。我们这里主要针对php-ffmpeg进行说明

扩展安装

composer require php-ffmpeg/php-ffmpeg

use FFMpeg\FFProbe;

$videoPath = 'path/to/video.mp4';

$ffprobe = FFProbe::create();

$duration = $ffprobe->format($videoPath)->get('duration');

echo "视频时长:{$duration} 秒";

如果我们使用了ffmpeg打开一个视频时,可以通过getFormat获取ffprobe对象:

$ffmpeg = FFMpeg\FFMpeg::create();

$video_path = '视频路径';

$video = $ffmpeg->open($video_path);

$duration = $video->getFormat()->get('duration')

echo "视频时长:{$duration} 秒";

视频格式转换

视频格式有很多中,php-ffmpeg中提供了5中格式的转换,下面我以x264为例:

$ffmpeg = FFMpeg\FFMpeg::create();

$video_path = '视频路径';

$video = $ffmpeg->open($video_path);

//转换视频

$video->save(new FFMpeg\Format\Video\WMV(),'output.wmv');

//$video->save(new FFMpeg\Format\Video\X264(),$root_path.'/output_x264.mp4');

//$video->save(new FFMpeg\Format\Video\WebM(),$root_path.'/output.webm');

//$video->save(new FFMpeg\Format\Video\Ogg(),$root_path.'/output.ogv');

//$video->save(new FFMpeg\Format\Video\WMV3(),$root_path.'/output.wmv');

$ffmpeg = FFMpeg\FFMpeg::create();

$video_path = '视频路径';

$video = $ffmpeg->open($video_path);

$output_path = '输出路径,例如:/root/1.gif';

$gif = $video->gif(FFMpeg\Coordinate\TimeCode::fromSeconds(1),

new FFMpeg\Coordinate\Dimension(480, 640), 3);

$gif->save($output_path);

读取视频中的音频

$ffmpeg = FFMpeg\FFMpeg::create();

$video_path = '视频路径';

$video = $ffmpeg->open($video_path);

$output_path = '输出路径,例如:/root//audio.mp3';

$audio_format = new FFMpeg\Format\Audio\Mp3();

$video->save($audio_format, $output_path);

视频添加水印

$ffmpeg = FFMpeg\FFMpeg::create();

$video_path = '视频路径';

$video = $ffmpeg->open($video_path);

$output_path = '输出路径,例如:/root//watermark_video.mp4';

$watermarkpath = '水印图片的路径';

$video->filters()->watermark($watermarkpath,[

'position'=>'relative',

'bottom'=>50,

'right'=>50,

'width'=>100

]);

$video->save(new FFMpeg\Format\Video\X264(),$output_path);

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OTdUJDeB-BpKUP2CMUOi3z0A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券