|
SageTV Customizations This forums is for discussing and sharing user-created modifications for the SageTV application created by using the SageTV Studio or through the use of external plugins. Use this forum to discuss customizations for SageTV version 6 and earlier, or for the SageTV3 UI. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
How to implement DVD .ISO support for Sage
Hi,
I've seen that there seems to be a lot of interest in getting Sage to support DVD ISOs, either for Sage Client or Extenders etc. So I did a quick "Google&Wikipedia" and, as a result, am happy to present this as a way forward for Windows based machines. Note, this isn't necessary for linux servers, as you can just MOUNT the ISOs directly. DISCLAIMER DISCLAIMER! =================== 1. I have absolutely no interest in the "files are better than ISOs" vs "ISOs are better than files" argument . If you want to discuss that, go bother the people in this thread. 2. The software I suggest using is not mine, and I have no association or interest in it other than "it works for me". I just found it - took 5 minutes. There are others out there, if you don't like this one. 3. I do NOT have dozens / hundreds / thousands of ISO files, so I can't tell you if this method is stable, scaleable, performant, makes you smell bad, or cures world hunger. I have a handful, and it works fine for me. I do not know what will happen if you point this at 20, 50, 700, or 10,000 ISO images. I just use this 'cos it's easy & works for me, supports a number of different windows platforms (both 32 and 64 bit), is active (last update 23rd Nov '09), and BECAUSE IT IS OPEN SOURCE, LET'S YOU INVOKE IT FROM WITHIN YOUR OWN SOFTWARE, ALLOWS YOU TO INCLUDE IT WITH A COMMERCIAL PRODUCT, AND SHOWS HOW STRAIGHTFORWARD IT IS TO SUPPORT ISO FILES. In short, looks like an excellent bit of software which, amazingly, the author is happy to freely give away to all parties without asking for any compensation. Olof deserves a medal! Notwithstanding the above, I'm certainly very interested in other people's experience with this. DESTRUCTIONS ============ First, download ImDisk from here, and install it. It installs a control panel applet, as well as a command-line tool (which is what we'll be using). Second, create two directories (or even just the one if you want to be messy) -- one containing the ISO images, the other for the mount points. This second directory will end up containing multiple subdirectories (created by the following batch file), one subdirectory per ISO. That is, if your source directory contains <file 1>.ISO, <file 2>.ISO... <file n>.ISO; then your destination directory will have multiple subdirectories named <file 1>, <file 2>... <file n>. The batch file then invokes ImDisk to mount the disk images on each of these subdirectories. Once done, these subdirectories will contain what looks like the full DVD, but is actually just ImDisk interpreting the contents of the ISO and presenting that to Windows as a virtual disk (which it mounts in our destination directory). Third, create a batch file similar to this (change _source and _destination as required): Code:
@echo off setlocal rem : Use DOS path name for source and destination directory. Do not use quotes or trailing rem : backslashes as these are handled later rem eg: e:\ISO\Image Files rem or: e:\ISO\Target rem : pretty primitive in that there's no error checking, nor does it check if the mountpoint directory already rem : exists (just lets the md error & then does the next one), nor does it remove mountpoint rem : directories which no longer have a corresponding iso. rem : The above are simple to achieve, and are left as an exercise for the reader... rem : (hint - iterate through the destination directory - for /D %%d in (*.*) etc - and, rem : ( - for each subdirectory, "if not exist" %_source%\<name>.iso then rd /s %%~fd etc etc) rem : ("for /?" and "if /?" are your friends -- especially the end bit which talks about substitution of) rem : (for variable references and modifiers) set _source=E:\Sage\Original ISOs set _destination=E:\Sage\ISO-mounts echo Sage ISO Mount echo .. echo .. will mount images from: %_source% echo .. into the following directory: %_destination% echo .. one subdirectory per ISO echo .. echo .. NOTE: %%~n will strip the .iso extension for directory names echo .. %%~f is the fully qualified path name echo .. for %%d in ("%_source%"\*.iso) do md "%_destination%\%%~nd" echo .. echo .. echo .. mounting images -- echo .. for %%d in ("%_source%"\*.iso) do imdisk -a -m "%_destination%\%%~nd" -o ro -f "%%~fd" echo .. echo .. Done. I hope... Have a look in the destination directory. If all went well, it should have multiple subdirectories (marked as JUNCTIONS if you do a "dir" in "DOS"), and each subdirectory should look just like a proper DVD image. Fifth, point Sage at the destination directory to import the new "DVD"s. Try playing a few. Yay, it works (I hope). Sixth, might want to think about automating the invocation of the above batch file every time the server is restarted, modifying the batch file to clean up directories of ISOs which no longer exist, etc. Seventh, crack open a beer, sit down, relax, watch a movie, and smile quietly whilst basking in your sense of achievement... Let me know how it works out for you. Last edited by MrFusion; 11-25-2009 at 01:57 AM. Reason: typo |
#2
|
||||
|
||||
That's pretty slick.
|
#3
|
|||
|
|||
I think we should hire MrFusion as the official writer of all Sage customization instructions. With how much we collectively beat our brains in while fooling with our systems, we need as much humor as possible.
__________________
Server: AMD Athlon II x4 635 2.9GHz, 8 Gb RAM, Win 10 x64, Java 8, Gigabit network Drives: Several TB of internal SATA and external USB drives, no NAS or RAID or such... Software: SageTV v9x64, stock STV with ADM. Tuners: 4 tuners via (2) HDHomeruns (100% OTA, DIY antennas in the attic). Clients: Several HD300s, HD200s, even an old HD100, all on wired LAN. Latest firmware for each. |
#4
|
|||
|
|||
Aww shucks. Thanks.
Always amazes me how uptight people get (me not excluded) over small stuff like HTPCs and forum posts. Hate to think how they handle the real issues! So I always like to inject a bit of humour to help keep perspective. Anyway -- very keen to hear about people's experiences with using this method! Cheers! |
#5
|
||||
|
||||
eh... WinRAR worked for me.. did a wonderful of extracting the ISO's to folder... no need to use other tools or batch files... ;-)
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#6
|
||||
|
||||
Sweet! I had tried to do this with Daemon Tools some time back, without success. I really wanted to store my DVDs as ISOs. Simple single file per movie, making burning spare images the easiest as well. I'll have to give ImDisk a whirl.
Thanks MrFusion, and Olof too!
__________________
Intel Skulltrail D5400XS, Dual Quad Core Xeon L5420, Windows Server 2012 R2 on 200Gb partition, 32Gb RAM, 8x WD 2Tb RE4 RAID6 on LSI 9690SA-8I (DVD/Blu-Ray), 2x 4Tb HDDs (TV), Colossus, 2x HD-PVR, HDHR3 Prime, DirectTV STB, USB-UIRT, Sage v2 v3 v4 v5 v6 v7.1.9, Java v1.6 build 45, 3 Placeshifter licenses, and 3 HD-300's. Plugins: Phoenix API, PlayOn For SageTV, Comskip Playback, YouTube, Nielm's Sage Utiities Software: PlayOn, ComSkip Monitor, ComSkip |
#7
|
|||
|
|||
Oh dear...
|
#8
|
||||
|
||||
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#10
|
||||
|
||||
hehe.. relax man.. this entire forum is about entertainment...
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#11
|
|||
|
|||
Hi,
I would expect this to work on the SageTV server but will it work for SageTV Client or SageTV Extender? For the client, I can probably do the same script which should work but for the extender, how this work? ehfortin |
#12
|
|||
|
|||
Quote:
You just run it once on the server. Tell sage to import video from the destination directory and it is treated like any other import directory. SageTV will serve to any extender or other client, just like it would do with a directory full of DVD files. Cheers. |
#13
|
|||
|
|||
Ok. I seems to understand that the ISO are stored in someplace and that a virtual representation of the files will appear under a folder name (one folder by DVD).
Is that how it works? Thank you for your answer. ehfortin |
#14
|
|||
|
|||
Quote:
ISOs are in the source directory; subdirectories with virtual 'files' (ie look exactly like ordinary files and directory structures to windows) are in the destination directory. Point Sage at the destination directory and it will see what it thinks is a bunch of DVDs (one per ISO in the source directory), and serve them up, just as it would for 'normal' DVD file rips. Cheers. |
#15
|
|||
|
|||
No worky for me
I'm trying to use this method to mount my 400+ DVD ISO collection that is stored on 4 different network shares on a freenas. I mapped each share as L, M, N, and O on the DVR server and can see all the ISO's through the mappings. The first part of the script seems to work fine as it creates all of the folder structures correctly, however when it goes to map each one it throws an error that the parameter is incorrect. Here's the bat file and an exemplar of the output (Ignore the horrible formatting, the bat file has each command on one line):
@echo on setlocal rem : Use DOS path name for source and destination directory. Do not use quotes or trailing rem : backslashes as these are handled later rem eg: e:\ISO\Image Files rem or: e:\ISO\Target rem : pretty primitive in that there's no error checking, nor does it check if the mountpoint directory already rem : exists (just lets the md error & then does the next one), nor does it remove mountpoint rem : directories which no longer have a corresponding iso. rem : The above are simple to achieve, and are left as an exercise for the reader... rem : (hint - iterate through the destination directory - for /D %%d in (*.*) etc - and, rem : ( - for each subdirectory, "if not exist" %_source%\<name>.iso then rd /s %%~fd etc etc) rem : ("for /?" and "if /?" are your friends -- especially the end bit which talks about substitution of) rem : (for variable references and modifiers) set _source=L: set _destination=C:\ISOMOUNT\Movies echo Sage ISO Mount echo .. echo .. will mount images from: %_source% echo .. into the following directory: %_destination% echo .. one subdirectory per ISO echo .. echo .. NOTE: %%~n will strip the .iso extension for directory names echo .. %%~f is the fully qualified path name echo .. for %%d in ("%_source%"\*.iso) do md "%_destination%\%%~nd" echo .. echo .. echo .. mounting images -- echo .. for %%d in ("%_source%"\*.iso) do imdisk -a -m "%_destination%\%%~nd" -o ro -f "%%~fd" echo .. echo .. Done. I hope... set _source=M: for %%d in ("%_source%"\*.iso) do md "%_destination%\%%~nd" for %%d in ("%_source%"\*.iso) do imdisk -a -m "%_destination%\%%~nd" -o ro -f "%%~fd" set _source=N: for %%d in ("%_source%"\*.iso) do md "%_destination%\%%~nd" for %%d in ("%_source%"\*.iso) do imdisk -a -m "%_destination%\%%~nd" -o ro -f "%%~fd" set _source=O: for %%d in ("%_source%"\*.iso) do md "%_destination%\%%~nd" for %%d in ("%_source%"\*.iso) do imdisk -a -m "%_destination%\%%~nd" -o ro -f "%%~fd" Error is: C:\ISOMOUNT>imdisk -a -m "C:\ISOMOUNT\Movies\Star Wars I The Phantom Menace" -o ro -f "L:\Star Wars I The Phantom Menace.ISO" Creating device... Error creating virtual disk: The parameter is incorrect. Tom |
#16
|
|||
|
|||
Just to add, I tried using the right click menu directly from the ISO file that I pasted in the last post, and selected to map it to drive Z, and I'm also getting an error "The parameter is incorrect" so I'm wondering if there needs to be another way to call this goofy iso mount program when the ISO's are not actually local (I think technically a mapped drive is just a mountpoint so maybe that's what the problem is). I don't know this program very well, any ideas?
Tom |
#17
|
||||
|
||||
Try passing a UNC path to the program, instead of the mapped drive. Mapped drives are done user level, and if the IMDISK program is run at system level (I think it is), then it wouldnt' see that drive.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#18
|
|||
|
|||
Just tried that, no love. I'll have to dig into the documentation for that tool and see how to mount network ISO's, from the /? command list it looks like there is a way to do it...
Tom |
#19
|
|||
|
|||
Ugh I'm so stuck, I think this will work if I can only get it to mount network ISO's! Can anyone else mount ISO's on a network share somewhere? From what I see in the docs for the utility it seems like it supports it, but I can't for the life of me get past this invalid paramater!!! HELP!!!
Tom |
#20
|
|||
|
|||
I reached out to the guy who posted the tool and info and he has no idea why it doesn't work, he says he does it all the time with network ISO's so he thinks it's something with my environment... Lovely.
Tom |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Final word on DVD .ISO support? | rusten | SageTV Software | 86 | 11-25-2009 09:09 AM |
Feature Request: Enable the sub support in SageTVPlayer | Patilan | SageTV Beta Test Software | 8 | 10-28-2009 07:27 AM |
STV Import: Mount DVD ISO Images and External DVD Player Ver 0.12 | jbuszkie | SageTV Customizations | 65 | 02-27-2009 01:15 AM |
ISO Support in Latest Firmware?? | Spanqboy | SageTV Media Extender | 35 | 11-12-2008 04:28 PM |
Does Sage seriously not support ISO in anything? Seriously? | htpcmaniac | SageTV Software | 25 | 09-07-2008 10:29 AM |