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 相关文章推荐
PHP的开合式多级菜单程序
Oct 09 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php使用文本统计访问量的方法
May 12 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
php-app开发接口加密详解
Apr 18 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设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
python实现决策树分类算法
2017/12/21 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
办公室文秘自我鉴定
2013/09/21 职场文书
高中生学习生活的自我评价
2013/11/27 职场文书
银行求职推荐信范文
2013/11/30 职场文书
创业计划书六个要素
2013/12/26 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
会计专业求职信范文
2014/03/16 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
Python中相见恨晚的技巧
2021/04/13 Python
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python