olaferlandsen/ffmpeg-php-class

FFmpeg类,用于PHP,无需安装FFmpeg-PHP扩展

0.1.4 2015-11-15 07:30 UTC

This package is not auto-updated.

Last update: 2024-09-12 20:14:30 UTC


README

Donate

FFmpeg类(无需ffmpeg-php

适用于PHP 5.3+的完整跨平台FFmpeg类

重要!

此类不依赖于ffmpeg-php php扩展。

需求

  • FFmpeg 0.5.12+
  • PHP 5.3+
    • PCRE(Perl兼容)

安装

您可以通过以下链接从Github下载FFmpeg类在此处

或者如果您想通过Composer安装,请尝试使用composer require olaferlandsen/ffmpeg-php-class

示例

示例 #1: 输入 & 输出。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #2: 简单的帧率。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->frameRate( '30000/1001' )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #3: 使用方法别名简单帧率。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->i( '/var/media/original.mp4' )->r( '30000/1001' )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #4: 旋转视频。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->transpose( 2 )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #5: 使用别名"rotate"旋转视频。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->rotate( 2 )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #6: 强制格式。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->forceFormat( '3gp' )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #7: 快速强制格式。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' , '3gp' )->ready();
    ?>

示例 #8: 获取命令

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' )->command;
    ?>

示例 #9: 执行命令。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #10: 灰度。

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->grayScale()->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #11: 设置参数。

    <?php
    	$key = 'acodec';
    	$value = 'AAC';
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->set($key,$value)->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #12: 取消设置参数。

    <?php
    	$key = 'acodec';
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->unset($key)->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #13: 快速方法

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->sameq()->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #14: 翻转(V或H)

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->flip( 'v' )->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #15: hflip

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->hflip()->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #16: vflip

    <?php
    	$FFmpeg = new FFmpeg;
    	$FFmpeg->input( '/var/media/original.mp4' )->vflip()->output( '/var/media/new.3gp' )->ready();
    ?>

示例 #17: 完成

    <?php
	/**
	*	include FFmpeg class
	**/
	include DIRNAME(DIRNAME(__FILE__)).'/src/ffmpeg.class.php';
	
	/**
	*	get options from database
	**/
	$options = array(
		'duration'	=>	99,
		'position'	=>	0,
		'itsoffset'	=>	2,
	);
	/**
	*	Create command
	*/
	$FFmpeg = new FFmpeg( '/usr/local/bin/ffmpeg' );
	$FFmpeg->input( '/var/media/original.avi' );
	$FFmpeg->transpose( 0 )->vflip()->grayScale()->vcodec('h264')->frameRate('30000/1001');
	$FFmpeg->acodec( 'aac' )->audioBitrate( '192k' );
	foreach( $options AS $option => $values )
	{
		$FFmpeg->call( $option , $values );
	}
	$FFmpeg->output( '/var/media/new.mp4' , 'mp4' );
	print($FFmpeg->command);
	?>
/usr/local/bin/ffmpeg -y -vf transpose=0,vflip -pix_fmt gray -vcodec h264 -r 30000/1001 -acodec aac -ab 192k -t 99 -ss 0 -itsoffset 2 -f mp4 /var/media/new.mp4 /dev/null 2<&1

示例 #18: 清除

	<?php
	$FFmpeg = new FFmpeg('/bin/ffmpeg','/var/media/original.mp4')->vflip()->output( '/var/media/new.3gp' )->clear()->input( '/var/www/file.3gp' );
	?>

示例 #19: 缩略图(实验性)

	<?php
	$size = '100x100';
	$start = 1;
	$frames = 10;
	
	$FFmpeg = new FFmpeg;
	$FFmpeg->input( '/var/www/video.mp4' )->thumb( $size , $start, $frames )->ready();
	?>

示例 #20: 图像到视频

	<?php
	$FFmpeg = new FFmpeg;
	$FFmpeg->input( '/var/www/images/pref%04d.png' )->frameRate( '29,97' )->size( '1920x1080' )->force('image2');
	$FFmpeg->output( 'image2video.mp4' );
	$FFmpeg->ready();
	?>

示例 #21: 在Windows上设置FFmpeg二进制文件

	<?php
	$FFmpeg = new FFmpeg( "C:\ffmpeg\bin\ffmpeg.exe" );
	$FFmpeg->input( 'C:\xampp\input.mp4' )->output( 'output.3gp' );
	$FFmpeg->ready();
	?>

示例 #22: 在Linux & Unix上设置FFmpeg二进制文件

	<?php
	$FFmpeg = new FFmpeg( "/etc/bin/ffmpeg" );
	$FFmpeg->input( '/var/www/input.mp4' )->output( 'output.3gp' );
	$FFmpeg->ready();
	?>

示例 #23: 日志级别

	<?php
	$FFmpeg = new FFmpeg;
	$FFmpeg->input( '/var/www/input.mp4' )->loglevel("debug")->output( 'output.3gp' );
	$FFmpeg->ready();
	?>

记住

  • 这是一个开源项目,免费。
  • 分享我们的仓库。

感谢