GoGPT Best VPN GoSearch

Favicon di OnWorks

mp3info2p - Online nel cloud

Esegui mp3info2p nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

Questo è il comando mp3info2p che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

PROGRAMMA:

NOME


mp3info2 - ottieni/imposta i tag MP3; usa MP3::Tag per ottenere i valori predefiniti.

SINOSSI


# Stampa le informazioni nei tag e le informazioni autodedotte
mp3info2 *.mp3

# Inoltre, imposta il campo anno su 1981
mp3info2 -y 1981 *.mp3

# Lo stesso senza stampa delle informazioni, ricorsivamente nella directory corrente
mp3info2 -R -p "" -y 1981 .

# Non dedurre alcun campo, stampa solo le informazioni (normalizzate) dai tag
mp3info2 -C autoinfo=ID3v2,ID3v1 *.mp3

# Come sopra, ma senza normalizzazione/riempimento automatico, le informazioni grezze nei tag
mp3info2 -N *.mp3

# Come sopra, ma solo con lettura del tag ID2v1
mp3info2 -NC autoinfo=ID3v1 *.mp3

# Ottieni l'artista da CDDB_File, deduci automaticamente altre informazioni, scrivile nei tag
mp3info2 -C artista=CDDB_File -u *.mp3

# Per il titolo, preferisci le informazioni dal file .inf; deduci automaticamente il resto, aggiorna
mp3info2 -C titolo=Inf,ID3v2,ID3v1,nomefile -u *.mp3

# Lo stesso, e ottieni l'artista dal file CDDB
mp3info2 -C titolo=Inf,ID3v2,ID3v1,nomefile -C artista=CDDB_File -u *.mp3

# Scrivi uno script per la conversione di .wav in .mp3, deducendo automaticamente i tag
mp3info2 -p "lame -h --vbr-new --tt '%t' --tn %n --ta '%a' --tc '%c' --tl '%l' --ty '%y' '%f'\n" *.wav >xxx.sh

DESCRIZIONE


Il programma stampa un messaggio che riassume le informazioni del tag (ottenute tramite il modulo MP3::Tag) per
file specificati.

Potrebbe anche aggiornare le informazioni nei tag ID3. Questo avviene in tre casi diversi.

· Se le informazioni fornite nelle opzioni della riga di comando "talygcn" differiscono da quelle
contenuto dei tag ID3 corrispondenti (oppure non ci sono tag ID3 corrispondenti).

· Se sono state specificate le opzioni "-d" o "-F".

· se "MP3::Tag" ottiene le informazioni da mezzi diversi dai tag MP3 e "-u" forza l'
aggiornamento dei tag ID3.

(Tutti questi metodi sono disabilitati dall'opzione "-D".) Il tag ID3v2 viene scritto se necessario, oppure se "-2"
è data l'opzione. (Compilazione automatica dei campi deducibili (tramite il metodo
id3v2_frames_autofill()) viene eseguito a meno che non vengano specificate le opzioni "-d" o "-N".)

L'opzione "-u" scrive ("aggiorna") le informazioni recuperate nei tag ID3 MP3. Questo
l'opzione viene assunta se ci sono opzioni della riga di comando che impostano esplicitamente gli elementi del tag
("-a", "-t" ecc. e "-F", "-d"). (Gli effetti di questa opzione possono essere annullati fornendo
Opzione "-D") Se viene specificata anche l'opzione "-2", forza la scrittura del tag ID3v2 anche se le informazioni
si adatta al tag ID3v1 (inoltre, questa opzione abilita l'aggiornamento automatico del "nome personale"
campi e titoli corrispondenti in base ai valori di "translate_person",
Impostazioni di configurazione "person_frames" ecc.; vedere "Normalizzazione dei campi"). Questa opzione
viene ignorato se non viene rilevata alcuna modifica ai tag; tuttavia, è possibile forzare un aggiornamento ripetendo
questa opzione (utile se si prevede di modificare il "formato" del tag, al contrario del suo
"contenuto").

