Freelance Karelia
Блог, посвященный фрилансу, заработку в сети и системному администрированию
Фриланс и системное администрирование - почему бы и нет?
Шрифты в XFCE, Ubuntu Precise 12.04 и fglrx
Автор Waster | 27.04.2012 | Рубрика Полезности
После обновления XUbuntu до 12.04 с fglrx (видеодрайвер для AMD) стали коряво отображаться шрифты, как будто попортилось сглаживание. Решилось следующим образом:
Интересно, что с NVidia таких проблем со сглаживанием не появилось.
Почтовая система на Postfix с виртуальными доменами
Автор Waster | 04.08.2011 | Рубрика Администрирование
Недавно пришлось настраивать почтовую систему начального уровня, поэтому решил написать небольшое HOWTO, чтобы самому не забыть, и предоставить информацию для тех, у кого возникают проблемы.
Что будет включать в себя почтовая система:
- Почтовый сервер Postfix + виртуальные почтовые домены и пользователи
- PostfixAdmin для управления всем хозяйством через web
- Amavisd-new + SpamAssassin + ClamAV для борьбы со спамом и вирусами
- Dovecot в качестве POP3(S) и IMAP(S) сервера, а также LDA
- Механизм квотирования (Maildir++)
- Roundcube для веб-интерфейса к почтовым ящикам
Тестовая система: Ubuntu 11.04 server. Работаю под рутом, поэтому sudo опускаем.
Доменное имя для примера: example.com
1. Установка пакетов и создание пользователя для доступа к виртуальным почтовым ящикам
php5-mcrypt php5-intl amavisd-new spamassassin clamav clamav-daemon dovecot-imapd \
dovecot-pop3d mysql-server
# Почта будет храниться здесь в виде /home/vmail/DOMAINNAME/USERNAME
# Удаленные через PostfixAdmin домены/ящики буду храниться в /home/vmail/DELETED
mkdir -p /home/vmail/DELETED
# !!! UID 111 должен быть свободен, если он занят то выбираем свободный, и везде далее не забываем его поменять !!!
useradd -r -u 111 -g mail -d /home/vmail -s /sbin/nologin -c "Virtual mailbox" vmail
chown -R vmail:mail /home/vmail
chmod 770 /home/vmail
2. Установка PostfixAdmin
PostfixAdmin — веб-интерфейс управления виртуальными почтовыми доменами и пользователями.
Скачиваем последнюю версию с http://sourceforge.net/projects/postfixadmin:
wget POSTFIXADMIN_URL.tar.gz
tar -xvzf postfixadmin-2.x.x.tar.gz
mv postfixadmin-2.x.x postfixadmin
chown -R www-data:www-data postfixadmin
Создаем базу данных:
CREATE DATABASE postfix;
GRANT ALL ON postfix.* TO postfix@localhost IDENTIFIED BY 'postfixpass';
FLUSH PRIVILEGES;
Правим /var/www/postfixadmin/config.inc.php:
$CONF['configured'] = true;
...
$CONF['postfix_admin_url'] = 'http://example.com/postfixadmin';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfixpass';
$CONF['database_name'] = 'postfix';
...
$CONF['admin_email'] = 'postmaster@example.com';
...
$CONF['default_aliases'] = array (
'abuse' => 'abuse@example.com',
'hostmaster' => 'hostmaster@example.com',
'postmaster' => 'postmaster@example.com',
'webmaster' => 'webmaster@example.com'
);
...
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
...
$CONF['fetchmail'] = 'NO';
...
$CONF['mailbox_postcreation_script']='/usr/bin/sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
$CONF['mailbox_postdeletion_script']='/usr/bin/sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
$CONF['domain_postdeletion_script']='/usr/bin/sudo -u vmail /usr/local/bin/postfixadmin-domain-postdeletion.sh';
...
// Остальные параметры можно изменить по вкусу
Заходим на http://example.com/postfixadmin/setup.php:
Проверяем секцию «Checking for dependencies: «, там все должно быть «ОК».
Задаем «Setup password» и меняем $CONF['setup_password'] на полученный хеш.
Затем вводим новый Setup password, детали суперадмина и добавляем его.
Теперь можно зайти на http://example.com/postfixadmin, используя созданного суперадмина.
Добавляем в /etc/sudoers:
www-data ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postdeletion.sh
www-data ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-domain-postdeletion.sh
www-data ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postcreation.sh
...
Копируем скрипты, которые физически создают/удаляют домены/почтовые ящики после соответственных действий в PostfixAdmin:
cp /var/www/postfixadmin/ADDITIONS/postfixadmin-mailbox-postcreation.sh /usr/local/bin
cp /var/www/postfixadmin/ADDITIONS/postfixadmin-mailbox-postdeletion.sh /usr/local/bin
Правим в этих скриптах параметры basedir и trashbase(где есть):
...
trashbase=/home/vmail/DELETED
После этого нужно создать первый виртуальный домен example.com и хотя бы один ящик (приветственное письмо можно пока не отсылать, все равно не дойдет).
2. Настройка Postfix
Небольшое отступление. Я сознательно отказался от родного в postfix VDA и выбрал Dovecot LDA, поскольку для поддержки квот нужны патч и пересборка deb-пакета. С патчем квоты тоже работают хорошо, но обновление Postfix становится более затруднительным.
Правим /etc/postfix/main.cf:
myhostname = mail.example.com
myorigin = /etc/mailname
mydestination = $myhostname, localhost.example.com, localhost
...
# Таблица просмотра виртуальных доменов
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
# Таблицы просмотра почтовых псевдонимов для виртуальных почтовых доменов/ящиков
virtual_alias_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
# Таблицы просмотра каталогов для хранения почты
virtual_mailbox_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
# !!! GID для группы mail, если он отличается, то здесь и далее меняем !!!
virtual_gid_maps = static:8
virtual_mailbox_base = /home/vmail
virtual_minimum_uid = 111
dovecot_destination_recipient_limit = 1
# Транспорт для виртуальных доменов в virtual_mailbox_domains - Dovecot LDA
virtual_transport = dovecot
virtual_uid_maps = static:111
broken_sasl_auth_clients = yes
# Небольшие ограничения для отсылки, можно добавить и DNSBL, и т.д., кому как хочется
smtpd_recipient_restrictions =
permit_mynetworks,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
# Добавляем проверку на вирусы и спам через amavisd-new
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options=no_address_mappings
message_size_limit = 10485760
strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_helo_required = yes
Создаем файлы для таблиц просмотра MySQL, тем самым, связывая Postfix и базу данных для PostfixAdmin.
/etc/postfix/sql/mysql_virtual_domains_maps.cf:
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
#query = SELECT domain FROM domain WHERE domain='%s'
#optional query to use when relaying for backup MX
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
#expansion_limit = 100
/etc/postfix/sql/mysql_virtual_alias_maps.cf:
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100
/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf:
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf:
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' AND mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf:
user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' AND alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_mailbox_maps.cf:
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
#expansion_limit = 100
Немного безопасности:
chown -R postfix /etc/postfix/sql
Правим /etc/postfix/master.cf:
pickup fifo n - - 60 1 pickup
-o content_filter=
-o receive_override_options=no_header_body_checks
...
smtp-amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
dovecot unix - n n - - pipe
flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}
3. Настройка Amavisd-new+ClamAV+SpamAssassin
Правим /etc/amavis/conf.d/05-node_id:
$myhostname = "mail.example.com"
...
Правим /etc/amavis/conf.d/15-content_filter_mode (точнее раскомментируем соответствующие строчки):
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
...
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Правим /etc/amavis/conf.d/21-ubuntu_defaults в соответствиями со своими желаниями:
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_DISCARD;
$final_spam_destiny = D_PASS; # Только помечаем обнаруженный спам
$final_bad_header_destiny = D_PASS; # Только помечаем письмо с плохими заголовками
...
Правим /etc/amavis/conf.d/50-user:
# Добавляем поддержку виртуальных доменов в MySQL
@lookup_sql_dsn = (
['DBI:mysql:database=postfix;host=127.0.0.1;port=3306',
'postfix',
'postfixpass']);
.....
$sql_select_policy = 'SELECT domain FROM domain WHERE CONCAT("@",domain) IN (%k)';
...
Немного безопасности:
Добавляем в /etc/clamav/freshclam.conf:
NotifyClamd /etc/clamav/clamd.conf
Добавляем сервисных пользователей в группы:
adduser amavis clamav
Правим /etc/default/spamassassin:
...
CRON=1
Перезапускаем сервисы:
/etc/init.d/amavis restart
/etc/init.d/clamav-freshclam restart
/etc/init.d/clamav-daemon restart
4. Настройка Dovecot (IMAP,POP3,LDA)
Правим /etc/dovecot/dovecot.conf:
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
...
mail_location = maildir:/home/vmail/%d/%u
...
# !!! Не забываем проверить uid для vmail и gid для mail !!!
mail_uid = 111
mail_gid = 8
...
first_valid_uid = 111
last_valid_uid = 111
first_valid_gid = 8
last_valid_gid = 8
...
protocol imap {
...
mail_plugins = quota imap_quota
imap_client_workarounds = delay-newmail netscape-eoh
}
protocol pop3 {
...
mail_plugins = quota
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
...
postmaster_address = postmaster@example.com
mail_plugins = quota
}
...
auth_default_realm = example.com
auth default {
mechanisms = plain login
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
...
socket listen {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
group = mail
}
}
...
plugin {
quota = maildir:User quota
# Квота по умолчанию, затем переопределяется SQL-запросом userdb
quota_rule = storage=50M:messages=1000
# Дополнительная квота к корзине, чтобы можно было удалять сообщения при превышении квоты
quota_rule2 = Trash:storage=10M
# Сообщение об исчерпании 80% квоты
quota_warning = storage=80%% /usr/local/bin/quota-warning.sh 80
...
}
Правим /etc/dovecot/dovecot-sql.conf:
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfixpass
# Не забываем про uid и gid
password_query = SELECT username as user, password, concat('/home/vmail/', maildir) as userdb_home, concat('maildir:/home/vmail/', maildir) as userdb_mail, 111 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT concat('/home/vmail/', maildir) as home, concat('maildir:/home/vmail/', maildir) as mail, 111 AS uid, 8 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
...
Копируем dovecot.conf в dovecot-nowarning.conf и комментируем строчку:
# Необходимо во избежание цикла
#quota_warning = storage=80%% /usr/local/bin/quota-warning.sh 80
...
Создаем /usr/local/bin/quota-warning.sh:
PERCENT=$1
cat << EOF | /usr/lib/dovecot/deliver -d $USER -c /etc/dovecot/dovecot-nowarning.conf
From: postmaster@example.com
Subject: quota warning
Your mailbox is now $PERCENT% full. Please delete unnecessary emails.
EOF
На всякий случай устанавливаем бит выполнения на скрипты:
Перезапускаем сервис:
5. Установка Roundcube
Качаем и распаковываем последнюю версию:
wget ROUNDCUBE_URL
tar -xvzf roundcubemail-X.X.X.tar.gz
mv roundcubemail-X.X.X mail
chown -R www-data:www-data mail
Создаем базу данных для Roundcube:
>CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
>GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password';
>FLUSH PRIVILEGES;
cd /var/www/mail
mysql -u root -p roundcubemail < SQL/mysql.initial.sql
Идем на http://example.com/mail/installer/ и следуем инструкциям.
Удаляем каталог installer:
Правим /var/www/mail/config/main.inc.php в соответствии с нуждами, например:
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_user'] = '';
$rcmail_config['smtp_pass'] = '';
$rcmail_config['enable_caching'] = false;
$rcmail_config['login_lc'] = true;
$rcmail_config['auto_create_user'] = true;
$rcmail_config['dont_override'] = array('skin','default_imap_folders','keep_alive');
$rcmail_config['identities_level'] = 3;
$rcmail_config['create_default_folders'] = true;
$rcmail_config['protect_default_folders'] = true;
$rcmail_config['spellcheck_languages'] = array('en'=>'English');
$rcmail_config['preview_pane'] = true;
$rcmail_config['skip_deleted'] = true;
...
По умолчанию, Apache в Ubuntu не обрабатывает .htaccess в директории /var/www, поэтому правим /etc/apache2/sites-available/default:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Перезапускаем Apache:
На этом основная настройка почтовой системы закончена, остается создавать домены, почтовые ящики, проверить отсылку/чтение почты. Важное DNS-замечание: необходимо не забыть прописать MX-запись для домена (example.com) в виде mail.example.com и A-запись для mail.example.com, чтобы почта корректно стала ходить извне.
Естественно, что эта почтовая система начального уровня для небольших нагрузок, хотя дальнейшие усовершенствования обязательно нужны, будь то SMTP-аутентификация, DNSBL, грейлистинг, проверка заголовков и др., тем более, что реализуются они сравнительно просто.
Данная запись писалась по горячим следам, вполне возможно, что некоторые детали могли быть упущены, поэтому, как говорится, /var/log/ в помощь..8)
Plymouth и NVIDIA
Автор Waster | 22.05.2011 | Рубрика Полезности
Недавно у меня возникла проблема со splash-заставкой Plymouth на обновленной Ubuntu Natty, а именно возникала странная задержка перед появлением темы заставка (иногда даже и она не успевала появляться до GDM). Чинится это следующим образом:
chmod +x fixplymouth-natty
sudo ./fixplymouth-natty
После запуска скрипт спросит нужное разрешение и внесет необходимые изменения в конфигурации GRUB, Plymouth и др. Поддерживаются как GRUB, так и BURG.
Кому интересно, может изучить этот скрипт и посмотреть, какие именно файлы правит/создает, чтобы в случае чего можно было откатиться обратно.
Ссылки:
Организация видеотрансляции на сайте. VLC+Red5+Xuggler+steamStream.
Автор Waster | 02.08.2010 | Рубрика Администрирование
В этот раз я поделюсь рабочим решением для организации видеотрансляции в основе которого лежит связка Red5 и steamStream. Red5 — это RTMP-сервер с открытым исходным кодом, а steamStream — приложение Red5, которое по сути является рестримером RTP в RTMP. В качестве вспомогательных, но не менее важных «рабочих лошадок» будут выступать VLC и Xuggler (работа с видео при помощи Java).
Этот вариант трансляции, на мой взгляд, более «правильный» по сравнению со способом трансляции через VLC, описанным ранее, поскольку использует протокол RTMP, а не гонит FLV напрямую. Недостатки тоже есть: сложное решение, необходимость компиляции steamStream, и работает с Red5 до определенной ревизии SVN (было выяснено опытным путем).
Исходная система:ОС Debian Squeeze и камера Axis с MPEG-4 видео.
1. Установка VLC
# Подготовка
cd /usr/local/src
apt-get install make automake g++ gcc autoconf ffmpeg lua5.1 liblua5.1-0-dev libtag1-dev \
libdvbpsi-dev libcdio-dev libvcdinfo-dev libcddb2-dev libmad0-dev libavcodec-dev libavutil-dev \
libavformat-dev libswscale-dev libpostproc-dev libfaad-dev liba52-0.7.4-dev libmpeg2-4-dev \
libzvbi-dev libflac-dev
# Установка liveMedia
wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
tar -xvzf live555-latest.tar.gz
cd live
./genMakefiles linux
make
cd /usr/local/src
cp -r live/ vlc-1.1.0/extras/
# VLC
wget http://download.videolan.org/pub/videolan/vlc/1.1.0/vlc-1.1.0.tar.bz2
bzip2 -d vlc-1.1.0.tar.bz2
tar xvf vlc-1.1.0.tar
cd vlc-1.1.0
./configure --enable-faad --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \
--disable-v4l2 --disable-libv4l2 --disable-xvideo --disable-glx --disable-opengl --disable-visual \
--enable-realrtsp --enable-flac --with-live555-tree=extras/live \
--disable-dbus --disable-xcb > /tmp/1 2> /tmp/2
# В файле /tmp/2 можно будет смотреть ошибки и предупреждения процесса конфигурирования
# Если будет какая-нибудь ошибка, то необходимо установить соответствующий пакет Debian и
# запустить configure еще раз
make
adduser ipcam
cp -r /usr/local/src/vlc-1.1.0 /home/ipcam/vlc
chown -R /home/ipcam/vlc ipcam:ipcam
#!Запускать vlc от пользователя ipcam!
2. Установка Red5:
# Не знаю, как на данный момент, но подозреваю, что ситуация осталась та же.
wget http://flance.onego.ru/files/red5/red5_0.9.0-r3894_all.deb
dpkg -i red5_0.9.0-r3894_all.deb
3. Установка Xuggler:
chmod +x xuggle-xuggler.3.4.1012-i686-pc-linux-gnu.sh
./xuggle-xuggler.3.4.1012-i686-pc-linux-gnu.sh
Добавить
export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$XUGGLE_HOME/bin:$PATH
в начало /usr/lib/red5/red5.sh
4. Установка steamStream:
# Не забыть, что sun-java6-jdk находится в non-free пакетах
apt-get install sun-java6-jdk ant
# steamStream
wget http://flance.onego.ru/files/steamStream/steamStream.tar.gz
tar -xvzf steamStream.tar.gz
cp -r steamStream /usr/lib/red5/webapps
chown -R ipcam:ipcam /usr/lib/red5/webapps/steamStream/sdpdescriptors
# Jetm - необходимо для запуска
wget "http://downloads.sourceforge.net/project/jetm/jetm/jetm-1.2.3/jetm-1.2.3.tar.gz?use_mirror=citylan&ts=1280727327"
tar -xvzf jetm-1.2.3.tar.gz
cp jetm-1.2.3/lib/*.jar /usr/lib/red5/lib
# Копируем необходимы библиотеки для компиляции steamStream
cp /usr/local/xuggler/share/java/jars/xuggle-xuggler.jar /usr/lib/red5/lib
wget http://xuggle.googlecode.com/svn/trunk/repo/share/java/xuggle/xuggle-xuggler-red5/3.1.875.200908131110/xuggle-xuggler-red5-3.1.875.200908131110.jar
cp xuggle-xuggler-red5-3.1.875.200908131110.jar /usr/lib/red5/lib
Корректируем некоторые файлы в /usr/lib/red5/webapps/steamStream/WEB-INF/src/steamStream:
Application.java:
smf.setVideoHeight(HEIGHT);
где WIDTH,HEIGHT — размер картинки с камеры
ReStreamer.java:
...
private final int frNumerator = FPS;
где TSINTERVAL должно быть равным 1000000/FPS, например, если FPS = 10 кадров в сек., то TSINTERVAL = 100000. FPS — частота кадров видео с камеры.
Компилируем steamStream:
ant compile
# Должно получиться «BUILD SUCCESSFUL»
5. Запуск red5:
Проверяем логи в /usr/lib/red5/log/ на наличие ошибок.
6. Запуск VLC:
Создаем файл /home/ipcam/config со следующим содержанием:
setup teststream input <URL видеопотока с камеры>
setup teststream output "#rtp{dst=127.0.0.1,port=10000,sdp=file:///usr/lib/red5/webapps/steamStream/sdpdescriptors/stream.sdp}"
control teststream play
Создаем скрипт запуска /home/ipcam/start_vlc.sh со следующим содержанием:
Запускаем и проверяем наличие файла /usr/lib/red5/webapps/steamStream/sdpdescriptors/stream.sdp
К сожалению, и VLC имеет свойство иногда вырубаться, поэтому для стабильности лучше всего написать watchdog
.
7. Интеграция в HTML:
wget http://www.longtailvideo.com/jw/upload/mediaplayer.zip
# Распаковываем и кладем файлы player.swf и swfobject.js в один каталог с предполагаемой
# HTML-страницей, где будем показывать видео
Добавляем следующий HTML-код в страницу:
<div id="mplayer">this will be replaced by the SWF.</div>
<script type="text/javascript">// <![CDATA[
var so = new SWFObject('player.swf','player','480','360','9');
so.addParam('allowfullscreen','true');
so.addParam('flashvars','streamer=rtmp://<адрес сервера с запущенным Red5>/steamStream&provider=rtmp&file=stream.flv&bufferlength=0&autostart=true&controlbar=none&displayclick=fullscreen');
so.write('mplayer');
// ]]>
</script>
Открываем страничку и смотрим. Если видео не пошло — проверяем логи в /usr/lib/red5/log/.
P.S. В скором времени собираюсь также проверить вариант использования еще одного RTMP-сервера — Erlyvideo, который активно и с энтузиазмом на данный момент разрабатывается.
Ссылки:
- http://www.videolan.org
- http://code.google.com/p/red5/
- http://red5wiki.com/wiki/SteamStream
- http://www.xuggle.com/xuggler/
- http://erlyvideo.org/
- http://www.live555.com/liveMedia
- http://www.longtailvideo.com/players/jw-flv-player
Вышел DSPAM 3.9.0
Автор Waster | 31.01.2010 | Рубрика Администрирование
12.01.2010 наконец вышла долгожданная новая версия 3.9.0 антиспамового движка DSPAM. Новость более, чем знаковая, поскольку изначально разработанный и поддерживаемый Jonathan Zdziarski в 2003-2007 году он был заново принят на разработку сообществом dspam-community лишь в январе 2009 (пропускаем Sensory Networks).
Список нововведений и изменений по сравнению с 3.8.0 впечатляет:
- Наконец, добавлены шаблоны и многоязыковая поддержка в Web-UI.
- Множество исправлений в драйвера работы с базами данных.
- Новые опции конфигурирования
- И т.д.
Ссылки:
Текущие проекты
Рубрики
- Freelance (8)
- Администрирование (10)
- Всячина (7)
- Полезности (13)
Сейчас на сайте
-
Максимум посетителей (28) был 03.12.2010 в 13:18
Популярные
- Автоматическая проверка статуса посылки на russianpost.ru - 34 288 просмотра(ов)
- Организация видеотрансляции на сайте - 15 013 просмотра(ов)
- Организация видеотрансляции на сайте. VLC+Red5+Xuggler+steamStream. - 13 987 просмотра(ов)
- Передача видео с IP-камер D-Link - 11 068 просмотра(ов)
- Потоковое Flash-Video + ClipShare - 3 794 просмотра(ов)
Теги
-
swfobject дополнительный заработок getafreelancer scriptlance установка vlc coder fee arbitration escrow account withdraw money bid rentacoder ubuntu 8.04 payoneer фриланс поток видеопоток flash deadline помощь debian flash-плеер flv streaming flv трансляция FAQ apache вывод денег webcast проект комиссия ставка ffmpeg youtube project рейтинг проблема nvidia Freelance flash video ip-камера заказ webcasting
Время
- MSK: 2012-05-17 09:18
- BST: 2012-05-17 06:18
- CEST: 2012-05-17 07:18
- EDT: 2012-05-17 01:18
Календарь
-
Май 2012 Пн Вт Ср Чт Пт Сб Вс « Апр 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Архивы
- Апрель 2012 (1)
- Август 2011 (1)
- Май 2011 (1)
- Август 2010 (1)
- Январь 2010 (1)
- Декабрь 2009 (2)
- Ноябрь 2009 (1)
- Октябрь 2009 (2)
- Июнь 2009 (1)
- Апрель 2009 (3)
- Март 2009 (1)
- Февраль 2009 (3)
- Январь 2009 (2)
- Сентябрь 2008 (2)
- Июнь 2008 (4)
- Май 2008 (12)
