четверг, 24 декабря 2015 г.

Восстанавливаем работу VirtualBox на Windows 7 nano от Lopatkin

Восстанавливаем работу VirtualBox на Windows 7 nano от Lopatkin

Буквально вчера я хвастался минималистичной сборкой Win7 от Лопаткина.
Установочный дистрибутив весит около 860 мб, после установки она занимает 1.7 гб на HDD
Все бы хорошо. Но не работает VirtualBox.
При запуске машины пишет ошибочку

Проблема заключается в том, что любители клепать сборки винды патчат uxtheme.dll и службу тем для расширения возможности украшательств ос. Не обошла эта беда и Лопаткина. Во вред функционалу.
Решение оказалось простым - скачать оригинальный образ Windows 7 Professional RU и установить ее смонтировать образ в виртуальный привод (при помощи Ultraiso), найти в образе файл E:\Sources\install.wim, открыть его при помощи 7-zip и извлечь из пути /windows/system32 три файла themeservice.dll themeui.dll uxtheme.dll

Эти файлы нужно поместить в папку C:\Windows\System32 нашей работающий операционной системы.
И - вуаля: Виртуалбокс ожил и готов к работе :)

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

И на всякий случай выкладываю на свой гуглдрайв архив с этими файлами
https://drive.google.com/file/d/0B0Ec7812cp1tWThqTDlwS3dLMjA/view?usp=sharing

И вот, результат налицо:


Ну и конечно же разработчикам виртуалбокса виднее, зачем юзать подсистему отрисовки тем в своем поделии.

четверг, 10 декабря 2015 г.

Некоторые приемы, которые я буду юзать при постройке роутера

пыха - узнаем ип интерфейса для заворота трафика в него и айпи юзера

<?php
$route_ukr = exec("sudo ifconfig ppp0 | awk -F ' *|:' '/inet addr/{print $4}'");
$ip_user= $_SERVER['REMOTE_ADDR'];
echo $route_ukr;
echo $ip_user;

выполняем по команде

exec('sudo iptables -t mangle -D PREROUTING -s ' . $ip_user . ' ! -d 192.168.7.0/24 -j MARK --set-mark 1');
exec('sudo iptables -t nat -A POSTROUTING -s ' . $ip_user . '  -j SNAT --to-source ' . $route_ukr .' ')

bash scr

#!/bin/sh
ip=$(ifconfig tun0 | awk -F ' *|:' '/inet addr/{print $4}')
iptables -t nat -I POSTROUTING 1 -o tun0 -j SNAT --to-source $ip


/CHECKER RECONNECTER

#! /bin/bash

wget --spider http://ya.ru
if [ "$?" != 0 ]; then
  echo `date` >> /root/reconnect.log
  /usr/bin/poff dsl-provider
  sleep 10
  /usr/bin/pon dsl-provider
fi


//p-t-p route

ifconfig ppp0 | grep -o -E "P-t-P:([0-9]+\.){3}([0-9]+)" | sed 's/P-t-P://g'


фикс от Вани
exec('sudo iptables -t nat -A POSTROUTING -s "' . $ip_user . '"  -j SNAT --to-source "' . $route_ukr .' "')

кое что из рабочих конфигов

#!/bin/sh
ip=$(ifconfig tun2 | awk -F ' *|:' '/inet addr/{print $4}')
iptables -t nat -I POSTROUTING 2 -o tun2 -j SNAT --to-source $ip
/bin/ip route add default dev tun2 table US    <-- DEFAULT GW на интерфейс :)//
iptables -t mangle -A OUTPUT -p tcp -m tcp ! --sport 1095 -m owner --uid-owner 1003 -j MARK --set-mark 5
ip rule add fwmark 5 table US

echo "nameserver 192.168.7.1" > /etc/resolv.conf


среда, 25 ноября 2015 г.

Защита от далбаеба - баним exe файлы и архивы на скачку во всех браузерах

1) Качаем последнюю версию сквида под windows
отсюда http://squid.diladele.com
2) Приводим C:\Program Files\Squid\etc\squid\squid.conf  к понятному виду

