Pull to refresh
46
0
Роман @SysCat

User

Send message

Потоковое видео средствами ffserver & ffmpeg

Reading time2 min
Views149K

Для организации трансляции нам потребуется:


  • Linux
  • FFmpeg (включает в себя ffserver)

Теория


FFmpeg — это набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровое аудио и видео в различных форматах. Он включает libavcodec, библиотеку кодирования и декодирования аудио и видео и libavformat, библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и «FF», означающего «fast forward».

© Wikipedia

ffserver идёт в комплекте с ffmpeg и выполняет роль медиа-сервера — получает видеопоток от ffmpeg, который может быть запущен на другой машине, и раздаёт его счастливым пользователям.
Каждый получаемый поток называется Feed’ом (далее будет просто фид). Таких потоков может быть несколько, так же как и отдаваемых (выходных).
FFmpeg у нас будет захватывать видео с веб-камеры или читать из файла.
Читать дальше →

Видеохостинг своими руками

Reading time6 min
Views71K
Эта статья о некоторых технических аспектах реализации бесплатного сервиса для загрузки, хранения и просмотра видео. Будут рассмотрены вопросы настройки серверного программного обеспечения, даны примеры команд для конвертации видео и примеры кода на языке PHP.
Читать дальше →

FFMPEG. Перегнать видео в формат мобильного телефона. Соблюдение пропорций. Операнд PAD

Reading time2 min
Views4.9K
Необходимо перегнать фильм из MKV с размерами 1280 x 536 в размер мобильного телефона с размерами 320 х 240 и сохранить пропорции. В формат mp4 с аудио в ac3
У меня такой способ расчёта пропорций (самый стандартный – математический ):

Читать дальше →

Маркировка кабелей

Reading time6 min
Views122K
В этой статье:
  • подготовка таблицы коммутаций;
  • варианты маркировки (что наносить на кабели);
  • обзор методов нанесения маркировки;
  • пример работы с одним из методов, включая макрос и шаблон для распечатки.
Читать дальше →

Увеличиваем скорость вычислений в Matlab

Reading time3 min
Views28K
Добрый день, уважаемые хабровчане!

Предлагаю вашему вниманию статью, на которую меня натолкнул недавний пост Matlab кластер своими руками. В свое время я столкнулся с теми же проблемами что и автор топика, однако для увеличения производительности я не стал уходить в дебри распределенных вычислений, а просто решил максимально оптимизировать свой код. Как это сделать в Matlab, прошу под кат за подробностями.

Статья является описанием жизненного опыта и вольным переводом англоязычной публикации.
Читать дальше →

VPN на 50+ филиалов на коленке

Reading time5 min
Views50K
image
Появилась потребность сделать VPN для аутсорсинговой компании — организовать связь с сетями компаний клиентов таким образом, чтобы админы заказчика и собственной сети видели каждый хост клиента за NATом и не было возможно обратное. Аппаратные решения в принципе не рассматривались ввиду стоимости, да и все проприетарные программные решения отсеялись по этой же причине. Остался только свободный софт. Благо свободных решений более чем достаточно

Поскольку начинал я знакомство со свободными системами с FreeBSD — выбор пал на нее. Сразу прошу хабралюдей не разводить холивар на тему BSD vs Linux – основной причиной выбора были более глубокие знания этой системы (до сих пор не могу осилить Linux настолько, чтобы быть уверенным в результатах своей работе с ним). Собственно, ВПН решено было организовать на основе OpenVPN — опять же, раньше приходилось иметь с ней дело, и недостатков я не обнаружил. И снова попрошу без холивара на тему PPTP – если есть приверженцы такого решения – лучше напишите свою статью.
Читать дальше →

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 4

Reading time7 min
Views8K
VoiceNavigator Asterisk UniMRCP

Часть 1
Часть 2
Часть 3

В четвертой части, как и было обещано, рассмотрим ограничения и недостатки Asterisk как голосовой платформы и особенности его взаимодействия с VoiceNavigator.
Голосовая платформа – это программно-аппаратный комплекс с функциями синтеза и распознавания речи, позволяющий создавать решения, направленные на оптимизацию работы контакт-центра, усовершенствование работы с клиентами и построение систем голосового самообслуживания.

Asterisk голосовой платформой в чистом виде не является, т.к. работа с серверами синтеза и распознавания не является его основной задачей и реализуется посредством UniMRCP. Поэтому часть недостатков и ограничений связана именно с реализацией работы в UniMRCP.

