HEVC видео с поддержкой Quick Time macOS 10.13 и iOS 11

HEVC видео с поддержкой формата файлов QuickTime для macOS 10.13 и iOS 11



В сентябре 2017 года компания Apple официально представила новые операционные системы для персональных компьютеров macOS 10.13 и мобильных устройств iOS 11 с поддержкой инновационного формата кодирования видео - HEVC (High Efficiency Video Coding). Данный формат кодирования видеоизображения позволяет значительно повысить его качество и обеспечивает лучшее сжатие. Однако, хотя все устройства, основанные на представленных OS, поддерживают формат HEVC, создавать или перекодировать уже существующие файлы не так просто, как x264 файлы. Стандартных системных ресурсов (QuickTime) для этого не достаточно. На конец сентября 2017 года в официальном магазине Apple Store программ для перекодированная не много и они пока работают не достаточно стабильно. Поиски в Интернете возможных решений, обратили внимание на хорошо известные программы HandBrake и ffmpeg. Рассмотрим особенности использования бесплатных программ декодеров.

Handbrake



Великолепная мультиплатформенная программа с огромным количеством функций перекодированная видео. HandBrake поддерживает стандарт HEVC (H265) сжатия видео. Для данных целей в ней даже реализованы стандартные предустановки (Preset: H265 MKV).
Главной особенностью использования HandBrake (версии 1.0.7) для перекодированная является поддержка только контейнеров .mkv или .mp4. Поддержки .mov формата (стандартного для Apple устройств) пока нету. Просмотреть видео стандартными средствами QucikTime (macOS) или Видео (iOS) пока не получится. Однако, HandBrake обеспечивает наглядный и достаточной удобный интерфейс для преобразования медиатеки в новый формат HEVC.
Настроек у программы много HandBrake, поэтому уточним назначение ключевых характеристик. В документации к программе рекомендуется использовать предустановленные настройки H265 MKV. Последуем рекомендации. Устанавливаем preset - H265 MKV 1080p30:
  • Параметр "Format". Возможные установки "MKV File" и "MP4 File". Так как полноценной поддержки .mp4 контейнера Apple пока нету, рекомендуется устанавливать формат "MKV File"
  • Вкладка "Video":
    • "Framerate (FPS)" (частота кадров). По умолчанию установлено значение "30" и включен параметр "Peek Framerate". Значение по умолчанию соответствует требования большинства видеофайлов, но при перекодировании различных видеофайлов можно выставить значение "Same as source" и "Variable Framerate" (частота перекодированная совпадает с частотой исходного файла)
    • "Quality": "Constant Quality" предустановленное значение RF 22 (Constant Rate Factor, CRF или Постоянное значение оценки). Чем меньше это число, тем выше качество видео и тем больше размер конечного файла. Для перекодированная из формата x264 рекомендуемое значение 22-23. В некоторых документациях для перекодированная высококачественного входного видеопотока рекомендуется значение до 28. Однако, данный показатель либо нужно оставить по умолчанию, либо определиться с личным восприятием (с учетом качества и размера выходного файла)
    • "Encoding Options": по умолчанию "slow". Часто используемые значения "fast", "medium", "slow". Как и в случае с предыдущим параметром определяется экспериментальным путем по критерия "качество-скорость кодирования". Для меня оптимальным значением является "medium".
  • Вкладка "Picture":
    • Основной параметр - разрешение выходного видеофайла. Для выбранной предустановки максимальным разрешением является "1920x1080". В документации предлагается изменить параметр "Anamorphic" на значение "Loose". То есть изображение будет либо уменьшено до "1920x1080", либо останется исходным (если исходный файл меньшего разрешения)
  • Вкладка "Audio". В данной вкладке обращаем внимание на количество аудиодорожек. По умолчания HandBrake выбирает первую дорожку или дорожку соотвествующую выбранному приоритетному языку. Если в исходном видеофайле несколько видеодорожек, очень часто по умолчанию выбирается ошибочная дорожка. Обращаем внимание на выбор аудиодорожки.
  • Вкладка "Subtitles" - настройка субтитров. Так же как и при выборе аудиодорожки, на выбор субтитров надо обращать внимание, так как по умолчанию очень часто выбирается не верный параметр.