http_port 127.0.0.1:3128
dns_nameservers 109.86.2.2 8.8.8.8 8.8.4.4 192.168.0.1
cache_mgr nallion.work@gmail.com
acl all src all
acl CONNECT method CONNECT
acl localcomp src 127.0.0.1/32
acl badfiles url_regex -i \.exe$ \.msi$ \.zip$ \.rar$ \.7z
http_access deny localcomp badfiles
http_access allow localcomp
http_access deny all
Учтите, что в опции dns_nameservers надо прописать днсы прова \ гугла \ своего роутера.
Если не знаете что туда писать - пишите IP роутера (обычно 192.168.0.1) или 8.8.8.8 8.8.4.4
Можно и то и то
Директива cache_mgr - емейл для ласкания своего чсв на страничке с ошибкой. При желании страничку можно переработать \ украсить своим фото итд - для этого проследуйте по адресу C:\Program Files\Squid\usr\share\squid\errors\ru-ru для правки html-файла.

3) Перезапускаем службу Squid (в трее есть иконка по ней левой кнопкой stop squid service - start squid service)
4) Во всех браузерах ставим юзать http(s) прокси 127.0.0.1:3128

... при попытке скачать любой файл с расширением \.exe$ \.msi$ \.zip$ \.rar$ \.7z  любым браузером любуемся




... а еще можно просто установить расширение в google chrome

https://chrome.google.com/webstore/detail/exe-blocker/gpmojgdifdieilleikodmnkeeefihpob



четверг, 17 сентября 2015 г.

Кодируем музыку в AACPlus

Давно увлекался изучением разных форматов кодирования музыки, и убедился что mp3, в принципе, не самый лучший вариант. В этой заметке я хотел бы рассказать, как кодировать музыку в AAC+ SBR+PS
Из всех перепробованных мной форматов (ogg,wma,mp3pro,aac etc) самым лучшим оказался именно aacplus.
В кодировании звука он использует множество запатентованых и пропиетарных технологий, таких как параметрическое кодирование стереопанорамы, квантование, репликация спектральной полосы и прочие довольно интересные алгоритмы. Сегодня я расскажу, как сжать любой аудиофайл с использованием этой технологии.
Нам понадобиться некоторый софт. Поэтому скачайте и установите две вещи
1) Аудиоплеер foobar2000. Скачать с оффсайта качать то что под ссылкой lastest stable version. После закачки установить.
2) Nero AAC Encoder (из всех возможных реализаций в области кодирования aacplus, этот кодек самый эффективный и бесплатный. Скачать с оффсайта (внизу понадобиться нажать на I agree, вбить любой почтовый адрес электронной почты, и браузер скачает файл).

Приступим.
Первое, что нам понадобиться - качественный исходник. Очень качественный. Разжимать mp3, чтобы потом пережать в aacplus это, конечно, хороший вариант, но лучше скачать всетаки нужную нам музыку в каком-нибудь несжатом формате. Для этого ищем нужную на музыку на том же рутрекере в формате flac \ ape.
Скачали альбомчик - отлично! Перетягиваем его в foobar2000 и конвертируем нужный нам flac файл в wav. В принципе, можете перетянуть сюда любой mp3-файл(ы), но учтите, что mp3 это уже сжатый формат, мы будем его разжимать, а это небольшие дополнительные потери качества. Не путайте Lossy и Lossless!  Както так: (Нажмите на картинки для увеличения).




Ну вот, половину работы мы сделали. Теперь у нас есть наша музыка в wav формате.
Приступаем ко второй части. Понадобиться небольшая доля красноглазия ввиду отсутствия у nero aac codec'a графического интерфейса.
Достаем из архива NeroAACCodec-1.5.1.zip файлик win32/neroAacEnc.exe, и ложим его рядышком с нашими wav файлами.
Запускаем командную строку, переходим в папочку где лежат наши файлы (команда cd, если кто забыл, в win7 чтоб перейти на рабочий стол надо выполнить cd Desktop), и кодируем нашу музыку в нужный нам формат, например так:

neroAacEnc.exe -hev2 -2pass -br 32000 -if "СерьГа - Чистота (2015) [4].wav" -of "СерьГа - Чистота (2015) [4].mp4"

Где -br 32000 это битрейт, соответственно я поставил 32 кбит\с.
Можете ставить от 8000 до 64000, aacplus больше 64 кбит не поддерживает, да и не нужно. Звучит отлично, при 64кбит примерно как mp3 192-256.
-hev2 -это профиль кодирования (вторая версия High-effective audio coding version 2)
-2pass - кодирование в два прохода, при первом проходе создается "карта", что позволяет улучшить качество кодирования.
-if / -of соответственно input file / output file.
все опции можете посмотреть, запустив neroAacEnc.exe с параметром -help



В итоге песенка весит 1-2 мегабайта, а звучит отлично.
Получившийся mp4 файл можно слушать через тот же foobar2000, можно слушать на телефонах (все мобилки вроде читают aac+, которые читают и mp3). Проблем с воспроизведением возникнуть не должно.
По заверению разработчиков технологии AACPlus, битрейт 48 кбит (48000) сопоставим по звучанию с CD-качеством.
О внутренней архитектуре кодека они заявляют только  "True Superset architecture".
Минимальный битрейт, который обычно используют для слушабельного AAC+ кодирования - 24кбит\с (24000), но на нем немного слышны артефакты.

Да прибудет с Вами сила и командная строка :D

вторник, 15 сентября 2015 г.

Запускаем Windows XP на дешевом VPS с Linux.

0) Покупаем виртуальный сервер с Дебьяном, например тут http://time-host.net/vds-servers.html
Стоить будет 99 рублей (около 33 грн \ 1.3$) за месяц использования.

1) Качаем Windows XP с торрента, заливаем в домашнюю папку юзера с именем файла winxp.iso

//обновляем репозитории и ставим qemu
apt-get update && apt-get install qemu
//создаем виртуальный HDD для Windows XP, размер 10ГБ.
qemu-img create winxp.img 10240M
//запускаем виртуальную машину
qemu -nographic -cdrom winxp.iso -hda winxp.img -boot d -vnc :0

Дальше - коннектимся к виртуальной машине по VNC (например через tigntvnc) и устанавливаем Windows XP.
После установки Windows XP отключаем VNC, устанавливаем Radmin Server, пробросываем порт 4899 в виртуалку.
Все.

Можно сделать резервную копию файла winxp.img со свежеустановленой виндой, сжать его при помощи gzip, и это будет отличная штука для отката виртуальной машины.

вторник, 25 августа 2015 г.

ffmpeg -i rtmp://live.lnr.tv/svoe/stream2 -acodec aacplus -ab 48k -content_type audio/aac -af volume=+5 -legacy_icecast 1 icecast://source:password@localhost:8000/radio.aac

понедельник, 24 августа 2015 г.

Liquidsoap RTMP to AACPLUS encode example

radio = input.external("while true; do ffmpeg -i rtmp://live.lnr.tv/svoe/stream2 -f s16le -acodec pcm_s16le -af volume=+5 -; done")
radio = mksafe(radio);

output.icecast(
  %aacplus(bitrate=48),
  mount="/radio-lugansk24.aac",
  description="lugansk 24 radio",
  genre="Rock \ Russian Rock \ Metal \ Russian Metal \ Heavy Metal",
  url="http://fm.lnr.tv",
  host="localhost", port=8000, password="lfflu41b",
  radio)
radio2 = input.external("while true; do ffmpeg -i http://nashe.streamr.ru/nashe-128.mp3 -f s16le -acodec pcm_s16le -; done")
radio2 = mksafe(radio2);

output.icecast(
  %aacplus(bitrate=48),
  mount="/radio-nashe.aac",
  description="nashe radio",
  genre="Rock \ Russian Rock \ Metal \ Russian Metal \ Heavy Metal",
  url="http://www.nashe.ru",
  host="localhost", port=8000, password="lfflu41b",
  radio2)

radio3 = input.external("while true; do ffmpeg -i http://de.freshrock.net:8000/mp3-320 -f s16le -acodec pcm_s16le -; done")
radio3 = mksafe(radio3);

