Способы записи вещания

Запись можно сделать несколькими способами:

  1. Встроенными средствами вещательной программы.
  2. Отдельной программой на стороне ведущего.
  3. Средствами айскаста, на стороне сервера.

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

Первый и третий сейчас разберём.

Запись программой вещания

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

Это может пригодиться вот для чего. При вещании мы ограничены в выборе кодека и качества звука:

  • В разных браузерах работают разные кодеки, самый универсальный вариант — mp3. Который уже давольно старый и сжимает звук не очень качественно.
  • Чтоб поместилось больше слушателей и они могли слушать даже при плохом соединении, урезаем битрейт. А вместе с ним и остальные звуковые параметры. Подробнее про них мы говорили в бонусе «Сжатие звука».

Но при раздаче записи оба эти ограничения снимаются.

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

То есть мы можем для записи заменить кодек на более продвинутый, например AAC+ и при желании увеличить характеристики звука и битрейт. Причём, второе даже не обязательно, просто смена кодека уже улучшит звук.

Если вещательная программа не поддерживает запись в нужном вам формате, сохраняйте:

  • либо без сжатия — WAV;
  • либо loseless кодеками (FLAC, ALAC), которые сжимают без потерь;
  • либо с высоким битрейтом и параметрами.

С помощью конвертеров, или даже радактора Audacity, которого мы коснёмся чуть ниже, вы сможете пережать запись в нужный формат.

Warning

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

Перекодировать можно запись полученную на стороне ведущего с помощью программы вещания или отдельного приложения.

Высокое качество перед перекодированием нужно не случайно. Повторное сжатие звука, который ранее был сжат с потерями, ухудшает качество. Например качество mp3 файла с битрейтом 64kbps при повторном сжатии в те же 64kbps (пример, после редактирования) будет сравнимо с 32kbps.

Если файл с низким битрейтом пережимать несколько раз, будет ещё хуже. Потому, если собираемся редактировать или просто пережимать запись, качество ставим максимальное.

Note

Будьте внимательны с WAV-файлами, они занимают довольно много места. Для записи 80 минут звука с качеством 44100 Гц, 16 бит, стерео потребуется почти 850 Мб. Кстати, именно такой объём данных помещается на Audio CD1. И с этими же характеристиками.

Конечно, улучшать качество звука для записи не обязательно. Но если вы планируете редактировать запись, звук всё равно будет сжат заново. И можно выбрать другой кодек и параметры.

Особенности записи на сервере

Запись на стороне сервера включается в настройках точки подключения. Для этого в секцию <mount> нужной точки прописываем параметр <dump-file>. Простейшая секция будет выглядеть так:

    <mount>
        <mount-name>/webinar</mount-name>
        <dump-file>/tmp/dump-webinar.mp3</dump-file>
    </mount>

То есть указывается обязательное имя точки подключения и настройка для записи вещания. Конечно, вы можете добавить и другие настройки.

dump-file

В этой настройке указывается абсолютный путь к файлу, в который будут записываться вещания из данной точки.

Пользователь (в линуксе), от имени которого запущен айскаст, должен иметь разрешения (права) на запись в папку и в файл, указаный в <dump-file>.

Если у вас есть свой сайт, то вы то могли сталкиваться с правами на папки и файлы например при загрузке по FTP или установке PHP-скриптов через файл-менеджер.

Для любознательных

В простом случае права для каждого файла и папки задаются тремя цифрами от 0 до 7. Изменить их можно командой chmod (через SSH). Изменить владельца файла/папки можно командой chown.

Но мы в эти линуксовские дебри не полезем. Я покажу, как настроить запись без погружения в права-разрешения. А для интересующихся некоторые подробности будут ниже.

Простой вариант заключается в том, чтобы настроить запись в папку с логами (журналами) айскаста. У неё уже выставлены все нужные разрешения (айскаст уже записывает в неё логи).

Путь к директории с логами берём из конфига айскаста. И дописываем к нему желаемое имя файла. На CentOS по умолчанию логи пишутся в папку /var/log/icecast/, на Ubuntu — в /var/log/icecast2/. Чтоб не ошибиться, возьмите путь из параметра <logdir> секции <paths>:

    <paths>
        ...
        <logdir>/var/log/icecast</logdir>

Например, если у вас CentOS и вы хотите записать вещание в файл record-webinar1.mp3, то значение <dump-file> будет:

<mount>
    ...
    <dump-file>/var/log/icecast/record-webinar1.mp3</dump-file>
Разрешения в линуксе

Тема огромная. И в ней есть подводные камни. Поэтому, если вы далеки от компьютеров и у вас нет толкового админа, рекомендую воспользоваться именно простым способом, а этот раздел пропустить.

