ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [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