Остальные параметры можно оставлять без изменения и запускать кодированнае.
HandBrake поддерживает кодирование сразу нескольких файлов - обращаем внимание на кнопки "Add To Queue" (Добавить в очередь).

ffmpeg



ffmpeg - это великолепный мультиплатформенный и мультиформатный конвертор. Конвертирует все или почти все. Главный недостаток или преимущество (кому как) - это отсутствие в базовой версии графического интерфейса.
ffmpeg позволяет создавать видеофайлы формата HEVC для Apple контейнера .MOV (так называемый формат hvc1).

Рассмотрим стандартные параметры для создания файла формата HEVC на базе существующего видеофайла. В документации к ffmpeg рекомендуется следующая команда для создания HEVC файла:

ffmpeg -i input -c:v libx265 -preset medium -crf 28 -c:a aac -b:a 128k output.mp4

Данной командной на базе входного видеофайла "input" создается выходной файл "output.mp4" на основе алгоритма кодирования видео "libx265", с заданной установкой скорости обработки "medium" (аналогично "Encoding Options" в HandBrake) и параметра качества CRF 28. При этом аудио кодируется в формат ACC с битрейтом 128k.
В этой же документации можно почитать и об особенностях двухпроходного кодирования.
Представленная команда создает полноценный HEVC видео файл, однако с низким качеством картинки (CRF 28) и главное - данный файл не совместим со стандартными средствами Apple QuickTime, iTunes, Просмотр и т.п.

Рассмотрим ключевые параметры для перекодированная видео в формат HEVC совместимый с Apple QuickTime на примере следующей команды:

ffmpeg -i input -c:v libx265 -preset medium -crf 23 -c:s copy -f mov -pix_fmt yuv420p -tag:v hvc1 output.mov

Ключевые параметры:
-tag:v hvc1 - основной параметр, который обеспечивает совместимость со стандартом HEVC для Apple приложений (если не указать данный параметр, то файл output.mov будет соответствовать стандарту hev1).
-f mov - не обязательный, но очень рекомендуемый параметр. Принудительно указывает на формат контейнера выходного файла. Текущая версия ffmpeg не позволяет создавать .mp4 файл стандарта hvc1.
-pix_fmt yuv420p - совместимая цветовая схема. Данный параметр так же не является обязательным, если исходный файл совместим со стандартной для Apple приложений цветовой схемой (например .mp4 или .mov файлов x264). Практически всегда обязателен для контейнера видеофайлов .avi.
-c:s copy - параметр, указывающий на необходимость копировать данные субтитров из исходного файла без изменений.

Представленная команда не указывает, что необходимо сделать с аудиодорожкой (например, параметр
-v:s copy копирует первую аудиодорожку исходного файла без изменений). То есть, в данном случае аудиодорожка перекодируя в стандартный для формата HEVC вид.

Основные недостатки указанной команды, которые можно решить в индивидуальном порядке (см.
инструкцию и форум ffmpeg):
  • не поддерживается перенос метаданных (параметр -map_metadata)
  • не поддерживается перекодирование нескольких аудиодорожек (параметры -map 0:0 -map 0:a? и т.п.)

Например, для перекодирования видеофайла с несколькими аудиодорожками можна использвать следующую комманду:

ffmpeg -i input.mkv -c:v libx265 -f mov -pix_fmt yuv420p -tag:v hvc1 -crf 23 -preset
slow -map 0:0 -map 0:a? output.mov

Команда для копирования уже созданного HEVC файла без перекодированная (например, из уже созданного HandBrake "H265 MKV" файла):

ffmpeg -i input.mkv -vcodec copy -acodec copy -c:s copy -tag:v hvc1 -f mov output.mov


Пакетная обработка всех файлов в указанной папке программой ffmpeg



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

bash.sh



#!/bin/bash

INPUTPATH="."
EXTENSION="avi"
OUTPUTPATH="."
STOPFLAG="$OUTPUTPATH/ffenc.txt"
FFREPORT="$OUTPUTPATH/ffenc.log"

