Настройка сервера конвертации на базе ffmpeg для Kernel Video Sharing
Перед владельцами видеосайтов очень часто встает потребность в конвертации загружаемых видео в распространенные веб-форматы. В данной статье мы установим ffmpeg и весь необходимый софт для решения этой задачи.
В нашем распоряжении оказался сервер на базе Debian 8.8 Jessie. И первое, что нам необходимо сделать - это изменить пароль администратора выданный нам при установке ОС хостинг-провайдером:
passwd rootИ установить правильный часовой пояс:
dpkg-reconfigure tzdataУстанавливаем Yamdi и ImageMagic:
apt-get -y install yamdi imagemagick Устанавливаем пакеты для сборки:
apt-get -y install build-essential checkinstall gitУстанавливаем зависимости:
apt-get -y install libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html yasm zlib1g-dev libgsm1 libgsm1-dev libxvidcore4 libxvidcore-dev libdc1394-22 libdc1394-22-devУстанавливаем x264:
apt-get install -y x264 libx264-devУдаляем существующий libvpx:
apt-get remove libvpx-devСкачиваем исходники libvpx:
cd /usr/local/src
git clone https://chromium.googlesource.com/webm/libvpx
cd libvpxЗапускаем скрипт конфигурации сборки и запускаем сборку libvpx:
./configure
makeСборка может занять некоторое время, все зависит от конфигурации сервера, но пугаться не стоит.
Запускаем установку deb пакета libvpx:
checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no --install=yes --deldoc=yes --fstrans=no --defaultТеперь можем установить недостающий пакет libfdk_aac:
apt-get install libfdk-aac-devУдаляем существующий ffmpeg:
apt-get remove ffmpegНа выборе версии ffmpeg для установки стоит остановиться отдельно. Я устанавливаю последние версии пакета, так как они отличаются более высокой производительностью и в них исправлены известные проблемы безопасности. Если же вы используете готовые пресеты, то стоит остановить свое внимание на версии ffmpeg 0.8, а если в качестве кодека aac предпочитаете использовать libfaac-dev, вместо libfdk-aac, то на версии ffmpeg 3.1.2.
Скачиваем исходники ffmpeg:
cd /usr/local/src
wget https://ffmpeg.org/releases/ffmpeg-3.3.4.tar.gz
tar -zxvf ffmpeg-3.3.4.tar.gz
cd ffmpeg-3.3.4/Запускаем скрипт конфигурации сборки ffmpeg:
./configure \
--enable-gpl \
--enable-postproc \
--enable-pthreads \
--enable-swscale \
--disable-debug \
--enable-nonfree \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-version3 \
--enable-libdc1394 \
--enable-libfdk-aac \
--enable-libgsm \
--enable-libmp3lame \
--enable-libtheora \
--enable-libvorbis \
--enable-libx264 \
--enable-libxvid \
--enable-libvpxЗапускаем сборку ffmpeg:
makeНа этом этапе можно прерваться и выпить чашечку чая, так как процесс даже на мощных серверах довольно затяжной.
Запускаем сборку и установку deb пакета ffmpeg:
checkinstall --pkgname=ffmpeg --pkgversion="3.3.4-release-`date +%Y%m%d%H%M`" --backup=no --deldoc=yes --fstrans=no --install=yes --defaultЗапускаем сборку qt-faststart:
make tools/qt-faststartЗапускаем сборку и установку deb пакета qt-faststart
checkinstall --pkgname=qt-faststart --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default install -Dm755 tools/qt-faststart /usr/local/bin/qt-faststartПроверяем установленные компоненты:
x264
ffmpeg
qt-faststartДальше устанавливаем панель управления. Я предпочитаю использовать бесплатную VestaCP:
curl -O http://vestacp.com/pub/vst-install.shУдаляем предустановленный Exim и созданную по-умолчанию запись admin:
aptitude purge ~iexim4
groupdel adminЗапускаем установку панели (лишние компоненты, такие как MySQL и почтовый сервер отключены):
bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota no --exim no --dovecot no --spamassassin no --clamav no --mysql no --postgresql noОткрываем свежеустановленную панель управления https://you_ip:8083/list/user/ изменяем пароль администратора, а так же в настройках пакета отключаем создание бекапов, изменив количество резервных копий на 0.
Остается загрузить на сервер скрипт конвертации и добавить его в cron.
Последний этап - настроить Fail2ban:
Редактируем глобальные настройки Fail2ban:
nano /etc/fail2ban/jail.confБлокируем локальный перебор пароля:
ignoreip = 127.0.0.1/8 заменить на:
# ignoreip = 127.0.0.1/8Увеличиваем длительность блокировки с 10 минут до 1 суток:
bantime = 600заменить на:
bantime = 86400Увеличиваем длительность промежутка для поиска переборов с 10 минут до 1 часа
findtime = 600заменить на:
findtime = 3600Количество попыток ввода пароля сокращаем до трех:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6заменить на:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3Редактируем локальные настройки Fail2ban:
nano /etc/fail2ban/jail.local[ssh-iptables]
enabled = true
filter = sshd
action = vesta[name=SSH]
logpath = /var/log/auth.log
maxretry = 5
[vsftpd-iptables]
enabled = false
filter = vsftpd
action = vesta[name=FTP]
logpath = /var/log/vsftpd.log
maxretry = 5заменить на:
[ssh-iptables]
enabled = true
filter = sshd
action = vesta[name=SSH]
logpath = /var/log/auth.log
maxretry = 3
[vsftpd-iptables]
enabled = true
filter = vsftpd
action = vesta[name=FTP]
logpath = /var/log/vsftpd.log
maxretry = 3[vesta-iptables]
enabled = true
filter = vesta
action = vesta[name=VESTA]
logpath = /var/log/vesta/auth.log
maxretry = 5заменить на:
[vesta-iptables]
enabled = true
filter = vesta
action = vesta[name=VESTA]
logpath = /var/log/vesta/auth.log
maxretry = 3Перезапускаем Fail2ban:
service fail2ban restartПроверяем, что все правила активированы:
fail2ban-client statusДолжны получить
Status
|- Number of jail: 4
`- Jail list: vsftpd-iptables, vesta-iptables, ssh, ssh-iptables
Материал опубликован 2-06-2017, 20:31, его прочитали 5 162 раз(а).
Похожие публикации:
