Include shell scripts in dist target
[gstfs.git] / README
blob0c962445f64d7f7fdf9a02af904e6d03d354ec79
1 GSTFS, a gstreamer-based transcoding FUSE filesystem
2 Bob Copeland <me@bobcopeland.com>
4 Introduction
5 ~~~~~~~~~~~~
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
13 these pipelines.
16 Usage
17 ~~~~~
19 The example shell script mp32wav.sh is illustrative (pretend it's all on one 
20 line):
22     #! /bin/sh
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 
35 subsequent reads.
38 Mount Options
39 ~~~~~~~~~~~~~
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)
50 License
51 ~~~~~~~
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.