Родной Flac .cue сплиттер

У меня есть несколько альбомов.Flac, которые я скопировал в один большой файл, чтобы сэкономить место (CD-диски без потерь составляют примерно 500 МБ каждый), теперь у меня больше места для хранения, и я хотел бы разбить их на оригинальные файлы.

Есть ли сплиттер Native.Flac /.cue для систем на основе Debian?

Я нашел некоторую информацию, но она либо старая, только для mp3 или с использованием вина, это не то, что я хочу.

Также я нашел скрипт Nautilus, но я не думаю, что он будет без потерь, также он выполняет только очень специфическую задачу, и я хотел бы некоторые параметры настройки, http://ubuntuforums.org/showthread.php?t=853794

Так может ли кто-нибудь предоставить сплиттер Flac .cue без потерь с нативной поддержкой и множеством вариантов конвертации?

ПОЖАЛУЙСТА, НЕТ ВИНА

Спасибо

8 ответов

Решение

Для начала нужно установить cuetools и shntool. Из типа терминала:

sudo apt install cuetools shntool flac

Чтобы разделить файл flac обратно на исходные файлы с помощью файла.cue:

cuebreakpoints '<cue file>' | shnsplit -o flac '<audio flac file>'  

Вы можете перетащить файл cue и файл звукового флака в терминал, чтобы автоматически заполнить пути для '<cue file>' а также '<audio flac file>', Когда вы запускаете команду, терминал будет показывать вам результаты каждого нового файла flac по мере его создания, по одному новому файлу за раз ("split-track01.flac" "split-track02.flac" ...), и затем остановитесь после того, как все новые файлы flac были созданы. Создание каждого нового файла flac занимает всего несколько секунд. Если ваш файл.cue является точным, результаты будут более точными и менее трудоемкими, чем если бы вы разделили файл flac вручную в Audacity.

Есть приложение под названием Flacon, которое делает именно это.

Установить:

sudo add-apt-repository ppa:flacon
sudo apt-get update
sudo apt-get install flacon

Мне нужно было разделить большой flac и установить имя файла и тег из файла cue, и это сработало для меня лучше всего:

  1. перейдите в папку с одной парой кия и flac
  2. введите это: shnsplit -f *.cue -t "%n - %p - %t" -o "flac flac -s -8 -o %f -" *.flac
  3. удалить оригинальный файл flac
  4. пометить файлы с помощью: cuetag *.cue *.flac

Пример вывода:

Splitting [Edvard Grieg - Complete Songs Vol.III.flac] (76:03.40) --> [25 - Edvard Grieg - Sighs, EG 134.flac] (2:43.08) : 100% OK

ссылка: CUE_Splitting

ОБНОВИТЬ

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

mkdir -p orig
mv *ape orig/.
shnsplit -f *.cue -t "%n - %p - %t" -o "flac flac -s -8 -o %f -" orig/*.ape
rm -f 00*
cuetag *.cue *.flac
#fix bad file names
find . -exec rename 's/[^\x00-\x7F]//g' "{}" \;

назовите этот скрипт как split_ape, chmod +x это и положить в какой-то каталог на вашем пути. Я сделал аналогичный скрипт для FLAC-файла в качестве источника, просто замените каждый ape с flac в этом сценарии.

Самый простой способ - использовать K3B.

1.- Откройте файл CUE в K3B. 2.- Выберите конвертировать треки в FLAC. 3.- Нажмите Старт.

Он не будет повторно преобразовывать дорожки, а только разделит их на дорожки в соответствии с файлом CUE. Он сохранит оригинальное название каждой дорожки, и для завершения "преобразования / разделения" потребуется секунда.

Вы можете разделить файл CUE на отдельные дорожки FLAC с помощью fmedia ( http://fmedia.firmdev.com/) с помощью одной команды:

fmedia YOUR_FILE.cue --out='$tracknumber. $artist - $title.flac'

С помощью этой команды вы разделите все дорожки из одного файла CUE на отдельные файлы FLAC, названные как "01. ARTIST - TITLE.flac". Обратите внимание, что выходные файлы будут иметь точно такое же качество звука и длительность дорожки, что и оригинал.

Или вы можете скопировать только одну дорожку из файла.cue:

fmedia YOUR_FILE.cue --out='$tracknumber. $artist - $title.flac' --track=7

Вы также можете перезаписать метаинформацию во время разделения, например:

fmedia YOUR_FILE.cue --out=mytrack.flac --meta='artist=COOL ARTIST'

fmedia имеет минимальные внешние зависимости (т. е. cuetools, libFLAC и т. д. НЕ требуется устанавливать в вашей системе), она работает на 64-битных системах на основе Debian, но не работает на 32-битных системах.

И для flac:

    cat file.cue | shnsplit -o flac -t %n-%t file.flac

разбить файл flac и добавить к полученным файлам номер дорожки (%n) и название заголовка (%t)

Вот PHP-скрипт:

      <?php
$s_cue = $argv[1];
$a_cue = file($s_cue);
$n_row = -1;
foreach ($a_cue as $s_row) {
   $s_trim = trim($s_row);
   $a_row = str_getcsv($s_trim, ' ');
   if (preg_match('/^FILE\s/', $s_row) == 1) {
      $s_file = $a_row[1];
   }
   if (preg_match('/^\s+TRACK\s/', $s_row) == 1) {
      $n_row++;
      $a_table[$n_row]['track'] = $a_row[1];
   }
   if (preg_match('/^\s+TITLE\s/', $s_row) == 1) {
      $a_table[$n_row]['title'] = $a_row[1];
   }
   if (preg_match('/^\s+PERFORMER\s/', $s_row) == 1) {
      $a_table[$n_row]['artist'] = $a_row[1];
   }
   if (preg_match('/^\s+INDEX\s/', $s_row) == 1) {
      $s_dur = $a_row[2];
      $a_frame = sscanf($s_dur, '%d:%d:%d', $n_min, $n_sec, $n_fra);
      $n_index = $n_min * 60 + $n_sec + $n_fra / 75;
      $a_table[$n_row]['ss'] = $n_index;
      if ($n_row > 0) {
         $a_table[$n_row - 1]['to'] = $n_index;
      }
   }
}
$a_table[$n_row]['to'] = 10 * 60 * 60;
foreach ($a_table as $m_row) {
   $a_cmd = [
      'ffmpeg',
      '-i', $s_file,
      '-ss', $m_row['ss'],
      '-to', $m_row['to'],
      '-metadata', 'artist=' . $m_row['artist'],
      '-metadata', 'title=' . $m_row['title'],
      '-metadata', 'track=' . $m_row['track'],
      $m_row['track'] . ' ' . $m_row['title'] . '.m4a'
   ];
   $a_esc = array_map('escapeshellarg', $a_cmd);
   $s_esc = implode(' ', $a_esc);
   system($s_esc);
}

Установите shntool

sudo apt-get install shntool

Если вы хотите автоматически сохранить имена файлов, вы можете просто использовать:

cat infile.cue | shnsplit -t "%n - %p - %t" infile.wav
Другие вопросы по тегам