php 启动ffmpeg,php-ffmpeg

前言

Phpffmpeg这个模块是基于php5写的,定义了许多可以处理的视频API,同时既可以根据实际需要不断拓展API。

用法

####第一种方式:

模块已经实现了命名空间与require的映射结合,利用php5的命名空间和自动加载可以很方便地使用。

在项目中要建立一个名为Phpffmpeg(名称不能改,因为要与文件定义的根命名空间对应相同)的空的文件夹,把文件下载后,将里面的文件复制至新建的Phpffmpeg文件夹下。

首先要导入 FFmpegAutoloader.class.php ,在执行静态的register()注册方法

require_once "path/FFmpegAutoloader.class.php";

\Phpffmpeg\FFmpegAutoloader::register();

这个path是新建Phpffmpeg文件的路径。

其实将FFmpegAutoloader文件命名成带有class的形式,如FFmpegAutoloader.class.php,是为了兼容在thinkphp3.2以上框架的命名空间加载。

所以如果实在tp3.2以上的的框架中使用该模块的话,同样,需要在核心框架library中新建Phpffmpeg文件夹,

将下载的文件全部复制至Phpffmpeg文件夹中。那么在Controller中使用的话,就不需要require_once了,直接执行

\Phpffmpeg\FFmpegAutoloader::register();

这样已经实现了自动加载和自动注册功能,因为tp自动的自动加载功能会先执行require_once将文件包含进来。

####第二种方式:

最近引入了一个composer的psr4自动加载的,在使用中,直接include "./vendor/autoload.php",这个也是完成命名空间的自动加载的注册,不需要再引入FFmpegAutoloader.class.php

API详解

ffmpeg_movie部分

(1)$movie = new ffmpeg_movie(String path_to_media, boolean persistent);

创建视频处理对象,第一个参数是视频url,第二个参数是以长连接打开视频资源,true或者false。

(2)$movie->getDuration();

获取视频时长,单位秒

(3)$movie->getFrameCount();

获取视频帧数

(4)$movie->getFrameRate();

获取帧率

(5)$movie->getFilename();

获取文件路径,包括文件名称

(6)$movie->getComment();

获取视频的注释

(7)$movie->getTitle();

获取主题

(8)$movie->getFrameHeight();

获取视频高度(分辨率)

(9)$movie->getFrameWidth()

获取视频宽度(分辨率)

(10)$movie->getPixelFormat()

获取像素格式,例如yuv420p

(11)$movie->getFrameNumber();

获取当前帧索引

(12)$movie->getFrame([Integer framenumber]);

获取对应的帧,返回的对象将作为new ffmpeg_frame(Resource gd_image)的实例化对象。

Returns a frame from the movie as an ffmpeg_frame object. Returns false if the frame was not found.

(13)$movie->getNextKeyFrame();

获取下一帧

Returns the next key frame from the movie as an ffmpeg_frame object. Returns false if the frame was not found.

(14)$movie->getSize();

获取视频的大小,单位kb

(15)$movie->getImage($savePath,$second,$width,$height);

获取视频的某个时间的帧图片(关键帧)

$savePath 图片保存的路径,包含图片的名称。例如path/my.jpg;

$second 视频对应的秒数,int。

$width 图片的宽度,int。

$height 图片的高度,int。

执行此函数成功时返回true,失败返回false。

(16)$movie->getGif($savePath,$startsecond,$lastsecond,$width,$height);

截取视频的某个时间开始至某个时间的gif动态图。

$savePath 图片保存的路径,包含图片的名称。例如path/my.gif;

$startsecond 视频开始秒数,int。

$lastsecond 持续的秒数,即gif的时长。

$width gif的宽度,int。

$height gif的高度,int。

执行此函数成功时返回true,失败返回false。

ffmpeg_frame部分

(1)$frame = new ffmpeg_frame(Resource gd_image);

参数是一个图片资源对象(需要自己创建),如果执行$movie->getFrame([Integer framenumber]);择返回的就是一个相当于new ffmpeg_frame(Resource gd_image);的实例化对象;

(2)$frame->getWidth();

返回宽度

(3)$frame->getHeight();

返回高度

(3)$frame->getPTS();

(4)$frame->getPresentationTimestamp();

(5)$frame->resize(Integer width, Integer height [, Integer crop_top [, Integer crop_bottom [, Integer crop_left [, Integer crop_right ]]]]);

(6)$frame->crop(Integer crop_top [, Integer crop_bottom [, Integer crop_left [, Integer crop_right ]]]);

(7)$frame->toGDImage();

返回一个dg对象。

例如:

$frame = $movie->getFrame(6);//返回ffmpeg_frame的对象

$frame->resize(400,400,20,20,20,50);

$img = $frame->toGDImage();

//将gd对象保存为图片

imagejpeg($img,'my.jpeg');

imagedestroy($img);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值