среда, 20 апреля 2011 г.

Конвертирование библиотеки Траума из fb2 в epub на ReadyNas Duo. Часть 1.

Для чтения книжек я более 3 лет пользуюсь читалкой Sony PRS-505. Пока она не пришла в негодность менять ее смысла нет.Единственное небольшое неудобство в том, что она не поддерживает формат fb2.

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

Unix way, хоть и не так прост как операция drag & drop, но при выполнении рутины лучшего способа, чем пакетный режим Linux-а я не знаю.

Что мы попытаемся сделать.
Мы напишем скрипт конвертирования всей библиотеки Траума на ReadyNAS Duo. И запустим эту конвертацию.

Слава богу и open source программа конвертации из fb2 в epub доступна на форуме the-ebook

Приступим
Все описанные ниже действия мы выполняем прямо на ReadyNas Duo, подключившись к нему из под терминала.
  1. Сначала нужно создать директорию, где будем все компилить и установим необходимые пакеты: # mkdir -p /c/media/stuff/fb2epub/fb2epub # cd /c/media/stuff/fb2epub/fb2epub # wget http://fb2-to-epub-converter.googlecode.com/files/fb2toepub-1.0_4.zip # apt-get install g++ zlib1g-dev
  2. Лексический анализатор flex, доступный из репозитория имеет устаревшую версию 2.5.31-31sarge1. Поэтому скомпилим и установим последнюю версию: # cd /c/media/stuff/fb2epub # wget http://prdownloads.sourceforge.net/flex/flex-2.5.35.tar.gz # tar -xzvf flex-2.5.35.tar.gz # cd flex-2.5.35 # ./configure --build='sparc-linux' # make # checkinstall checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. The checkinstallrc file was not found at: /usr/local/sbin/../checkinstallrc Assuming default values. The package documentation directory ./doc-pak does not exist. Should I create a default set of package docs? [y]: y Preparing package documentation...OK Please choose the packaging method you want to use. Slackware [S], RPM [R] or Debian [D]? D Please write a description for the package. End your description with an empty line or EOF. >> The Fast Lexical Analyzer >> ***************************************** **** Debian package creation selected *** ***************************************** /usr/local/sbin/checkinstall: line 1: dpkg-architecture: command not found /usr/local/sbin/checkinstall: line 1: rev: command not found /usr/local/sbin/checkinstall: line 1: rev: command not found /usr/local/sbin/checkinstall: line 1: rev: command not found /usr/local/sbin/checkinstall: line 1: rev: command not found This package will be built according to these values: 0 - Maintainer: [ root@ReadyNas1 ] 1 - Summary: [ The Fast Lexical Analyzer ] 2 - Name: [ flex ] 3 - Version: [ 2.5.35 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ sparc ] 8 - Source location: [ flex-2.5.35 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ flex ] 12 - Conflicts: [ ] 13 - Replaces: [ ] . . . . . . . . . ********************************************************************** Done. The new package has been saved to /c/media/stuff/fb2epub/flex-2.5.35/flex_2.5.35-1_sparc.deb You can install it in your system anytime using: dpkg -i flex_2.5.35-1_sparc.deb ********************************************************************** # dpkg -i flex_2.5.35-1_sparc.deb
  3. И, наконец, скомпилируем конвертер: # cd /c/media/stuff/fb2epub/fb2epub # make

Мы сделали большую часть дела: скомпилировали под ReadyNAS утилиту конвертирования fb2 в формат epub.

Кому лениво все это компилировать, то можно скачать по ссылкам:
fb2toepub
flex_2.5.35-1_sparc.deb

Скорость конвертации на ReadyNAS Duo составляет около 500 книг в час. Библиотека Траума на 16 сентября 2011 года содержит около 125 000 книг. Таким образом вся библиотека на ReadyNas будет сконвертирована за 10 дней.
Для сравнения на ноутбуке Thinkpad x220 с процессором i7 2620 c тактовой частотой 2.7 GHz скорость конвертации составляет примерн 28000 книг в час.

В следующей статье я расскажу как настроить шрифты и сконвертировать всю библиотеку Траума.

пятница, 11 марта 2011 г.

Конвертирование cue в Nautilus

В интернете на треккерах можно найти достаточно большое количество музыкального контента в lossless формате. Так сложилось, что я храню свою музыкальную коллекцию в виде mp3 файлов и мне приходится конвертировать ape, flac или WavPack в формат mp3.