Для любопытных коротко опишу, как установить нужные права-разрешения.

Айскаст, при установке из репозитория, запускается от имени своего, специально созданного пользователя. Относящегося к специальной группе. Прописаны они в секции <security> в конфиге (CentOS) или в отдельном файле /etc/default/icecast2 (Ubuntu/Debian). Обычно это группа icecast и пользователь icecast или icecast2.

В линуксах принято разграничивать права различных программ. Например, если в программе окажется «дыра» и её можно будет взломать, злоумышленник не сможет получить доступ ко всему серверу. Он получит доступ только к тем ресурсам, к которым имеет доступ программа.

Разграничени прав встроена на уровне файловой системы. Для каждого файла и директории существует три уровня доступа: владелец, группа владельца и прочие. А также разрешения для каждого уровня: чтение, запись, исполнение.

Если вы хотите разрешить айскасту запись в какую-то папку, то скорее всего понадобится разрешить запись для «прочих» (т.к. айскаст не будет являться владельцем директории). Сделать это можно командой chmod o+w папка.

Есть вариант лучше (безопаснее). Создать папку специально для записей. И назначить айскаст её владельцем. Тогда права на запись можно дать владельцу/группе, а не всем («прочим»).

Сменить владельца можно командой chown пользователь:группа папка.

Но управлять правами следует с ясным пониманием, что вы делаете. В особенности, очень нежелательно устанавливать права 777 на файлы и директории. Т.к. это может стать брешью в безопасности.

Дозапись файла

Имеющийся файл записи при запуске нового вещания дополняется. То есть если у ведущего разорвалось соединение, а потом восстановилось, запись вещания будет продолжена в тот же файл с места разрыва.

Поэтому перед очередным вещанием файл следует переименовать или переместить. Или указать в настройках другое имя, например record-webinar2.mp3. Иначе в тот же файл будет дописано второе вещание.

Note

В экспериментальной версии айскаста в имя файла можно подставить текущую дату-время. В следующей его версии, разработка которой активно идёт, эта возможность будет добавлена.

Как вы помните, чтобы изменения вступили в силу, следует сохранить конфиг и перезапустить сервис айскаста. Поэтому удобнее переименовать или переместить файл. Сделать это можно из панели управления сервером. И делать это следует, когда вещание не запущено.

Как скачать запись

Скачивать файлы записей удобнее всего через панель управления сервером. Просто откройте файловый менеджер панели, перейдите в папку с логами, выберите файл и нажмите кнопку скачать. Конкретно не описываю — в разных панелях делается по-разному.

Тут же можно переименовать файл, например подставив дату вещания. И/или перенести файл в другую папку, например в директорию сайта.

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

Если нет панели управления

Можно переименовать/переместить файл записи и без панели управления. Но для этого понадобится SSH и команда mv:

mv /var/log/icecast/record-webinar1.mp3 /var/log/icecast/webinar-fishing.mp3
mv /var/log/icecast/record-webinar1.mp3 /other/path/

Первая команда переименует файл record-webinar1.mp3 в webinar-fishing.mp3. А вторая — переместит его в директорию /other/path/. Можно также указать и путь, и новое имя файла одновременно.

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

Раздача записи средствами айскаста

Как вы помните, в айскаст встроен файл-сервер. Это простейший веб-сервер, который позволяет пользователям скачивать файлы, находящиеся в определённой папке. Прямо через браузер.

То есть если в браузере вы напишете http://server:port/filename, и не существует точки подключения с именем filename, айскаст попытается отдать вам файл с этим именем.

Искать он его будет в папке, заданной в параметре <webroot> в конфиге. Как и прочие пути, находится <webroot> в секции <paths>. Обычно это папка /usr/share/icecast/web/ или /usr/share/icecast2/web/. Если положим в неё любой файл, например запись вещания, его можно будет скачать через браузер.

Переместить файл в папку файл-сервера можно командой mv /var/log/icecast/record-webinar1.mp3 /usr/share/icecast/web/. То есть первый аргумент команды — исходный файл, второй — папка, куда его переместить (укажите свою).

Если во втором аргументе указать ещё и имя файла, то исходный файл при перемещении будет заодно переименован.

Если при попытке выполнить команду вы увидите сообщение Permission denied, то есть «нет доступа», выполните команду ещё раз, дописав sudo и пробел в начало.

Hint

Можно также выполнить команду sudo !!. Она запустит предыдущую команду (в примере это mv) с правами суперпользователя.

Hint

Если запись предназначена для раздачи пользователям, после переноса её можно запаковать в архив. Сжатие будет небольшое, но архив лучше скачивается. Некоторые браузеры при открытии mp3 файла вместо предложения его скачать начинают воспроизведение. Заархивировать файл можно командой zip /usr/share/icecast2/web/live-rec.zip /usr/share/icecast2/web/live-rec.mp3.