echo -------------------------------------------------------
echo INPUTPATH = "${INPUTPATH}"
echo EXTENSION = "${EXTENSION}"
echo OUTPUTPATH = "${OUTPUTPATH}"
echo FNAME = "${FNAME}"
echo EXTENSION = "${EXTENSION}"
echo NAME = "${NAME}"
echo OUTFILE = "${OUTFILE}"
echo -------------------------------------------------------

for a in "${INPUTPATH}"/*."${EXTENSION}"; do
# MOVINFULL="${a[@]/%${EXTENSION}/mov}"
MOVINFULL="${a%.*}-hvc1.mov"
MOVNAME="$(basename "${MOVINFULL}")"
MOVOUTFULL="${OUTPUTPATH}"/"${MOVNAME}"
echo "${a}" "==>" "${MOVOUTFULL}"
done
echo -------------------------------------------------------
read -p "Press any key to continue. Ctrl-C to break... " -n1 -s
echo
for a in "${INPUTPATH}"/*."${EXTENSION}"; do
if [ -e "${STOPFLAG}" ]; then
break
fi
# MOVINFULL="${a[@]/%${EXTENSION}/mov}"
MOVINFULL="${a%.*}-hvc1.mov"
MOVNAME="$(basename "${MOVINFULL}")"
MOVOUTFULL="${OUTPUTPATH}"/"${MOVNAME}"

if [ ! -e "${MOVOUTFULL}" ]; then
# echo "$MOVOUTFULL"
ffmpeg -i "$a" -c:v libx265 -preset medium -crf 23 -c:s copy -f mov -pix_fmt yuv420p -tag:v hvc1 "$MOVOUTFULL"
if [ $? -eq 0 ]; then
date >> "$FFREPORT"
echo "$MOVOUTFULL converted OK" >> "$FFREPORT"
echo >> "$FFREPORT"
else
date >> "$FFREPORT"
echo "$MOVOUTFULL converted with ERROR" >> "$FFREPORT"
echo >> "$FFREPORT"
fi
else
date >> "$FFREPORT"
echo "$MOVOUTFULL already exists" >> "$FFREPORT"
echo >> "$FFREPORT"
fi
done


Что делает данный bash-файл:
  • в папке INPUTPATH ищутся все файлы с расширением EXTENSION (в данном примере .avi)
  • создается шаблон для переименования выходного файла в вид: OUTPUTPATH/<Имя исходного файла>-hvc1.mov
  • после подтверждения пользователем, начинается процесс пакетного преобразования всех найденных файлов в формат HEVC (файлы пропускаются, если в папке OUTPUTPATH уже есть одноименный выходной HEVC файл).
  • после успешного создания каждого нового видеофайла вносится соответствующая строчка в log-файл (FFREPORT="$OUTPUTPATH/ffenc.log")
  • при необходимость, процесс пакетного преобразования можно "корректно" остановить путем создания в папке OUTPUTPATH флаг-файла (STOPFLAG="$OUTPUTPATH/ffenc.txt"). В таком случае после завершения перекодированная очередного файла, bash процесс останавливается.

Пользователям Windows bat-файл для перекодирования всех файлов в текущем каталоге формата .avi в HEVC (hvc1) формат .MOV можно использовать следующую команду:

for %%a in ("*.avi") do c:\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v libx265 -preset medium -crf 23 -f mov -pix_fmt yuv420p -tag:v hvc1 "%%~na.mov"

Рекомендации и предложения по дальнейшему развитию представленного подхода прошу направлять в почту или оставлять в комментариях.
Надеюсь данное руководство поможет не только мне.


Ubuntu Server в сети MacOS (часть 10)

Ubuntu Server в сети MacOS (часть 10) - Установка VirtualBox на Ubuntu server или как установить Windows 8 на iPad.


Следуя логике («после части 1 всегда идет часть 10» ;), рассмотрим особенности установки, настройки VirtualBox под Ubuntu Server. Данная задача особенно актуальна для пользоватлей iOS, MacOS. Так как использование программ виртуализации под MacOS (VMWare Fusion, Parallels) достаточно дорогое удовольствие, а также они отхватывают значительную часть ресурсов самого MacOS. С другой стороны попробовать все преимущества Windows 8, 8.1) как операционную систему для планшетов при этом «не изменяя» iOS можно только в режиме сетевой виртуализации. Ну и конечно пользователей легальных программных продуктов порадует возможность использовать одну копию ПО (Win Pro, Office и т.п.) на VirtualBox машине с удаленным управлением (в том числе и через Интернет).

1. Виртуальные машины на основе VirtualBox и особенности их использования в Ubuntu Server.

Немного теории (как без нее)


2. Установка VirtualBox на Ubuntu Server 12.04.04.


2.1. Официальный сайт проекта в VirtualBox в интернете - https://www.virtualbox.org. На данной странице присутствуют два важных пунтка:
- ссылка на «phpVirtualBox AJAX web interface» (сейчас это  project site)
- вкладка Downloads - https://www.virtualbox.org/wiki/Downloads
Начнем со второй ссылки.

By downloading, you agree to the terms and conditions of the respective license.


Выбираем подпункт VirtualBox 4.3.10 for Linux hosts. В нем представлено краткое описание ссылок, версий, репозитариев для установки пакета.

Перед началом работы не забываем зайти в режим терминала и получить доступ к серверу через ssh%
ssh user@UNAS.local


2.2. В моем случае установлена базовая операционная система Ubuntu Server 12.04.04, значит репозитарий:
deb http://download.virtualbox.org/virtualbox/debian precise contrib
Для других версий системы (смотри ссылку во вкладке Downloads)


Для добавления данного репозитария существует два способа:

Открываем файл-источников
  • sudo nano /etc/apt/sources.list
и добавляем в него строчку (в конец файла)
  • deb http://download.virtualbox.org/virtualbox/debian precise contrib

Второй, через команду
  • sudo add-apt-repository 'deb http://download.virtualbox.org/virtualbox/debian precise contrib'
Второй способ не всегда срабатывает (так как в обычной поативки данная утилита отсутствует)

Не забываем выполнить комманды (есть на сайте https://www.virtualbox.org/wiki/Linux_Downloads):
  • sudo apt-key add oracle_vbox.asc
  • wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
  • sudo apt-get update


Теперь непосредственно устанавливаем пакет VirtualBox на сервер (в данном случае версию VirtualBox 4.2 (так как версия 4.3 не совместима с версией phpVirtualBox AJAX web interface 4.2)
  • sudo apt-get install virtualbox-4.2

Первый этап установки завершен. VirtualBox установлена на сервер. Однако это только половина процесса установки на сервер. Необходимо еще установить подсистему управления вирутальными машинами. В частности удаленного управления через http-протокол - phpVirtualBox AJAX web interface

2.3. Официапльный сайт проекта phpVirtualBox AJAX web interface - https://code.google.com/p/phpvirtualbox/. На данной странице указана ссылка на соответствующий файл на странице sourceforge.net/projects/phpvirtualbox/. В моем случае это:
http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-8.zip (ссылку можно скопировать перед открытием) - это версия 4.2-8.

Слудем дальнейшим инструкциям.

2.3.1. Подготавливаем работу утилиты:

  • sudo apt-get install apache2 php5 libapache2-mod-php5
  • sudo service apache2 restart

2.3.2. Содаем пользователя и группу

  • sudo adduser --ingroup vboxusers vbox

(придумываем и вводим пароль)

2.3.3. Качаем файл

  • wget 'http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-8.zip' -O phpvirtualbox.zip

2.3.4. Распаковываем файл в папку для дальнейшей работы с www-сервисом

  • sudo unzip phpvirtualbox.zip -d /var/www/phpvirtualbox

2.3.5. Создаем и редактируем файл конфигурации

  • cd /var/www/phpvirtualbox
  • sudo mv config.php-example config.php
  • sudo nano config.php

Изменяем:
  • $username=vbox
  • $password=PWD - ваш пароль

Добавляем строчку (снимаем комментарий) - отменяет необходимость авторизации при подключении к серверу настроек VirtualBox:
  • var $noAuth = true;

2.3.4. Создаем файл
  • sudo nano /etc/default/virtualbox

И добавляем в него следующую строчку:
  • VBOXWEB_USER=vbox

2.3.5. Перезапускаем сервер:

  • sudo /etc/init.d/vboxweb-service start

2.3.6. В браузере заходим на страничку сервиса
  • http://your-server/phpvirtualbox

где your-server - адрес или псевдоним сервера (например, 192.168.1.2)

Все должно работать !!!!
Теперь у нас есть возможность создавать и управлять виртуальными машинами. Но это еще не все.

3. Настройка VirtualBox



Теперь необходимо обеспечить доступ к вирутальным машинам (обычно по протоколу RDP).
Remote Desktop Protocol - это стандартный протокол по удаленному доступу к Windows удаленному столу, также используется по умолчанию в VirtualBox.

3.1. Вначале установим расширения VirtualBox (без него не будет работать расширение RDP и некоторые другие настройки)

  • wget http://download.virtualbox.org/virtualbox/4.2.20/Oracle_VM_VirtualBox_Extension_Pack-4.2.24-92790.vbox-extpack

имя файла уточняем на странице https://www.virtualbox.org/wiki/Downloads

  • sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2*.vbox-extpack
  • sudo /etc/init.d/vboxweb-service stop
  • sudo /etc/init.d/vboxweb-service start

3.2. Устанавливаем RDP-client

В MacOS RDP-client наиболее удобный - это Microsoft Remote Desktop. Платная альтернатива (универсальная RDP и VNC протоколы) - Jump Desktop.
Однако, Microsoft Remote Desktop - бесплатный клиент и дает возможность насладиться в польной мере преимуществами Windows 8.1 Pro удаленного дисплея.
Для iOS и MacOS программа RDP и Jump DeskTop есть в магазине приложений!!!

Ubuntu Server в сети MacOS (часть 1)

Ubuntu Server в сети MacOS (часть 1) - Подготовка к установке.


Продолжительный период использования техники Apple и совместимых аксессуаров привело к образованию значительного запаса ненужного оборудования. Например, внешние firewire диски в новом поколении iMac подключать стало сложно, TimeCapsule первых поколений при замене дисков на более емкие значительно замедляют работу сети. При этом бюджетные NAS системы имеют обычно низкую скорость. В общем, возникла возможность и желание собрать NAS или даже минисервер, максимально используя имеющееся железо и с минимальными затратами.
Начем с самого начала. Выбор оборудования и определение затрат на создание NAS сервера, а также медиа-сервера и многое другое

1. Оборудование для NAS сервера (для тех у кого уже есть собранный ПК можно пропустить).


Первое и самое важно - корпус. Именно на него будем смотреть все время. Более того, я как параноик тишины, хочу, что бы корпус еще был тихий. Поэтому задача выбора корпуса стала самой сложной. В данном случае подойдут все модели формфактора MiniITX, но чем больше и дороже корпус, тем он обычно тише и дороже. Ищем золотую середину. В своих поисках остановился на двух моделях (без блоков питания - все цены указаны на начало 2014 года):
  • Бюджетный - Morex 6610 PC Case (70 usd) - есть возможность подключения до 4х дисков 3,5 дюйма, и даже DVD-ROM (что для мультимедиа сервера не маловажно);
  • Стильный - Fractal Design Node 304 (100 usd) - красивый, стильный, добротный, дорогой. Зато вмещает аж 6-ть дисков 3,5 дюйма (но без возможности установки DVD), 14 сантиметровый кулер + 2 дисковых (все с регулировкой скорости вращения с помощью переключателя «низко»-«средне»-«высоко»).
В качестве совсем бюджетной модели подойдет любой корпус и любого форм фактора, с минимальным блоком питания (так как система должна получиться маломощной). Выбор указанных выше моделей основан на миниатюрности и относительной тишине.
Второй этап - выбор блока питания (Опять же тихого и надежного. Мощность в данном случае не так важна). Получилось подобрать два варианта:
  • С 12 мм. вентилятором бюджетный Zalman ZM400-LE 400W. В дальнейшем можно скрутить защитную решетку, что тоже немного уменьшает шум (ориентир 30 usd);
  • Безвентиляторный (безбожно дорогой) Chieftec GPS-500C 80Plus Platinum 500W. Цена в пределах 150 USD.
И самое главное - материнская плата и процессор. В данном направлении широкий выбор. Остановимся на основных моделях форм-фактора MiniITX. Другие критерии:
  • наличие достаточного количества SATA шлейфов питания (желательно аппаратный RAID, хотя и не обязательно. А для дальнейшей совместимости hard RAID даже противопоказан);
  • память формата SO-DIMM (Очень актуально для пользователей, которые провели upgrade своей Apple техники. Многие не знают куда девать освободившиеся планки ;))
  • низкое энергопотребление системы в целом.
Из доступного на начало 2014 года предложения, получилось подобрать такие варианты :
  • все варианты с интегрированным CPU - хороши, но мало встроенных SATA портов (например, ASRock AD2550-ITX или Asus C8HM70-I/HDMI intCPU) - ориентир 90 USD. То есть надо еще докупать доп. контролер (30-50 USD). Итого: 120-150 USD.
  • Intel Base система. Большой выбор материснких плат на которых интегрированно по 4-е SATA разъема, а в отдельных системах присутствуют две Ethernet карты (на любителя), например, Gigabyte GA-H87TN s1150 mITX (ориентир 110 USD) или с двумя Ethernet, Hard Raid, miniPCI (для подключения SSD диска) - Asus Q87T s1150, Intel Q87, PCI-E 3.0x16 (Ориентир 160 USD). Процессор с минимальным энергопотреблением - Intel Core i3-4130T 2.9GHz/3MB/5GT/s (120 USD). Итого 230-270 USD.
  • AMD система (компромисс цена/качество). Материанская плата с 7-ю SATA разъемами: ASRock FM2A85X-ITX (95 USD). К ней нужна и память DDR3 стандартного размера - ориентир 50 USD . Процессор с низким энергопотреблением: AMD Richland A8-6500T 2.1GHz/3100MHz/4MB (100 USD). Итого: 245 USD.

Жесткие диски - САМОЕ ВАЖНО, но их выбор это тема целого исследования. Поэтому, уточню только основные особенности при выборе современных жестких дисков:
1. Не покупайте диски Desktop-класса, особенно WD Green (очень плохо работают в RAID массивах и вообще в NAS системах). При значительной нагрузке (круглосуточной работе) выходят из строя за год, а то и менее. При этом обязательный в данном случае RAID1 (минимум 2-а диска) получается дороже покупки одного более дорого диска.
2. Сегодня появились на рынке диски с маркировкой NAS. Из названия понятно, что ориентирвоаны на рассматриваемые системы. Они характеризуются длительным периодом эксплуатации и сравнительно низкой старостью вращения шпинделя (5400-5900 оборотов). В целом данные диски - оптимальный выбор. Очень рекомендую покупать сразу минимум 3и диска для формирования RAID5 массива.
3. Дорогие диски - специально для сервера (корпоративного класса). Характеризуются высокой скоростью и повышенной надежностью. Обычно в 2 раза дороже обычных дисков (Desktop и NAS уровня). Для домашнего сервера - эти диски на любителя. Хотя можно рассмотреть покупку именно даного диска для установки операционной системы, формирования надежного RAID массива и т.п.
Общие замечания - чем дешевле диск (с поправкой на емкость) - тем ниже его надежность и/или скоростные характеристики.

2. Установка и первичная настройка программного обеспечения на сервер.



Переходим к главному этапу - установка и первичная настройка ПО.
По различным причинам выбор пал именно на Ubuntu Server, так как данное решение
  • бесплатное и достаточно стабильное
  • практически не возникает проблем с поддерживаемым оборудование (не в пример с VMWare, тоже бесплатным, но очень капризным по отношению к оборудованию)
  • огромное число приложений и частных решений (от стандартного набора SMB, VPN, UPNP до специфического для MacOS - AFP (Netatalk) протокола, HFS+ файловых систем и т.п.)
  • имеет широкое распространение (официальная поддержка и значительное число решений в рамках сообщества).
Следующая проблема - выбор конкретного дистрибутива. На официальной странице ubuntu.ru представлены две серии стабильных выпусков: выпуск с длительной поддержкой (сейчас - Ubuntu Server 12.04.4, который существенно обновляет один раз в два года) и стандартный выпуск (обновляется два раза в год). С учетом ого, что сервер - это довольно стабильная система длительного пользования, мною выбран именно вариант с длительной поддержкой. Однако установка и стандартной версии значительно не изменила результата. Если есть желание повозиться с новыми программами, сервисами и т.п. То лучше ставить именно Ubuntu Server с полугодовым обновлением.
Кстати на счет выбора 32 или 64 битной Ubuntu server версии однозначного ответа не дам. Должно быть лучше AMD (x64) версия. однако, с ней связана определенная несовместимость старых программ, что тоже решается и будет дополнительно описано при рассмотрении процесса установки UPNP сервера.

В данном примере выбрава Ubuntu Server 12.04.4 AMD версия.

Подготовка загрузочного диска



Исходный файл дистрибутива можно скачать с официального сайта Ubuntu в по torrent или http протоколу - http://ubuntu.ru/get

Что делать с полученным файлом? Проще всего записать на CD-диск и провести установки с внешнего диска. Но поскольку эра CD ужа безвозвратно уходит в прошлое, большинству пользователей данный вариант недоступен. Поэтому необходимо записать загрузочный falsh-диск. В Windows для этого можно использовать программу UltraISO (на подробностях не буду останавливаться, так как настоящие «герои» всегда идут в обход ;)).

Запись iso-дистрибутива на flash в MacOS (в Ubuntu поступаем аналогично, только немного меняется синтаксис команд). Все команды выполняем в режиме терминала


1. Вначале для записи iso-файл образа диска установки на загрузочную flash-ку необходимо провести его конвертацию в формат .dmg с помощью системной утилиты hdiutil. Синтаксис смотри ниже.

hdiutil convert -format UDRW -o /Volumes/data/ubuntu-12.04.3-server-i386 /Volumes/data/ubuntu-12.04.3-server-i386.iso

где
/Volumes/data/ubuntu-12.04.4-server-amd64 - путь и имя файла .dmg
Volumes/data/ubuntu-12.04.4-server-amd64.iso - путь и имя исходного .iso файла

В операционной системе Ubuntu конвертировать .iso файл образа не надо.

2. Уточнение параметром компьютера и имя диска носителя flash.
Созданный файл (ubuntu-12.04.4-server-amd64.dmg)необходимо записать на Flash. Что бы определить какой именно диск является flash носителем используем утилиту diskutil.

diskutil list

У меня данная команда выводит следующий результат:

/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 999.3 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *3.0 TB disk1
1: EFI EFI 314.6 MB disk1s1
2: Apple_HFS MyBook09 3.0 TB disk1s2
3: Apple_Boot Recovery HD 650.0 MB disk1s3
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.8 GB disk2
1: DOS_FAT_32 DATA 7.8 GB disk2s1


ТУТ ВНИМАТЕЛЬНО!!!
Исходя из полученного листинга доступных дисков видно, что к компьютеру подключены 3 диска (/dev/disk0, /dev/disk1, dev/disk2). Никогда не используйте /dev/disk0 (это практически всегда системный диск). Я знаю, что моя flash на 8 Gb. Смотрим на листинг комманды diskutil. Есть диск размеров 7,8 Gb. Значит, сорее всего, подходит.
В приведенном примере диск flash - это /dev/disk2

В ubuntu для вывода списка дисков используем fdisk -l

3. Обязательно демонтируем диск /dev/disk2

diskutil unmountDisk /dev/disk2

Если данную операцию не произвести, получим ошибку «Диск занят» (не забываем демонтируем именно выбранный диск Flash).

В ubuntu для данных целей применяет стандартную команду
sudo umount /dev/sdc2 (для disk2)

4. Запись образа (АККУРАТНО С СИНТАКСИСОМ ИМЕНИ ДИСКА - можно удалить информацию на системном носителе)

Запись образа производиться по аналогии со всеми unix-подобными системами (OSX, Ubuntu и т.п.) командной dd (посекторная запись данных):

sudo dd if=/Volumes/data/ubuntu-12.04.4-server-amd64.dmg of=/dev/rdisk2 bs=1m

где
ubuntu-12.04.4-server-amd64.dmg - файл диска образа системы
of=/dev/rdisk2 - обозначение диска Flash (того самого /dev/disk2. Для диска /dev/disk3 данный параметр будет of=/dev/rdisk3 и т.п.)


Загрузочный flash готов.
Не забываем извлечь диск командой diskutil

diskutil eject /dev/disk2