From 9b3851d3e4e0a73054be9140086f6c6ebf28632b Mon Sep 17 00:00:00 2001 From: Bob Copeland Date: Sat, 30 Aug 2008 14:54:28 -0400 Subject: [PATCH] Add a README file --- README | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..6f4a916 --- /dev/null +++ b/README @@ -0,0 +1,44 @@ +GSTFS, a gstreamer-based transcoding FUSE filesystem +Bob Copeland + +Introduction +~~~~~~~~~~~~ + +GSTFS is a filesystem for on-demand transcoding of music files between +different formats. It utilizes the gstreamer library for conversion so any +formats supported by gstreamer should also be supported by gstfs. The +filesystem's only requirement is that the gstreamer pipeline begin with a +filesrc with the name "_source" and end with an fdsink with the name "_dest". +The filesystem will automatically substitute the filename and fd number in +these pipelines. + +Usage +~~~~~ +The example shell script mp32wav.sh is illustrative (pretend it's all on one +line): + + #! /bin/sh + gstfs -d -osrc=$1,src_ext=mp3,dst_ext=wav,\ + pipeline="filesrc name=\"_source\" ! decodebin ! audioconvert ! \ + wavenc ! fdsink name=\"_dest\" sync=false" $2 + +The pipeline loads the mp3 from a file, decodes it, converts it to the proper +sampling rate, sample size and endianness, and encodes it as a wave file. +gst-launch(1) is a useful program to test pipelines to see if they work (e.g. +use alsasink). The parameters to the script are the music directory +containing mp3s, followed by the mount point where wave files will appear. + +Once mounted, the first read of a file will transcode it, blocking until +transcoding is complete. The transcoded data is cached in memory for +subsequent reads. + +Mount Options +~~~~~~~~~~~~~ + +GSTFS currently recognizes the following mount options: + + src: The source directory of files you want to transcode + src_ext: Source format file extension + dst_ext: Target format file extension + pipeline: gstreamer conversion pipeline + ncache: number of files to cache in memory (default: 50) -- 2.11.4.GIT