* [Comm] Как скопировать теги из одного mp3 в другой?
@ 2009-08-05 18:06 Olexander Chernetskyy
2009-08-05 18:58 ` Dmitry Chistikov
2009-08-06 11:19 ` Konstantin S. Uvarin
0 siblings, 2 replies; 9+ messages in thread
From: Olexander Chernetskyy @ 2009-08-05 18:06 UTC (permalink / raw)
To: Community
Помогите плиз
Нужно понизить битрейт файлов в каталоге и не потерять теги.
Вот всё на что хватило ума:
---8<---
#!/bin/sh
[ -d 128 ] || mkdir 128
for i in *[mM][pP]3
do
lame -b 128 $i 128/$i
TAG=`mp3info -p "-t %t -a %a -l %l -y %y -c %c -n %n -g %g" $i`
# echo $TAG
# mp3info $TAG 128/$i
done
--->8---
А как теперь этот $TAG использовать как список параметров для mp3info?
Интуитивно чувствую, что eval должно помочь, но не могу понять как его
применить.
Помогите кто может. А то голова сегодня уже ничего не сображает.
--
Best regards,
ArCher
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой?
2009-08-05 18:06 [Comm] Как скопировать теги из одного mp3 в другой? Olexander Chernetskyy
@ 2009-08-05 18:58 ` Dmitry Chistikov
2009-08-05 19:22 ` Max Ivanov
2009-08-06 11:19 ` Konstantin S. Uvarin
1 sibling, 1 reply; 9+ messages in thread
From: Dmitry Chistikov @ 2009-08-05 18:58 UTC (permalink / raw)
To: sp_archer, ALT Linux Community general discussions
Ну, если отталкиваться от Вашего варианта, то у Вас уже есть
соответствующая строчка, хотя и закомментированная:
# mp3info $TAG 128/$i
Другой вопрос, что вокруг $i (как в этой строке, так и в других
случаях употребления) неплохо бы поставить двойные кавычки - а ну
всякие пробелы в именах файлов окажутся? - да и главный вопрос,
наверное, с нехорошими символами в самих тегах. В качестве первого
приближения (не решающего, впрочем, задачу в общем случае) можно
предложить добавить кавычки вокруг подставляемых параметров внутри
форматной строки для mp3info, а потом передавать значение $TAG через
xargs... хотя это, конечно, костыль. Ясно, что неплохо быть уверенным,
что использованного типа кавычек внутри тегов нет. Если с этим
проблемы - нужно, конечно, действовать аккуратней; вопрос только в
том, имеет ли смысл решать эту задачу в наиболее общей постановке?
--
Дмитрий Чистиков,
dd1email at gmail dot com
P.S. Вообще, с тегами я в последнее время на eyeD3 перешел, хотя там
не все так удобно с форматом вывода...
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой?
2009-08-05 18:58 ` Dmitry Chistikov
@ 2009-08-05 19:22 ` Max Ivanov
2009-08-06 6:54 ` Dmitry Chistikov
0 siblings, 1 reply; 9+ messages in thread
From: Max Ivanov @ 2009-08-05 19:22 UTC (permalink / raw)
To: ALT Linux Community general discussions
> да и главный вопрос,
> наверное, с нехорошими символами в самих тегах
Вроде встроенный в bash printf умел экранировать
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой?
2009-08-05 19:22 ` Max Ivanov
@ 2009-08-06 6:54 ` Dmitry Chistikov
0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Chistikov @ 2009-08-06 6:54 UTC (permalink / raw)
To: ALT Linux Community general discussions
>> да и главный вопрос,
>> наверное, с нехорошими символами в самих тегах
>
> Вроде встроенный в bash printf умел экранировать
Хм... тут дело в том, что придется отказываться от однострочника
mp3info -p все-сразу-в-развернутом-виде
...ибо пробелы из форматной строки уже не получится отличить от
внутритеговых. Или я неправильно понял Вашу мысль?
--
Дмитрий Чистиков,
dd1email at gmail dot com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой?
2009-08-05 18:06 [Comm] Как скопировать теги из одного mp3 в другой? Olexander Chernetskyy
2009-08-05 18:58 ` Dmitry Chistikov
@ 2009-08-06 11:19 ` Konstantin S. Uvarin
2009-08-06 12:29 ` Dmitry Chistikov
2009-08-06 16:00 ` [Comm] " Olexander Chernetskyy
1 sibling, 2 replies; 9+ messages in thread
From: Konstantin S. Uvarin @ 2009-08-06 11:19 UTC (permalink / raw)
To: sp_archer, ALT Linux Community general discussions
On Wednesday 05 August 2009 22:06:45 Olexander Chernetskyy wrote:
> Помогите плиз
> Нужно понизить битрейт файлов в каталоге и не потерять теги.
> Вот всё на что хватило ума:
> ---8<---
> #!/bin/sh
> [ -d 128 ] || mkdir 128
> for i in *[mM][pP]3
> do
> lame -b 128 $i 128/$i
> TAG=`mp3info -p "-t %t -a %a -l %l -y %y -c %c -n %n -g %g" $i`
> # echo $TAG
> # mp3info $TAG 128/$i
> done
Э, так mp3info умеет \n внутри -p. Ну и вот, делаем разбивку на строки и
скармливаем xargs. Должно сработать. Если только там нет пункта lyrics, в
котором как раз могут быть переносы строки.
TAG=`mp3info -p '-t\n%t\n-a\n%a\n-l\n%l\n-y\n%y\n-c\n%c\n-n\n%n\n-g\n%g' "$i"`
# more stuff...
printf %s "$TAG" | xargs -d\\n mp3info 128/"$i"
echo использовать нельзя, т.к. съест переносы
P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она
обрезается ровно по это место.
--
Konstantin S. Uvarin jabber:lodin@jabber.ru
фигика
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой?
2009-08-06 11:19 ` Konstantin S. Uvarin
@ 2009-08-06 12:29 ` Dmitry Chistikov
2009-08-07 12:37 ` [Comm] [JT] " Konstantin S. Uvarin
2009-08-06 16:00 ` [Comm] " Olexander Chernetskyy
1 sibling, 1 reply; 9+ messages in thread
From: Dmitry Chistikov @ 2009-08-06 12:29 UTC (permalink / raw)
To: ALT Linux Community general discussions
> Э, так mp3info умеет \n внутри -p. Ну и вот, делаем разбивку на строки и
> скармливаем xargs. Должно сработать. Если только там нет пункта lyrics, в
> котором как раз могут быть переносы строки.
Иными словами, идея та же - использование xargs с учетом тех или иных
ограничений на входные данные.
> echo использовать нельзя, т.к. съест переносы
Вы хотите сказать, что вместо
printf %s "$TAG"
нельзя использовать
echo "$TAG"
?
Если так, нельзя ли услышать обоснование?
> P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она
> обрезается ровно по это место.
Я вообще сомневаюсь в целесообразности использования ID3v1-тегов, хотя
это уже JT, если не offtopic.
--
Дмитрий Чистиков,
dd1email at gmail dot com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой?
2009-08-06 11:19 ` Konstantin S. Uvarin
2009-08-06 12:29 ` Dmitry Chistikov
@ 2009-08-06 16:00 ` Olexander Chernetskyy
1 sibling, 0 replies; 9+ messages in thread
From: Olexander Chernetskyy @ 2009-08-06 16:00 UTC (permalink / raw)
To: Community
ОК. Заработало. Спасибо.
> On Wednesday 05 August 2009 22:06:45 Olexander Chernetskyy wrote:
>> Помогите плиз
>> Нужно понизить битрейт файлов в каталоге и не потерять теги.
>> Вот всё на что хватило ума:
>> ---8 #!/bin/sh
>> [ -d 128 ] || mkdir 128
>> for i in *[mM][pP]3
>> do
>> lame -b 128 $i 128/$i
>> TAG=`mp3info -p "-t %t -a %a -l %l -y %y -c %c -n %n -g %g" $i`
>> # echo $TAG
>> # mp3info $TAG 128/$i
>> done
>
> Э, так mp3info умеет \n внутри -p. Ну и вот, делаем разбивку на строки и
> скармливаем xargs. Должно сработать. Если только там нет пункта lyrics, в
> котором как раз могут быть переносы строки.
>
> TAG=`mp3info -p '-t\n%t\n-a\n%a\n-l\n%l\n-y\n%y\n-c\n%c\n-n\n%n\n-g\n%g'
> "$i"`
> # more stuff...
> printf %s "$TAG" | xargs -d\\n mp3info 128/"$i"
>
> echo использовать нельзя, т.к. съест переносы
>
> P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она
> обрезается ровно по это место.
>
> --
> Konstantin S. Uvarin jabber:lodin@jabber.ru
> фигика
>
--
Best regards,
ArCher
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] [JT] Как скопировать теги из одного mp3 в другой?
2009-08-06 12:29 ` Dmitry Chistikov
@ 2009-08-07 12:37 ` Konstantin S. Uvarin
2009-08-07 14:26 ` Dmitry Chistikov
0 siblings, 1 reply; 9+ messages in thread
From: Konstantin S. Uvarin @ 2009-08-07 12:37 UTC (permalink / raw)
To: ALT Linux Community general discussions
Првиетствую.
> Иными словами, идея та же - использование xargs с учетом тех или иных
> ограничений на входные данные.
Разумеется.
> > echo использовать нельзя, т.к. съест переносы
> Если так, нельзя ли услышать обоснование?
Был неправ. Если сделать
echo "$TAG"
, всё прекрасно работает.
> > P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она
> > обрезается ровно по это место.
> Я вообще сомневаюсь в целесообразности использования ID3v1-тегов, хотя
> это уже JT, если не offtopic.
Я собрал аналогичный велосипед из eyeD3, оно умеет v2 и есть в репозитории.
Правда, там нету -p "%a %t", поэтому дёргается сто раз для каждого файла.
пока что это не то место в моей системе, которое надо оптимизировать...
--
Konstantin S. Uvarin jabber:lodin@jabber.ru
Главный редактор, крякнув, осушил стопку. Новости радостно закрякали в ответ.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] [JT] Как скопировать теги из одного mp3 в другой?
2009-08-07 12:37 ` [Comm] [JT] " Konstantin S. Uvarin
@ 2009-08-07 14:26 ` Dmitry Chistikov
0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Chistikov @ 2009-08-07 14:26 UTC (permalink / raw)
To: ALT Linux Community general discussions
> Я собрал аналогичный велосипед из eyeD3,
> оно умеет v2 и есть в репозитории.
> Правда, там нету -p "%a %t", поэтому
> дёргается сто раз для каждого файла.
> пока что это не то место в моей системе,
> которое надо оптимизировать...
Хм... а что за пакет и в чем там затык возникает? Дело в том, что мой
домашний велосипед на eyeD3, хотя и предназначенный для несколько иных
целей, вроде как обходит синтаксические препоны... хотя, возможно, я
что-то упускаю из виду.
--
Дмитрий Чистиков,
dd1email at gmail dot com
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-08-07 14:26 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-05 18:06 [Comm] Как скопировать теги из одного mp3 в другой? Olexander Chernetskyy
2009-08-05 18:58 ` Dmitry Chistikov
2009-08-05 19:22 ` Max Ivanov
2009-08-06 6:54 ` Dmitry Chistikov
2009-08-06 11:19 ` Konstantin S. Uvarin
2009-08-06 12:29 ` Dmitry Chistikov
2009-08-07 12:37 ` [Comm] [JT] " Konstantin S. Uvarin
2009-08-07 14:26 ` Dmitry Chistikov
2009-08-06 16:00 ` [Comm] " Olexander Chernetskyy
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git