本期就来为大家献上关于
express-ffmpeg云转码
的安装教程,网上之前也流传出类似教程,但是由于教程比较久远,现在根据教程已经无法正常安装使用了。所以本期为大家带来截止2018/10/30
的最新教程,本教程根据官方教程改动而来。
注意:下面的教程以Ubuntu16.04
系统为例,其他系统步骤相同,windows
系统依旧完美运行,安装方法不同而已。express-ffmpeg云转码
依赖于服务器环境,需要安装nodejs
、mongodb
、ffmpeg
、redis
以及nginx
等,所以本教程力图尽量详尽的列出安装步骤。
安装ffmpeg
Ubuntu16.04
安装ffmpeg
十分方便
sudo add-apt-repository ppa:djcj/hybrid
sudo apt-get update
sudo apt-get install ffmpeg
如果出现错误:add-apt-repository: command not found
可执行代码:
sudo apt-get install python-software-properties
sudo apt-get update
执行完之后,重新执行第一步即可,安装之后,命令行运行ffmpeg
即可查看效果。
安装nvm
及nodejs
假如是root
账号登陆,系统为ubuntu16.04
。
cd ~
mkdir git
cd git
git clone https://github.com/cnpm/nvm.git
source /root/git/nvm/nvm.sh
配置终端启动时自动执行source /root/git/nvm/nvm.sh
,在 ~/.bashrc
、 ~/.bash_profile
、~/.profile
或者 ~/.zshrc
文件添加以下命令:
vi ~/.bashrc
将source /root/git/nvm/nvm.sh
输入进去保存退出。
然后重新打开终端,输入命令:nvm
。
$ nvm
Node Version Manager
Usage:
nvm help Show this message
nvm --version Print out the latest released version of nvm
nvm install [-s] Download and install a , [-s] from source
nvm uninstall Uninstall a version
nvm use Modify PATH to use
nvm run [] Run with as arguments
nvm current Display currently activated version
nvm ls List installed versions
nvm ls List versions matching a given description
nvm ls-remote List remote versions available for install
nvm deactivate Undo effects of NVM on current shell
nvm alias [] Show all aliases beginning with
nvm alias Set an alias named pointing to
nvm unalias Deletes the alias named
nvm copy-packages Install global NPM packages contained in to current version
Example:
nvm install v0.10.24 Install a specific version number
nvm use 0.10 Use the latest available 0.10.x release
nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24
nvm alias default 0.10.24 Set default node version on a shell
Note:
to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders
如若显示以上类似内容,则nvm
安装成功。
查看最近nodejs
稳定版本号,前往nodejs
官网,查看稳定版本号。截止此教程发布,最新的稳定版本为8.11.3
,于是我们安装这个版本,执行安装命令:
nvm install 8.11.3
最后设置默认版本:
nvm alias default v8.11.3
这样每次重启,都会自动切换到nodejs v8.11.3
版本。
安装expressjs
express-ffmpeg云转码
利用expressjs
进行开发,我们进行全局安装即可,执行全局安装命令:
cd ~
npm install express -gd
安装mongodb
我们以最新的4.0
版本为例:
# 导入pulickey
:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
# 创建列表文件:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
# 更新apt
包数据库:
sudo apt-get update
# apt安装mongodb包:
sudo apt-get install -y mongodb-org
# mongodb
数据库配置:
进入根目录创建data
文件夹,在data
中再创建db
文件夹和log
文件夹,命令如下:
cd /
mkdir data
cd data
mkdir db
mkdir log
然后利用命令行运行mongodb
:
mongod --dbpath /data/db --fork --logpath /data/log/mongodb.log
执行如下命令进入mongo
命令行工具增加用户:
mongo
use admin
use ffmpeg
db.createUser({user:"ffmpeg",pwd:"ffmpeg",roles:[{role:"readWrite",db:"ffmpeg"}]})
db.auth("ffmpeg","ffmpeg")
如果显示1
则增加用户正确。
关闭mongodb
服务
ps -ef | grep mongo
mongo 18288 1 0 06:12 ? 00:00:00 mongod -f /database/mongodb/data/mongodb_27017.conf
kill 18288
最后用命令行重启mongodb
服务:
mongod -auth --bind_ip 127.0.0.1 --port 27017 --dbpath /data/db --fork --logpath /data/log/mongodb.log
当然你也可以把这个写进mongodb
的配置文件,然后利用配置文件启动mongodb
。
安装redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
make install
sudo cp src/redis-server /usr/local/bin/
sudo cp src/redis-cli /usr/local/bin/
redis-server &
如果执行make
命令出现错误,执行以下命令即可解决:
sudo apt-get install build-essential
安装nginx
及反向代理配置
sudo -s
nginx=stable # use nginx=development for latest development version
add-apt-repository ppa:nginx/$nginx
apt-get update
apt-get install nginx
安装之后,我们需要配置nginx
,进入/etc/nginx
,我们需要关注的主要是两个文件夹,sites-available和sites-enabled
,这两个文件夹里边的文件内容完全相同,这是因为site-available
中的文件建立了符号链接到sites-enabled
中文件,相当于快捷方式。我们开始设置我们自己的站点。
符号链接(
symbolic links
): 克服硬链接的局限性, 类似于快捷方式, 使用与硬链接相同。如果先删除文件,则会成为坏链接(broken
),ls
会以不同颜色(Ubuntu
, 红色)显示操作:ln -s itemlink
,可以link
文件和目录。
cd /etc/nginx/sites-available
cp default yourdomain.com
ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/yourdomain.com
开始配置yourdomain.com
设置反向代理
server {
server_name yourdomain.com;
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
}
}
最后重启nginx
服务:
/etc/init.d/nginx restart
若重启出错,删除sites-enabled
目录中的default
,然后重新执行重启命令即可!
克隆云转码源码并配置
环境装完了,现在开始安装云转码应用。 假设将云转码安装在根目录/www
中,如若没有此文件夹,请先创建:
cd /
mkdir www
cd /www
git clone https://gitee.com/quazero/express-ffmpeg
cd express-ffmpeg
创建config
文件夹,创建auth.js
配置文件:
mkdir config
cd config
vi auth.js
进行auth.js
的配置,复制以下代码放入auth.js
文件:
module.exports = {
user: "username",
password: "password",
db: "ffmpeg",
dbuser: "ffmpeg",
dbpassword: "ffmpeg",
secret: "yoursecret",
login: "/adminloginurl",
loginmsg: "404 Not Found"
};
注意:从上往下依次是登陆云转码平台的后台登录账号,密码,
mongodb
数据库名,数据库用户名,数据库密码。secret
是session
需要的秘钥,login
是后台登录地址,loginmsg
是后台未登录显示的内容。本教程安装的mongodb
数据库为ffmpeg
,用户名和密码都是ffmpeg
,可以自行进行修改。
安装pm2并运行源码
cd /www/express-ffmpeg
npm install
npm install -g pm2
pm2 start bin/www -i 0
pm2
是极其推崇的运行nodejs
应用的工具,-i 0
的意思是以集群方式按照cpu
线程数自动开启多线程运行,大幅提高运行效率。
设置环境为发行环境
设置node
运行环境为发行环境,并且重启服务,设置成发行环境会让应用速度更上一个台阶,并且不再显示错误信息。
export NODE_ENV=production
pm2 reload all --update-env
# 进入后台进行配置
最后打开yourdomain.com/admin
,输入设定的账号密码,本教程设置的是admin
,admin
,进入之后点击设置,在其中绑定yourdomain
,设置token
的key
,上传水印图片(推荐120*35
),域名分发设置是否开启,最后点击保存,大功告成。