L'opzione "-p" stampa un messaggio utilizzando il prossimo argomento come formato (per impostazione predefinita "\\", "\t",
"\n" vengono sostituiti da barra rovesciata, tabulazione e nuova riga; regolati dal valore dell'opzione "-E");
vedere "interpolate" in MP3::Tag per i dettagli del formato di sprintf ()-come fughe. Se no
Se viene specificata l'opzione "-p", verrà emesso un messaggio nel formato predefinito. Il valore dell'opzione "-e"
è la codifica utilizzata per l'output; se il valore è un numero, viene utilizzata la codifica specifica del sistema
indovinato (e utilizzato per l'output se il bit 0x1 è impostato); se il bit 0x2 è impostato, allora, riga di comando
si presume che le opzioni siano nella codifica ipotizzata; se il bit 0x4 è impostato, allora la riga di comando
si presume che gli argomenti siano nella codifica ipotizzata. Utilizzare il valore "binary" per eseguire operazioni binarie
produzione.

Con l'opzione "-D" (esecuzione a secco) non viene eseguito alcun aggiornamento, indipendentemente dalle altre opzioni.
Con questa opzione non viene eseguita alcuna analisi dei tag, a meno che non sia necessario.

Opzioni di utilizzo

talygcn

per sovrascrivere le informazioni (titolo artista album anno genere commento numero traccia) ottenute
tramite l'euristica "MP3::Tag" (l'opzione "-u" è implicita se uno qualsiasi di questi argomenti è diverso
da ciò che verrebbe trovato altrimenti; utilizzare l'opzione "-D" per disabilitare l'aggiornamento automatico). Per impostazione predefinita,
i valori di queste opzioni non sono interpolati con "%"; questo può essere modificato con l'opzione "-E".

L'opzione "-d" dovrebbe contenere l'elenco separato da virgole dei frame ID3v2 da eliminare. A
la specifica del frame è la stessa di quella che potrebbe essere data all'interpolazione del frame "%{...}"
comando, ad esempio, "TIT3", "COMM03", "COMM(fra)[titolo breve]"; la differenza con modifica-
l'accesso è quello TUTTO (e non il prima di tutto di) i frame corrispondenti vengono eliminati. (L'opzione -d può essere
ripetuto.)

Ad esempio, "-d APIC" rimuoverà tutte le cornici delle immagini. Inoltre, se l'elenco contiene
"ID3v1" o "ID3v2", verranno eliminati tutti i tag.

Allo stesso modo, l'opzione "-F" consente l'impostazione di frame "ID3v2" arbitrari: se è necessario impostare
un frame, utilizzare la direttiva "FRAME_spec=VALUE":

-F TIT2=Il_nuovo_titolo

Di nuovo, in modifica, TUTTO i frame corrispondenti vengono eliminati per primi, quindi fai attenzione

-F COMM=MioCommento

L'opzione "-F" può essere ripetuta per impostare più di un frame. Se la variabile di configurazione
"empty-F-deletes" è TRUE (predefinito), gli argomenti vuoti elimineranno il frame.

