LINUX.ORG.RU

Сообщения i82

 

alsa + ffmpeg capture + разные пользователи

Что-то не пойму, а почему не получается записывать через ffmpeg микрофон пользователя xxx из сервиса, работающего под пользователем yyy? Это в alsa так и задумано?..

 ,

i82
()

nginx + rtmp + ffmpeg + нарастающая задержка в ffplay

Всем привет и с наступившим НГ.

Пытаюсь сделать трансляцию звука с микрофона в сеть. Чего только не пробовал, сейчас вот остановился на использовании nginx с плагином rtmp. И всё вроде бы работает и есть надежда на чудо... Но вот возникает одна проблема (которую, кстати, я наблюдал и на icecast2). А именно - при проигрывании потока с использованием ffplay со временем набегает задержка в трансляции - от ~1/2 секунды в начале, до десятков секунд после нескольких часов.

Подозреваю, что ffplay почему-то не успевает своевременно проиграть поток и в силу накопления где-то внутрях он со временем буферизируется и распухает.

Как это победить?

Конфиги и параметры:

1) вещание с микрофона (source)

  ffmpeg -fflags nobuffer -re -f alsa -i hw:0,0 -c:a nellymoser -ar 11025 -ab 8k -ac 1 -f flv rtmp://${SERVER}/live/1

2) прослушивание потока (client)

  ffplay -probesize 32 rtmp://127.0.0.1/live/1

3) rtmp-сервер (nginx)

  rtmp {
      server {
         application live {
              live on;
              record off;
          }
      }
  }

 , , ,

i82
()

QTreeView + setRootIndex + model reset

Как быть, если в модели, установленной для QTreeView произошёл reset и поменялись индексы, в том числе root-индекс, установленный в QTreeView (через setRootIndex)?

 

i82
()

Трансляция звука с микрофона в сеть

Есть ли какие-то решения, позволяющие получить real-time звучание в топологии «один-ко-многим», без мультикаста. Я пробовал icecast2/darkice, ffmpeg/rtp, ffmpeg/ffserver. Но всё это меня не устроило. Какое-то глюкалово, в целом.

Кто решал, подскажите?

 

i82
()

Atlassian Confluence - upload файла с русским именем

Кто сталкивался с проблемой,

Не работает загрузка файлов с русскими именами. Вылетает Java NPE:

[confluence.plugins.dragdrop.UploadAction] execute Failed to save file.

В трекере Confluence есть что-то похожее, но как исправить - нет:

https://jira.atlassian.com/browse/CONF-31088

?

 ,

i82
()

QAbstractProxyModel + subtree

Всем привет,

Не могу догнать как сделать прокси-модель, которая отображала бы поддерево исходной модели.

Итак, к примеру - есть QAbstractItemModel:

A
-B
--C
--D
-E
--F
--G

Хочется в определённую вьюху отображать часть исходной модели, к примеру при выборе B:

B
-C
-D

Как вариант, пробую реализовать метод mapToSource прокси-модели следующим образом:

QModelIndex TRDeviceFilterModel::mapToSource(const QModelIndex &proxyIndex) const
{
	if (proxyIndex == QModelIndex())
		return m_root;

	return QSortFilterProxyModel::mapToSource(proxyIndex);
}

Но что делать с mapFromSource? Как его реализовать? И вообще, правильно ли задачу выделения поддерева реализовывать именно так?

Ещё у меня начинаются какие-то проблемы с фильтрацией...

Если кто знает как это делается, прошу помощи. Или подскажите где посмотреть :)

 

i82
()

QTreeView: отображение в состоянии expanded

Добрый день,

Кто-нибудь знает, каким образом можно сделать так, чтобы QTreeView отображался развёрнутым?

Сделал развёртывание узлов через делегат, но, кажется, это не верный путь - плывут индексы в proxy-модели.

Как вариант - таймер, но неужели нельзя как-то проще?..

 ,

i82
()

Проект JWasm форкнут!

Ввиду отсутствия развития, поддержки, а также недоступности ресурсов JWasm в последнее время, нами ( XVilka, i82) было принято решение о создании форка этого проекта.

JWasm представляет собой свободную реализацию MASM-совместимого x86-ассемблера, способного генерировать код для 16, 32 и 64-битных платформ. JWasm является переписанным ассемблером Watcom/Wasm, поддерживающим создание объектных файлов для DOS, Windows, Linux, OS/2 и FreeBSD. Написанный на C, JWasm может использовать для сборки множество компиляторов (Open Watcom, MSVC, GCC).

JWasm распространяется под лицензией Sybase Open Watcom Public License, признанной открытой OSI, но несвободной FSF.

Желающие присоединиться к развитию проекта — welcome!

Страница на Github

Сайт проекта

Перемещено splinter из opensource

 , , jwasm,

i82
()

локальный reddit + поиск

Кто поднимал reddit у себя, как там поиск прикрутить? Что-то не пойму...

 , ,

i82
()

Работа в Акронис

Парни, кто что знает о работе в сабже. Поделитесь информацией.

 , ,

