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


Posted in PHP onSeptember 24, 2014

配置php.ini文件

file_uploads = on ;//是否允许通过HTTP上传文件的开关。默认为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不同。
 

最终解决办法:

//在upmodify上传参数中加入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扩展

tar -xjvf x264-snapshot-20120718-2245-stable.tar.bz2 

  #进入解压后的源文件目录 

  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

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

ffmpeg version 2.1.1 Copyright (c) 2000-2013 the FFmpeg developers

 built on Dec 17 2013 23:32:40 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)

 configuration: --enable-libx264 --enable-gpl

 libavutil 52. 48.101 / 52. 48.101

 libavcodec 55. 39.101 / 55. 39.101

 libavformat 55. 19.104 / 55. 19.104

 libavdevice 55. 5.100 / 55. 5.100

 libavfilter 3. 90.100 / 3. 90.100

 libswscale 2. 5.101 / 2. 5.101

 libswresample 0. 17.104 / 0. 17.104

 libpostproc 52. 3.100 / 52. 3.100

 Hyper fast Audio 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转码视频

$cmd = 'FFMPEG  -i  uploadfile/video/test.wmv -c:v libx264 -strict -2 uploadfile/mp4/test.mp4';

 exec($cmd, $status);

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

最后附上FFMPEG+H264扩展+YASM+apache_mod_h264

PHP 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
PHP静态成员变量
Feb 14 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
php实现获取及设置用户访问页面语言类
Sep 24 #PHP
php实现的zip文件内容比较类
Sep 24 #PHP
php导出CSV抽象类实例
Sep 24 #PHP
php实现的双向队列类实例
Sep 24 #PHP
php实现的Timer页面运行时间监测类
Sep 24 #PHP
php密码生成类实例
Sep 24 #PHP
PHP中file_get_contents高?用法实例
Sep 24 #PHP
You might like
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php数组去除空值函数分享
2015/02/02 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
Python中的hypot()方法使用简介
2015/05/18 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
python自动12306抢票软件实现代码
2018/02/24 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
Python解析多帧dicom数据详解
2020/01/13 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
公积金转移接收函
2014/01/11 职场文书
初三家长会邀请函
2014/01/18 职场文书
大班开学家长寄语
2014/04/04 职场文书
给小学生的新年寄语
2014/04/04 职场文书
世界遗产导游词
2015/02/13 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
房产证明范本
2015/06/19 职场文书
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL