1 GSTFS, a gstreamer-based transcoding FUSE filesystem
2 Bob Copeland <me@bobcopeland.com>
7 GSTFS is a filesystem for on-demand transcoding of music files between
8 different formats. It utilizes the gstreamer library for conversion so any
9 formats supported by gstreamer should also be supported by gstfs. The
10 filesystem's only requirement is that the gstreamer pipeline begin with a
11 filesrc with the name "_source" and end with an fdsink with the name "_dest".
12 The filesystem will automatically substitute the filename and fd number in
19 The example shell script mp32wav.sh is illustrative (pretend it's all on one
23 gstfs -d -osrc=$1,src_ext=mp3,dst_ext=wav,\
24 pipeline="filesrc name=\"_source\" ! decodebin ! audioconvert ! \
25 wavenc ! fdsink name=\"_dest\" sync=false" $2
27 The pipeline loads the mp3 from a file, decodes it, converts it to the proper
28 sampling rate, sample size and endianness, and encodes it as a wave file.
29 gst-launch(1) is a useful program to test pipelines to see if they work (e.g.
30 use alsasink). The parameters to the script are the music directory
31 containing mp3s, followed by the mount point where wave files will appear.
33 Once mounted, the first read of a file will transcode it, blocking until
34 transcoding is complete. The transcoded data is cached in memory for
41 GSTFS currently recognizes the following mount options:
43 src: The source directory of files you want to transcode
44 src_ext: Source format file extension
45 dst_ext: Target format file extension
46 pipeline: gstreamer conversion pipeline
47 ncache: number of files to cache in memory (default: 50)
53 GSTFS is licensed under the LGPL so that it may be used with any set of
54 gstreamer plugins. See the COPYING file for details.