i82
()

Хитрый проброс соединения

Всем привет,

Пытаюсь придумать как сделать следующую штуку:


    /--------------проброс порта?---------------------V

[PC+WWW] < --- > [NAT] < --- ( internet ) ---> [HTTP(s)-сервер] < --- > [ADMIN]

    ^- - - - - - - - - - - - - Web-управление - - - - - - - - - - - - - - -/

Итак, если подробнее. Есть комп [PC+WWW] за NAT с веб-сервером. Есть HTTP-сервер (apache2), к которому [PC+WWW] коннектится каждые 30 секунд. Есть админский комп - [ADMIN]. Задача сделать так, чтобы администратор мог достучаться до WWW-сервиса, расположенного на [PC+WWW].

Как я себе это вижу. При очередном коннекте со стороны [PC+WWW], если есть необходимость, локальный порт на [PC+WWW] пробрасывается через HTTP-туннель и отображается на некоторый порт на HTTP-сервере. Далее, админ (зная этот порт, не важно как) просто подключается к HTTP-серверу и через туннель ходит на PC за NAT'ом.

Сделать такое реально, я не сомневаюсь, т.к. через ssh и reverse port forwardong всё работает. Но, нужно решение именно в такой схеме.

Кто сталкивался с подобной задачей, прошу подсказать куда копать.

 , , ,

i82
()

C/C++ разработчики Linux (Москва)

В российскую компанию, являющуюся лидером в разработке средств защиты информации, требуются системные разработчики, знающие и любящие Linux, а также имеющие склонность и желание к постижению нового в областях системного и прикладного программирования.

Позиция предполагает участие в разработке и создании программно-аппаратных средств (криптографической) защиты информации; средств электронно-цифровой подписи. В роли разработчика также придётся отвечать за проектирование элементов архитектуры, определение состава и назначения компонентов, выбор соответствующих задачам методов и средств.

Обязательно:

  • Уверенное владение C/C++
  • Знание скриптового языка (perl, Python, ...)
  • Знание Linux на уровне системного программиста
  • Опыт сборки Linux системы
  • Положительный опыт работы в команде, умение использовать командные средства разработки

Желательно:

  • опыт программирования для ядра Linux
  • опыт работы с криптографическими стандартами
  • знание архитектуры x86, ассемблера и технологий виртуализации
  • наличие open-source проектов или участие в оных

Условия:

  • Полное соблюдение ТК
  • Гибкий график работы
  • Заработная плата (по итогам собеседования)
  • Соц. пакет: корпоративный врач, ДМС с первого дня работы, оплата больничного
  • Обучение в процессе работы, посещение профессиональных конференций, тренингов
  • Офис на ст. м. Электрозаводская, 3 минуты пешком от метро

Интересующихся, прошу обращать на себя внимание:

TO: Rusanova Eleonora <e.rusanova@securitycode.ru>
CC: Matveychikov Ilya <i.matveychikov@securitycode.ru>

 , ,

i82
()

Дешёвая x86 система

Есть ли такие в природе такие конфигурации, чтобы можно было собрать рабочий x86 девайс за ~100 у.е. ?

От платы требуется наличие RS-232, USB, VGA, PS/2, Ethernet 10/100, звука, а также поддержки работы на этом железе Linux при загрузке с флешки (обычная на USB или CF).

Кто знает, подскажите? Каков вообще минимум по цене?

 ,

i82
()

GnuPG encoding ХЕЛП

Прислали зашифрованное PGP сообщение по почте. Расшифровать я его - расшифровал, но прочитать не могу, т.к. какая-то зверская кодировка стоит KOI8-R :)

-----BEGIN PGP MESSAGE-----
Charset: KOI8-R
Version: GnuPG v1.4.9 (MingW32)

Вроде бы должно `iconv -f koi8-r -t utf8 file` помогать, но нет. Для примера привожу первую строку сообщения, где ОДНОЗНАЧНО идёт приветствие:

приветствую
ÐÒÉ×ÅÔÓÔ×ÕÀ

Кто знает, подскажите пож. как такую пертушку побороть?

 ,

i82
()

Непонятки с настройкой apache

Всем привет,

Пытаюсь реализовать на сервере такую схему:

 / -> (directory, deny)
 /admin -> (directory, allow)
 /api/1/status -> (location, allow)

Использую такой конфиг:

	<Directory "/opt/srv/www">
		Order Allow,Deny
	</Directory>

	<Directory "/opt/srv/www/admin>
		Options Indexes FollowSymLinks
		Allow from all
	</Directory>

	<Location "/api/1/status">
		SetHandler perl-script
		PerlResponseHandler x::response
		Allow from all
	</Location>

Всё вроде бы работает, но в error-логах апача при доступе появляется сообщение:

[client 127.0.0.1] client denied by server configuration: /opt/srv/www/1

Странно как-то. Скрипт отрабатывает нормально, доступ ко '/' и '/admin' нормальный. Как избавиться от данного сообщения?

 ,

i82
()

Пропадает нумерация страниц после сносок

