PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件

配置PHP.ini文件

代码如下:
上传文件的开关。默认为ON即是开 upload_tmp_dir ;//文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 upload_max_filesize = 1024m ;//望文生意,即允许上传文件大小的最大值。默认为2M,我们设置为1G post_max_size = 1024m ;//指通过表单POST给PHP的所能接收的最大值,我们也设置为1G

max_execution_time = 3600 ;//每个PHP页面运行的最大时间值(秒),默认30秒,设置为一小时,因为后面转码时间很久。 max_input_time = 36000 ;//每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m ;//每个PHP页面所吃掉的最大内存,默认8M

文件上传插件

火焰雨推荐大家使用uploadify,Uploadify是JQuery的一个上传插件,实现带进度显示插件安装简单,此处略过。 但是有个问题需要注意,非IE浏览器session会丢失,查了很多资料,最终总结的原因是:

因为诸如uploadify采用的是flash客户端,它产生的useragent与浏览器的user-agent不同。

最终解决办法:

代码如下:
上传参数中加入session参数,如下: scriptData: {"SESSION_ID":""}, // 在服务端接收页面加入以下代码: if(@$_REQUEST['SESSION_ID'] && ($session_id=$_REQUEST['SESSION_ID']) !=session_id()){ session_destroy(); session_id($session_id); @session_start(); }

这样就解决了 FLASH 不能正确传递页面

视频格式转换

现在Linux下比较流行的视频格式转换软件是FFMPEG,FFMPEG是用于录制、截图、转换和流化音频和视频的完整解决方案,一套领先的音/视频编解码类库。除了FFMPEG外,我们要转码成H264格式 ,还需要一个扩展。(文章最后给出所有软件包下载地址)

centos 5.4环境下安装源码安装h264扩展

代码如下:
文件目录 cd x264-snapshot-20120718-2245-stable/ ./configure --prefix=/usr/local --enable-shared make make install

//centos 5.4环境下安装源码安装ffmpeg with h264扩展 tar -xjvf ffmpeg-2.1.1.tar.bz2 //进入解压后目录 cd ffmpeg-2.1.1 ./configure --enable-gpl --enable-libx264 make make install //重新加载配置 lcfonfig //测试是否安装成功 ffmpeg

如果你看到以下内容说明安装成功:

代码如下:
dio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or,even better,run 'man ffmpeg'

PHP调用ffmpeg转码视频

代码如下:

运行前请确认exec函数已经开启。否则请修改PHP.ini文件

最后附上

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...