четверг, 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, и это будет отличная штука для отката виртуальной машины.