Recently I created a video to commemorate my mom’s 80th birthday. Of course once the video is created, there is always the challenge of distributing the video. For people who are always online and have a respectable bandwidth, they can simply view the video online, as I have made arrangements to post it here on my blog site. The video is embedded in The Grand Birthday post. What about others who are not online savvy or are still clung to their DVD players.
I usually use a program called Burn on my Mac to burn videos into DVD Video discs. However I find the process unsatisfying. I needed something that can be applied to mass processing. I also did not like the unprofessional DVD menu that Burn applies to the DVD disc. Also the program is quite old and I fear may not work for future versions of macOS.
I came across this Convert any Movie to DVD Video wiki link, and found some really useful information. After reading through their process, I found, practiced, and proven this trimmed down version on my Mac.
First I had to install several utilities through the brew packaging system on my Mac.
brew install ffmpeg dvdauthor cdrtools
I use the above utilities to perform the following steps:
- Convert the source video (typically optimized for my Apple devices and my TV’s) to an NTSC DVD compatible format;
- Author a DVD directory structure using the video;
- Create an ISO from the DVD directory structure for archiving and burning purposes;
- Burn the ISO to a physical DVD-R disc.
The first step is to convert the video:
ffmpeg -i original.mp4 -target ntsc-dvd -r 29.97 -s 720x480 -aspect 16:9 -b 8000k -g 12 -mbd rd -flags +aic -trellis 1 -cmp 2 -subcmp 2 video.mpg
I ended up using the above command which supposedly yields the most optimum quality in terms of viewing. The output video.mpg is DVD compatible. The above command assumes an aspect of 16:9, which is what most home videos are shot at today.
I then use the dvdauthor tool to create the DVD directory structure. Before I use the tool, I first have to create an XML file containing how I like the DVD to be configured. Below is a bare minimum XML file configuration that I used to simply create a DVD disc containing a single movie. The tool gives me the option in the future to add menus, chapters, etc.
<dvdauthor format="ntsc"> <vmgm /> <titleset> <titles> <subpicture lang="en" /> <audio lang="en" /> <pgc> <vob file="/Users/kanglu/Downloads/video.mpg" /> </pgc> </titles> </titleset> </dvdauthor>
I then proceed to run the tool with the above XML file, which I named dvd.xml.
dvdauthor -o dvd -x dvd.xml
This will result in a folder called dvd which will contain the contents of the DVD disc. Once I have the folder, I can then create the ISO file.
mkisofs -dvd-video -udf -o dvd.iso dvd
The resulting dvd.iso file is a good archiving format in case I want to make more DVD discs in the future. At this point, I no longer need video.mpg, dvd.xml, and the dvd folder. The ISO file is all I need to create a DVD Video disc containing my video. After sticking in a blank DVD-R disc, I executed the following command.
hdiutil burn dvd.iso
I repeated the above hdiutil command with several more blank discs to make a bunch of discs for distribution. The resulting DVD Video disc contains a single video without any confusing menu system; the way I like it — keep it simple and stupid.
However, I am now happy to have a workflow that works for me. I hope you will find this helpful.