Portál AbcLinuxu, 30. dubna 2025 21:26
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 aresp. 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.
Tiskni
Sdílej:
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.
$ 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 encodingSkor ten subor bude nejak poskodeny
a pak je bez přípony určování typu MPEG souboru docela magie – no spíš sázka do loterieHm, 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í.ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.