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 相关文章推荐
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
PHP 日常开发小技巧
Sep 23 PHP
php 短链接算法收集与分析
Dec 30 PHP
thinkphp的c方法使用示例
Feb 24 PHP
php读取csv文件并输出的方法
Mar 14 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
php数组和链表的区别总结
Sep 20 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 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
PHP date函数参数详解
2006/11/27 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php查询whois信息的方法
2015/06/08 PHP
浅谈php调用python文件
2019/03/29 PHP
js压缩利器
2007/02/20 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
JS中产生标识符方式的演变
2015/06/12 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
会计实习生工作总结的自我评价
2013/10/07 职场文书
单位租房协议范本
2014/12/03 职场文书
运动会报道稿大全
2015/07/23 职场文书
2016年十一促销广告语
2016/01/28 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书