php调用ffmpeg 常用方法

在开发中需要使用到插件ffmpeg转化语音、视频等功能。在php中使用ffmpeg功能需要执行shell_exec()函数。由于使用新环境原来的命令不起作用, php调用ffmpeg 常用方法。

在Centos7下安装ffmpeg

遇到这个问题,分析如下:

  • 1、php中有没有禁用这个函数的使用。
  • 2、linux环境下,目录是否有权限。
  • 3、php用户是否有权限执行命令。

php 调用ffmpeg

class FFmpeg{
	public $fromVideoType;//需要转换的视频
	
	public $toVideoType;//转换以后的视频

	public $thumb_name;//截图的图片名

	public $newVideoName;

	public $getVoice;

	public $getVideo;



	/**
	 * 视频格式转换
	 * @return [type] [description]
	 */
	function exVideoType()
	{
		return shell_exec("ffmpeg -i ".$this->fromVideoType." -vn  ".$this->toVideoType."  ");
	}

	/**
	 * 获取视频缩略图
	 * @return [type] [description]
	 */
	function getVideoThumb()
	{
		return shell_exec("ffmpeg -i ".$this->fromVideoType." -y -f mjpeg -ss 3 -t 1  ".$this->thumb_name."    ");
	}
	//视频的前3秒,重新生成一个新视频
	function createNewVideo()
	{
		return shell_exec("ffmpeg -ss 00:00:01 -t 00:01:30 -y -i ".$this->fromVideoType." -vcodec copy -acodec copy ".$this->newVideoName." ");
	}
	/**
	 * 获取视频总长度
	 * @return [type] [description]
	 */
	function getVideoTime()
	{
		return shell_exec("ffmpeg -i ".$this->fromVideoType." 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//   ");
		
	}
	/**
	 * 获取视频的音频
	 * @return [type] [description]
	 */
	function getVideoVoice()
	{
		return shell_exec("ffmpeg -i ".$this->fromVideoType." -vn -y -acodec copy ".$this->getVoice." ");
	}
	/**
	 * 获取视频的视频    只是画面
	 * @return [type] [description]
	 */
	function getVideo()
	{
		return shell_exec("ffmpeg -i ".$this->fromVideoType." -vcodec copy -an ".$this->getVideo." ");
	}


}
$ffm=new FFmpeg();
$time=$ffm->getVideoTime();
$time=substr($time,0,8);
//$result=$this->time($time);
//public function  time($res){//视频时长
    //     $h=substr($res,0,2);
    //     $i=substr($res,3,2);
    //     $s=substr($res,6,2);
    //     $time=$h*3600+$i*60+$s;
    //     if($time<90){
    //     	return true;
    //     }else{
    //     	return false;
    //     }
    // }

0 评论
内联反馈
查看所有评论