最近因为工作的缘故,为单位配置了网络电视直播平台,之间查阅了很多资料。现网络直播平台已经可以正常转播电视,也可在线转播网络课程。把之前的配置步骤放在这里,做个存档吧。

推送服务器

8核、4G以上内存、50G硬盘、系统Centos 6或7

一.FFMPEG编译安装

http://trac.ffmpeg.org/wiki/CompilationGuide/Centos

二.FFMPEG自动安装

1.升级系统

sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

2.安装Nux Dextop Yum 源

Centos7

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

Centos6

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

3.安装FFmpeg 和 FFmpeg开发包

sudo yum install ffmpeg ffmpeg-devel -y

4.测试是否安装

ffmpeg

2 服务器定时执行任务

为了服务器可以推送多线视频,需要使用crontab定时器来执行多线程任务。

crontab -e

添加内容模板:

*/1 * * * * ffmpeg -re -analyzeduration 8000 -probesize 200000 -i 源ip -strict -2 -c:v copy -c:a aac -bsf:a aac_adtstoasc -f flv rtmp://接收ip:1935/hls/ahtvhd

另外为了服务器稳定允许,在每天的固定时间重启ffmpeg,并且每周重新一次服务器。

30 0,7,15 * * * pgrep ffmpeg && killall -9 ffmpeg
0 4 * * 1,5 reboot

添加完任务后,需要重启crontab

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配
crontab -l 列出当前的crontab任务
crontab -r 删除当前的crontab任务
crontab -e (solaris5.8上面是 crontab -r) 编辑一个crontab任务,ctrl_D结束

三.推送服务器日志文件过大解决

一、解决邮件发送到:

vi /etc/crontab;将MAILTO=root修改为MAILTO="",:wq保存。
/etc/init.d/crond restart  重启计划任务使其生效

二、删除maildrop下大量的垃圾邮件:

find /var/spool/postfix/maildrop/ -type f |xargs rm -rf
rm /var/spool/mail/root

三、以上方法还是不行,那只能采用定时计划了删除maildrop下的文件了。
1、先建立a.sh文件,内容如下

#!/bin/sh` 

cd /var/spool/postfix/maildrop; ls | xargs rm -rf; 

(该脚本程序路径默认应该在root跟目录下,也就是绝对路径为 /home/a.sh)
2、chmod +x 对脚本文件添加执行权限,否则不能执行
3、vi /etc/crontab #编辑配置文件,在最后一行添加内容

* */3 * * * root  sh /root/a.sh  表示每隔3个小时执行一次

4、重启计划任务

service crond restart

LEAVE A COMMENTS