Как правило исходник имеет в своем составе один большой ape, flac или wv файл и файл cue, в котором сохранена информация о дорожках из которых состоит образ диска.

Я использую для конвертирования из ape/flac/wv в mp3/ogg скрипт, работающий в nautilus.

Как это работает.

Процесс конвертирования выглядит следующим образом:
1. Выбираю cue-файл, по правой кнопке из меню Script выбираю Split-Audio-by-CUE.sh.
Дальше все действия происходят автоматически.
2. Все файлы сохраняются в каталоге original. Тамже сохраняются промежуточные файлы конвертации.
Исходный ape/flac файл распаковывается в wav.
3. Wav файл кодируется в mp3 или ogg
4. В соответствии с описанием в cue-файле mp3/ogg разбивается на треки

Как это установить.

Сначала нужно установить необходимые пакеты: $ sudo apt-get install flac lame mp3splt vorbis-tools wavpack $ wget http://axaru.opendrive.com/files/56708443_kKKU9/mac-3.99-u4_3.99-4.5_amd64.deb $ sudo dpkg -i mac-3.99-u4_3.99-4.5_amd64.deb Я использую 64-х битную версию. Если у вас стоит 32-х битная, то скомпилируйте сами deb пакет.
Исходник mac-3.99 тут или тут. Пропатченный APELink.cpp.

Нужно создать каталог, где будут храниться скрипты, необходимые для обработки audio файлов: $ mkdir -p $HOME/.gnome2/nautilus-scripts/EasyTAG сохранить в нем под именем Split-Audio-by-CIE.sh следующий скрипт:
#!/bin/bash

# Split audio archive file (ape or flac) by cue
#
# Filename: Split-audio-by-CUE.sh
#
# Setup:
# sudo apt-get install flac lame mp3splt vorbis-tools wavpack
# wget http://members.iinet.net.au/~aidanjm/mac-3.99-u4_b3-1_i386.deb 
# sudo dpkg -i mac-3.99-u4_b3-1_i386.deb 
#
# Version         Changes
# ------------   ---------------------------------------------------------------
#VERSION=0.1      # Initial version convertion Nautilus ape or flac to mp3 or ogg
#VERSION=0.11     # Eliminate some bug in wav encoding
#VERSION=0.12     # Saving original files to ORG directory.
VERSION=0.13     # Added decompressing from wave pack

# Copyleft AxaRu http://axa-ru.blogspot.com/2011/

# For debug set to 1
DEBUG=0

# Uncoment actual format
ENCODING=mp3     
#ENCODING=ogg    

# Lame encoding quality
#MP3QUALITY=hifi
MP3QUALITY=cd

# Directory for saving original files
ORGDIR=original
BASEDIR="$(pwd)"

#===============================================================================

using()
{
   zenity --info --no-wrap --text="Nautilus script for decopmpressing ape or flac audo file by que.\n\n
Using:
\t\tSimple select some cue file in nautilus, tape right mouse button and select:
\t\tScript->Audio tags manip->Split-audio-by-CUE.sh\n
Adjusting:
\t\tTarget encoding mp3 or Ogg select by uncomment appropriate variable
\t\t\n
Debuging:
\t\tIn the script Split-audio-by-CUE.sh setup DEBUG variable to 1
\t\tand You will see debug message in Gnome popup windows"
}

save_files()
{
  if [ -d "$ORGDIR" ]; then
     zenity --error --text="Directory $ORGDIR exist in current catalog.
Please remove its and start script agan"
     exit 1
  fi
  out="$(mkdir "$ORGDIR")"
  out="$(mv * "$ORGDIR")"
}

exit_error()
{
  out="$(rm *)"
  out="$(mv "$ORGDIR"/* .)"
  out="$(rmdir "$ORGDIR")"
  exit 1
}

((DEBUG)) && zenity --error --text="Lets Go!"

save_files
# Проверить, что был выбран один файл ($# = 1)
  if [ $# -ne 1 ] ; then
    using
    exit_error
  fi

# Считать cue файл
  CUENAME="$1"
    ((DEBUG)) && zenity --error --text="Cue:        $CUENAME"

  # Найти строку, начинающуюся с тега "FILE" прочитать файл
  AUDNAME="$(awk "/FILE/" "$ORGDIR/$CUENAME" | awk -F"\"" '{ print $2 }')"
    ((DEBUG)) && zenity --error --text="Audio file: $AUDNAME"

  # Проверить, что такой файл существует

  if [ ! -f "$ORGDIR/$AUDNAME" ] ; then
    zenity --error --text="Input file $ORGDIR/$AUDNAME doesn't exist"
    exit_error
  fi

  # Разархивировать в wav
