alsa + ffmpeg capture + разные пользователи
Что-то не пойму, а почему не получается записывать через ffmpeg микрофон пользователя xxx из сервиса, работающего под пользователем yyy? Это в alsa так и задумано?..
Что-то не пойму, а почему не получается записывать через ffmpeg микрофон пользователя xxx из сервиса, работающего под пользователем yyy? Это в alsa так и задумано?..
Всем привет и с наступившим НГ.
Пытаюсь сделать трансляцию звука с микрофона в сеть. Чего только не пробовал, сейчас вот остановился на использовании 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;
}
}
}
Как быть, если в модели, установленной для QTreeView произошёл reset и поменялись индексы, в том числе root-индекс, установленный в QTreeView (через setRootIndex)?
Есть ли какие-то решения, позволяющие получить real-time звучание в топологии «один-ко-многим», без мультикаста. Я пробовал icecast2/darkice, ffmpeg/rtp, ffmpeg/ffserver. Но всё это меня не устроило. Какое-то глюкалово, в целом.
Кто решал, подскажите?
Кто сталкивался с проблемой,
Не работает загрузка файлов с русскими именами. Вылетает Java NPE:
[confluence.plugins.dragdrop.UploadAction] execute Failed to save file
.
В трекере Confluence есть что-то похожее, но как исправить - нет:
https://jira.atlassian.com/browse/CONF-31088
?
Всем привет,
Не могу догнать как сделать прокси-модель, которая отображала бы поддерево исходной модели.
Итак, к примеру - есть 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? Как его реализовать? И вообще, правильно ли задачу выделения поддерева реализовывать именно так?
Ещё у меня начинаются какие-то проблемы с фильтрацией...
Если кто знает как это делается, прошу помощи. Или подскажите где посмотреть :)
Добрый день,
Кто-нибудь знает, каким образом можно сделать так, чтобы QTreeView отображался развёрнутым?
Сделал развёртывание узлов через делегат, но, кажется, это не верный путь - плывут индексы в proxy-модели.
Как вариант - таймер, но неужели нельзя как-то проще?..
Ввиду отсутствия развития, поддержки, а также недоступности ресурсов 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!
Перемещено splinter из opensource
Кто поднимал reddit у себя, как там поиск прикрутить? Что-то не пойму...
Парни, кто что знает о работе в сабже. Поделитесь информацией.
Всем привет,
Пытаюсь придумать как сделать следующую штуку:
/--------------проброс порта?---------------------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 всё работает. Но, нужно решение именно в такой схеме.
Кто сталкивался с подобной задачей, прошу подсказать куда копать.
В российскую компанию, являющуюся лидером в разработке средств защиты информации, требуются системные разработчики, знающие и любящие Linux, а также имеющие склонность и желание к постижению нового в областях системного и прикладного программирования.
Позиция предполагает участие в разработке и создании программно-аппаратных средств (криптографической) защиты информации; средств электронно-цифровой подписи. В роли разработчика также придётся отвечать за проектирование элементов архитектуры, определение состава и назначения компонентов, выбор соответствующих задачам методов и средств.
Обязательно:
Желательно:
Условия:
Интересующихся, прошу обращать на себя внимание:
TO: Rusanova Eleonora <e.rusanova@securitycode.ru> CC: Matveychikov Ilya <i.matveychikov@securitycode.ru>
Есть ли такие в природе такие конфигурации, чтобы можно было собрать рабочий x86 девайс за ~100 у.е. ?
От платы требуется наличие RS-232, USB, VGA, PS/2, Ethernet 10/100, звука, а также поддержки работы на этом железе Linux при загрузке с флешки (обычная на USB или CF).
Кто знает, подскажите? Каков вообще минимум по цене?
Прислали зашифрованное PGP сообщение по почте. Расшифровать я его - расшифровал, но прочитать не могу, т.к. какая-то зверская кодировка стоит KOI8-R :)
-----BEGIN PGP MESSAGE-----
Charset: KOI8-R
Version: GnuPG v1.4.9 (MingW32)
Вроде бы должно `iconv -f koi8-r -t utf8 file` помогать, но нет. Для примера привожу первую строку сообщения, где ОДНОЗНАЧНО идёт приветствие:
приветствую
ÐÒÉ×ÅÔÓÔ×ÕÀ
Кто знает, подскажите пож. как такую пертушку побороть?
Всем привет,
Пытаюсь реализовать на сервере такую схему:
/ -> (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' нормальный. Как избавиться от данного сообщения?
Почему-то пропадют номера страниц, после того, как появляется первая сноска оформленная как footnotetext/footnotemark. То есть, к примеру, до 5-й страницы всё нормально, а на 6-й и далее, где появилась первая сноска, уже нет номеров.
Что делать?
Коллеги, разъясните пожалуйста, что может происходить?
Есть 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
Кто сталкивался,
Сколько может snmptrapd трапов обработать в единицу времени?
Есть ли какие-то ограничения на это количество?
И доп. вопрос: если snmp-агент, отсылающий трапы демону, находится за NAT, то будет ли ему приходить подтверждение того, что трап был получен и обработан менеджером?
:)
Всем привет,
Как сделать так, чтобы при цитировании в тексте через
\cite{ivanov}внутритекстовые ссылки в соответствии с ГОСТ 2008 были вида "(Иванов...)", а не «[20]» ?
[...] \phantomsection \begin{singlespacing} \bibliographystyle{ugost2008} \bibliography{bibliography} \end{singlespacing} [...]
:)
Перемещено beastie из talks
Что-то не могу заставить emacs'клиента подгружать цветовую тему solarized-dark. Emacs'демон стартует, а клиент при запуске какую-то херню показывает цветную - и не дефолт и не solarized-dark :(
← предыдущие | следующие → |