Среди больших и известных голосовых платформ, использующихся в колл-центрах для построения СГС, стоит отметить Avaya Voice Portal, Genesys Voice Platform, Siemens OpenScape CCVP, Cisco Unified CCX, Voxeo, Voxpilot.
Информации в Рунете очень не много, как и специалистов по данным продуктам с соответствующим уровнем компетенции. Используются в больших колл-центрах, стоимость соответствующая, и доступна она только для больших компаний.
Если будет интерес к какой-то из платформ, готов написать о них отдельно.

Два основных недостатка, существующие в Asterisk+UniMRCP — это отсутствие поддержки VoiceXML и неработающий barge-in для синтеза речи.
Читать дальше →

Соединение компьютер-компьютер через интернет с динамическими IP

Reading time3 min
Views144K
Очень часто мы слышим о том, что установить соединение компьютер-компьютер через интернет с динамическими IP – нереально без внешнего сервера.
А также думал, до определенного времени. Потом у меня закрались подозрения… А после мне стало известно очень многое и тайное.

Однако скайп, аська для передачи файлов, торренты, в конце концов, используют каким-то образом прямое подключение.
Как? Об этом я и хочу рассказать.

Все совпадения случайны, цифры изначально выдуманы.

Читать дальше →

Оповещения из Zabbix телефонным звонком

Reading time2 min
Views17K
Всем привет.
Я давно использую zabbix и давно читаю хабр.