( 
  case "$AUDNAME" in
    *.[fF][lL][aA][cC] )
      fn=${AUDNAME%.[fF][lL][aA][cC]}
      echo "# Deflating \"$fn.flac\" to wav"
      echo "30"
      ((DEBUG)) && zenity --error --text="Flac decompressing : $fn"
      out="$(cd "$BASEDIR/$ORGDIR"; flac "-d" "$AUDNAME" -o "${fn}.wav")"
      ;;
    *.[aA][pP][eE] )
      fn=${AUDNAME%.[aA][pP][eE]}
      echo "# Deflating \"$fn.ape\" to wav"
      echo "30"
      ((DEBUG)) && zenity --error --text="Ape decompressing : $fn"
      out="$(cd "$BASEDIR/$ORGDIR"; mac "$AUDNAME" "${fn}.wav" "-d")"
      ;;
    *.[wW][vV] )
      fn=${AUDNAME%.[wW][vV]}
      echo "# Deflating \"$fn.wv\" to wav"
      echo "30"
      ((DEBUG)) && zenity --error --text="Wave Pack decompressing : $fn"
      out="$(cd "$BASEDIR/$ORGDIR"; wvunpack "$AUDNAME")"
      ;;
    *.[wW][aA][vV] )
      fn=${AUDNAME%.[wW][aA][vV]}
      ((DEBUG)) && zenity --error --text="No need decompressing : $fn"
      ;;
    * )
      zenity --error --text="Unknown format"
      exit 1
      ;;
  esac


  # Закодировать в mp3 или ogg
  echo "# Encoding wav to mp3"
  echo "60"
  case $ENCODING in
    "mp3" )
      out="$(cd "$BASEDIR/$ORGDIR"; lame --preset "$MP3QUALITY" "$fn.wav" "$fn.mp3")"
      ;;
    "ogg" )
      out="$(cd "$BASEDIR/$ORGDIR"; oggenc -q 6 -o "$fn.ogg" "$fn.wav")"
      ;;
  esac

  # Разрезать на треки
  echo "# Splitting to tracks"
  echo "90" ; sleep 1
  out="$(cd "$BASEDIR/$ORGDIR"; mp3splt -f -c "$CUENAME" -o "../@n-@t" "$fn.mp3")"

  echo "# Done"
  echo "100" 

) |   zenity --progress \
      --title="$1" \
      --text="dummy_text_dummy_text_dummy_text_dummy_text_dummy_text_dummy_text_" \
      --percentage=0

((DEBUG)) && zenity --error --text="All done"
exit
и дать ему права на исполнение $ chmod +x $HOME/.gnome2/nautilus-scripts/EasyTAG/Split-Audio-by-CIE.sh

Недостатки

Конвертирование звуковых файлов относительно длительный процесс. На моем ноуте он продолжается в течении 3-5 минут. Я попытался, насколько это возможно как то показать ход исполнения. Но здесь мои возможности сильно ограничены.

Буду рад коментариям и замечаниям.


Полезные ссылки:


Updated 22/04/2012

суббота, 26 февраля 2011 г.

HDX BD-1. Firmware 4.26.0.rc5

В сети появилось обновление для HDX BD-1.

Англоязычный сайт HDX на момент написания статьи не доступен. На китайском сайте никакого упоминания про новую прошивку нет.

Зато есть новая прошивка для аппарата Bevex BV8088.

Сравнение прошивки BV8088 и прошивки от HDX BD-1 показывает их полную идентичность.

Вот это плеер тоже имеет идентичную прошивку и, видимо, тоже является клоном HDX BD-1
У меня есть стойкое ощущение, что предыдущая прошивка под номером 4.25 была сделана именно для BV8088. Это объясняет появившуюся поддержку Live TV, которая боком не уперлась для BD-1 и отсутствием поддержки Ogg Vorbis. Судя по всему про компанию HDX забываем и смотрим на компанию Bevix.

Я установил эту прошивку. Она полностью подходит для BD-1.

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

Все старые болячки, такие, как 512 элементов в списке, 100 MB LAN, осутствие NFS и Samba серверов, невозможность записи на сетевой диск остались на месте.

Начиная с прошивки 4.25 отсутствует поддержка Ogg Vorbis.

Все прошивки доступны здесь.