Форум / Инструменты / FAQ — установка стримминг HTTP сервера NGINX + FFMPEG и LIBX264 (debian 6)
Итак, весь написанный ниже мануал применим на ОС — debian 6, скорее всего будет актуально и на ubuntu.

1) Добавляем следующие репозитории в файл /etc/apt/sources.list (добавляем следующие строчки):
deb http://www.debian-multimedia.org squeeze main non-free
deb-src http://www.debian-multimedia.org squeeze main non-free
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all

СТАРЫЕ стирать не нужно! Сохраняем файл, закидываем его по пути (если вы его скачивали и редактировани у себя).

Далее пишем:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -

apt-get install debian-multimedia-keyring

Это нужно для того, чтобы не было проблем :)

И обновляемся:
apt-get update

2) Следующим шагом ставим нужные зависимости:
apt-get install libxml2-dev libbz2-dev libcurl4-openssl-dev libmcrypt-dev libmhash2 libmhash-dev libpcre3 libpcre3-dev make

3) Устанавливаем nginx в качестве стримминг http сервера:

3.1) Пишем в терминале:
apt-get install nginx-extras

Cервер должен поставится по пути /etc/nginx/

3.2) Далее открывает конфиг (обычно это по пути /etc/nginx/site-avaibles/название_вашего_домена, ну или default) и дописываем в директиву server
- для mp4 модуля:
location ~ .mp4$ {
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
}

- для flv модуля:
location ~ .flv$ {
flv;
}


Сохраняем изменения, перезагружаемся:
/etc/init.d/nginx restart

Сервер настроен !

4) Время для связки ffmpeg + libx264 + qt-faststart:

3.1) Инсталируем зависимости:
apt-get install build-essential git-core checkinstall texi2html libfaac-dev
libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev
libvorbis-dev libx11-dev libxfixes-dev zlib1g-dev speex libspeex-dev


3.2) Для установки libx264 нужен yasm ни ниже версии 1.0, ставим его:
cd
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
sudo checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --default


3.3) Теперь libx264:
cd
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static
make
checkinstall --pkgname=x264 --default --pkgversion="3:$(./version.sh |
awk -F'[" ]' '/POINT/{print "+git"}')" --backup=no --deldoc=yes

3.4) Далее идет конвертер mp3:
sudo apt-get remove libmp3lame-dev
sudo apt-get install nasm
cd
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-nasm --disable-shared
make
sudo checkinstall --pkgname=lame-ffmpeg --pkgversion="3.99.5" --backup=no --default
--deldoc=yes

3.5) Кодек libvpx, нужный для конвертирования VP8 видео:
cd
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no
--default --deldoc=yes

3.6) И сам FFMPEG:
cd
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx
--enable-libx264 --enable-nonfree --enable-version3 --enable-x11grab --enable-libspeex
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no
--deldoc=yes --default
hash x264 ffmpeg ffplay ffprobe


3.7) Если мы используем mp4 формат, то при конвертировании файлов, нужно мета данные (moov atom) переносить в начало файла, это делает qt-faststart, ставим его
cd ~/ffmpeg
make tools/qt-faststart
checkinstall --pkgname=qt-faststart --pkgversion="$(./version.sh)" --backup=no
--deldoc=yes --default install -Dm755 tools/qt-faststart /usr/local/bin/qt-faststart



На этом всё! В итоге мы имеем:
- сервер с поддержкой http стримминга (nginx)
- FFMPEG + LIBX264 (конвертируем файлы с лучшим алгоритмом компрессии)
- qt-faststart, как дополнение к самому FFMPEG, служит для переноса мета данных в видео файлах.

И главное — устанавливается самый свежий софт :)
zerom1ndСсылка на пост (Смотрели 31387)14.03.12 21:52     Ответить
Ваше имя*
 E-mail* (не публикуется)
 
 
Если пишете о проблеме, то приложите, пожалуйста, ссылку на свой плеер отсюда — Плеер: Файл > Код > Ссылка
Вставка кода — [code][/code] дублировать ответы на e-mail
1
nu11set 15.03.12 - 20:23
Хороший мануал! поставил данные дистрибутивы, даже любой mp4, уже работает со стримингом, это нормально? правда долго грузится видео файл
2
zerom1nd 16.03.12 - 00:14
нормально, после конвертирования ffmpeg’ом мета данные пишутся в конец файла, их надо перенести обязательно вначало (иначе нужно будет ждать пока файл прочтется до конца) а потом только будет доступна перемотка..

