Linux – лицом к пользователю

В предыдущей статье я коротко, но надеюсь достаточно понятно описал, как можно установить Linux Mandriva One 2009 на устройство Asus Eeepc. Я даже не сомневаюсь, что обязательно найдутся люди, которые предпочтут использование Windows XP, а среди моих сзнакомых нашелся даже страдалец, предложивший установить на это устройство Windows Vista. Не сомненно он глубоко несчастный человек.
По поводу же Windows XP – помимо всеж достаточно большой громоздкости этой ОС (это на 20 Гб винта) – существует одно но – поддержка данной системы в настоящее время прекращена, и ее дистрибутивы в легальной продаже в настоящее время практически отсуствуют. Если это вас не особо волнует – Бог вам судья, и со своими задачами разбирайтесь сами.
Ну а мы наслаждаемся производительностью и удобством работы под KDE4. Надо сказать что система практически готова для работы с момента установки, и для решения большинства стандартных задач в ней все есть. Но задачи бывают и не стандартными. Например я столкнулся с одной такой – задача переконвертировать звуковой файл формата amr – в таком формате пишут ряд телефонных диктофонов в стандартный сжатый формат mp3.
Опять же, задача кажется нестандартной просто потому что я мало работаю со звуком и только поэтому. На самом деле существует огромное количество тем, посвященных данной проблеме, в особенности на французком и английском языках, но сложности тут добавляет то, что технологии сжатия amr не являются открытыми. Поэтому если вы хотите что бы ваша система могла нормально работать с таким звуком – вам прийдется приложить некоторые усилия.
Если вам просто нужно прослушивать звук в данном формате – вам в этом поможет RealPlayer – он вполне нормально воспроизводит данный формат.
Если же вам нужно выполнять конвертацию – то в таком случае вам будет нужно или же установить программу типа SoundKonverter (либо подобную ей – программ существует множество – но есть определенные проблемы – они зачастую требуют дополнительных связей и зависимостей, и я в конце концов решил не мучатся). Или же собрать вручную пару библиотек и пользоваться ими. Это оказалось проще всего.
И так – для того что бы вы могли собрать что-либо из исходных кодов, вам необходим инструмент – компилятор и линковщик. В LMO, как и в других юникс-подобных системах эту роль играет gcc. Для его нормальной работы необходимо 7 пакетов:
[code]

  1. gcc-4.3.2.-3mnb2.i586.rpm
  2. gcc-c++4.3.2-3mnb2.i586.rpm
  3. glibc-devel-2.8-1.20080520.5mnb2.i586.rpm
  4. kernel-headers-2.6.27.5-1mnb2.i586.rpm
  5. manbo-mandriva-files-gcc-4.3.2-1mnb2.i586.rpm
  6. manbo-mandriva-files-gcc-c++-4.3.2-1mnb.i586.rpm
  7. libstdc++-devel-4.3.2-3mnb2.i586.rpm

Не стоит пугаться непонятных названий, или стремится их учить наизусть – названия пакетов приведены здесь для примера и действительны только для моей версии LMO – это во первых. А во вторых, все что необходимо – за вас сделает исталлятор – ваша же задача только выбрать пакет, который вы хотите установить. Если же по какой либо причине у вас отсутсвует сетевое подключение к Интернету, то тоже ничего страшного – вы можете в компьютерном клубе, или где либо в другом месте закачать эти пакеты, скопировать их в папку /var/cache/urpmi/rpms – и все остальное система сделает за вас. Если же у вас есть подключение к интернету – то тогда проблемы вообще быть не должно. Актуальные на данный момент пакеты вы всегда найдете на ФТП-сервере – ftp://ftp.mandriva.ru
Скриншот Линукс1: Установка и удаление программСкриншот Линукс1: Установка и удаление программ
После того как у вас все успешно установилось – приступаем к сборке необходимых компонентов. Нам понадобятся:

  1. http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
  2. http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
  3. http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
  4. http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.gz
  5. http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
  6. http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2
  7. http://downloads.xiph.org/releases/theora/libtheora-1.0beta3.tar.gz

