PHP+ffmpeg+nginx的配置实现视频转码

您所在的位置:网站首页 nginx流程 PHP+ffmpeg+nginx的配置实现视频转码

PHP+ffmpeg+nginx的配置实现视频转码

#PHP+ffmpeg+nginx的配置实现视频转码| 来源: 网络整理| 查看: 265

最近项目中需要实现上传视频过程中自动转码MP4格式的功能,想到了用FFmpeg来实现它,但从来没有操作过,查阅了很多资料,遇到了好多问题,现在终于安装成功,觉得应该写下来与人分享一下,以免有人遇到和我一样的困境。

首先我是CentOs 6.7版本 环境是LNMP 我需要用PHP实现在上传过程中实施转码功能。下面详细介绍一下安装ffmpeg扩展的操作

要求:具有完全root访问权限。 ①从repo导入GPG密钥:

rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms11

②安装ATRPMS Repo:

rpm -ivh http://dl.atrpms.net/all/atrpms-repo-6-7.el6.x86_64.rpm11

输出应该是这样:

Retrieving http://dl.atrpms.net/all/atrpms-repo-6-7.el6.x86_64.rpmPreparing... ##################################### [100%] 1:atrpms-repo ##################################### [100%]123123

③开始安装ffmpeg

yum install ffmpeg11

这里可能需要等一会儿,会提示你选择【y/n/d】 选择y就可以了

其实到这里的时候ffmpeg已经安装成功了 ④安装ffmpeg-devel

yum install ffmpeg-devel11

同样等一会,需要一些时间

如果安装成功了,执行

ffmpeg -version11

显示如下:

ffmpeg version 2.2.1built on Apr 13 2014 13:00:18 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --enable-runtime-cpudetect --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --disable-strippinglibavutil 52. 66.100 / 52. 66.100libavcodec 55. 52.102 / 55. 52.102libavformat 55. 33.100 / 55. 33.100libavdevice 55. 10.100 / 55. 10.100libavfilter 4. 2.100 / 4. 2.100libswscale 2. 5.102 / 2. 5.102libswresample 0. 18.100 / 0. 18.100libpostproc 52. 3.100 / 52. 3.10012345678910111234567891011

证明ffmpeg已经开始工作

写一下我自己操作执行的简单代码

ffmpeg -i /路径/视频名称.后缀名 /新的路径/新的名称.新后缀11

如果报The encoder ‘aac’ is experimental but experimental codecs are not enabled的错误 ,说明acc编码器的编码器没有起作用,但如果你想使用它,就在命令里加上’-strict -2’

PHP代码用exec或者shell_exec函数的时候,需要修改php.ini。因为默认这两个函数在禁用列表里。 一般php.ini 文件都在/usr/local/php/etc/php.ini

vim /usr/local/php/etc/php.ini11

查找disable_functions 把里面的exec与shell_exec删掉就可以了 :wq! 保存退出 并重启php-fpm

12341234

如果成功的话 你可以在home文件下看到1.wmv 与1.mp4。

[参考地址:](http://www.scalescale.com/tips/nginx/ffmpeg-php-ffmpeg-centos-6-7/)

在多记录一些过程中出现的错误吧。 如果你是在: (http://blog.csdn.net/loyachen/article/details/50909854)这种方法安装的时候最后遇到了错误 发现exec执行不了 实现不了功能 你可以在代码文件夹下创建一个log.txt 并给它写入的权限 然后PHP中代码片段里

$cmd = 'ffmpeg -i /路径/视频名称.后缀名 '-strict -2 /新的路径/新的名称.新后缀 2>/路径/log.txt';11

重定向前加的数字解释 文件描述符:1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出 然后执行,会把错误信息记录在log.txt中。 我之前的错误提示是:

sh: /root/bin/ffmpeg: Permission denied11

就是这个目录下权限是被拒绝的。或者是,你的视频不能直接在根目录下。放在别的文件夹中,赋予权限,才能PHP执行。在根据上面的链接中的安装里,默认把扩展文件全部安装在了root文件夹下。在执行

PKG_CONFIG_PATH =“$ HOME / ffmpeg_build / lib / pkgconfig”./configure --prefix =“$ HOME / ffmpeg_build”-extra-cflags =“ - I $ HOME / ffmpeg_build / include”--extra-ldflags =“ - L $ HOME / ffmpeg_build / lib“--bindir =”$ HOME / bin“--pkg-config-flags =” - static“--enable-gpl --enable-nonfree --enable-libfdk-aac --enable -libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx26511的时候, 你指向HOME/bin这样,如果你以root的身份登录HOME最有可能/root。因此,也许替换$HOME用/usr/local ,那样就会安装在/usr/local/bin目录下,具体的我没有执行,这是查到的解决方案,希望可以给别人提供一些帮助。 0 0 PHP+ffmpeg+nginx的配置实现视频转码 PHP+ffmpeg+nginx的配置实现视频转码 PHP+ffmpeg+nginx的配置实现视频转码 FFMpeg实现视频的缩放 Linux下ffmpeg安装配置和实现视频转码指令 Ubuntu服务器的配置nginx 简单实现rtmp视频直播 php+nginx+ffmpeg 完成后台截图转码功能 ffmpeg视频转码 FFMPEG视频转码 一个FFMPEG视频转换的PHP类 nginx+php的配置 nginx+php的配置 nginx+php的配置 nginx+php的配置 Nginx+php的配置 nginx+php的配置 nginx+php的配置 nginx+php的配置 java并发面试题整理 立体匹配十大概念综述 1110. Complete Binary Tree Rweka安装记录 POJ 3363 Annoying painting tool 再看看 PHP+ffmpeg+nginx的配置实现视频转码 浅谈Activiti Modeler 的扩展 高并发秒杀系统分析 Hash表——深入理解 inline-block显示 POJ1797 Heavy Transportation(dijkstra变形,spfa) 解决 make menuconfig 出现'make menuconfig' requires the ncurses libraries.问题 springmvc 全局异常解决方案 whereis命令


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3