Si può sostituire "FRAME_spec=VALUE" con "FRAME_spec < FILE"; in questo caso il valore da impostare
viene letto dal file denominato RISORSE; se il frame è solo testo (ovvero: al massimo
Se sono presenti i campi "[encoded]Text URL Language Description", il file viene letto in formato testo
modalità (e con spazi iniziali/finali rimossi), altrimenti viene letto in binario
modalità. (Sono richiesti spazi vuoti sui segni "<"). Se "<" viene sostituito da "?<", il
il valore è impostato solo se il frame non è ancora presente e se il file esiste; se sostituito da ">",
il valore (se presente) viene scritto in RISORSE (la creazione di directory intermedie è
controllato dall'opzione di configurazione "frames_write_creates_dirs", il valore predefinito è FALSE).

Inoltre, "FRAME_spec" può essere uno tra "ID3v1" o "ID3v2" o "TAGS"; in questo caso, intero
i tag vengono scritti o letti. Ad esempio, per "TAGS < FILE", "titolo artista album anno genere
le informazioni sulla traccia dei commenti vengono calcolate da RISORSE, che possono essere tag grezzi, come quelli prodotti con ">",
o un file MP3 valido; se Image::ExifTool è presente, i dati possono essere letti da arbitrari
file multimediale. (Allo stesso modo, per "ID3v1 < FILE", le stesse informazioni vengono estratte da "ID3v1"
solo tag.) Dopo questo, nel caso di "ID3v2" o "TAGS", i frame "ID3v2" vengono copiati dal
Tag "ID3v2" uno alla volta. (Con opportune modifiche per "?<".)

Per impostazione predefinita, il "VALORE" per "-F" è interpolato con "%"; questo può essere modificato con l'opzione "-E".
Per comodità dell'utente, sono stati introdotti formati più intuitivi "compositore, testo_di, orchestra, direttore d'orchestra,
disk_n" può essere utilizzato al posto di "TCOM, TEXT, TPE2, TPE3, TPOS".

L'opzione "-P RICETTA" è una generalizzazione molto potente di ciò che può essere fatto dalle opzioni
"-F", "-d" e "-t -a -l -y -g -c -n". Può essere ripetuto; i valori devono contenere
ricette di analisi. Diventano l'elemento di configurazione "parse_data" di "MP3::Tag"; alla fine
queste informazioni vengono elaborate dal modulo MP3::Tag::ParseData (se quest'ultimo è presente in
la catena di euristiche; vedere l'opzione "-C"). La "RICETTA" è divisa in "$flags, $string,
@patterns" sul suo primo carattere non alfanumerico; il primo di @patterns che corrisponde
$string verrà eseguito (per gli effetti collaterali). (Vedi esempi: "ESEMPI: parse
regole".)

Se viene specificata l'opzione "-G", i nomi dei file sulla riga di comando vengono considerati come glob
modelli. Questo può essere utile se la lunghezza massima della riga di comando è troppo bassa. Con il
Gli argomenti dell'opzione "-R" possono essere directory, in cui viene effettuata la ricerca ricorsiva dell'audio
(predefinito * .mp3) file da elaborare; utilizzare l'opzione "-r" per reimpostare l'espressione regolare in modo che sembri
per (il valore predefinito è "(?i:\.mp3$)").

L'opzione "-E" controlla l'espansione dei caratteri di escape. Dovrebbe contenere le lettere di
le opzioni della riga di comando in cui "\\, \n, \t" sono interpolate; è possibile aggiungere le lettere
delle opzioni "talygcn F" che richiedono l'interpolazione "%" dopo il separatore "/i:" (per
"-F", solo i valori vengono interpolati). Il valore predefinito è "p/i:Fp": solo "-p" è
"\"-interpolato, e solo "-F" e "-p" sono soggetti a interpolazione "%". Se tutti e tre
vuole è aggiungere per i valori predefiniti, far precedere il valore di "-E" (contenente le opzioni aggiunte) da
"+". (Alcune parti del valore dell'opzione "-P" sono interpolate, ma questo dovrebbe essere
governato da flag, non "-E"; fare NON inserire "P" nella parte interpolata con "%" di "-E".)

Se viene specificata l'opzione "-@", tutti i caratteri "@" nelle opzioni vengono sostituiti da "%". Questo
può essere utile se la shell tratta "%" in modo speciale (ad esempio, le shell DOSISH).

Se viene data l'opzione "-I", non ci sono congetture per artista il campo viene eseguito durante la digitazione.

L'opzione "-C CONFIG_OPT=VALUE1,VALUE2..." imposta i dati di configurazione "MP3::Tag" allo stesso modo
come "MP3::Tag-"configurazione()> farebbe (ricorda che il valore è un array; elementi separati
tramite virgole se più di una). L'opzione può essere ripetuta per impostare più di un valore. Nota
che poiché "ParseData" viene utilizzato per elaborare le ricette di analisi "-P", sarebbe meglio mantenerlo
nella configurazione "autoinfo" (e campi correlati "autore" ecc.) in presenza di "-P".

Se viene specificata l'opzione "-x", vengono stampate le informazioni tecniche sul file audio
(Livello MP3, durata, numero di frame, padding, copyright e elenco dei frame ID3v2
nomi in un formato adatto alle sequenze di escape "%{...}"). Se "-x" viene ripetuto, il contenuto dei frame è
anche stampato (potrebbe produrre caratteri non stampabili, se ripetuto più di due volte).

Se viene specificata l'opzione "-N", tutti gli "smart" sono disabilitati, ovvero nessuna normalizzazione dei campi
accade e (per impostazione predefinita) nessun tentativo di dedurre i valori dei campi da non-ID3
l'informazione è fatta. Questa opzione è (attualmente) equivalente ad avere "-C
autoinfo=ParseData,ID3v2,ID3v1" come prima direttiva, per non avere
Normalize::Text::Music_Fields.pm presente sul percorso @INC e non chiamante riempimento automatico() metodo.

Normalizzazione of campi


(Il caricamento del modulo di normalizzazione e tutte le operazioni successive possono essere disabilitati dal
opzione "-N" oppure impostando la variabile d'ambiente "MP3TAG_NORMALIZE_FIELDS" su FALSE.
Se non è proibito, si tenta di caricare il modulo se la directory ~/.music_fields is
presente, oppure "MP3TAG_NORMALIZE_FIELDS" è impostato e TRUE.)

Se il caricamento del modulo "Normalize::Text::Music_Fields" ha esito positivo, viene visualizzato quanto segue
applicabile:

Se il valore di "MP3TAG_NORMALIZE_FIELDS" è definito e non è 1, questo valore viene suddiviso in
directory come PATH e il percorso di caricamento di "Normalize::Text::Music_Fields" è impostato su questo
elenco delle directory. Quindi viene istruito MP3::Tag (tramite la configurazione corrispondente
impostazioni) per utilizzare i metodi "normalize_artist" (ecc.) definiti da questo modulo. Questi metodi
può normalizzare determinati dati dei tag. La versione corrente definisce metodi per la "normalizzazione"
di nomi personali e titoli (in base al compositore). Questa normalizzazione è guidata
tramite tabelle di configurazione modificabili dall'utente.

Oltre alla normalizzazione automatica dei dati dei tag MP3, è possibile utilizzare "file MP3 falsi" per
accedere manualmente ad alcune funzionalità di questo modulo. Per farlo, utilizzare un nome di file vuoto e "-D"
opzione. Ad esempio,

mp3info2 -D -a beethoven -p "%a\n" ""
mp3info2 -D -a beethoven -p "%{shP[%a]}\n" ""
mp3info2 -D -a beethoven -t "sonata #28" -p "%t\n" ""
mp3info2 -D -a beethoven -t "allegretto, Bes" -@p "@t\n" ""
mp3info2 -D -a beethoven -t "op93" -@p "@t\n" ""

stamperà il nome di persona normalizzato per "beethoven", il corrispondente nome breve normalizzato
nome di persona e il titolo normalizzato per "sonata n. 28" del compositore "beethoven". Ad esempio,
con le tabelle di normalizzazione spedite, verrà stampato

Ludovico van Beethoven (1770-1827)
L. van Beethoven
Sonata per pianoforte n. 28 in la maggiore; Op. 101 (1816)
Allegretto per trio con pianoforte in si bemolle maggiore; WoO 39 (1812)
Sinfonia n. 8 in fa maggiore; Op. 93 (comp. 1812, fp Vienna, 1814 febbraio 02, dir. Beethoven; pubb. 27)

. minimo of operazione


Attualmente le operazioni vengono eseguite nel seguente ordine

· Eliminazione di ID3v1 o ID3v2 nel loro complesso tramite l'opzione "-d";

· Sono impostate le ricette dell'opzione "-P" (da attivare tramite interpolazione);

· L'impostazione effettuata tramite le opzioni "-a/-t/-l/-y/-g/-c/-n";

· Le impostazioni effettuate tramite l'opzione "-F";

· Eliminazione di singoli frame tramite l'opzione "-d";

· riempimento automatico dei frame ID3v2 (id);

· Emettere informazioni in base alle opzioni "-p" e "-x";

· Ricette di trigger di "-P" (se non attivate dall'interpolazione);

· Aggiornare i tag se necessario.

Impiego strategia: intensificazione of complessità


Lo scopo di questo script è quello di rendere la gestione dei tag ID3 il più semplice possibile as possibile.

Da un lato, è possibile eseguire manipolazioni arbitrariamente complesse con i tag utilizzando
Modulo Perl "MP3::Tag".

D'altro canto, è molto più comodo gestire le manipolazioni più semplici con i tag
utilizzando le opzioni di questo script "-t -a -l -y -g -c -n" e "-p -F -d". Per un po' più
compiti complicati, potrebbe essere necessario utilizzare il metodo più elaborato di parse norme, fornito
a questo script tramite l'opzione "-P"; le regole dipendono fortemente da interpolazione, Vedere
"interpolate" in MP3::Tag, "interpolate_with_flags" in MP3::Tag.

Per semplificare l'aggiornamento dalle "manipolazioni più semplici" a quelle "più elaborate", qui
fornire "regola di analisi" sinonimi alle opzioni più semplici. Quindi se inizi con "-t -a -l -y
opzioni "-g -c -n" e "-p -F -d" che "funzionano quasi" per te, hai buone possibilità di essere
in grado di raggiungere pienamente il tuo obiettivo modificando i sinonimi descritti di seguito.

(Di seguito si assume che l'opzione "-E" sia impostata sul suo valore predefinito, quindi "-F -p" sono
"%"-interpolato, le altre opzioni non lo sono. Nota anche che se la codifica del tuo TTY è
riconosciuto da Perl, è altamente raccomandato impostare l'opzione "-e 3"; sulle shell DOSISH,
(È meglio usare "-@" e sostituire "%" con "@" qui sotto.)

"-t VALORE"
-P "mz/VALORE/%t"

"-a -l -y -g -c -n"
Allo stesso modo.

"-F" "TIT2=VALORE"
-P "mzi/VALORE/%{TIT2}"

"-F" "APIC[myDescr] < FILE"
-F "APIC[myDescr]=%{I(fimbB)FILE}"

or

-P "mzi/%{I(fimbB)FILE}/%{APIC[myDescr]}"

(rimuovere "bB" per i frame di solo testo).

"-F" "APIC[myDescr] > FILE"
-P "bOi,%{APIC[myDescr]},FILE"

(rimuovi "b" per i frame di solo testo); oppure usa "-e binary -p "%{APIC[myDescr]}""
con reindirizzamento, vedere "ESEMPI: regole di analisi".

"-d" TIT2
-P "m//%{TIT2}"

"-F" "TIT2 ?< FILE"
Molto complicato. Questo non distinguerà i file vuoti da quelli inesistenti:

-P "mzi/%{TIT2:1}0%{I(fFim)FILE}/10/10%{TIT2}/0%{U1}"

(aggiungere "bB" a "fFim" per i frame non solo di testo); l'ultima parte può essere omessa
se si omette il flag "m", questo serve solo a rilevare errori di stampa.

Per i dettagli sulle "regole di analisi", vedere "ESEMPI: regole di analisi" e "DESCRIZIONE" in
MP3::Tag::ParseData.

ESEMPI: parse norme


Solo l'opzione "-P" è abbastanza complicata da meritare commenti... Per maggiori dettagli su
parse norme, vedere "DESCRIZIONE" in MP3::Tag::ParseData; per i dettagli completi sull'interpolazione,
vedere "interpolate" in MP3::Tag, "interpolate_with_flags" in MP3::Tag.

Per un esempio (sciocco), si può sostituire "-a Homer -t Iliad" con

-P mz=Omero=%a -P mz=Iliade=%t

Un esempio meno sciocco è forzare un modo particolare di analizzare un nome di file tramite

-P "im=%{d0}/%f=%a/%n %t.%e"

È suddiviso in

pattern stringa flag1
"im" "%{d0}/%f" "%a/%n %t.%e"

Le lettere della bandiera rappresentano interpolare, deve corrispondere. Questo interpola la stringa
"%{d0}/%f" e analizza il risultato (che è il nome del file con un livello della directory
parte conservata) utilizzando il modello dato; quindi il nome della directory diventa l'artista, il
parte numerica iniziale: il numero della traccia e il resto del nome del file (senza estensione)
- il titolo. Nota che poiché sono consentiti più modelli, si può allo stesso modo consentire
formati multipli dei nomi, ad esempio

-P "im=%{d0}/%f=%a/%n %t.%e=%a/%t (%y).%e"

consente che il nome base del file sia anche nella forma "TITOLO (ANNO)". Un modo alternativo per
ottenere gli stessi risultati è

-P "im=%{d0}=%a" -P "im=%f=%n %t.%e=%t (%y).%e"

che corrisponde a due ricette:

stringa di flag pattern1 pattern2
"io" "%{d0}" "%a"
"im" "%f" "%n %t.%e" "%t (%y).%e"

Naturalmente, si potrebbe usare

"sono" "%B" "%n %t" "%t (%y)"

in sostituzione del secondo.

Nota che potrebbe essere più leggibile impostare artista a "%{d0}" tramite un'assegnazione esplicita, con
argomenti simili a

-E "p/i:Fpa" -a "%{d0}"

(questo valore di "-E" richiede l'interpolazione "%" dell'opzione "-a" in aggiunta a
interpolazione predefinita "\" di "-p" e interpolazione "%" di "-F" e "-p"; si può
abbreviarlo con "-E +/i:a").

Per fare altri esempi,

-P "se=%D/.commento=%c"

leggerà il commento dal file .commento nella directory del file audio;

-P "ifn=%D/.commento=%c"

ha un effetto simile se il file .commento ha commenti di una riga, uno per traccia (questo presuppone
il numero della traccia può essere trovato con altri mezzi).

Supponiamo che un file Componenti in una directory di file MP3 ha il seguente formato: ha un
preambolo, quindi ha un breve paragrafo di informazioni per file audio, preceduto dalla traccia
numero e punto:

...

12. Rezitativ.
(Pizarro, Rocco)

13. Duett: jetzt, Alter, jetzt hat es Eile, (Pizarro, Rocco)

...

Il seguente comando inserisce queste informazioni nel titolo del tag ID3 (a condizione che l'audio
i nomi dei file sono sufficientemente informativi da consentire a MP3::Tag di dedurre il numero della traccia):

mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parti;%=n. %t'

Se questo paragrafo informativo ha la forma "TITOLO (COMMENTO)" con la parte "COMMENTO"
essendo facoltativo, allora usa

mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parti;%=n. %t (%c);%=n. %t'

Se vuoi rimuovere un punto o una virgola alla fine del titolo, usa

mp3info2 -u -C parse_split='\n(?=\d+\.)' \
-P 'fl;Parti;%=n. %t (%c);%=n. %t' -P 'iR;%t;%t[.,]$'

Il secondo schema di questa invocazione è convertito in

['iR', '%t' => '%t[.,]$']

che sostanzialmente applica la sostituzione "s/(.*)[.,]$/$1/s" al titolo.

Supponiamo ora che oltre a Componenti, abbiamo un file di testo Commento con informazioni aggiuntive;
vogliamo inserire queste informazioni nel campo dei commenti dopo cosa si estrae da "TITLE"
(COMMENTO)"; separare queste due parti del commento con una riga vuota:

mp3info2 -EC -C 'parse_split=\n(?=\d+\.)' -C 'parse_join=\n\n' \
-P 'f;Commento;%c' -P 'fl;Parti;%=n. %t' \
-P 'i;%t///%c;%t (%c)///%c' -P 'iR;%t;%t[.,]$'

Ciò presuppone che il titolo e il commento non contengano '///' come sottostringa.
Spiegazione: il primo modello di "-P",

['f', 'Commento' => '%c'],

legge il commento dal file "Commento" nel campo commento; il secondo,

['fl', 'Parti' => '%=n. %t'],

legge un frammento di "Parti" nel campo del titolo. Il terzo

['i', '%t///%c' => '%t (%c)///%c']

riorganizza il titolo e il commento purché il titolo è nella forma "TITOLO (COMMENTO)".
(L'opzione di configurazione "parse_join" si occupa di separare due blocchi di commento
corrispondente a due occorrenze di %c sul lato destro.)

Infine, il quarto schema è lo stesso dell'esempio precedente; rimuove gli errori spuri
punteggiatura alla fine del titolo.

Altri esempi: rimozione della stringa "con violino" dall'inizio del campo commento (rimozione
commentare del tutto se non rimane nulla):

mp3info2 -u -P 'iz;%c;con violino%c' *.mp3

impostando il campo artista senza lasciare che la funzione di aggiornamento automatico deduca altri campi da
altre fonti;

mp3info2 -C autoinfo=ParseData -a "AU Thor" *.mp3

impostando un campo commento a meno che non sia già presente:

mp3info2 -u -P 'i;%c///con pianoforte;///%c' *.mp3

L'ultimo esempio mostra come scrivere effettivamente dei "programmi" nel linguaggio "-P"
opzione: l'esempio fornisce un'assegnazione condizionale. Con variabili utente (come in "%{U8}")
per i temporanei e la possibilità di utilizzare espressioni regolari, si potrebbero fornire valori arbitrari
logica programmatica. Naturalmente, a un certo livello di complessità sarebbe meglio passare a
interfacciamento diretto con il modulo Perl "MP3::Tag" (usare il codice di questo script Perl come
esempio!).

Ecco un'impostazione tipica di attività per frame id3v2 "avanzati": compositore ("TCOM"), orchestra
("TPE2"), direttore d'orchestra ("TPE3"). Supponiamo un albero di directory che contiene file MP3 taggati
con le seguenti convenzioni: "artista" è in realtà un compositore; "commento" è di uno di
due forme:

Esecutori; Orchestra; Direttore
Orchestra; Direttore

Per impostare i frame MP3 specifici tramite le regole "-P", utilizzare

mp3info2 -@P "mi/@a/@{TCOM}" \
-P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .

Con le opzioni "-F", questo può essere semplificato come

mp3info2 -@F "TCOM=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .

or

mp3info2 -@F "compositore=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .

Per copiare i tag ID3 dei file MP3 nella directory corrente nei file nella directory /tmp/mp3 con
l'estensione .etichetta (e stampare "rapporto di avanzamento"), utilizzare

mp3info2 -p "@N@E\n" -@P "bODi,@{ID3v2}@{ID3v1},/tmp/mp3/@N.tag" -DNR .

Poiché non abbiamo utilizzato il flag "z", i file MP3 senza tag vengono saltati.

Supponiamo ora che esistano due gerarchie parallele di file audio e di testi:
i file audio sono in audio/nome_dir/nome_audio.mp3 con il file dei testi corrispondente in
testo/nome_dir/nome_audio.mp3Per allegare testi ai file MP3 (nel riquadro "COMM" con
descrizione "testo" in lingua "eng" - questo is a non standard Posizione, vedere qui sotto!),
chiamata

mp3info2 -@P "fim;../text/@{d0}/@B.txt;@{COMM(eng)[lyrics]}" -Ru .

all'interno della directory Audio. (Cambia "fim" in "Ffim" per ignorare i file audio per i quali
il file di testo corrispondente non esiste.) (Naturalmente, per seguire le specifiche,
si sarebbe dovuto usare il campo "%{USLT(eng)[]}" invece di "%{COMM(eng)[lyrics]}"; vedere
di seguito per le varianti).

Concludo con un esempio molto semplice: tutto ciò che il modello

-P 'i;%t;%t'

fa è la rimozione degli spazi finali e iniziali dal titolo (che è dedotto da altri
significa).

altro Esempi


Con l'opzione "-F", si potrebbe impostare il frame "USLT" come

mp3info2 -@F "USLT(eng)[] < ../text/@{d0}/@B.txt" -Ru .

Stampa una cornice del genere (in qualsiasi lingua) con

mp3info2 -@p "@{USLT[]}\n" file.mp3

Allo stesso modo, per stampare il frame APIC con descrizione vuota, utilizzare

mp3info2 -e binario -@p "@{APIC[]}" file.mp3 > output_picture_file

o (con descrizione "copertina")

mp3info2 -@P "bOi,@{APIC[cover]},output_picture_file.jpg" caricamento="pigro" audio_07.mp3

Per impostare un frame del genere dal file xxx.gif (con il valore predefinito "Tipo di immagine", "Copertina (anteriore)",
e descrizione vuota), fai una delle

mp3info2 -F "APIC < xxx.gif" file.mp3
mp3info2 -@F "APIC[]=@{I(fimbB)xxx.gif}" file.mp3

La differenza tra "APIC" e "APIC[]" è che il primo rimuove prima tutti i frame "APIC",
e il secondo rimuove solo tutti i frame "APIC" con descrizione vuota, ma immagine arbitraria
tipo. Quindi potrebbe essere più adatto utilizzare la specifica completa, come in "APIC(Cover
(davanti))[]".

Per rimuovere i frame "APIC" con descrizioni vuote, "Picture Type" arbitrari (e "MIME
tipi che possono essere calcolati correttamente da mp3info2, ad esempio, "TIFF/JPEG/GIF/PNG"), utilizzare

mp3info2 -d "APIC[]" file.mp3

(nota che questo non libererà spazio sul disco, a meno che "shrink" non sia forzato dalla configurazione
variabili). Per fare lo stesso solo con il tipo di immagine "Conduttore", fare

mp3info2 -d "APIC(Conduttore)[]" file.mp3

Per eseguire la scansione delle sottodirectory e aggiungere file cover.jpg dalla directory del file come
frame "APIC" "predefinito", ma solo se non c'è alcun frame "APIC" e un file esiste, esegui

mp3info2 -@F "APIC ?< @D/cover.jpg" loading="lazy" -R .

Questo elimina i frame vuoti per la data, "TCOP, TENC, WXXX[], COMM(eng)[]", e rimuove il
0 iniziale dal numero della traccia del file MP3 nella directory corrente:

mp3info2 -@ -E +/i:y -F "TCOP=@{TCOP}" -F "TENC=@{TENC}"
-F "WXXX[]=@{WXXX[]}" -F "COMM(ita)[]=@{COMM(ita)[]}"
-y "@y" -P "mi/@n/0@n/@n" *.mp3

Esempi on trattare con rotto codifiche


Una delle principali debolezze della specifica ID3 era che richiedeva che i dati fossero
fornito nella codifica "latin-1". Poiché la maggior parte delle lingue del mondo non sono esprimibili in
"latin-1", questo ha portato (la maggior parte?) dei tag ID3 a non essere conformi allo standard. Più recente
versioni delle specifiche hanno corretto questa lacuna, ma il danno era ormai fatto.
Fortunatamente, questo script può utilizzare le capacità di "MP3::Tag" per convertire da non conforme
contenuto a uno conforme.

L'esempio seguente converte i tag ID3v2 che sono stati scritti in (non conformi allo standard)
codifica "cp1251" in modo conforme allo standard. Ai fini di questo esempio,
supponiamo che i tag ID3v1 siano nella stessa codifica (e che si voglia lasciarli nella
codifica "cp1251"); i file da elaborare si trovano nella directory corrente e
(ricorsivamente) nelle sue sottodirectory (sintassi "set" per le shell DOSISH):

imposta MP3TAG_DECODE_V1_DEFAULT=cp1251
imposta MP3TAG_DECODE_V2_DEFAULT=cp1251
mp3info2 -C id3v2_fix_encoding_on_write=1 -u2R .

Per ulteriori informazioni, vedere "ENVIRONMENT" in MP3::Tag, "config" in MP3::Tag e
"PERSONALIZZAZIONE" in MP3::Tag.

INCOMPATIBILITÀ con mp3info
Questo strumento è vagamente modellato sul programma mp3info; è "per lo più" compatibile con le versioni precedenti
(specialmente quando in modalità "ingenua" tramite "-N"), e consente un superset molto significativo di
funzionalità. Le incompatibilità con le versioni precedenti note sono:

-G -h -r -d -x

Funzionalità mancante:

-f -F -i

Incompatibile "%"-fughe:

%e %E - semantica assolutamente diversa
%v - non ha 0 finali
%q - ha una parte frazionaria
%r - è un numero, non una parola "Variabile" per VBR
%u - è uno in meno (in presenza solo del frame descrittore?)

Mancante "%"-fughe:

%b %G

Escape con barra rovesciata: sono supportati solo "\\", "\n", "\t".

"-x" stampa i dati in un formato diverso, non tutti i campi sono presenti e i nomi dei tag ID3v2
sono in uscita.

AMBIENTE


Con "-e" 1, 2 o 3, questo script può consultare le variabili di ambiente "LC_CTYPE, LC_ALL,
LANG" per dedurre la codifica corrente. Nessun'altra variabile d'ambiente viene letta direttamente da
questo copione.

Si noti tuttavia che il modulo MP3::Tag ha un ricco set di impostazioni predefinite per la codifica
impostabile tramite variabili d'ambiente; vedi "ENVIRONMENT" in MP3::Tag. Quindi queste variabili
influenzare (indirettamente) il funzionamento di questo script.

OBSOLETO INTERFACCIA


Se non capisci di cosa si tratta, puoi tranquillamente ignorare questo annuncio:

Il vecchio metodo, precedente alla versione 1.05 (mediante triplicazione di un separatore, senza ripetizione di
opzioni) per fornire più comandi alle opzioni "-F" e <-P> è ancora supportato, ma è
Fortemente sconsigliato. (Non è in conflitto con l'interfaccia attuale.)

Utilizzare mp3info2p online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.