[+] Parametry pliku audio

Ogólne pytania dotyczące systemu
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

[+] Parametry pliku audio

Post autor: lis6502 »

W jaki sposób (inaczej niż przez file) odczytać informację na temat plików audio?
Wynik file

Kod: Zaznacz cały

#15368456.mp3:     data
Czyli niby lipa, tymczasem Audacious stwierdza Obrazek
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

O ile dobrze zrozumiałem, chcesz odczytać zawartość pól id3?

Kod: Zaznacz cały

Pakiet: id3
Opis: Edytor znaczników ID3
 Program linii poleceń który potrafi wyświetlać, modyfikować i kasować znaczniki
 ID3 w pliku. Znaczniki ID3 to sposób identyfikowania plików ze strumieniami
 muzycznymi. Można przechowywać informacje takie jak wykonawca, album, tytuł, nr
 ścieżki, rok i gatunek, a także 28-znakowy komentarz.
Awatar użytkownika
ilin
Senior Member
Posty: 2292
Rejestracja: 26 sierpnia 2007, 11:54
Lokalizacja: PRLu

Post autor: ilin »

Mplayer tez to powie :)
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

No właśnie nie jestem przekonany co do pól ID3. Te pliki jak widać po nazwie pochodzą z lost+found i nie wszystkie są kompletne, także nie wiem czy id3 to obsłuży. Do tego takie rzeczy jak bitrate, samplerate chyba nie są zapisywane w id3? Popróbuję i dam znać.
ilin, jak zwykle najciemniej pod latarnią (w razie pytań - jestem elektrykiem :D ). Teraz tylko doczytam jak zrobić by nie odtwarzał, i zapakować to w jakiś skrypt. Chodzi o około 20k plików audio. Chcę je przekodować jeszcze raz z takimi samymi parametrami.
pavbaranov
Senior Member
Posty: 2156
Rejestracja: 29 lipca 2007, 18:06

Post autor: pavbaranov »

Czy przez przypadek to: http://packages.debian.org/lenny/mp3info nie rozwiązuje Twoich problemów?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Niestety nie.

Kod: Zaznacz cały

Nexus MUSIC # mp3info -x * |more
#15368202.mp3 does not have an ID3 1.x tag.
#15368222.mp3 does not have an ID3 1.x tag.
#15368234.mp3 does not have an ID3 1.x tag.
#15368247.mp3 does not have an ID3 1.x tag.
#15368251.mp3 does not have an ID3 1.x tag.
#15368268.mp3 does not have an ID3 1.x tag.
File: #15368202.mp3
Media Type:  MPEG 1.0 Layer III
Audio:       192 KB/s, 44KHz (stereo)
Emphasis:    none
CRC:         No
Copyright:   No
Original:    Yes
Padding:     Yes
Length:      0:33
Zostaje mi kombinowanie z mplayerem.
pavbaranov
Senior Member
Posty: 2156
Rejestracja: 29 lipca 2007, 18:06

Post autor: pavbaranov »

lis6502 pisze: Zostaje mi kombinowanie z mplayerem.
I tak i nie. Pisałeś, że potrzebne jest Ci to do przekodowania mp3 z takimi samymi parametrami, jak oryginał. Mp3info (jest zdaje się jeszcze wersja 2), daje Ci wszystkie podstawowe informacje. ID3 da - jeśli odczyta - dodatkowe. Generalnie jednak, nie wiem, czy dobrze kombinujesz, bo chyba najprościej wykorzystać pakiet ffmpeg, który - jeśli się nie mylę, powinien dać Ci w swoich opcjach możliwość przekodowania pliku x.mp3, na y.mp3 z takimi samymi parametrami. Podobnie może to chyba zrobić mencoder (to wykorzystuje mplayer, jeśli się nie mylę). Generalnie, jeśli pamiętam, to mencoder najpierw rozkodowuje mp3 do wav, a następnie prowadzi drugą konwersję do zadanego formatu.
Niewiele Ci to jednak da z "niekompletnymi" plikami, albowiem te już pozostaną niekompletne.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Może rzucę więcej światła na sprawę. Olałbym całą sprawę, gdyby nie fakt, że moja Sansa Clip jest kapryśna. Niekompletne pliki powodują że się zawiesza (po odłączeniu od komputera wisi na 'Refreshing databse'). O ile Audacious niewiele robi sobie z 'dziur' w plikach, o tyle Sansa jest bezużyteczna. Skądinąd wiem, że lame spokojnie przełknie pliki bez nagłówków. Mam trzy możliwości: ustawić jakość 128kbit i puscić lame *, ciesząc ucho szumami i innymi zaletami wysokiej kompresji, ustawić 320kbit i stracić dużo miejsca, albo... No właśnie, to co chcę zrobić, czyli odczytać _jakoś_ (Audacious daje radę) parametry i przelameować plik z takimi samymi parametrami. Efekt? Kompletny (w sensie nagłówka i klatek) plik mp3, który będę w stanie odsłuchać na Sansie.
Oczywiście chcę to wszystko oskrypcić żeby nie bawić się w to wszystko ręcznie.
Pierwotnie plan był taki, by użyć lame z --tajemniczą-opcją, która miast kompresować wyświetli tylko upragnione parametry, które zostaną użyte dalej; niestety w manie takiej opcji nie doszukałem się.
Znalazłem jeszcze plugin do Audaciousa - songchange. Przy zmianie utworu na liście wykonuje on zadane polecenie. Odpada ze względu na to, że informacji o utworze nie mogę przekazać parametrem.
Tak, lubię wyzwania :mrgreen:
pavbaranov
Senior Member
Posty: 2156
Rejestracja: 29 lipca 2007, 18:06

Post autor: pavbaranov »

Hmmm.... znalazłem coś takiego: http://linux.softpedia.com/get/Multimed ... 8139.shtml
Wydaje mi się, że powinienieś zainteresować się jakimś programem do naprawy/odtworzenia mp3 (nie w sensie odtwarzania, a "recovery").
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

pavbaranov, dzięki za skrypt, ale skorzystam z niego przy następnej okazji (a okazuje się że walniętych mp3 mam więcej). Poradziłem sobie tak, jak zamierzałem, czyli

Kod: Zaznacz cały

#!/bin/bash
for i in *; do
parm=$(mplayer "$i" -ao ble 2>&1 |grep AUDIO)
srate=$(echo $parm |awk '{print $2}')
most=$(echo $parm |awk '{print $4}')
bitr=$(echo $parm |awk '{print $7}')

if [ $most -eq "2" ]; then  most="j" 
else 
most="m" 
fi

lame --mp3input -o --cbr -m $most -b $bitr --resample $srate "$i" "out/$i" && rm $i
done
ODPOWIEDZ