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

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

配置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中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值