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 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
php 启动报错如何解决
Jan 17 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php实现读取手机客户端浏览器的类
Jan 09 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
php文件上传你必须知道的几点
Oct 20 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
PHP7匿名类的用法示例
Apr 05 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 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
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
PHP安全下载文件的方法
2016/04/07 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
创先争优承诺书范文
2014/03/31 职场文书
房屋出售协议书
2014/04/10 职场文书
股权转让协议书范本
2014/04/12 职场文书
欢迎标语大全
2014/06/21 职场文书
涨价通知怎么写
2015/04/23 职场文书
博物馆观后感
2015/06/05 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