khenriks / mp3fs Goto Github PK
View Code? Open in Web Editor NEWFUSE-based transcoding filesystem from FLAC to MP3
Home Page: http://khenriks.github.io/mp3fs/
License: GNU General Public License v3.0
FUSE-based transcoding filesystem from FLAC to MP3
Home Page: http://khenriks.github.io/mp3fs/
License: GNU General Public License v3.0
After hours of conversions my mp3fs crashed:
mp3fs[3075]: segfault at 7f4791b79000 ip 0000000000402c60 sp 00007f4791b6ebd0 error 6 in mp3fs[400000+5000]
MP3FS version 0.32
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12
can someone tell me what kind of error is that?
It would be great if you could tag a new release, as it would make packaging significantly easier.
Additionally or as replacement of the OGG-Support-Request it would be nice to convert to Opus, since it seems to become an leading audio standard on the web.
I am not sure if this is the right way to discuss this. Today I had a problem that my boot was broken because the HDD mount that my mp3fs mount was referring to was not coming up fast enough.
The mp3fs mount appears in systemctl list-units
.
I can put After=CERTAIN.MOUNT
into the systemd
unit file for any normal mount or any other service. Should it also be possible with mp3fs? When I try to edit the file I get
pi@raspberrypi:~ $ sudo systemctl edit --full mnt-hdd-mp3fs.mount
No files found for mnt-hdd-mp3fs.mount.
Run 'systemctl edit --force --full mnt-hdd-mp3fs-mp3fsx2dneuex2dmusik.mount' to create a new unit.
Will editing with --force-- create a file that will get used upon mount of mp3fs?
EDIT: I posted a related question here: https://unix.stackexchange.com/questions/634829/should-editing-fstab-change-systemd-mountpoint-service-file?noredirect=1#comment1189255_634829
Hi there. I recently resurrected and updated the Arch User Repository package for mp3fs: https://aur.archlinux.org/packages/mp3fs-git/
Unfortunately I've had to disable vorbis picture support because of the lack of a package for libb64 in Arch. Is it possible to use the base64 encoding/decoding functions that are part of glibc instead?
I seem to remember that in previous versions higher bitrate mp3s would get downsampled to what I speficied. This was extremely useful since 128kbps is just right for my connection to handle but 192 is a bit too high, except most of my mp3s are at 192kbps. Now I noticed that not all, if any of the mp3s get downsampled. FLAC files get transcoded properly.
In any case, whether or not I imagined this feature, I would like to request it :)
I tried to build the new 0.9 release on my FreeBSD Box, but with this release ./configure stops with the following output:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of cc... gcc3
checking for g++... no
checking for c++... c++
checking whether we are using the GNU C++ compiler... yes
checking whether c++ accepts -g... yes
checking dependency style of c++... gcc3
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of int... 4
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for flac... yes
checking for id3tag... yes
checking for lame_init in -lmp3lame... no
configure: error: You must have liblame-dev installed to build mp3fs.
of course, lame is installed.
[sterum@saturn /home/sterum] % pkg version -v | grep lame
lame-3.99.5_1 = up-to-date with port
[sterum@saturn /home/sterum] % ls -l /usr/local/lib/libmp3lame*
-rw-r--r-- 1 root wheel 434938 4 Apr 19:39 /usr/local/lib/libmp3lame.a
-rwxr-xr-x 1 root wheel 936 4 Apr 19:39 /usr/local/lib/libmp3lame.la
lrwxr-xr-x 1 root wheel 15 4 Apr 19:39 /usr/local/lib/libmp3lame.so -> libmp3lame.so.0
-rwxr-xr-x 1 root wheel 294000 4 Apr 19:39 /usr/local/lib/libmp3lame.so.0
On older releases i didn't had this problem.
Add support for Apple Lossless audio files
https://github.com/khenriks/mp3fs/blob/master/src/coders.cc#L73 calls file_type
to determine if a file is a 'flac'
, however what it really is doing is checking the file extension.
In my case, I have many millions of flac files which have the extension .FLAC
, which while they are valid flac files, mp3fs fails to transcode them as flac != FLAC
.
root@colossus03:~# file flac/4058765179864_1_3.FLAC
flac/4058765179864_1_3.FLAC: FLAC audio bitstream data, 16 bit, stereo, 44.1 kHz, 15876646 samples
This is on Ubuntu 16.04.2 with a recent git clone of the mp3fs repo.
Thanks for a great tool. Output quality is very good. The only issue I've encountered is the rather long delay whenever a mp3 is started. That unfortunately is a serious issue for any type of media server operation featuring long playlists (even though it's plenty annoying for one song). Imagine a 100 song playlist - the wait time could total nearly an hour !
Most modern PCs and servers in particular have an abundance of memory. Have you considered adding some sort of configurable caching?
Cheers.
Once a partition is mounted through mp3fs and a few sftp transfers occur from that FUSE filesystem the following error is returned:
Transport endpoint is not connected'
.
I store albums in individual directories as collections of FLAC files with album art stored as a single, non-embedded JPEG or PNG image named folder.(png|jpg). It would be really nice if, in addition to picking up on tags embedded within the FLAC file, MP3FS would also embed art found in the same folder as the file in question. Many players pick up on the presence of image files in the same directory as music files, but notably, iTunes does not.
When trying to build on an x86_64 machine I get the following error.
CXX mp3_encoder.o
mp3_encoder.cc: In member function ‘virtual int Mp3Encoder::set_stream_params(uint64_t, int, int)’:
mp3_encoder.cc:120:30: error: expected ‘)’ before ‘PRIu64’
mp3_encoder.cc:120:66: warning: spurious trailing ‘%’ in format [-Wformat]
mp3_encoder.cc:120:66: warning: too many arguments for format [-Wformat-extra-args]
mp3_encoder.cc:120:66: warning: spurious trailing ‘%’ in format [-Wformat]
mp3_encoder.cc:120:66: warning: too many arguments for format [-Wformat-extra-args]
make[1]: *** [mp3_encoder.o] Error 1
make[1]: Leaving directory `/home/funkycrime/scratch/mp3fs/src'
make: *** [all-recursive] Error 1
The following patch remedies the issue for me. See http://stackoverflow.com/questions/8132399/how-to-printf-uint64-t/8132440#8132440
diff --git a/src/mp3_encoder.cc b/src/mp3_encoder.cc
index 5607577..43edfb7 100644
--- a/src/mp3_encoder.cc
+++ b/src/mp3_encoder.cc
@@ -20,6 +20,7 @@
#include "mp3_encoder.h"
+#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#include <cmath>
Hi, I found an issue in mp3fs version 1.1 that I never experienced in the debian package (0.91). If a filename has a '[' or a ']' in it, the file shows up (e.g. in rsync) but cannot be listed, copied or accessed. Lots of media flac files have these brackets.
rsync output:
file has vanished: "/volume1/mp3fs/Alessandro Safina/Insieme a Te [14 Tracks]/09 Alessandro Safina Insieme a Te.mp3"
I reverted to version 1.0. This release handles the filenames without problem.
Thanks for the great work. And now using docker I run mp3fs directly on the NAS without the need of an external raspberry pi for transcoding!
Add support for the Ogg Vorbis audio files.
Using rsync to copy files from the mp3fs file system fails most of the time but works occasionally.
rsync -av /media/raspii/mp3/ /media/raspii/Lexar/MP3/
sending incremental file list
./
AC-DC/Back_in_Black/
AC-DC/Back_in_Black/Disc 1 - 1_-Hells_Bells.mp3
AC-DC/Back_in_Black/Disc 1 - 2-Shoot_to_Thrill.mp3
rsync: read errors mapping "/media/raspii/mp3/AC-DC/Back_in_Black/Disc 1 - 2-_Shoot_to_Thrill.mp3": No data available (61)
I can play the flac file, cp the mp3 and play it, but when I use rsync it throws errors. The flac file appears to be fine:
mutagen-inspect AC-DC/Back_in_Black/Disc\ 1\ -\ 2_-Shoot_to_Thrill.flac
-- AC-DC/Back_in_Black/Disc 1 - 2-_Shoot_to_Thrill.flac
Here's the mount command:
mp3fs -d -quality=2 -b 320 /home/raspii/FLAC/ /media/raspii/mp3/ -o allow_other,ro
Version (downloaded via github, installed via configure/make/make install):
$ mp3fs -V
mp3fs version: 0.91
LAME library version: 3.99.5
FLAC library version: 1.3.0
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19
xubuntu version:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
First part of the debug output:
mp3fs -d -b 320 /home/raspii/FLAC /media/raspii/mp3 -o allow_other,ro
mp3fs: MP3FS options:
basepath: /home/raspii/FLAC
bitrate: 320
quality: 5
gainmode: 1
gainref: 89.000000
desttype: mp3
FUSE library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
INIT: 7.19
flags=0x00000010
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
unique: 1, success, outsize: 40
I've got the rest of the debug output if you want me to post it here.
Hello and thanks for this nifty transcoderfs!
I have mine set up to be visible via Apache's default directory viewer. (please don't /r/opendirectories me)
A friend viewed and listened to a single song, but many times. From the access logs it appears he seeked and restarted, and listened for variable lengths each time. Nothing showed in the error log.
Several hours later, mp3fs was still listed as taking around 500 mb of memory, until i un- and remounted it (back to normal now!). it was also still using several threads. Seems it did not properly drop and reload the file when apache re-served it.
thanks again!
NetBSD provides a FUSE implementation. However, I can't get mp3fs-0.91 to work with it (0.13 worked fine).
The problems I have seen so far:
I don't know yet if this is a problem in the NetBSD FUSE implementation or mp3fs; however, many other fuse file systems work fine (including e.g. glusterfs).
I get an error when I try and build 0.9 on Ubuntu 14.04:
a2x: ERROR: "xmllint" --nonet --noout --valid "/home/vlad/projects/mp3fs/mp3fs.1.xml" returned non-zero exit status 127
Turns out I need two other packages recommended (but not enforced) by asciidoc
: libxml2-utils
and xmlto
. Might be worth adding this info to the docs...
Hi,
The filesystem breaks when there's a single file corrupted corrupted. Is there an option to simply skip conversion errors?
The log is as follows:
[2017-07-16 22:21:00] DEBUG: Tag written to Buffer.
[2017-07-16 22:21:00] DEBUG: getattr /Bruce Springsteen/1995 - The Gost of Tom Joad
[2017-07-16 22:21:00] DEBUG: readdir /Bruce Springsteen/1995 - The Gost of Tom Joad
[2017-07-16 22:21:00] DEBUG: getattr /Bruce Springsteen/1995 - The Gost of Tom Joad/(6) The Line - Bruce Springsteen.mp3
[2017-07-16 22:21:00] DEBUG: Creating transcoder object for /mnt/nas/music/000_musica_ordenada//Bruce Springsteen/1995 - The Gost of Tom Joad/(6) The Line - Bruce Springsteen.flac
[2017-07-16 22:21:00] DEBUG: Ready to initialize decoder.
[2017-07-16 22:21:00] DEBUG: FLAC ready to initialize.
[2017-07-16 22:21:00] DEBUG: FLAC initialized successfully.
[2017-07-16 22:21:00] DEBUG: Decoder initialized successfully.
[2017-07-16 22:21:00] DEBUG: LAME ready to initialize.
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-07-16 22:21:00] DEBUG: LAME partially initialized.
[2017-07-16 22:21:00] DEBUG: LAME initialized.
Waiting for data... (interrupt to abort)
Thanks in advance
When I try to add the entry to fstab (i.e. mp3fs#/mnt/music /mnt/mp3 fuse allow_other,ro,bitrate=192 0 0), it becomes impossible to log in as usual. Instead, the system goes into emergency mode (i.e. terminal and no GUI).
Add support for LAME gapless playback tags.
It would be super awesome if mp3fs could automagically downsample flacs. Stupid sonos won't play 96khz/24 bit flac files and mp3fs downsampling would be great to workaround this shortcoming.
Problem is fixed in repository but it is not tagged as release. 0.32 is failing to build:
Making install in src
CC mp3fs.o
CC fuseops.o
CC transcode.o
transcode.c:252:38: error: expected ')'
snprintf(tmpstr, 10, "%" PRIu64,
^
/usr/include/secure/_stdio.h:57:62: note: expanded from macro 'snprintf'
__builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
^
transcode.c:252:13: note: to match this '('
snprintf(tmpstr, 10, "%" PRIu64,
^
/usr/include/secure/_stdio.h:57:28: note: expanded from macro 'snprintf'
__builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
Also would it be possible to modify Makefile install target to install pre-built mp3fs.1
?
the 'debug' option only makes mp3fs echo its verbose logs to stderr. It still spams syslog with debug output. (nearly 7megs just playing one album) I fixed it by modifying my syslogger settings, but you might want to consider not logging debug messages by default. Or having a log-level threshhold. Heck just having a #define mp3fs_debug to do nothing by default would fix most of it, since no actual user is interested in that.
mp3fs is working perfectly on accessing and copying the files via the local server, however, if I share the mp3fs directory via samba, the moment I try to access one of the mp3 files mp3fs segfaults on me requiring samba to be restarted and the mp3fs mount point to be unmounted and mounted again.
Mounting with the command:
mp3fs -o allow_other -b 256 --quality=2 -d /data/music/flac /data/music/mp3
Produces a clean mount:
[2017-11-01 11:58:04] DEBUG: LAME ready to initialize.
[2017-11-01 11:58:04] DEBUG: MP3FS options:
basepath: /data/music/flac
bitrate: 256
desttype: mp3
gainmode: 1
gainref: 89.000000
log_maxlevel: DEBUG
log_stderr: 1
log_syslog: 0
logfile:
quality: 2
statcachesize: 0
vbr: 0
FUSE library version: 2.9.4
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.23
flags=0x0003fffb
max_readahead=0x00020000
INIT: 7.19
flags=0x00000010
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
unique: 1, success, outsize: 40
But as soon as I try to access a file via the samba share I get:
unique: 35, opcode: LOOKUP (1), nodeid: 1, insize: 56, pid: 23678 [345/1925]
LOOKUP /Vampire Weekend
getattr /Vampire Weekend
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend
NODEID: 2
unique: 35, success, outsize: 144
unique: 36, opcode: LOOKUP (1), nodeid: 2, insize: 56, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend
getattr /Vampire Weekend/Vampire Weekend
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend
NODEID: 3
unique: 36, success, outsize: 144
unique: 37, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 23678
getattr /
[2017-11-01 12:02:52] DEBUG: getattr /
unique: 37, success, outsize: 120
unique: 38, opcode: OPENDIR (27), nodeid: 3, insize: 48, pid: 23678
unique: 38, success, outsize: 32
unique: 39, opcode: READDIR (28), nodeid: 3, insize: 80, pid: 23678
readdir[0] from 0
[2017-11-01 12:02:52] DEBUG: readdir /Vampire Weekend/Vampire Weekend
unique: 39, success, outsize: 696
unique: 40, opcode: GETATTR (3), nodeid: 3, insize: 56, pid: 23678
getattr /Vampire Weekend/Vampire Weekend
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend
unique: 40, success, outsize: 120
unique: 41, opcode: LOOKUP (1), nodeid: 3, insize: 70, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/04 Cape Cod Kwassa Kwassa.mp3
getattr /Vampire Weekend/Vampire Weekend/04 Cape Cod Kwassa Kwassa.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/04 Cape Cod Kwassa Kwassa.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/04 Cape Cod Kwassa Kwassa.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97c007110 ; 0 -> 301
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97c007110 -> 0x7fe97c065af0 ; 301 -> 6872513
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer. [302/1925]
NODEID: 4
unique: 41, success, outsize: 144
unique: 42, opcode: LOOKUP (1), nodeid: 3, insize: 61, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/01 Mansford Roof.mp3
getattr /Vampire Weekend/Vampire Weekend/01 Mansford Roof.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/01 Mansford Roof.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/01 Mansford Roof.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97401c130 ; 0 -> 292
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97401c130 -> 0x7fe974064df0 ; 292 -> 4087224
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 5
unique: 42, success, outsize: 144
unique: 43, opcode: LOOKUP (1), nodeid: 3, insize: 60, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/02 Oxford Comma.mp3
getattr /Vampire Weekend/Vampire Weekend/02 Oxford Comma.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/02 Oxford Comma.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/02 Oxford Comma.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97c000b40 ; 0 -> 291
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97c000b40 -> 0x7fe97c065530 ; 291 -> 6264791
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 6
unique: 43, success, outsize: 144
unique: 44, opcode: LOOKUP (1), nodeid: 3, insize: 54, pid: 23678 [259/1925]
LOOKUP /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3
getattr /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/03 A-Punk.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97401c130 ; 0 -> 285
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97401c130 -> 0x7fe974064dd0 ; 285 -> 4409882
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 7
unique: 44, success, outsize: 144
unique: 45, opcode: LOOKUP (1), nodeid: 3, insize: 54, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/06 Campus.mp3
getattr /Vampire Weekend/Vampire Weekend/06 Campus.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/06 Campus.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/06 Campus.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97c006370 ; 0 -> 237
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97c006370 -> 0x7fe97c065530 ; 237 -> 5648665
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 8
unique: 45, success, outsize: 144
unique: 46, opcode: LOOKUP (1), nodeid: 3, insize: 51, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/05 M79.mp3
getattr /Vampire Weekend/Vampire Weekend/05 M79.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/05 M79.mp3 [216/1925]
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/05 M79.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97401c150 ; 0 -> 282
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97401c150 -> 0x7fe974064d90 ; 282 -> 8185722
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 9
unique: 46, success, outsize: 144
unique: 47, opcode: LOOKUP (1), nodeid: 3, insize: 55, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/10 Walcott.mp3
getattr /Vampire Weekend/Vampire Weekend/10 Walcott.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/10 Walcott.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/10 Walcott.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97c000f10 ; 0 -> 287
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97c000f10 -> 0x7fe97c066030 ; 287 -> 7093182
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 10
unique: 47, success, outsize: 144
unique: 48, opcode: LOOKUP (1), nodeid: 3, insize: 52, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/07 Bryn.mp3
getattr /Vampire Weekend/Vampire Weekend/07 Bryn.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/07 Bryn.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/07 Bryn.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize. [173/1925]
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97401c150 ; 0 -> 229
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97401c150 -> 0x7fe974064c60 ; 229 -> 4263540
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 11
unique: 48, success, outsize: 144
unique: 49, opcode: LOOKUP (1), nodeid: 3, insize: 77, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/11 The Kids Don't Stand A Chance.mp3
getattr /Vampire Weekend/Vampire Weekend/11 The Kids Don't Stand A Chance.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/11 The Kids Don't Stand A Chance.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/11 The Kids Don't Stand A Chance.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97c002f90 ; 0 -> 309
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97c002f90 -> 0x7fe97c066030 ; 309 -> 7777821
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 12
unique: 49, success, outsize: 144
unique: 50, opcode: LOOKUP (1), nodeid: 3, insize: 76, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/08 One (Blake's Got A New Face).mp3
getattr /Vampire Weekend/Vampire Weekend/08 One (Blake's Got A New Face).mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/08 One (Blake's Got A New Face).mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/08 One (Blake's Got A New Face).flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize. [130/1925]
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97401c150 ; 0 -> 326
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97401c150 -> 0x7fe974064fa0 ; 326 -> 6177890
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 13
unique: 50, success, outsize: 144
unique: 51, opcode: LOOKUP (1), nodeid: 3, insize: 65, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/09 I Stand Corrected.mp3
getattr /Vampire Weekend/Vampire Weekend/09 I Stand Corrected.mp3
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/09 I Stand Corrected.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/09 I Stand Corrected.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97c006950 ; 0 -> 296
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97c006950 -> 0x7fe97c065530 ; 296 -> 5113736
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
NODEID: 14
unique: 51, success, outsize: 144
unique: 52, opcode: LOOKUP (1), nodeid: 3, insize: 58, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/AlbumArtSmall.jpg
getattr /Vampire Weekend/Vampire Weekend/AlbumArtSmall.jpg
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/AlbumArtSmall.jpg
NODEID: 15
unique: 52, success, outsize: 144
unique: 53, opcode: LOOKUP (1), nodeid: 3, insize: 51, pid: 23678
LOOKUP /Vampire Weekend/Vampire Weekend/Folder.jpg
getattr /Vampire Weekend/Vampire Weekend/Folder.jpg
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend/Folder.jpg
NODEID: 16
unique: 53, success, outsize: 144
unique: 54, opcode: READDIR (28), nodeid: 3, insize: 80, pid: 23678 [87/1925]
unique: 54, success, outsize: 16
unique: 55, opcode: RELEASEDIR (29), nodeid: 3, insize: 64, pid: 0
unique: 55, success, outsize: 16
unique: 56, opcode: GETATTR (3), nodeid: 3, insize: 56, pid: 23678
getattr /Vampire Weekend/Vampire Weekend
[2017-11-01 12:02:52] DEBUG: getattr /Vampire Weekend/Vampire Weekend
unique: 56, success, outsize: 120
unique: 57, opcode: OPENDIR (27), nodeid: 1, insize: 48, pid: 23678
unique: 57, success, outsize: 32
unique: 58, opcode: RELEASEDIR (29), nodeid: 1, insize: 64, pid: 0
unique: 58, success, outsize: 16
unique: 59, opcode: OPENDIR (27), nodeid: 1, insize: 48, pid: 23678
unique: 59, success, outsize: 32
unique: 60, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 23678
statfs /
[2017-11-01 12:02:52] DEBUG: statfs /
unique: 60, success, outsize: 96
unique: 61, opcode: LOOKUP (1), nodeid: 1, insize: 46, pid: 23678
LOOKUP /mp3fs
getattr /mp3fs
[2017-11-01 12:02:52] DEBUG: getattr /mp3fs
unique: 61, error: -2 (No such file or directory), outsize: 16
unique: 62, opcode: LOOKUP (1), nodeid: 1, insize: 46, pid: 23678
LOOKUP /mp3fs
getattr /mp3fs
[2017-11-01 12:02:52] DEBUG: getattr /mp3fs
unique: 62, error: -2 (No such file or directory), outsize: 16
unique: 63, opcode: LOOKUP (1), nodeid: 1, insize: 46, pid: 23678
LOOKUP /mp3fs
getattr /mp3fs
[2017-11-01 12:02:52] DEBUG: getattr /mp3fs
unique: 63, error: -2 (No such file or directory), outsize: 16
unique: 64, opcode: LOOKUP (1), nodeid: 1, insize: 46, pid: 23678
LOOKUP /mp3fs
getattr /mp3fs
[2017-11-01 12:02:52] DEBUG: getattr /mp3fs
unique: 64, error: -2 (No such file or directory), outsize: 16
unique: 65, opcode: LOOKUP (1), nodeid: 1, insize: 46, pid: 23678
LOOKUP /mp3fs
getattr /mp3fs
[2017-11-01 12:02:52] DEBUG: getattr /mp3fs
unique: 65, error: -2 (No such file or directory), outsize: 16
unique: 66, opcode: LOOKUP (1), nodeid: 1, insize: 46, pid: 23678 [44/1925]
LOOKUP /mp3fs
getattr /mp3fs
[2017-11-01 12:02:52] DEBUG: getattr /mp3fs
unique: 66, error: -2 (No such file or directory), outsize: 16
unique: 67, opcode: RELEASEDIR (29), nodeid: 1, insize: 64, pid: 0
unique: 67, success, outsize: 16
unique: 68, opcode: OPEN (14), nodeid: 7, insize: 48, pid: 23678
open flags: 0x28000 /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3
[2017-11-01 12:02:52] DEBUG: open /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3
[2017-11-01 12:02:52] DEBUG: Creating transcoder object for /data/music/flac/Vampire Weekend/Vampire Weekend/03 A-Punk.flac
[2017-11-01 12:02:52] DEBUG: Ready to initialize decoder.
[2017-11-01 12:02:52] DEBUG: FLAC ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC initialized successfully.
[2017-11-01 12:02:52] DEBUG: Decoder initialized successfully.
[2017-11-01 12:02:52] DEBUG: LAME ready to initialize.
[2017-11-01 12:02:52] DEBUG: FLAC processing STREAMINFO
[2017-11-01 12:02:52] DEBUG: FLAC processing VORBIS_COMMENT
[2017-11-01 12:02:52] DEBUG: LAME partially initialized.
[2017-11-01 12:02:52] DEBUG: LAME initialized.
[2017-11-01 12:02:52] DEBUG: Metadata processing finished.
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: (nil) -> 0x7fe97403d260 ; 0 -> 285
[2017-11-01 12:02:52] DEBUG: Buffer reallocate: 0x7fe97403d260 -> 0x7fe974085e90 ; 285 -> 4409882
[2017-11-01 12:02:52] DEBUG: Tag written to Buffer.
open[140640650267152] flags: 0x28000 /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3
unique: 68, success, outsize: 32
unique: 69, opcode: READ (15), nodeid: 7, insize: 80, pid: 23687
read[140640650267152] 131072 bytes from 0 flags: 0x28000
unique: 70, opcode: READ (15), nodeid: 7, insize: 80, pid: 23688
read[140640650267152] 131072 bytes from 524288 flags: 0x28000
[2017-11-01 12:02:52] DEBUG: read /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3: 131072 bytes from 0
[2017-11-01 12:02:52] DEBUG: read /Vampire Weekend/Vampire Weekend/03 A-Punk.mp3: 131072 bytes from 524288
[2017-11-01 12:02:52] DEBUG: Reading 131072 bytes from offset 0.
[2017-11-01 12:02:52] DEBUG: Reading 131072 bytes from offset 524288.
[2017-11-01 12:02:52] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER
[2017-11-01 12:02:52] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-11-01 12:02:52] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER
[2017-11-01 12:02:52] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
[2017-11-01 12:02:52] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCHunique: 71, opcode: READ (15), nodeid: 7, insize: 80, pid: 23690
[2017-11-01 12:02:52] ERROR: FLAC error: FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADERread[140640650267152] 131072 bytes from 1048576 flags: 0x28000
Segmentation fault (core dumped)
dmesg shows:
[619512.442457] mp3fs[21534]: segfault at 7f9d751df8b0 ip 00007f9e69d2f849 sp 00007f9e63ffe788 error 6
[619512.442461] traps: mp3fs[11686] general protection ip:7f9e6ab320ba sp:7f9e694321f0 error:0 in libmp3lame.so.0.0.0[7f9e6ab18000+45000]
[619512.442462] in libc-2.23.so[7f9e69c90000+1c0000]
[619655.318252] mp3fs[23686]: segfault at 0 ip 00007fe984276294 sp 00007fe9829909d8 error 6 in libc-2.23.so[7fe9841e7000+1c0000]
I've tried with the 0.9.1 release from source and via a git clone of the repository with the same results.
The configure script uses, in two places, the '==' comparison operator for test(1), which is only supported by bash, not even by GNU coreutils. Please use '=' instead.
Just for information.
Since the update of FLAC to version 1.3.0 mp3fs does not build on FreeBSD because there is a missing header in transcode.c. I don't know if it builds on linux or windows. Perhaps you could have a look at this.
here is a solution
--- src/transcode.c 2012-05-01 22:12:48.000000000 +0200
+++ src/transcode.c 2013-06-15 19:19:13.000000000 +0200
@@ -21,6 +21,7 @@
#define _GNU_SOURCE
+#include <inttypes.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
I have sent a problem report to the FreeBSD project. When it is commited mp3fs should build successfully.
Hi there,
apparently, the mp3fs project is licensed under different licenses: GPL3+ for the code and GFDL for the docs - which is already a pretty unfortunate combination:
https://en.wikipedia.org/wiki/GNU_Free_Documentation_License#GPL_incompatible_in_both_directions
Furthermore, it seems that only 3 files are licensed under GFDL: NEWS, README.md and mp3fs.1.txt. Only the first file, NEWS, contains the GFDL license blurb with the "no invariant sections" clause, which would make the license DFSG-compatible.
So:
Thank you very much!
I have a collection of files, mostly flac, which I organise using easyTAG. I run mp3fs to copy these (70GB) to my HTC M8 Android phone's SD card.
Now, I recognised that a huge number of files are listed without tags for interpret, genre, title nr, etc. on the phone. (However, they are sorted into the right album, which is strange. Maybe the phone does it as a guess.)
On Ubuntu, Rhythmbox, easyTAG and others are showing the mp3-file with tags.
file file.mp3
says: Audio file with ID3 version 2.4.0, extended header, contains: MPEG ADTS, layer III, v1, 256 kbps, 44.1 kHz, JntStereo
.
This is true for all files of the collection.
For the files, that are not correct id3v2 -l file.mp3
says: No ID3 tag
For the correct ones, id3v2 -l file.mp3
gives:
id3v1 tag info for 11 - Michi Gegen Die Gesellschaft.mp3:
Title : Michi Gegen Die Gesellschaft Artist: Die Fantastischen Vier
Album : Lauschgift Year: 1995, Genre: Hip-Hop (7)
Comment: Track: 11
11 - Michi Gegen Die Gesellschaft.mp3: No ID3v2 tag
So, file
gives the same output for both files, but id3v2
does not find any ID3v2 tags on both.
And the one that the phone is not recognising even don't have a V1 tag.
So, I wonder, if my phone just uses the V1 tag. And why would some files (from the same albums) don't have one?
This happens for 111 albums and 174 tracks, meaning it is spreading across my whole music collection. Could it be some sort of error during the mounting process? I am using a open media vault NAS as share where the FLAC are located and mount this FLAC folder on my Lubuntu PC and then mount the MP3-folder with the mounted FLAC-folder as source:
mp3fs#/home/ben/Benshare/OMVr/Musik /home/ben/Benshare/mp3rike fuse noauto,user,allow_other,ro,bitrate=256 0 0
When I copy one of the affected files as flac to my PC and mount it in a seperate folder via mp3fs
, the file gets its correct V1 tag (and the V2 tag is still not recognised by id3v2
). Must be something related to the connection then.
UPDATE: I solved the problem by reversing the mounting: Now, I mount the mp3-folder directly on the NAS, meaning the fstab with mp3fs is on the NAS and not on the local PC.
I am sorry if this is offtopic for "issues". Please remove, if so. But maybe someone will find it relevant.
I am setting up mp3fs to transfer part of my mostly flac music library to my Galaxy Note. I spent quite some time tagging everything right, choosing taglib in kid3 to write id3v2.4 tags to my files, which mp3fs writes together with id3v1 tags to the mp3 files it transcodes. Unfortunately id3tagv2.4 support still sucks in Android, the artist tag is not picked up, and the id3tagv1 alone isn't an option either. I used kid3 to convert the id3tagv2.4 tags to id3v2.3 and Android picks up every tag as it should now.
I reckon that I can solve my Android tag issue with with very little extra effort for me, but I thought that maybe it could be worthwhile to you to add the feature to be able to specify which id3tag version(s) the tags are written to the mp3 files in.
Regards, signorRossi.
Somehow id3v2 is not working. FLAC files are all tagged with Vorbis comments, but the MP3 files don't get any id3v2 tags what so ever.
When I look at a transcoded flac file, it looks like this:
$ file 01.\ Phaeleh\ -\ Journey.mp3
$ id3v2 -l 01.\ Phaeleh\ -\ Journey.mp3
id3v1 tag info for 01. Phaeleh - Journey.mp3:
Title : Journey Artist: Phaeleh
Album : Tides Year: 2013, Genre: Other (12)
Comment: Track: 1
The following file is a mp3 file downloaded from Google Play Music store, therefor is not transcoded into mp3:
$ file 01\ Vengeance.mp3
01 Vengeance.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 320 kbps, 44.1 kHz, Stereo
$ id3v2 -l 01\ Vengeance.mp3
id3v2 tag info for 01 Vengeance.mp3:
TIT2 (Title/songname/content description): Vengeance
TPE1 (Lead performer(s)/Soloist(s)): Zack Hemsey
TPE2 (Band/orchestra/accompaniment): Zack Hemsey
TALB (Album/Movie/Show title): The Way
TYER (Year): 2011
TRCK (Track number/Position in set): 1/10
TPOS (Part of a set): 1/1
TCON (Content type): Klassik (255)
APIC (Attached picture): ()[, 3]: image/jpeg, 31511 bytes
PRIV (Private frame): (unimplemented)
PRIV (Private frame): (unimplemented)
01 Vengeance.mp3: No ID3v1 tag
"file" states that the first, transcoded mp3 file has a newer id3 version, even though "id3v2 -l" says there is no id3v2 tag.
These versions are installed:
$ mp3fs -V
mp3fs version: 0.91
LAME library version: 3.99.3
FLAC library version: 1.2.1
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12
Does anyone have any idea why it's not using id3v2 tags on the transcoded files?
I really like to resolve this problem, as my car mp3 player won't display any tags from files transcoded through mp3fs. Other than that, mp3fs works really fine and is a great addition for my music library.
Thank you very much!
OK - this is a weird one, and I've been having a hard time figuring out if it's samba or MP3FS, but I'm leaning toward the latter.
Arch Linux 64 bit, git version of mp3fs as of around 2014/07/13, Kernel 3.15.5.
For MP3Fs only, when trying to copy files from a Win 7 client over Samba, On the Win7 side I get a Could not find this item. The item is no longer located in \\server\etc\etc Verify the item's location and try again.
On the linux / samba side, we get the following error:
[2014/07/16 11:18:55.726357, 0] ../source3/smbd/dfree.c:138(sys_disk_free)
disk_free: sys_fsusage() failed. Error was : No such file or directory
I only see fixed bitrates for the mp3 conversion. Would it be possible to add the variable bitrates? (Such as the common recommendations seen here:
http://wiki.hydrogenaudio.org/index.php?title=LAME#Recommended_encoder_settings )
My music library consists of 1901 albums with 29725 songs by 4771 artists. All FLAC and meticulous tagged. Tagging with Foobar and played through a Logitech Media Server eco-system. I also need to support ITunes for wife and kids; this is where mp3fs comes in.
There are two areas where I need to decide how to proceed: album art and compilations. If there are no plans to incorporate these features in mp3fs, that's fine and good to know, and do I need to do some retagging instead. So this item is more to understand the roadmap than anything else.
Thanks, Ralph
A nice option would be to strip out or replace specific fields off the meta information.
I will give some examples what i would like to:
Some kind of white/black listing would be nice.
My library is about 150GB of FLAC and it is stored on a openmediavault NAS with a Celeron CPU and 4GB RAM. On the NAS I mount mp3fs via fstab. and then I use samba from Windows 10 or from Linux (Lubuntu 16.04) to connect to the NAS.
I recognised that the mp3 that have been converted from FLAC are some seconds larger than the original FLAC files. This discrepancy seems to grow larger with larger files. FLAC files of about 2 minutes have about 2 seconds more playtime displayed in VLC and other players when converted to mp3.
This results in the mp3 files beeing played until their FLAC time ends, actually skipping the displayed last seconds of the file, which is not a problem.
However, sometimes - I suspect when I copied a large portion of files at once - the empty space at the end is not just skipped away but actually filled with fragments of other songs (mostly of the same album).
Can someone confirm this?
It would be cool if the mirrored directory structure was taken from the artist/album info stored in the .flac files, and secondly, if VBR were supported :)
Thanks!
Hi there,
I am aware that this has been raised before (issue #9 & #26). However, I'd like to raise again whether support for ID3v2.3 could be added to mp3fs.
I very much like the idea of mp3fs to expose a collection of FLAC files via FUSE so they can be transcoded to MP3 on the fly. However, I just got a brand new Subaru Outback (new model came out in Australia in Jan, released in US in mid 2014) and lo and behold it only supports ID3v2.3 (not 2.4).
Whilst I completely agree with Kevin's remark about 2.4 having been around for a long time, the fact seems to be that many devices (I've googled a bit) and also brand new ones like my 2015 Subaru Outback only support ID3v2.3.
Therefore, I think it would be worthwhile to add support for ID3v2.3.
Of course, the ID3 version can be changed through a tagging tool after copying. The whole idea, though, of mp3fs - as I understand it - is to offer a convenient, hassle-free way to transcode music on the fly. Offering native ID3v2.3 support would go a step further in this direction I would like to suggest.
Thank you very much for considering this.
I would be very happy to contribute at least a little by testing this functionality.
Other than that, thanks a lot for a great tool.
Cheers,
Andree
So I'm trying to compile from source and am rceiving the following error during configuration:
"libb64-dev must be installed for Ogg Vorbis picture support"
I'm using Fedora, which has no libb64 package - so I tried to compile that as well. I copied the resulting base64 executable to /usr/local/bin and the b64 header files to /usr/include. I'm still receiving the same error whilst configuring, am I missing something?
Thanks,
I have ripped several of my CDs to FLAC, and in the process the ripper created a .m3u
file listing them. To save space and CPU on my portable player I use mp3fs
to convert the music, but the .m3u
file is unchanged. Media players thereafter simply play the files in alphabetical order, which is not as intended. It would be great if mp3fs
would support renaming paths inside playlist files.
Workarounds:
sed -i -e 's/.flac$/.mp3/' album.m3u
after copying.On OS X, symlinks with absolute paths work, but not relative paths.
For example:
ln -s ../Originals/song.flac ./song.flac
I'm almost certain this is because readlink() is only returning ../Originals/song.flac. I propose that if the file is a symlink realpath() is called to get the absolute path.
Add support for CUESHEETs embedded in FLAC files.
For a FLAC file with a CUESHEET embedded, display the FLAC as a folder containing an MP3 file for each track.
I could not find any settings to avoid getting debug message from "readdir" and "getattr" for each file access in syslog. My temp fix is to comment out the mp3fs_debug(...).
Don't know if there is something I missed, or this is wanted - but I'd like to be able to disable it :)
Where can I find the installation packages for v1.0?
I just found v0.9 from 2017 and I get random segfaults when sharing fuse folder via network.
Looks like some multi-threaded bugs got fixed recently, perhaps that would fix the problem...
Thanks!
I just cloned the mp3fs because it exactly does what I need for my project. I intend to expand the format support to a lot more, including video formats using the ffmpeg library. I'll still have to review if this is possible but I think it will.
Please drop me a line when you are interested.
Thanks for providing us with such an easy and great tool. I was planning to use mp3fs to expose my FLAC collection to my wife's Mac (using ITunes), so she can import our music in ITunes in mp3 format. (ITunes does not work with FLAC).
MP3fs runs on my Ubuntu 14.04 server and succesfully mounts my large FLAC collection to a MP3 folder. The MP3 folder on Ubuntu is shared via Samba. I can access and play the MP3 music share from my Windows laptop.
However, if I connect from my Mac (Connect to server, smb://192.168.1.50, choose the MP3 share), at first all music folders (tree) are shown. The minute I navigate down to the actual music files folder, mp3fs crashes with a "transport endpoint is not connected" message. And from that moment, the MP3 folder is not accessable any more.
I hope there can be a fix for this. If I can provide more information, please let me know.
Thanks very much, Ralph
I am on Ubuntu 14.04 and mp3fs -V
gives me:
MP3FS version 0.9
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19
My shell is zsh
(bear with me, it is important):
zsh 5.0.2 (x86_64-pc-linux-gnu)
There are likely other ways of replicating this, but the easiest is to mount
sudo mp3fs -b 128 /mnt/terra/music /mnt/mp3/ -o allow_other,ro
and then navigate to a folder with mp3s
cd /mnt/mp3/Laibach/Opus\ Dei
Make sure that zsh
autocompletion is on and then type a command followed by TAB in order to trigger said autocompletion on a file with a space in its name:
> exiftool 05\ Opus\ Dei.mp3
File not found: 05 Opus Dei.mp3
At this point none of the files appear and a simple ls
returns
ls: cannot open directory .: Transport endpoint is not connected
Tested this in bash, and it does not happen. Tested it with a file without spaces in its name and it does not happen.
It's likely not more than a footnote: I just realized that Fedora 19 and Debian Jessie do not have the asciidoc package installed by default and compiling MP3FS will fail with an "a2x missing" message for that reason. Adding the package to the README file may help people compiling MP3FS.
EDIT: Added Debian Jessie
Looks like there's a memory leak with mp3fs. This is resulting in mp3fs being killed by the kernel.
Setup:
Ubuntu machine with an mp3fs path shared via smb.
SMB mounted on an OSX Machine.
OSX Machine using iTunes to scan media.
When doing a scan ("Add to Library") of the entire shared drive from iTunes, the memory usage on the Ubuntu server 'mp3fs' process climbs to 100% and then mp3fs is killed by the kernel:
Jan 7 19:21:05 foo kernel: [27553.533658] Out of memory: Kill process 746 (mp3fs) score 935 or sacrifice child
Jan 7 19:21:05 foo kernel: [27553.533660] Killed process 746 (mp3fs) total-vm:15625292kB, anon-rss:7413504kB, file-rss:0kB
Version:
$ mp3fs --version
mp3fs version: 0.91
LAME library version: 3.99.5
FLAC library version: 1.3.0
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19
OS:
Ubuntu 14.04.3 LTS
$ uname -a
Linux foo 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.