output.icecast(
  %aacplus(bitrate=48),
  mount="/radio-freshrock.aac",
  description="fresh rock radio",
  genre="Rock \ Russian Rock \ Metal \ Russian Metal \ Heavy Metal",
  url="http://freshrock.net",
  host="localhost", port=8000, password="lfflu41b",
  radio3)

radio4 = input.external("while true; do ffmpeg -headers 'User-Agent: Mozilla/4.0 (compatible)' -i http://eu4.101.ru:8000/c1_2  -f s16le -acodec pcm_s16le -;$
radio4 = mksafe(radio4);

output.icecast(
  %aacplus(bitrate=48),
  mount="/radio-101rusrock.aac",
  description="101.ru Russian Rock",
  genre="Rock \ Russian Rock",
  url="http://101.ru/?an=port_channel_mp3&channel=42",
  host="localhost", port=8000, password="lfflu41b",
  radio4)

вторник, 11 августа 2015 г.

Ретрансляция онлайн-радиостанции

Быстрая установка ретранслятора любимого радио, чтоб его можно было слушать в маршрутке по GPRS. Родной поток с сайта радиостанции 192kbps, да еще и по RTMP, мой мобильный интернет не тянет.
Поток на выходе нашего решения пусть будет в формате OGG, битрейт 64к, частота дискретизации не изменяется (44100гц).

Поехали:
Первое, что нам понадобиться - прикупить выделенный виртуальный сервер с ОС Debian 7. Я Купил тут http://ukrdc.net


apt-get update && apt-get install ffmpeg icecast2 oggfwd screen
под screen'ом запускаем файл retranslator.sh со следующим содержимым:

while true
do
ffmpeg -i rtmp://live.lnr.tv/svoe/stream2 -acodec libvorbis -ab 64k -af volume=5 -f ogg - | oggfwd -d "nallion LNR radio retranslator" localhost 8000 hackme /radio.ogg
done


где hackme - пароль для публикации потока (желательно поменять в конфиге icecast и тут)


Слушаем на andoid-телефончике или на планшетке с Android \ Windows по адресу http://SERVER_IP:8000/radio.ogg

Системные требования к выделенному серверу: CPU: 133 MHZ, RAM: 64MB

UPD: мой все это безобразие работает тут http://91.214.114.59:8000

Слушаем ЭТО под Windows:

1) Берем бинарник mplayer.exe из состава smplayer portable
Для запуска прослушивания юзаем этот батник:

:start
mplayer -cache 512 http://91.214.114.59:8000/radio.ogg
goto start

Под Symbian 9.3 есть программа oggplay:
http://nallion.tk/oggplay.sis

четверг, 6 августа 2015 г.

Возвращаем сглаживание шрифтов в Windows 8.1, если было отключено по этой инструкции
http://forum.ru-board.com/topic.cgi?forum=62&topic=18650


1) Удалить Segoe UI из HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
2) Вернуть в HKEY_CURRENT_USER\Control Panel\Desktop
параметры:
FontSmoothing = 2
FontSmoothingType = 2
3) Применить Reg-файл SegoeUI.reg, вот содержимое

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"Segoe UI Symbol (TrueType)"="seguisym.ttf"
"Segoe UI Italic (TrueType)"="segoeuii.ttf"
"Segoe UI Semilight (TrueType)"="segoeuisl.ttf"
"Segoe UI Black Italic (TrueType)"="seguibli.ttf"
"Segoe UI Light Italic (TrueType)"="seguili.ttf"
"Segoe UI Emoji (TrueType)"="seguiemj.ttf"
"Segoe UI (TrueType)"="segoeui.ttf"
"Segoe UI Semibold (TrueType)"="seguisb.ttf"
"Segoe UI Light (TrueType)"="segoeuil.ttf"
"Segoe UI Semilight Italic (TrueType)"="seguisli.ttf"
"Segoe UI Black (TrueType)"="seguibl.ttf"
"Segoe UI Bold Italic (TrueType)"="segoeuiz.ttf"
"Segoe UI Semibold Italic (TrueType)"="seguisbi.ttf"
"Segoe UI Bold (TrueType)"="segoeuib.ttf"