roback.cc

the website of joe roback

Joe Roback

Posts Tagged ‘iso’

Make DVD ISO image from VIDEO_TS folder

Here is a quick shell script to use on Mac OS X to make a DVD iso from a VIDEO_TS folder. Save is as “mkdvdiso” and just specify the folder containing the VIDEO_TS folder, not the VIDEO_TS folder itself. You can also override the DVD name and choose between hdiutil (Mac OS X command line utility that uses the DiskImages framework) or mkisofs from the cdrtools package (I used macports to install cdrtools on my OS X 10.6 system).

#!/bin/bash
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER CONTRIBUTOR BE LIABLE FOR
# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#

usehdiutil=1
usemkisofs=0
dvdname=""

while [ ${#} -gt 0 ]; do
	case "${1}" in
		-h|--hdiutil)
			usehdiutil=1
			usemkisofs=0
			shift
		;;
		-m|--mkisofs)
			usemkisofs=1
			usehdiutil=0
			shift
		;;
		-n|--dvd-name)
			dvdname="${2}"
			shift 2
		;;
		*)
			dvddir="${1}"
			shift
		;;
	esac
done

if [ -z "${dvdname}" ]; then
	dvdname="$(basename "${dvddir}")"
fi

echo -n "Making DVD ISO for ${dvdname} using "
[ ${usehdiutil} -eq 1 ] && echo "hdiutil"
[ ${usemkisofs} -eq 1 ] && echo "mkisofs"

if [ ${usehdiutil} -eq 1 ]; then
	hdiutil makehybrid  -iso -joliet -udf -udf-version 1.02 -default-volume-name "${dvdname}" -o "${dvdname}.iso" "${dvddir}"
fi

if [ ${usemkisofs} -eq 1 ]; then
	mkisofs -f -dvd-video -udf -V "${dvdname}" -o "${dvdname}.iso" "${dvddir}"
fi

Example Usage

mkdvdiso /Volumes/Fry/DVD_VIDEO

will make a image called DVD_IMAGE.iso in the current directory.

mkdvdiso -m -n MY_DVD /Volumes/Fry/DVD_VIDEO

will make a image called MY_DVD.iso in the current directory using mkisofs.