Показаны сообщения с ярлыком mp3. Показать все сообщения
Показаны сообщения с ярлыком mp3. Показать все сообщения

пятница, 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

понедельник, 31 января 2011 г.

Как изменить размер обложки диска из Nautilus

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

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

Но нет ничего проще прикрутить команду конвертации изображения на правую клавишу мыши в наутилусе. Для этого создаем файл ~/.gnome2/nautilus-scripts/Multimedia/convert_to_cover_mp3
#!/bin/bash

while [ $# -gt 0 ]; do
 picture=$1
 cover_file="Cover.jpg"
 /usr/bin/convert -resize 500x500! "$picture" "$cover_file"
 shift
done
И даем ему права на исполнение: $ chmod +x ~/.gnome2/nautilus-scripts/Multimedia/convert_to_cover_mp3
Чтобы изменить размер картинки теперь нужно просто на файле кликнуть правую клавишу мыши и выбрать написанный нами скрипт.



суббота, 18 апреля 2009 г.

Слушаем www.101.ru на HDX 1000

Я уже писал ранее, что товарищи из Корбины поодключали половину радиостанций, которые я слушал через их внутреннюю сеть на моем HDX 1000. А мне нравились радио от www.101.ru. Последнее время слушал русское регги. Их (Корбины) польза была в том, что потоковое радио воспроизводилось в формате понятном для Networked Media Tank. Да помогут нам идеи Чучхе. Будем сами решать эту задачу. Идея состоит в том, что на какой нибудь машине запустить программу приема, транскодирования и трансляции потокового радио. Первое что попадается в поисковиках - это vlc. Вот её и попробуем. Далее все действия выполняются на примере www.101.ru, Русское Регги. Адрес потока этой радиостанции : mms.online.ru/c14_4_128?st=040761200123645986120090418
На любой компьютер, находящийся в сети любым способом (через менеджер пакетов или из командной строки) устанавливаем пакет vlc и запускаем его. Я ставил на Asus eee 901, на котором запущена Ubuntu.
На вкладке Media->Open Netwok вводим протокол потока mms и адрес потока. Выбираем пункт меню Stream Alt-S
Play locally - заставит vlc воспроизводить поток на компьютере, где запускается vlc. Галка на HTTP - поределяет протокол для транслируемого потока. В поле Address указываем ip компьютера, где запущен vlc. В поле Port, соответственно указываем порт, в который будет воспроизводится поток. Выбираем Profile: Ogg/Vorbis. Можно выбрать и mp3, но он проприетарный и для него нужно ставить дополнительные библиотеки.
На HDX1000 создаем html файл следующего содержания:
<html><b>
           Test www.101.ru Russian Reggey<br><br><br>
<a href="http://192.168.1.172:1234" aod>Russian Reggey</a>
</b>
</html>
Открываем его на HDX 1000 и нажимаем кнопку Ok на пульте Секунд через 10 радиостанция начнет воспроизводится. Вместо графического пакета vlc можно запустить консольный вариант cvlc:
>cvlc -vvv mms://mms.online.ru/c14_4_128?st=040761200123645986120090418 --sout "#transcode{acodec=vorb,ab=128,channels=2}:duplicate{dst=std{access=http,mux=ogg,dst=192.168.1.172:1234}}"

среда, 18 марта 2009 г.

Некоторые замечания по html в HDX 1000 (NMT)

Некоторое время потратил на выяснение устройства и способа работы тегов в nmt.
Самая загадочная конструкция:

<a href="Song URL" pod="Mode,Reserved ,Photo URL">Sample</a>


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

Song URL - музыкальный файл или playlist
Mode - режим показа.

  • 1 - будет показывать фото и играть музыку, пока не кончатся фотографии. Музыка закольцовывается.
  • 2 - будет показывать фото и играть музыку, пока не кончится музыка. Фотографии закольцовываются.
Reserved - я не нашел, на что это влияет. ставлю в 0
Photo URL - фото или фото-playlist

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

file:///opt/...../file

не работает. Файл либо не находится, либо HDX 1000 зависает. Точнее "замораживается" вывод на телевизор. Странно это. Либо у меня руки кривые, либо непонятки в реализации HDX 1000. У китайцев в текстах сплошь и рядом ссылки подобного рода. Скорее всего дело в правах, владельцах и группах, присвоенных файлу, но разбираться пока желания нет. Может позже...

Зато работает вот такая загогулина:

http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo.jsp

Пример фрагмента html кода для прослушивания музыкального канала из Корбины c одновременным показом слайдшоу:

<a href="http://85.21.79.5:8107/listen.pls"  pod="2,0,http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo.jsp"> Second ref from scy.fm</a>


и файл photo.jsp:

15|0|Dahab 3|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_003.jpg|
15|0|Dahab 4|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_004.jpg|
15|0|Dahab 5|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_002.jpg|
15|0|Dahab 6|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_001.jpg|
15|0|Dahab 7|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Photo_052105_007.jpg|
15|0|Dahab 8|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Photo_052105_008.jpg|


где:
  • 15 - время показа фотографии
  • 0 - зарезервировано
  • Dahab 4 - Название фотографии (ни на что не влияет)
  • http://.... - url фотографии