нужно использовать qt-faststart или аналоги..
3
vlades123 19.03.12 - 20:22
хороший мануал, спасибо! ставил так систему
4
allserial 25.10.12 - 18:05
c qt-faststart
можно проще (пригодится для уже установленных систем):
Качаем отсюда:
https://github.com/danielgtaylor/qtfaststart


# git clone --depth 1 git://github.com/danielgtaylor/qtfaststart.git

# python setup.py install


Вызов такой-же

qtfaststart [options] infile [outfile]
5
4q4 25.10.12 - 19:03
возможно, на одну строчку и проще :)
не знаю как python инсталит, но я привык к чекинсталлу с нужными мне параметрами.. на выходе получаю полноценный пакет
6
wizardkg 12.03.13 - 15:57
Добрый день
помогите пожалуйста
у меня есть dedicated server и усановил Debian, PHP5, Apache2, MySQL, prFtp и.т.д.
как можно mpeg-2 файл в контейнер FLV, который, как всем известно, приспособлен для стриминга
ссылка
помогите как можно настроить?
bolotbekn@mail.ru
спасибо…

7
d0min0 18.07.14 - 21:51
Подскажите установку для mp4 и flv для CentOs
8
filmfree 05.01.13 - 05:55
Ребята, а после того как настроил сервер, в конфигурации плеера нужно ли ставить галочку в пункте "стриминг"?
Или это нужно при использовании протокола RTMP?
9
zerom1nd 05.01.13 - 06:26
нужно
10
vk_video1 14.01.13 - 23:30
это настройка для Debian 6.0 32 разрядной или 64?
11
Masha1 14.01.13 - 23:31
без разницы :)
12
djbarhat 12.04.13 - 00:17
как сделать что бы видео играла при нажатии старт как на браузере только с плеером ?
13
zerom1nd 12.04.13 - 01:07
не понял вопроса.
14
djbarhat 12.04.13 - 02:59
вот test.werof.ru/a.mp4 проигриваеться сразу и с любого места можно загрузить когда вставляю на сайт с плеером начинает загружать полностью видео, настраивал по вашему мануалу …
15
zerom1nd 12.04.13 - 03:01
потому что в хроме когда ссылку вбиваете включается нативный плеер html5 и в нем стримминг уже реализован
16
djbarhat 12.04.13 - 03:07
а как это на плеере сделать ?
17
zerom1nd 12.04.13 - 03:12
в html5 плеере будет и так все работать, но в других браузерах таких как FF, opera это не будет работать.. нужно использовать флеш плеер, черканите лучше мне в icq 444886246, разберемся
18
ssvonlain 20.04.14 - 22:26
Подскажите пожалуйста — как можно сделать всё без :

И обновляемся:
apt-get update

Так как с этой команду у меня на сервере обновляется и php с 5,3 на 5,4 что мне совсем не нужно(
19
DymatizeR 16.02.15 - 04:12
Эта команда не обновляет только список доменов для загрузки обновление, что и нужно для применение сего мануала.
А чтобы обновилось ваше пхп, нужно набирать apt-get upgrade. Эту команду вам вводить не нужно, так что и бояться нечего.
20
Sheenue 23.08.14 - 02:57
Очень хочу найти человека, который бы это все настроил за определенную сумму на моем сервере, т.к. моя техподдержка с этим не справилась. М
21
zerom1nd 23.08.14 - 02:58
пишите в icq 444886246 или skype zeromind3 помогу!
22
Sheenue 23.08.14 - 04:01
Спасибо за помощь. Была бы тут репутация, поставил бы плюс =)
23
Sheenue 23.08.14 - 02:58
Очень хочу найти человека, который бы это все сделал на моем сервере за определенную сумму, т.к. техподдержка с этим не справилась. Моя почта chistenko_n@mail.ru
24
Calepsol 14.04.15 - 00:11
-bash: libvorbis-dev: command not found
:(
25
onisfilm 21.10.18 - 21:14
Здравствуйте скажите а для 9 версии подойдет это описание
26
zerom1nd 21.10.18 - 21:17
черкани в skype — zeromind3 помогу
Сообщить об ошибке на сайте
 Uppod © 2008–2020
Сообщить об ошибке на сайте
Если ошибка относится к плееру, а не сайту, либо Вы хотите получить ответ на вопрос —
лучше написать на форуме