未解决问题:换成静态路由的话,怎么就 apt-get udpate 出现错误信息!
解决办法:么有设置网关
一、Ubuntu 系统下载地址:
https://certification.ubuntu.com/certification/hardware/201412-16241/
2、uiso9_cn_9.6.6.3300.exe 下载
3、ubuntu server12.04系统U盘安装详细教程
https://wenku.baidu.com/view/64e4c33c2b160b4e777fcf28.html
4、Ubuntu 14.04 Server开发者安装指南
http://xiaoquqi.github.io/blog/2015/09/09/ubuntu-14-dot-04-installation-guide-for-developer/?utm_source=tuicool&utm_medium=referral
5、网卡信息看查看(cat /proc/version Ubuntu 系统查看)
二、有多块硬盘,安装系统的时候先安装一个硬盘(例如:有一个固态硬盘和我普通硬盘,这时候先把普通硬盘卸载下来,只安装一个固态硬盘就可以)
开机、选择F10 (Dell 服务器自带的一个控制系统),为了创建一个RAID 0 如下所示:
创建好后,直接退出,重新启动即可。
三、上一步结束之后,选择F11,安装系统就可以了(USB安装)
具体安装步骤:
(14.04)安装英文版参考:http://www.win789.com/linux/2016/37
(16.04)安装中文版参考:http://www.win789.com/linux/2016/37
四、系统安装好后,查看硬盘信息,没有普通硬盘,我的错,是我忘记没有插入普通硬盘。
关机(poweroff),插入普通硬盘(1T),重启开机,发现还是没有加载过来,为什么?
解决办法:
服务器开机,系统自检,加载到PERC卡自检界面的时候,按
没有啊!
如果下面的State 不为Ready 和Online ,而是foreign 状态时候
移动到首页最上面 摁F2 选择foreign config 之后选择clear既可以
使用上下、键 选中:Create New VD
使用上下键选中这个硬盘,直接Ok就可以了
继续OK
这时候我们发现有了,分别为Group :0 Group :1(这个是刚才新创建的)
继续选择这个ID:为 1T的普通硬盘按住 F2键即可,
回车键,选择fast Init 直接OK就可以
继续 OK
创建完毕,
五、重启系统,查看硬盘信息,已经是有了的
查看磁盘具体信息
下面使用LVM硬盘管理及LVM扩容:
详情参考:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html
具体用到的命令:
1 sudo poweroff 2 ls /dev/sd* 3 sudo poweroff 4 ls /dev/sd* 5 df -lh 6 sudo fdisk /dev/sdb 7 sudo apt-get install lvm2 8 sudo fdisk -l 9 sudo fdisk /dev/sdb 10 sudo fdisk -l 11 sudo partprobe 12 sudo fdisk -l 13 sudo pvcreate /dev/sdb 14 sudo pvcreate /dev/sdb1 15 pvdisplay 16 sudo pvdisplay 17 sudo vgdisplay 18 sudo vgcreate VolGroup00 /dev/sdb1 19 sudo vgdisplay 20 sudo lvcreate -L 1.09T -n lvData VolGroup00 21 sudo mkfs -t ext3 /dev/VolGroup00/lvData 22 sudo mount /dev/VolGroup00/lvData /mnt 23 df -lh 24 cd /mnt 25 ks 26 ls 27 history >~/lvmoperation.txt
创建和管理LVM
1、 创建分区
使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。如下列图所示:
Disk /dev/sdb doesn't contain a valid partition table(磁盘/ dev / sdb不包含有效的分区表)
查看磁盘分区表
使用fdisk创建分区,根据设备文件的绝对路径(/dev/sdb)进入分区管理
六、网络、网卡配置
0、阿里云配置
auto eth1 (外网) iface eth1 inet static address 121.40.58.62 netmask 255.255.252.0 up route add -net 0.0.0.0 netmask 0.0.0.0 gw 121.40.59.247 dev eth1 auto eth0 (内网) iface eth0 inet static address 10.251.249.160 netmask 255.255.248.0 up route add -net 172.16.0.0 netmask 255.240.0.0 gw 10.251.255.247 dev eth0 up route add -net 100.64.0.0 netmask 255.192.0.0 gw 10.251.255.247 dev eth0 up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.251.255.247 dev eth0
1、网络配置,参照这个博客
ubuntu-server14.04 网络配置
1,首先运行ifconfig命令,发现网卡没有启动,只有本地环回。
2,查看服务器网卡:ifconfig -a
发现有四个网卡分别是:em1, eth1, p1p1, p1p2
3,加载网卡:ifconfig em1 up
4,配置ip,掩码,网管。有两种选择,一种是配置文件,另一种是命令行
***1,配置文件方式:
编辑文件:/etc/network/interfaces
添加下面内容:
auto em1
iface em1 inet static
address 127.127.127.127 #示例ip
netmask 255.255.255.0
gateway 127.127.127.254
让后重新启动网卡:
/etc/init.d/networking restart
ifconfig em1 down
ifconfig em1 up
ifconfig #查看
service networking restart #不用sudo
如果不行,就用命令行
***2,命令行方式
ifconfig em1 127.127.127.127 netmask 255.255.255.0
route add default gw 127.127.127.254 #添加网关
重启网卡如上命令。
5,现在ping一下网关能通就好,然后设置DNS服务器,编辑文件:
/etc/resolv.conf 添加如下:
nameserver 114.114.114.114 #这个可以用
重启网络,这样应该可以联网了。
Linux不能上网提示ping:unknown host 检查步骤??
问题:ping: unknown host www.baidu.com
解决办法:打开 sudo vim /etc/resolv.conf 添加一下内容
nameserver 114.114.114.114
重启网卡服务:sudo service networking restart
注意:Ubuntu关于修改resolv.conf重启失效的问题
在通常情况下,我们在ubuntu系统中可以通过resolv.conf来设置DNS地址。但重启后,resolv.conf中的地址仍然会返回为原来的内容。
这是因为resolv.conf文件其实是一个Link文件,如图:
在Ubuntu中有一个 resolvconf 的服务,这个服务用来控制/etc/resolv.conf的内容。所以一旦我们重启了系统或者该服务,那么/etc/resolv.conf文件中的内容将被还原为原来的内容。所以直接修改/etc/resolv.conf并不能解决这个问题。
解决办法:
(1)在网卡的配置文件中定义DNS地址:
iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameserver 8.8.8.8 8.8.4.4
(2)修改resolvconf服务的配置文件:
vim /etc/resolvconf/resolv.conf.d/base 在其中添加或修改: nameserver 8.8.8.8 8.8.4.4
最后:dig 看看是否设置成功
2、这里需要两个网卡,分别为:
em1(主网卡(外网+内网)):192.168.18.149
em2(内网网卡):10.10.10.100
说明:
em1 是连接的公网网线(当然了,可以是交换机分配过来的地址,但是必须是公网可以访问的):网段为:192.168.18.1 的局域网(这个以后会映射成公网IP地址)
em2 连接的是一个内网网线(一个局域网的路由器分配的ip地址),我们可以看到em2 为网段为:10.10.10.1 网段的局域网
这两个网卡都要配置成静态网卡
知识点:
【1】在虚拟机测试的时候就一个网口。
【2】忽略了服务器有四个网口,插得是em2网口,自己配置的是em1网口,导致怎么也ping不同局域网(em1 对应服务器 1号网口,em2 对应服务器 2号网口;em3 对应服务器 3号网口;em4 对应服务器 4号网口)
【3】重启网络:$ sudo /etc/init.d/networking restart 或 sudo ifdown eth0(em1)&& sudo ifup eth0(em1)
以上配置成功后,我们用一台笔记本电脑链接路由器(网段为:10.10.10.1 的局域网 ),我们可以看到这时候笔记本电脑的IP地址为:10.10.10.101 (注意区分:上面服务器的IP:10.10.10.100)
现在使用OBS推流到:10.10.10.100 服务器上去,
1、按照下面的步骤即可完成推流和播流效果(注意:以下都是在10.10.10.1网段网完成的)
查看本机(笔记本电脑IP):
本机访问直播服务器地址:10.10.10.100
OBS推流地址信息:
VLC播放结果:
播放地址:
播放结果:
2、192.168.18.1 网段的播流效果(注意:以下都是在192.168.18.1网段(相当于外网))
播放地址:
播放效果:
七、静态网卡配置
默认的DHCP 网卡配置信息
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto em1 iface em1 inet dhcp auto em2 iface em2 inet dhcp
现在我们修改为静态网卡信息(暂时没有配置路由信息) interfaces 为新建的网卡配置信息:
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto em1 iface em1 inet static address 192.168.18.125 netmask 255.255.255.0 auto em2 iface em2 inet static address 10.10.10.125 netmask 255.255.255.0
这个文件是默认(没修改之前的配置):interfaces-bak
配置完成后,重启网卡使设定生效:sudo /etc/init.d/networking restart
关闭网卡:(sudo) ifdown eth0 (注意:这里可能会稍微慢点,耐心等待)
开启网卡: (sudo) ifup eth0
重启网卡,优点是可以指定网卡,不影响其他网络接口
现在我们重新查看网卡地址和IP地址信息
知识点:
【1】查看Ubuntu网卡命令:ifconfig -a
【2】在虚拟机上会显示出:eth0 和 lo lo是本地回传
【3】在服务器上会显示出:em1、em2、em3、em4、lo 一共是4个网卡(1234分别对应4个以太网口)
【4】在服务器上 ifconfig 会只显示lo ,这说明其他四块网卡没有被加载,
【5】执行命令:ifconfig em1 up 加载网卡
【6】ifconfig em1 down 卸载网卡 加载网卡后,
【7】执行ifconfig 就会看到em1网卡被加载进来了,然后进行配置网卡。
加载剩余的2个网卡:
sudo ifconfig em3 up
sudo ifconfig em4 up
区别:
【0】/etc/init.d/network restart # 重启网卡服务
【1】ifconfig :设定网络参数使用的指令
up 启动指定网卡。启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)
down 关闭指定网卡。
【2】ifup、ifdown:激活与关闭某个网络适配卡
ifup {interface}
ifdown {interface}
这2个程序主要是搜寻/etc/sysconfig/network-scripts目录下的配置文件 (ifcfg-ethx) 来进行启动与关闭的,
ifconfig eth0 up 或者是 ifconfig eth0 down 可以使用 ifup eth0 或 ifdown eth0 来替代!,但是 ifup 与 ifdown 是以 /etc/sysconfig/network-scripts/ifcfg-eth[n ](这里的n取0,1,2……)的档案来进行激活的!所以 ifcfg-eth0 必须存在才能使用 ifup/ifdown eth0 也就是说ifup和ifdown必须要有相关的档案存在才能激活呦!
举个例子来说,上面我们要激活 eth0 这块网络卡的时候,那么你的 Linux 系统当中就必须要存在 /etc/sysconfig/network-scripts/ifcfg-eth0 这个网络适配卡的设定档案才行!同理可证!如果要激活 eth1 ,除了存在 eth1 这个实体网络卡之外,还要存在 ifcfg-eth1 才行! 而ifconfig eth0 up/down则不需要这两个档案存在。
这也就是ifconfig eth0 up/down与ifup/ifdown eth0的区别!
可以看出,所有的配置信息有已经生效了,现在我们在另外一台台式电脑(192.168.168.1 网段)通过ssh登录,看看是否可以远程登录
Ok,已经登录成功了,下一步OBS进行推流,测试公网和内网时候可以同时播放直播,以下为推流PC级
红色指示为:123456
推流成功,使用VLC去播放测试
OK@!测试Success
下一步,换成 网段为:10.10.10.1的PC机播放测试
VLC播放结果:
RTMP在线人数配置:
复制该文件到 Nginx 的html目录下
修改Nginx配置文件:
root html; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl {} location /control { rtmp_control all; }
浏览器查看该直播流状态:http://192.168.18.143/stat
待续.....
附带:阿里云多网卡配置信息:
查看网卡信息:121.40.58.38 (外网)、10.251.249.111(内网)
root@iZ236j3sofdZ:/usr/local/nginx/conf# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:16:3e:00:5e:0d inet addr:10.251.249.111 Bcast:10.251.255.255 Mask:255.255.248.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4671800 errors:0 dropped:0 overruns:0 frame:0 TX packets:1085948 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6192981968 (6.1 GB) TX bytes:950040800 (950.0 MB) eth1 Link encap:Ethernet HWaddr 00:16:3e:00:0f:12 inet addr:121.40.58.38 Bcast:121.40.59.255 Mask:255.255.252.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3434498 errors:0 dropped:0 overruns:0 frame:0 TX packets:2298996 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2301506180 (2.3 GB) TX bytes:8048436565 (8.0 GB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:4308 errors:0 dropped:0 overruns:0 frame:0 TX packets:4308 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:351121 (351.1 KB) TX bytes:351121 (351.1 KB)
网络配置信息
vim /etc/network/interfaces
auto lo iface lo inet loopback auto eth1 iface eth1 inet static address 121.40.58.38 netmask 255.255.252.0 up route add -net 0.0.0.0 netmask 0.0.0.0 gw 121.40.59.247 dev eth1 auto eth0 iface eth0 inet static address 10.251.249.111 netmask 255.255.248.0 up route add -net 172.16.0.0 netmask 255.240.0.0 gw 10.251.255.247 dev eth0 up route add -net 100.64.0.0 netmask 255.192.0.0 gw 10.251.255.247 dev eth0 up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.251.255.247 dev eth0
vim /etc/resolv.conf
options timeout:1 attempts:1 rotate nameserver 10.143.22.116 nameserver 10.143.22.118
软件安装
快速安装:https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04
一、Nginx:
http://nginx.org/download/nginx-1.10.3.tar.gz
Rtmp 模块
https://github.com/arut/nginx-rtmp-module/archive/v1.1.11.tar.gz
配置环境
apt-get install libreadline-dev libncurses5-dev libpcre3-dev \ libssl-dev perl make build-essential curl
检查配置文件
./configure --with-debug --with-stream --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-1.1.11/
二、Redis 服务器
https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Redis/redis-install.md
三、PHP5-fpm 安装
依赖软件安装
sudo apt-get install php5-fpm sudo apt-get install php5-gd # Popular image manipulation library; used extensively by Wordpress and it's plugins. sudo apt-get install php5-cli # Makes the php5 command available to the terminal for php5 scripting sudo apt-get install php5-curl # Allows curl (file downloading tool) to be called from PHP5 sudo apt-get install php5-mcrypt # Provides encryption algorithms to PHP scripts sudo apt-get install php5-mysql # Allows PHP5 scripts to talk to a MySQL Database sudo apt-get install php5-readline # Allows PHP5 scripts to use the readline function
查看php5-fpm运行进程:
www@ubuntu1:~/ssconsole$ ps -aux | grep php5 root 5189 0.2 0.1 333992 16520 ? Ss 09:08 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) www 5240 0.0 0.0 11756 900 pts/1 S+ 09:08 0:00 grep --color=auto php5
php-fpm.conf配置文件路径:/etc/php5/fpm/php-fpm.conf
开启、关闭php5-fpm 服务
sudo service php5-fpm stop
sudo service php5-fpm start
sudo service php5-fpm restart
sudo service php5-fpm status
提示错误信息
2017/03/23 20:07:53 [crit] 18683#0: *1 connect() to unix:/var/run/php7.0.9-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7.0.9-fpm.sock:", host: "127.0.0.1"
解决办法,修改:www.conf
sudo vi /etc/php5/fpm/pool.d/www.conf
修改前:
user = www-data group = www-data listen.owner = www-data listen.group = www-data ;listen.mode = 0660
修改后:
user = www group = www listen.owner = www listen.group = www listen.mode = 0660
重新启动Nginx和php5-fpm
sudo service nginx restart
sudo service php5-fpm restart
Nginx 提示错误信息:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决办法,执行以下代码,重启即可
sudo fuser -k 80/tcp
浏览器访问:http://192.168.18.150/index.php ,出现一下界面表示安装完毕
四、PHP-Redis 扩展
sudo apt-get install php5-redis
重启php5-fpm 是否安装成功:
www@ubuntu1:/etc/php5/fpm/pool.d$ php --ri redis redis Redis Support => enabled Redis Version => 2.2.4
安装后的扩展文件目录:/etc/php5/fpm/conf.d/20-redis.ini
我们可以看到,php5 安装的扩展文件都在这里(和PHP7的不大一样)
五、Phalcon扩展安装
一、命令行安装
1、存储库安装
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash
2、要安装Phalcon
sudo apt-get update sudo apt-get install php5-phalcon
3、更多信息:https://docs.phalconphp.com/en/3.2/installation
二、编译安装
www@ubuntu1:/etc/php5/fpm/pool.d$ sudo apt-get install php5-phalcon Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package php5-phalcon
看来不行啊!安装一下依赖,直接进行编译安装
sudo apt-get install re2c libpcre3-dev
安装:zephir
https://github.com/phalcon/zephir.git
$ cd zephir $ ./install-json $ ./install -c
www@ubuntu1:~/zephir$ zephir _____ __ _ /__ / ___ ____ / /_ (_)____ / / / _ \/ __ \/ __ \/ / ___/ / /__/ __/ /_/ / / / / / / /____/\___/ .___/_/ /_/_/_/ /_/ Zephir version 0.9.6a-dev-5628cc90de
编译phalcon 框架
phpize 找不到
www@ubuntu1:/usr/local/cphalcon$ phpize No command 'phpize' found, did you mean: Command 'phpize5' from package 'php5-dev' (main) phpize: command not found
安装一个:sudo apt-get install php5-dev
切换目录到:/usr/local/cphalcon/build/php5/64bits ,执行phpize 生成配置文件
开始编译:
www@ubuntu1:/usr/local/cphalcon$ sudo zephir build —backend=ZendEngine3
这里比较慢点,稍等....
编译完成后:查找刚才编译的 phalcon.so 文件,使用以下方式
www@ubuntu1:/usr/lib/php5/20121212$ sudo find / -name phalcon.so /usr/lib/php5/20121212/phalcon.so /usr/local/cphalcon/ext/.libs/phalcon.so /usr/local/cphalcon/ext/modules/phalcon.so
!!!切记不可以把这个扩展文件添加在php.ini (如果是php7的话,直接是可以的),php5是不可以的
新建一个phalcon.ini 的配置文件
sudo vim /etc/php5/fpm/conf.d/phalcon.ini
内容如下:
www@ubuntu1:/usr/lib/php5/20121212$ cat /etc/php5/fpm/conf.d/phalcon.ini extension=phalcon.so
重启php5-fpm 安装成功了
其实所有的扩展文件都在这里
六、Mysql
http://www.cnblogs.com/tinywan/p/6641780.html
=====================openresty 系统搭建========================
1、OpenResty编译或运行时所需要的软件包
apt-get install libreadline-dev libncurses5-dev libpcre3-dev \ libssl-dev perl make build-essential
2、下载、解压、切换到工作目录
wget https://openresty.org/download/openresty-1.11.2.1.tar.gz tar -xvf openresty-1.11.2.1.tar.gz cd openresty-1.11.2.1
3、检测配置文件信息
./configure \ --prefix=/opt/openresty \ --with-debug \ --with-lua51 \ --with-luajit \ --without-http_redis2_module \ --with-http_iconv_module \ --with-stream \ --with-http_stub_status_module \ --with-http_xslt_module \ --with-stream_ssl_module \ --with-http_realip_module \ --with-http_ssl_module \ --add-module=../stream-lua-nginx-module\ --add-module=../nginx-rtmp-module-1.1.11/
提示错误:./configure: error: the HTTP XSLT module requires the libxml2/libxslt
解决办法
sudo apt-get install libxml2 libxml2-dev libxslt-dev sudo apt-get install libgd2-xpm libgd2-xpm-dev
--with-debug 调试RTMP :error_log logs/error.log debug;
4、在上一步中,最后没有什么 error 的提示就是最好的。若有错误,最后会显示 具体原因可以看源码包目录下的 build/nginx-VERSION/objs/autoconf.err文件查看。若没有错误,则会出现如下信息:
5、编译:根据上一步命令提示,输入gmake
6、安装:输入gmake install
7、安装完毕
Nginx.conf 配置文件:
自动切片脚本autoRecordedHls.sh:
#!/bin/bash :<<tinywan [1]author:Tinywan [2]log_format: [0] 语法格式:echo -e "\033[31m $msg \033[0m" >>log_file.log [1] error===>红色(31m):错误日志信息 [2] info===>绿色(32m):命令成功执行、URL回调成功、打印正确数据信息 [3] warn===>黄色(33m):参数不存在、文件不存在、命令拼写错误 [3] debug===>Blue色(34m): debug [3]date:2016-11-04 10:23:10 [date '+%Y-%m-%d %H:%M:%S'] tinywan PATH=/usr/local/bin:/usr/bin:/bin YM=`date +%Y%m` FLOG=/home/tinywan/bin/recorded_${YM}.log #设置日志级别 loglevel=0 #debug:0; info:1; warn:2; error:3 TIME=`date '+%Y-%m-%d %H:%M:%S'` function LOG(){ local log_type=$1 local LOG_CONTENT=$2 logformat="${TIME} \t[${log_type}]\tFunction: ${FUNCNAME[@]}\t[line:`caller 0 | awk '{print$1}'`]\t [log_info: ${LOG_CONTENT}]" { case $log_type in debug) [[ $loglevel -le 0 ]] && echo -e "\033[34m${logformat}\033[0m" ;; info) [[ $loglevel -le 1 ]] && echo -e "\033[32m${logformat}\033[0m" ;; warn) [[ $loglevel -le 2 ]] && echo -e "\033[33m${logformat}\033[0m" ;; error) [[ $loglevel -le 3 ]] && echo -e "\033[31m${logformat}\033[0m" ;; esac } | tee -a $FLOG } echo -e "\r\n \033[34m------------------------------------------------------Shell Script Start -------------------------------------------- \033[0m " >> $FLOG MIN_DURATION=20 REDIS_HOST='127.0.0.1' REDIS_PORT='6379' REDIS_AUTH='tinywanredis' REDIS_DB=12 STREAM_NAME=$1 FULL_NAME=$2 FILE_NAME=$3 BASE_NAME=$4 DIR_NAME=$5if [ -z "${STREAM_NAME}" ];then LOG error "STREAM_NAME is null" exit 1 fi #echo -e "\033[32m [SUCCESS][$TIME]: $@ \033[0m" >>$FLOG LOG debug $@ if [ -z "${FULL_NAME}" ]; then LOG error "FULL_NAME is null" exit 1 fi if [ ! -s "${FULL_NAME}" ]; then LOG error "File not exists or zero size " rm -f ${FULL_NAME} exit 1 fi DURATION=`ffmpeg -i ${FULL_NAME} 2>&1 | awk '/Duration/ {split($2,a,":");print a[1]*3600+a[2]*60+a[3]}'` if [ $(echo "$duration < $MIN_DURATION"|bc) = 1 ]; then LOG error" Duration too short, FULL_NAME=${FULL_NAME}, DURATION==${DURATION}" rm -f ${FULL_NAME} exit 1 fi #echo "[DEBUG1][$TIME] Video Record : FULL_NAME=$FULL_NAME, FULL_NAME=${FULL_NAME}, DURATION=${DURATION}" >> $FLOG /usr/bin/ffmpeg -y -ss 00:00:10 -i ${FULL_NAME} -vframes 1 ${DIR_NAME}/${BASE_NAME}.jpg /usr/bin/ffmpeg -y -i ${FULL_NAME} -vcodec copy -acodec copy ${DIR_NAME}/${BASE_NAME}.mp4 FILE_SIZE=`stat -c "%s" ${DIR_NAME}/${BASE_NAME}.mp4` FILE_TIME=`stat -c "%Y" ${FULL_NAME}` LOG debug "Video: FILE_NAME=${FILE_NAME}, DURATION=${DURATION}, FILESIZE=${FILE_SIZE},FILETIME=${FILE_TIME}" URL="http://127.0.0.1/recordDone?streamName=${STREAM_NAME}&baseName=${BASE_NAME}&duration=${DURATION}&fileSize=${FILE_SIZE}&fileTime=${FILE_TIME}" RESULT=$(curl ${URL} 2>/dev/null) if [ "${RESULT}" != "200" ]; then LOG error "recorded rallBakc Error ${STREAM_NAME}" else LOG info "recorded rallBakc OK ${STREAM_NAME}" fi mkdir -p ${DIR_NAME}/${BASE_NAME} /usr/bin/ffmpeg -i ${FULL_NAME} -flags +global_header -f segment -segment_time 3 -segment_format mpegts -segment_list ${DIR_NAME}/${BASE_NAME}/index.m3u8 -c:a copy -c:v copy -bsf:v h264_mp4toannexb -map 0 ${DIR_NAME}/${BASE_NAME}/%5d.ts LOG info "slice OK" cd ${DIR_NAME} find ./ -mindepth 1 -maxdepth 3 -type f -name "*.flv" -mmin +10080 | xargs rm -rf #LOG warn "${TIME}" exit 1
=============Live HLS直播和M3U8和MP4点播系统=================
详细部署请见我的另外一篇博客: http://www.cnblogs.com/tinywan/p/6639360.html
=============Redis 数据库安装=================
参考我的Github:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Redis/redis-install.md
Ubuntu Server 16.04.1安装配置图解教程:http://www.win789.com/linux/2016/37039.html
Ubuntu 16.04 Server Edition 英文版安装教程:http://www.jb51.net/os/491038.html