← Форум / Инструменты / FAQ — установка стримминг HTTP сервера NGINX + FFMPEG и LIBX264 (debian 6)
Итак, весь написанный ниже мануал применим на ОС — debian 6, скорее всего будет актуально и на ubuntu.
1) Добавляем следующие репозитории в файл /etc/apt/sources.list (добавляем следующие строчки):
СТАРЫЕ стирать не нужно! Сохраняем файл, закидываем его по пути (если вы его скачивали и редактировани у себя).
Далее пишем:
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
apt-get install debian-multimedia-keyring
Это нужно для того, чтобы не было проблем :)
И обновляемся:
2) Следующим шагом ставим нужные зависимости:
3) Устанавливаем nginx в качестве стримминг http сервера:
3.1) Пишем в терминале:
Cервер должен поставится по пути /etc/nginx/
3.2) Далее открывает конфиг (обычно это по пути /etc/nginx/site-avaibles/название_вашего_домена, ну или default) и дописываем в директиву server
- для mp4 модуля:
- для flv модуля:
Сохраняем изменения, перезагружаемся:
Сервер настроен !
4) Время для связки ffmpeg + libx264 + qt-faststart:
3.1) Инсталируем зависимости:
3.2) Для установки libx264 нужен yasm ни ниже версии 1.0, ставим его:
3.3) Теперь libx264:
3.4) Далее идет конвертер mp3:
3.5) Кодек libvpx, нужный для конвертирования VP8 видео:
3.6) И сам FFMPEG:
3.7) Если мы используем mp4 формат, то при конвертировании файлов, нужно мета данные (moov atom) переносить в начало файла, это делает qt-faststart, ставим его
На этом всё! В итоге мы имеем:
- сервер с поддержкой http стримминга (nginx)
- FFMPEG + LIBX264 (конвертируем файлы с лучшим алгоритмом компрессии)
- qt-faststart, как дополнение к самому FFMPEG, служит для переноса мета данных в видео файлах.
И главное — устанавливается самый свежий софт :)
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
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;
}
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
}
- для flv модуля:
location ~ .flv$ {
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
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
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
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
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
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
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
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 | Ссылка на пост (Смотрели 31272) | 14.03.12 21:52 Ответить |
нужно использовать 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]
не знаю как python инсталит, но я привык к чекинсталлу с нужными мне параметрами.. на выходе получаю полноценный пакет
помогите пожалуйста
у меня есть dedicated server и усановил Debian, PHP5, Apache2, MySQL, prFtp и.т.д.
как можно mpeg-2 файл в контейнер FLV, который, как всем известно, приспособлен для стриминга
помогите как можно настроить?
bolotbekn@mail.ru
спасибо…
Или это нужно при использовании протокола RTMP?
И обновляемся:
apt-get update
Так как с этой команду у меня на сервере обновляется и php с 5,3 на 5,4 что мне совсем не нужно(
А чтобы обновилось ваше пхп, нужно набирать apt-get upgrade. Эту команду вам вводить не нужно, так что и бояться нечего.
:(