Thanks again.
I realised that I didn't need to implement a new media filter manager for my
movies but only a new media filter class, but override the processBitstream
method. I also exposed the BitstreamStorageManager.getFile(..) method of
BitstreamStorageManager. Inside the processBitstream method I get the local
filename, and if it is a SRB file then I make a copy. But if not then I use
the local file path. I then call a batch file via ProcessBuilder(...) which
calls mencoder and flvtools2 to create a .flv copy of the source bitstream.
The path to this new file is in a different root
(/different/root/xx/xx/xxxxxxxxxxxxxxxxxxxxxxxxxxxx), accessed by another
http server so I don't load my main dspace instance when users view this
file.
Then inside the item tag I check for the video/* bitstreams and get the
local file path (xx/xx/xxxxxxxxxxxxxxxxxxxxxxxx) and launch a window with a
flash player that access these .flv files via the opther http server.
Thanks again.
John
On 1/23/07, John Preston <[EMAIL PROTECTED]> wrote:
Thanks
John
On 1/23/07, Mark Diggory <[EMAIL PROTECTED]> wrote:
>
> This is not exposed, theres no guaruntee that the location of the
> content will map specifically to the filesystem (for instance it may map to
> SRB).
> You'll need to look at how this is done in the BitstreamStorageManager
> (its a private method there called "getFile"). You may be able to expose a
> new method of your own which supports retrieving a URL or a GeneralFile
> instance of the file as this does do.
>
> -Mark
> On Jan 23, 2007, at 8:13 AM, John Preston wrote:
>
> Yeah I saw that. However my media filter will call some external
> programs to process the bitstream files and then store these outside of
> dspace so I need the files.
>
> John
>
> On 1/23/07, Mark Diggory <[EMAIL PROTECTED] > wrote:
> >
> > John,
> > If you look at the org.dspace.app.mediafilter.MediaFilter Class,
> > you'll see underneath the hood, that what it passes around are "Bitstream"
> > objects which can be used to access the bitstream in the assetstore without
> > actually opening a stream against it.
> >
> > Look at overriding the following method in MediaFilter, which is where
> > it is setup to be streamed to the actual concrete instance of this Abstract
> > parent class, instead you can write in your MediaFilter code which just
> > accesses the bitstream object the way you need.
> >
> > /**
> > * processBitstream is a utility class that calls the above
> > virtual methods -
> > * it is unlikely that you will need to override it. It scans the
> > bitstreams
> > * in an item, and decides if a bitstream has already been
> > filtered, and if
> > * not or if overWrite is set, invokes the filter.
> > *
> > * @param c
> > * context
> > * @param item
> > * item containing bitstream to process
> > * @param source
> > * source bitstream to process
> > *
> > * @return true if new rendition is created, false if rendition
> > already
> > * exists and overWrite is not set
> > */
> > public boolean processBitstream(Context c, Item item, Bitstream
> > source)
> > throws Exception
> >
> >
> > Hope you find this helpful,
> > -Mark
> >
> > On Jan 23, 2007, at 7:41 AM, John Preston wrote:
> >
> > Can anybody tell me how I can determine the file name of a bitstream
> > as stored in the assetstore path. I see that it appears to use the
> > internal_id from the bitstream table broken down into directories, but I
> > don't know if this is a reliable way to access the bitstream on disk. I need
> > this so I don't have to copy the bitstream to a temporary file to process it
> > with a media filter. The files I'm processing will be very large (maybe
> > 100MB) so if I can avoid copying, that would be good.
> >
> > -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the chance to
> > share your
> > opinions on IT & business topics through brief surveys - and earn cash
> >
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV_______________________________________________
> >
> > DSpace-tech mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/dspace-tech
> >
> >
> > Mark R. Diggory
> > ~~~~~~~~~~~~~
> > DSpace Systems Manager
> > MIT Libraries, Systems and Technology Services
> > Massachusetts Institute of Technology
> >
> >
> >
>
> Mark R. Diggory
> ~~~~~~~~~~~~~
> DSpace Systems Manager
> MIT Libraries, Systems and Technology Services
> Massachusetts Institute of Technology
>
>
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech