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