После того как вы закачали все указанное – распаковываем это все в директорию /usr/src/rpm/SOURCE(обратите внимание что все это нужно выполнять с правами root’а)

  • tar -xvf lame-3.97.tar.gz
  • tar -xvf libogg-1.1.3.tar.gz
  • tar -xvf libvorbis-1.2.0.tar.gz
  • tar -xvf essential-20071007.tar.bz2
  • tar -xvf amrnb-7.0.0.2.tar.bz2
  • tar -xvf amrwb-7.0.0.3.tar.bz2
  • tar -xvf libtheora-1.0beta3.tar.gz

Все это можно сделать и в графической оболочке – но только в консоли это гораздо проще.
Делаем директорию для кодеков

mkdir /usr/local/lib/codecs/

Копируем бинарные кодеки

  • mkdir /usr/local/lib/codecs
  • mv /usr/src/rpm/SOURCE/essential-20071007/* /usr/local/lib/codecs/
  • chmod -R 755 /usr/local/lib/codecs/

Инсталлируем lame

  • cd /usr/src/rpm/SOURCE/lame-3.97
  • ./configure
  • make && make install

Инсталируем последовательно кодеки для ogg,vorbis

  • cd /usr/src/rpm/SOURCE/libogg-1.1.3
  • ./configure && make && make install
  • cd /usr/src/rpm/SOURCE/libvorbis-1.2.0
  • ./configure && make && make install

Собираем mplayer

  • cd /usr/src/rpm/SOURCE/mplayer
  • ./configure –enable-jpeg
  • make && make install

Собираем библиотеки непосредственно отвечающие за формат amr

  • cd /usr/src/rpm/SOURCE/amrnb-7.0.0.2
  • ./configure
  • make && make install
  • cd /usr/src/rpm/SOURCE/amrwb-7.0.0.3
  • ./configure
  • make && make install

И последней собираем библиотеку ffmpeg, создаем ссылки в системных каталогах и в принципе все.

  • ./configure –enable-libmp3lame –enable-libvorbis –disable-mmx –enable-shared –enable-libamr-nb –enable-libamr-wb –enable-nonfree –enable-libtheora
  • make
  • make install
  • ln -s /usr/local/lib/libavdevice.so.52 /usr/lib/libavdevice.so.52
  • ln -s /usr/local/lib/libavformat.so.52 /usr/lib/libavformat.so.52
  • ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
  • ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
  • ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
  • ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51
  • ln -s /usr/local/lib/libamrnb.so.2 /usr/lib/libamrnb.so.2

Теперь вы должны спокойно работать с нужными вам форматами.
А перекодировку можно выполнять как в mplayer, так и при помощи обычного скрипта. Скрипт достаточно простой – и при необходимости вы вполне можете его улучшить

  • #! /bin/bash
  • SOURCE_IN = /home/nona/dirinput
  • FINALIWAV=/home/nona/dirwav
  • SUFFIX1=raw
  • SUFFIX2=wav
  • I=0;
  • for file in $SOURCE_IN/*.amr;
  • do
  • FILE=`echo $file |sed -e “s/.amr//”`;
  • /usr/local/bin/amrnb-decoder $file “$FILE.$SUFFIX1” > log.std 2 > log.err;
  • sox -r 8000 -s -2 “$FILE.$SUFFIX1” -t wav “$FILE.$SUFFIX2” > log.std 2 > log.err;
  • /usr/local/bin/lame “$FILE.$SUFFIX2” “$FINALWAV/$I.$SUFFIX2” –silent –tt $FILE –ta $USER
  • rm “$FILE.$SUFFIX2”;
  • rm “$FILE.$SUFFIX1”;
  • let “I=$I+1”;
  • done

Если статья была полезна вам – не забывайте поделиться ею со своими друзьями в социальных сетях. Если есть вопросы – задавайте в комментариях либо в наших социальных группах.