Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Перекодирование ape/flac в mp3/ogg из Nautilus.  (Прочитано 3100 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Axa-Ru

  • Автор темы
  • Гость
В интернете можно найти пару тройку похожих скриптов. Но все они работают из командной строки. При редактировании свежескаченной из торрента музыки требуют переключения в консоль и вспоминания заветных команд.

В общем меня это достало и я сделал скрипт, который перекодирует ape/flac из Nautilus, Теперь нужно просто встать на cue файл щелкнуть правой кнопкой и выбрть мой скрипт. Все остальное будет сделано автоматически.



Для работы скрипта нужно предварительно поставить следующие пакеты:

$ sudo apt-get install flac lame mp3splt vorbis-tools
$ 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

А вот и сам скрипт:
#!/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
# 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.

# Copyleft AxaRu http://axa-ru.blogspot.com/2011/03/que-nautilus.html

# 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 <i>ape</i> or <i>flac</i> audo file by <i>que</i>.\n\n
<b>Using</b>:
\t\tSimple select some cue file in nautilus, tape right mouse button and select:
\t\t<i>Script->Audio tags manip->Split-audio-by-CUE.sh</i>\n
<b>Adjusting</b>:
\t\tTarget encoding <i>mp3</i> or <i>Ogg</i> select by uncomment appropriate variable
\t\t\n
<b>Debuging</b>:
\t\tIn the script <i>Split-audio-by-CUE.sh</i> setup <i>DEBUG</i> variable to <i>1</i>
\t\tand You will see debug message in Gnome popup windows"
}

save_files()
{
  if [ -d "$ORGDIR" ]; then
     zenity --error --text="Directory <b>$ORGDIR</b> 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
( echo "# Deflating ape to wav"
  echo "30"

  case "$AUDNAME" in
    *.[fF][lL][aA][cC] )
      fn=${AUDNAME%.[fF][lL][aA][cC]}
      ((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]}
      ((DEBUG)) && zenity --error --text="Ape decompressing : $fn"
      out="$(cd "$BASEDIR/$ORGDIR"; mac "$AUDNAME" "${fn}.wav" "-d")"
      ;;
    *.[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

http://axa-ru.blogspot.com/2011/03/que-nautilus.html

Буду рад коментариям и критическим замечаниям.
« Последнее редактирование: 11 Марта 2011, 23:06:47 от Axa-Ru »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Перекодирование ape/flac в mp3/ogg из Nautilus.
« Ответ #1 : 12 Марта 2011, 00:00:01 »
Почему не nautilus actions?
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Axa-Ru

  • Автор темы
  • Гость
Re: Перекодирование ape/flac в mp3/ogg из Nautilus.
« Ответ #2 : 12 Марта 2011, 00:24:37 »
Ну это дело вкуса. Ничего не ограничивает запускать этот скрипт из под nautilus-action.

 

Страница сгенерирована за 0.084 секунд. Запросов: 24.