Почему-то пропадют номера страниц, после того, как появляется первая сноска оформленная как footnotetext/footnotemark. То есть, к примеру, до 5-й страницы всё нормально, а на 6-й и далее, где появилась первая сноска, уже нет номеров.

Что делать?

 

i82
()

Непонятки с iptables

Коллеги, разъясните пожалуйста, что может происходить?

Есть 2 устройства (условно, D63 и D64) - на каждом по одному 1G интерфейсу в общую сеть и по одному 10G интерфейсу, друг на друга. Схема примерно такая:



         D64                                   D63
<=1G=> | eth0 : 172.17.5.202/22    |         | eth1  : 172.17.0.2/16     | <=1G=>
       |                           |         |                           |
       | eth3 : 192.168.100.64/24  | <=10G=> | eth11 : 192.168.100.63/24 |
       |              /            |         |                           |
       |     (tun00e...tun07e)     |
       |              /            |
       |      ping 172.17.0.2      |
              

       # ip route show dev eth3
       172.17.0.0/16  scope link 
       192.168.100.0/24  proto kernel  scope link  src 192.168.100.64

На D64 запускается приложение, которое создаёт 8 (по числу процессоров) TUN-интерфейсов с именами (tun00e..tun07e) после чего происходит хитрая настройка фильтра пакетов так, чтобы локально генерируемый на D64 в сторону D63 (например, с использованием ping) трафик распределялся по tun-устройствам в соответствии с номером обрабатывающего пакет процессора. Пример настройки такой:

	ip link set dev tun00e up
	ip link ...
	ip link set dev tun07e up

	ip route add default dev tun00e table 100
	ip route ...
	ip route add default dev tun07e table 107

	ip rule add fwmark 100 table 100
	ip rule ...
	ip rule add fwmark 107 table 107

	iptables -t mangle -A OUTPUT -o eth3 -m cpu --cpu 0 -j MARK --set-mark 100
	iptables ...
	iptables -t mangle -A OUTPUT -o eth3 -m cpu --cpu 7 -j MARK --set-mark 107

На каждом из tun-устройств сидит поток приложения, который вычитывает оттуда IP-пакет и, далее, инкапсулирует его в UDP-датаграмму (sport:10000, dport=10000, checksum=0) с добавлением нового IP заголовка (saddr:192.168.100.64, daddr:192.168.100.63). После чего заталкивает полученный пакет обратно в стек через это же устройство.

Вот что далее запускается на D64:

	ip route add 172.17.0.2/16 dev eth3
	ping 172.17.0.2

ПРОБЛЕМА в том, что данные через eth3 НЕ ХОДЯТ.

С использованием tcpdump видно, что данные через tun-устройства идут. Более того, tcpdump подтверждает корректность построения новой IP-датаграммы.

Ниже приведу вывод статистики по iptables, из которой видно, что ICMP-пакеты проходят по цепочкам: OUTPUT и POSTROUTING, попадая, очевидно, на tun-устройство. Далее, видно также, что из tun-устройства выходят необходимые UDP-пакеты — цепочка PREROUTING. Но почему-то, далее эти пакеты не идут.

# iptables -t mangle -L -vn
Chain PREROUTING (policy ACCEPT 18685 packets, 1904K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 4278  479K            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000
    0     0            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain INPUT (policy ACCEPT 14997 packets, 1480K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000
    0     0            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 5644 packets, 772K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  650 54600 MARK       all  --  *      eth3    0.0.0.0/0            0.0.0.0/0            cpu 0 MARK set 0x64
  ...
  615 51660 MARK       all  --  *      eth3    0.0.0.0/0            0.0.0.0/0            cpu 7 MARK set 0x6b
 3465  291K            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain POSTROUTING (policy ACCEPT 5644 packets, 772K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000
 3449  290K            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Что смотреть, куда копать? ;)

P.S.

net.ipv4.ip_forward = 1

 ,

i82
()

snmptrapd performance

Кто сталкивался,

Сколько может snmptrapd трапов обработать в единицу времени?

Есть ли какие-то ограничения на это количество?

И доп. вопрос: если snmp-агент, отсылающий трапы демону, находится за NAT, то будет ли ему приходить подтверждение того, что трап был получен и обработан менеджером?

:)

 , ,

i82
()

Внутритекстовые ссылки

Всем привет,

Как сделать так, чтобы при цитировании в тексте через

\cite{ivanov}
внутритекстовые ссылки в соответствии с ГОСТ 2008 были вида "(Иванов...)", а не «[20]» ?

[...]
\phantomsection
\begin{singlespacing}
  \bibliographystyle{ugost2008}
  \bibliography{bibliography}
\end{singlespacing}
[...]

:)

Перемещено beastie из talks

 gost2008,

i82
()

emacsclient и тема оформления

Что-то не могу заставить emacs'клиента подгружать цветовую тему solarized-dark. Emacs'демон стартует, а клиент при запуске какую-то херню показывает цветную - и не дефолт и не solarized-dark :(

 ,

i82
()

RSS подписка на новые темы