Мысль научить заббикс разговаривать голосом посещала меня давно, и даже делал систему которая чудным голосом сообщала ночным саппортам что случилось.
Сегодня я прочитал пост mxx про nagios`ом по телефону и меня срочно настигла мысль привинтить это к моей системе.

Через два с половиной часа все заработало, а поскольку в комментах к оригинальному посту просили такое решение, то я его тут опубликую.

Читать дальше →

Debian Server для новичка

Reading time15 min
Views233K
Как-то обеспокоился наличием собственного FTP-сервака. Тем более под это дело «на помойку» был отдан комп этак десятилетней давности. Так как я человек хоть и виндовый, но начинал с чистого ДОСа (про книжки тов. Фигурнова кто помнит?), то я решил сделать все на линуксе. В линуксе я был ноль полный. Еще и усложнил задачу — только консоль, никаких исков (как же — это ж линукс). Дистрибутивом был выбран Debian. Так получилось, что надобность в 2Тб личном хранилице отпала через год и комп был отдан в хорошие руки, а хард пристроен в нужное место. Но был накоплен неплохой опыт стопроцентного новичка. Какие только глупые ошибки я не совершал поначалу! И хабр читал, между прочим, пока разбирался с проблемами. Поэтому эту свою дебютную (первую) статью на хабре я посвящаю тем, кто хочет заняться линуксом с нуля и эта статья призвана для плавного ввода «в тему», являясь, по сути, фильтрацией и систематизацией всего того, что я нашел на просторах интернета. Ранее я этот материал уже публиковал, но, думаю, на хабре он тоже будет полезен.
Читать дальше →

Лабы по ROUTE: EIGRP — Решение

Reading time17 min
Views33K
EIGRP Lab | EIGRP Lab — Answers

Продолжим изучение лаб для экзамена ROUTE курса CCNP.

Я думал объединить ответы на задачки прошлой лабы с лабой по OSPF, но этот топик и без того получается настолько большим, что, боюсь, как бы его все дочитали до конца. Здесь будет очень много конфигов, скриншотов из Wireshark и дебрей технологии, но все это только для того, чтобы лучше проиллюстрировать внутреннюю логику EIGRP, без понимания которой этот экзамен сдать невозможно.

Будущие, бывшие и настоящие CCNP, добро пожаловать под кат!
Читать дальше →

8123 байта хватит каждому

Reading time2 min
Views11K
Сегодня во время перевода одного сайта с таблиц MyISAM на InnoDB, у последних выяснилась одна интересна особенность. Запрос на изменение движка для двух таблиц возвращал странную ошибку «Got error 139 from storage engine». После поиска информации на эту тему, было выяснено, что данная ошибка возникает тогда, когда какая-либо строка таблицы не вмещается в половину страницы памяти, с которыми работает MySQL. Страницы эти равны 16 Кб, а половина, стало быть, 8 Кб.

Само по себе ограничение довольно странное, но на первый взгляд кажется трудно достижимым, ведь как известно, MySQL хранят текстовые данные в хранилище, отдельном от табличных строк. Оказалось, что это верно только на половину. На самом деле InnoDB хранит в отдельном хранилище только «излишки», к коим он не относит первые 768 байтов каждого текстового поля. Т.е. любой текст будет отъедать от длины строки столько байт, сколько он содержит, но не больше 768. Несложно подсчитать, что максимальное число текстовых полей длиной от 768 байт, которое можно безопасно хранить в одной таблице — 10. И действительно, если запустить пример, все пройдет гладко. Но стоит увеличить количество полей хотя бы на одно, и мы получим ту же ошибку, что и в начале.
Читать дальше →

Автоматизация SVN + Apache + LDAP

Reading time7 min
Views11K
По выше упомянутой связке много чего написано, однако, я вечно чувствовал некие неудобства при заведении нового репозитория: необходимо было завести новый локейшн в конфигурационном файле, создать репозиторий с помощью svnadmin, перезапустить apache. Когда такую работу приходиться выполнять раз в месяц — это терпимо, однако, когда такую работу приходиться выполнять по несколько раз в неделю, стоит задуматься об автоматизации этого процесса. Собственно об этом речь и идёт под катом.

Читать дальше →

Библиотека для упрощения HTTP-запросов

Reading time1 min
Views151K
Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Вот как выглядит HTTP-запрос с авторизацией с помощью requests:

>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Читать дальше →

Распределение нагрузки на PPPoE-сервера MPD5

Reading time5 min
Views4.9K
Итак давайте начнем с исходных данных.
Имеется ISP с 4-мя NAS-серверами на базе FreeBSD+MPD5(PPPoE) и стоит задача по нормализации нагрузки на серверы.
Для начала давайте взглянем на график загрузки серверов ДО нормализации:
Читать дальше →

Зеркалирование баз данных на MS SQL

Reading time5 min
Views108K
Доброго дня. Решил я описать здесь свой опыт настройки зеркалирования БД. Не имея, до недавнего времени, подобного профита, я начал сёрфить интернет в поисках информации на этот счёт. И постараюсь оформить пост как пошаговая инструкция рассказать об основных моментах, в общем что бы ничего лишнего.
Читать дальше →

Аппаратное декодирование видео на AMD Radeon в Ubuntu (mplayer)

Reading time5 min
Views20K

Введение


Когда у меня была карточка от Nvidia, вопросов с воспроизведением видео на ней не было: Скачиваешь последний snapshot с сайта mplayer, устанавливаешь проприетарные драйвера, собираешь с поддержкой vdpau, добавляешь соответствующие кодеки и устройство вывода, и всё работает (стоит заметить, что в некоторых дистрибутивах поддержка vdpau уже есть в mplayer).
Не давно у меня появился AMD Radeon, при выборе видеокарты мысленные преграды существовали для использования Radeon'a, в том числе касающиеся настройки аппаратного декодирования. Но они были успешно сломлены финансовой стороной вопроса, так и появился у меня AMD Radeon HD с UVD3.
Данная статья появилась как результат поиска на тему: как заставить видеокарту декодировать видео + сохранить в качестве заметки на будущее. Итак приступим.
Примечание: В комментариях было указано, что это устаревший способ, новый способ описан по ссылке, а готовый скрипт лежит тут.
Читать дальше →

ARM — это сложно…?

Reading time3 min
Views105K
После моей недавней статьи на хабре про рвущие все по цене армы было высказано много мнений, что ARM-у нужна 4-6-слойная плата, ну уж 2 то как минимум, и куча обвязки.

Я решил попробовать доказать, что это далеко от истины, и сделал платку, проще которой трудно: 1 сторонняя, 1 обязательный конденсатор (до стабилизатора не обязательно), 1 резистор, один стабилизатор 3.3V, и наконец младший STM32: STM32F100C4T6B — 16кб флеш, 4кб SRAM, 48 ног, Cortex-M3(!!!) с DMA, дебагом на лету, 32*32+32->32 за 1 такт и всеми прочими радостями за 28 рублей.
Читать дальше →

Простой электронный самописец

Reading time6 min
Views40K

Сначала была идея

На работе (работаю в медицине) пыхтят и мучаются два электромеханических самописца ну и я вместе с ними: тушь, механика – знаете ли неприятно. Как то раз в мою голову забрела идея: а почему бы не заменить два задыхающихся от старости самописца простой системой сбора данных состоящей из контроллера АЦП и ПК (пусть даже слабенького и старенького) с соответствующим программным обеспечением с возможностью вывода на принтер? И тут понеслось в голове и закружилось…

Читать дальше →

Бумажные танчики

Reading time1 min
Views1.2K
Бумажные танчики Больше года назад мы сделали аналог старых «Танчиков» из Денди для iPhone. С управлением получилось тогда не очень, было много жалоб, но, тем не менее, были и положительные отзывы, в целом идея была принята позитивно.

Скачать: http://itunes.apple.com/ru/app/id444942271?mt=8

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

Скриншоты, описание и промокоды под катом

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity