本期就来为大家献上关于express-ffmpeg云转码的安装教程,网上之前也流传出类似教程,但是由于教程比较久远,现在根据教程已经无法正常安装使用了。所以本期为大家带来截止2018/10/30的最新教程,本教程根据官方教程改动而来。
注意:下面的教程以Ubuntu16.04系统为例,其他系统步骤相同,windows系统依旧完美运行,安装方法不同而已。
express-ffmpeg云转码依赖于服务器环境,需要安装nodejsmongodbffmpegredis以及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即可查看效果。

安装nvmnodejs

假如是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数据库名,数据库用户名,数据库密码。secretsession需要的秘钥,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,输入设定的账号密码,本教程设置的是adminadmin,进入之后点击设置,在其中绑定yourdomain,设置tokenkey,上传水印图片(推荐120*35),域名分发设置是否开启,最后点击保存,大功告成。

Last modification:April 20th, 2021 at 10:18 am
If you think my article is useful to you, please feel free to appreciate