Настройка сервера конвертации на базе 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, его прочитали 7 468 раз(а).
Похожие публикации: