ffmpeg转码php配置,PHP+ffmpeg+nginx的配置实现视频转码(转)
最近项目中需要实现上传视频过程中自动转码MP4格式的功能,想到了用FFmpeg来实现它,但从来没有操作过,查阅了很多资料,遇到了好多问题,现在终于安装成功,觉得应该写下来与人分享一下,以免有人遇到和我一样的困境。
首先我是CentOs 6.7版本 环境是LNMP 我需要用PHP实现在上传过程中实施转码功能。
下面详细介绍一下安装ffmpeg扩展的操作
要求:具有完全root访问权限。
①从repo导入GPG密钥:
rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms
②安装ATRPMS Repo:
rpm -ivh http://dl.atrpms.net/all/atrpms-repo-6-7.el6.x86_64.rpm
输出应该是这样:
Retrieving http://dl.atrpms.net/all/atrpms-repo-6-7.el6.x86_64.rpm
Preparing... ##################################### [100%]
1:atrpms-repo ##################################### [100%]
③开始安装ffmpeg
yum install ffmpeg
这里可能需要等一会儿,会提示你选择【y/n/d】
选择y就可以了
其实到这里的时候ffmpeg已经安装成功了
④安装ffmpeg-devel
yum install ffmpeg-devel
同样等一会,需要一些时间
如果安装成功了,执行
ffmpeg -version
显示如下:
ffmpeg version 2.2.1
built 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-stripping
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
证明ffmpeg已经开始工作
写一下我自己操作执行的简单代码
ffmpeg -i /路径/视频名称.后缀名 /新的路径/新的名称.新后缀
如果报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.ini
查找disable_functions 把里面的exec与shell_exec删掉就可以了
:wq! 保存退出
并重启php-fpm
$cmd = ‘ffmpeg -i /home/1.wmv /home/1.mp4‘;
echo exec($cmd);
?>
如果成功的话 你可以在home文件下看到1.wmv 与1.mp4。
在多记录一些过程中出现的错误吧。
如果你是在:
(http://blog.csdn.net/loyachen/article/details/50909854)
这种方法安装的时候最后遇到了错误 发现exec执行不了 实现不了功能
你可以在代码文件夹下创建一个log.txt 并给它写入的权限
然后PHP中代码片段里
$cmd = ‘ffmpeg -i /路径/视频名称.后缀名 ‘-strict -2 /新的路径/新的名称.新后缀 2>/路径/log.txt‘;
重定向前加的数字解释
文件描述符:1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出
然后执行,会把错误信息记录在log.txt中。
我之前的错误提示是:
sh: /root/bin/ffmpeg: Permission denied
就是这个目录下权限是被拒绝的。或者是,你的视频不能直接在根目录下。放在别的文件夹中,赋予权限,才能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-libx265
的时候,
你指向HOME/bin这样,如果你以root的身份登录HOME最有可能/root。因此,也许替换$HOME用/usr/local ,那样就会安装在/usr/local/bin目录下,具体的我没有执行,这是查到的解决方案,希望可以给别人提供一些帮助。
原文:http://www.cnblogs.com/georgelu/p/6430475.html
ffmpeg转码php配置,PHP+ffmpeg+nginx的配置实现视频转码(转)相关推荐
- mac nginx加载php 配置,Mac下Nginx安装环境配置详解
环境信息: Mac OS X 10.11.1 Homebrew 0.9.5 正文 一.安装 Nginx 1.终端执行: brew search nginx brew install nginx 当前版 ...
- c语言游戏服务器源码,2018大师级C++游戏服务器编程实战(视频+源码)
免费 任务1: 课程预览PPT 免费 任务2: 课程概述 27:18 免费 任务3: IP详解第一部分 35:22 免费 任务4: IP详解PPT 免费 任务5: IP详解第二部分 31:45 免费 ...
- FFMPEG音频视频开发: 视频转码、合并、修改分辨率、比特率
一.环境介绍 操作系统介绍:win10 64位 FFMPEG版本: 4.4.2 QT版本: 5.12.6 二.FFMPEG下载 ubuntu系统下编译安装ffmpeg: https://blog.c ...
- 【Nginx 日志配置】【访问日志log_format】【错误日志error_log 指令】【Nginx的日志轮转】
文章目录 Nginx 日志配置 `log_format` 指令中常用的一些变量: 访问日志 案例 可以配置段:`http`, `stream`, `server`, `location`作用域. er ...
- docker安装nginx,配置nginx,并成功访问
[Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...
- nginx安装配置(图文教程)
nginx安装配置(图文教程) nginx介绍 nginx是一款使用C语言编写的高性能的HTTP和反向代理服务器.优点是占用内存小,并发能力强. nginx下载.安装 输入以下代码下载安装包 wget ...
- Nginx安装配置(lua全模块、GEOIP、加入系统服务)---无坑安装
nginx安装一般两种:A下载安装包安装.B直接yum在线安装 A:在线安装是最简便的,如果只需基本的web和转发服务就别往下看,直接[yum install nginx],少折腾,稳定才是王道. B ...
- 技术实践 | 网易云信视频转码提速之分片转码
导读:视频转码作为媒体处理的核心功能,在对大视频文件转码时,通常需要花费较长时间,为了提升服务质量,我们将重点提升视频转码的速率. 文|罗微恒 网易云信高级服务端开发工程师 在媒体内容传播行业中,视频 ...
- 【XXL-JOB】XXL-JOB定时处理视频转码
[XXL-JOB]XXL-JOB定时处理视频转码 文章目录 [XXL-JOB]XXL-JOB定时处理视频转码 1. 准备工作 1.1 高级配置 1.2 分片广播 2. 需求分析 2.1 作业分片方案 ...
- LiveVideoStack线上分享第三季(四):计算存储在视频转码中的应用
6月13日 19:30,LiveVideoStack线上分享第三季,第四期,镕铭半导体(NETINT),中国区研发总监,刘迅思将详细介绍视频硬件转码器的发展,计算存储如何与视频转码结合,并探讨接下来典 ...
最新文章
- Stream Part.4
- java投票输出票数最高前三名,给你喜欢的作品投票,票数前三名获本平台赠送书一本。|诗花朵朵...
- tomcat的安装及配置
- rtrim php,php rtrim() 格式化中文问题
- js获取下月时间_js 获取 本周、下周、本月、下月、本季度、下季度的开始结束日期...
- Django使用问题记录
- cas单点登录学习:cas服务端与客户端的搭建
- mysql无法输入数据库_关于mysql数据库无法录入中文的问题
- 物联网系统怎么部署服务器,如何搭建物联网云服务器
- java编写时间流逝_JAVA日期时间类如何使用
- zkPorter:Layer-2 的可组合可扩展性
- java设计模式之【工厂模式】
- Meta http-equiv属性详解(转)
- 采购要管好供应商,这几个坑勿踩
- vue-cropper图片裁剪网络图片展示时跨域
- 马化腾说视频号是全公司希望
- 计算机三级网络技术最全知识点总结【5】
- 硬干货:深入剖析 MySQL 索引和 SQL 调优实战
- COMP0037 Coursework
- 计算机网络课程设计小区组网,计算机网络课程设计-组建智能化小区局域网参考.doc...
热门文章
- 2020程序员VS码农,“金三银四”春招指南
- TensorFlow学习笔记(1)--TensorFlow简介,常用基本操作
- 会声会影2020软件新增功能详情
- android xbox 手柄,Xbox One手柄将正式适配安卓9.0系统 《堡垒之夜》第一时间支持...
- 【MATLAB教程案例7】基于Gardner环的定时误差检测matlab仿真
- [AHOI2014]骑士游戏
- 和老板比,员工弱爆了
- ArcGIS中的 Map 对象
- 【青春记忆】叹!雪……
- vue前端导出excel,js-xlsx、xlsxStyle,可设置样式、表格合并;(包含获取excel列数函数、excel合并表格缺少边框处理函数)