Portál AbcLinuxu, 30. dubna 2025 21:26

Nedeterministické chovanie aplikácií.

17.8.2010 23:05 | Přečteno: 1135× | linux

Dnes som zase zažil WTF moment pri prehrávaní mp3 v MC pomocou mplayeru. V /etc/mailcap mám toto (ostatné som zakomentoval):
audio/mpeg; /usr/bin/hraj '%s'; description="MPEG Audio"
Skript /usr/bin/hraj obsahuje toto:
#!/bin/bash
xterm -e mplayer "$1"
V adresári som mal dva mp3 súbory. Prvý bol a(a).mp3 a druhý bol b(b).mp3. Normálne sa v mc na nich postavím, stlačím enter a môžem počúvať. Dnes ale prvý subor nehral a druhý hral. Skúsil som teda priamo "mplayer a\(a\).mp3" a normálne to hralo. Divné. Najprv som podozrieval escapovanie tých zátvoriek. Premenoval som ho na a.mp3 ale nehralo to. Upravil som teda skript takto:
#!/bin/bash
xmessage "$1"
xterm -e mplayer "$1"
A zistil som, ze mc nespúšťa súbory priamo, ale v /tmp vytvori dočasnú symlinku na pôvodný súbor, napr. /tmp/tmp32sxv42 a spustí "/usr/bin/hraj /tmp/tmp32sxv42". Všimol som si že tam nie je prípona, zmenil som teda "a(a).mp3" na "a" a zrazu "mplayer a" prestalo fungovat:
$ mplayer a 
MPlayer dev-SVN-r26940
CPU: Intel(R) Atom(TM) CPU  230   @ 1.60GHz (Family: 6, Model: 28, Stepping: 2)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing a.
MPEG-PS file format detected.
MPEG: No audio stream found -> no sound.
MPEG: FATAL: EOF while searching for sequence header.
Video: Cannot read properties.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
ADecoder init failed :(
ADecoder init failed :(
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
Unknown/missing audio format -> no sound
ADecoder init failed :(
Opening audio decoder: [libmad] libmad mpeg audio decoder
Cannot sync MAD frame
ADecoder init failed :(
ADecoder init failed :(
Opening audio decoder: [hwmpa] MPEG audio pass-through (fake decoder)
Cannot sync MPA frame: 0
ADecoder init failed :(
ADecoder init failed :(
Cannot find codec for audio format 0x50.
Read DOCS/HTML/en/codecs.html!
Audio: no sound
Video: no video


Exiting... (End of file)
Trochu googlenia, čitania manuálu. Zdá sa že ak má súbor príponu mp3 tak to mplayer nejak zohľadní. Riešenie je takéto:
mplayer -demuxer +audio a
resp. v skripte:
#!/bin/bash
xterm -e mplayer -demuxer +audio "$1"
Záver - MC pomocou symlinku schoval príponu súboru. Treba s tým počítať. Moc sa mi ale takéto chovanie nepáči. Začnite takto lepiť systém a neskôr sa vám rozsype ako domček z kariet.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

17.8.2010 23:14 Tian Ce Men
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Odpovědět | Sbalit | Link | Blokovat | Admin
Nevolas sa nahodou Stefan?
17.8.2010 23:43 sivlk | skóre: 15 | blog: sivlk
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Nie, preco?
________________ avatar 18.8.2010 09:10 ________________ | skóre: 5 | blog: _
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
poradím ti nepoužívaj MP3 formát ale FLAC
18.8.2010 09:54 sivlk | skóre: 15 | blog: sivlk
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Preco?
kotyz avatar 18.8.2010 10:57 kotyz | skóre: 25 | blog: kotyzblog | Plzeň
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
abys potreboval vetsi disk :-D
Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
18.8.2010 12:32 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Anebo má sluchátka se zlatým drátem :-D
Jendа avatar 18.8.2010 14:46 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Osobně nedokážu rozlišit 96 kb/s Vorbis od originálu :-).
Grunt avatar 18.8.2010 21:11 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Já zas u většiny skladeb 64kb/s AoTuV a originál. A Musepack na standard preset (cca. 160kbps), to je hotové peklo.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
17.8.2010 23:15 chrono
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Odpovědět | Sbalit | Link | Blokovat | Admin
Nebolo by jednoduchšie urobiť to prehrávanie v MC pomocou priradenia súborov a tam pomocou "Open"? (tiež tam môžeš použiť xterm a nerobí to žiadne linky).
17.8.2010 23:42 sivlk | skóre: 15 | blog: sivlk
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Kedysi som mc.bindings pouzival (alebo myslis nieco ine?), bol tam nejaky problem (uz si nepamatam aky) tak som presiel na mailcap. Cesta mensieho odporu.
Grunt avatar 17.8.2010 23:39 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Odpovědět | Sbalit | Link | Blokovat | Admin
Zdá sa že ak má súbor príponu mp3 tak to mplayer nejak zohľadní
No jo, vsadím se, že inkriminované MP3 je bez ID3 tagu nebo jiného markeru a pak je bez přípony určování typu MPEG souboru docela magie – no spíš sázka do loterie. Proto je lepší přímo používat něco jako madplay nebo mpg321.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
17.8.2010 23:44 sivlk | skóre: 15 | blog: sivlk
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
$ file a.mp3 
a.mp3: Audio file with ID3 version 2.3, MP3 encoding

$ file b.mp3 
b.mp3: Audio file with ID3 version 2.3, MP3 encoding
Skor ten subor bude nejak poskodeny
Grunt avatar 17.8.2010 23:54 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
To je divné. Tak to musel MC nějak blbě nasymlinkovat. Co xterm -e xxd "$1"?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
18.8.2010 00:21 sivlk | skóre: 15 | blog: sivlk
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Vypise to ten subor. Symlink je dobry. Staci zmenit v mojom skripte mplayer za vlc a ide to.
18.8.2010 01:46 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
a pak je bez přípony určování typu MPEG souboru docela magie – no spíš sázka do loterie
Hm, tohle tvrzení jsem se rozhod prověřit:
$> cp Nightwish/01-Kinslayer.mp3 file.jpg 
$> eyeD3 --remove-all file.jpg 

file.jpg        [ 9.19 MB ]
-------------------------------------------------------------------------------
Removing ID3 v1.x and/or v2.x tag: SUCCESS
$> file file.jpg 
file.jpg: data
$> mediainfo file.jpg 
General
Complete name                    : file.jpg
Format                           : MPEG Audio
File size                        : 9.19 MiB
Duration                         : 4mn 0s
Overall bit rate                 : 320 Kbps
Writing library                  : LAME3.90 (alpha)

Audio
Format                           : MPEG Audio
Format version                   : Version 1
Format profile                   : Layer 3
Duration                         : 4mn 0s
Bit rate mode                    : Constant
Bit rate                         : 320 Kbps
Channel(s)                       : 2 channels
Sampling rate                    : 44.1 KHz
Stream size                      : 9.19 MiB (100%)
Writing library                  : LAME3.90 (alpha)


$> 
Je vidět, že libmagic si s tím opravdu neporadí.
Mediainfo bez problému.
Imho mplayer by si s tím umět poradit rozhodně měl...
18.8.2010 05:33 zulu
Rozbalit Rozbalit vše Re: Nedeterministické chovanie aplikácií.
Imho mplayer by si s tím umět poradit rozhodně měl...
Vždyť nakonec taky poradil...

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.