php操作ffmpeg有两个扩展,一个是ffmpeg-php,这个是不依赖ffmpeg,需要编译安装并在 php.ini 中启用。还有一个是php-ffmpeg,使用php-ffmpeg需要安装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');
视频转GIF
$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);
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。