Возможно понадобится установить zip. Сделать это можно командой sudo apt-get install zip или sudo yum install zip.

Warning

В директории файл-сервера хрянятся также служебные файлы, нужные для страницы статуса и админки айскаста. Поэтому будьте внимательны, ничего не удаляйте.

Теперь, когда запись доступна для скачивания, если не требуется редактирование, ссылку на неё сразу можно отправить участникам вебинара.

Но важно иметь в виду, что скачивание записи также занимает часть канала вашего сервера. Причём нагрузка более заметная по сравнению прослушиванием вещания. По той простой причине, что скорость при прослушивании ограничена битрейтом потока, а при скачивании записи не ограничена ничем. То есть нагрузка больше, но не так долго.

Поэтому, раздавать запись участникам с помошью файл-сервера айскаста стоит только в свободное от вещаний время. Или если слушателей у вас относительно мало, а канал позволяет одновременно и вещать и давать скачивать записи.

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

Правка записи

Для редактирования записи можно воспользоваться бесплатной кроссплатформенной программой с открытым исходным кодом Audacity.

Про неё уже много кто рассказывал. Например, можете прочитать про редактирование запиcи в книге Азамата Ушанова «7-дневный план продажи информации в интернете». Про Audacity рассказывается во втором и третьем дне.

Дополню только, что для экспорта в AAC следует скачать не только дополнительно кодек lame mp3, но ещё и FFmpeg. Из-за каких-то проблем с патентами, кодеки не встроены в Audacity и скачать их самостоятельно.

Установка FFmpeg

Необходимые действия описаны тут (на английском). На всякий случай, опишу по-русски, что там на момент публикации урока.

Но сначала откройте в Audacity в Настройки -> Библиотеки, проверьте, нужно ли вам вообще устанавливать кодеки. Если пишет «не найдено», устанавливайте.

  1. Перейдите на эту страницу. Сейчас там ссылка ещё на одну страницу.
  2. Найдите там раздел «Windows downloads» или «MAC OSX downloads».
  3. Скачайте файл FFmpeg_v0.6.2_for_Audacity_on_Windows.exe или FFmpeg (0.6.2 OSX 10.4+ DMG). Первый, как видно, для Windows. Второй для Mac OS X.
  4. Откройте скачанный файл и запутите его
    • Для Windows запустите установку FFmpeg_v0.6.2_for_Audacity_on_Windows.exe, разрешите продолжить, прочтите лицензию, нажмите пару раз Next, затем Install. Нужные файлы будут установлены в папку C:\Program Files\FFmpeg for Audacity (или C:\Program Files (x86)\FFmpeg for Audacity).
    • Откройте образ диска FFmpeg_v0.6.2_for_Audacity_on_OSX.dmg. В нём запустите файл FFmpeg Libraries for Audacity.pkg, начнётся установка. Несколько раз нажмите Далее. В случае запроса пароля, введите его. Нужные файлы будут установлены в директорию /usr/local/lib/audacity.
  5. Перезапустите Audacity, если он был запущен.
  6. В настройках должна появиться поддержка FFmpeg. Если не появилась, укажите путь вручную.

Экспорт

Итак, вы открыли файл записи в Audacity, отредактировали его, настало время его сохранить. Сделать это можно через пункт меню Файл -> Экспортировать…. Тип файла можете выбрать M4A AAC.

Но в параметрах экспорта вы увидите только «Качество». Остальные характеристики там отсутствуют.

Дело в том, что Audacity использует текущие характеристики проекта. Частоту дискретизации вы можете сменить в левом нижнем углу программы. А если понадобится от стерео перейти к моно, воспользуйтесь командой меню Дорожки -> Стерео в моно.

После того, как выставили нужные характеристики, можно переходить к экспорту. После нажатия кнопки сохранения вам может быть предложено отредактировать метаданные файла — информацию об исполнителе и т.д. После нажатия OK файл будет сохранён.

Note

При открытии файла Audacity «распаковывает» его в формат без сжатия. Поэтому будьте готовы, что может понадобиться пара гигабайт свободного места. Особенно, если решите подправить шестиканальную дорожку трёхчасового фильма : )

Как пользоваться Audacity

Программа позволяет много чего делать. Но нам при редактировании как правило нужно только вырезать некоторые фрагменты и иногда добавить другие. Дополнительные возможности за рамками этого курса. Но вы без труда сможете найти видеоуроки по Audacity. Просто так и напишите в запросе Google или Яндексу: «Видеоуроки Audacity» (без кавычек).


  1. Статья из английской википедии про битрейт