SmallDVD 2.3

ffmpeg  SmallDVD 

Saturday, January 09, 2010

SmallDVD 2.3 is available for download. This release adds the ability to create DVDs without menus and optionally play the videos in a loop. There is also an updated version of ffmpeg, and a change to the way MPEG2 files are handled.

A new DVD settings tab has been added, which allows you to specify whether the DVD should be created with a menu or not (by default, a menu is created). If you put several videos on a menuless DVD, they will play in sequence. If the DVD has no menu, you can specify whether the videos should play in a continuous loop. Also, the aspect, format and chapter settings have been moved from the DVD menu tab to the DVD settings tab.

This release also makes two changes to the way ffmpeg is used. The short reason for this is to improve the compatibility with MPEG2 input videos.

If you're interested in the long explanation, first, a word of explanation. ffmpeg is the fabulous video conversion command line utility which SmallDVD uses for converting and remultiplexing video files ready for placed on a DVD. It is constantly evolving, supporting more file formats. As ffmpeg doesn't have formal releases, it is typically built from source code using all the latest enhancements submitted. But it appears that "latest" is not always "greatest".

All versions of SmallDVD up to and including 2.0 used a version of ffmpeg I compiled back in March 2007. For SmallDVD 2.1 (and subsequently 2.2), I compiled a new version to enable a wider variety of files to be accepted by SmallDVD. However, this later version had two problems:

  • Videos saved from MPEGStreamClip as "MPEG2 with MP2 audio" were no longer accepted by SmallDVD.
  • In some cases, chapter marks were not being inserted correctly in MPEG2 videos.

The first of these problems was an ffmpeg bug, which was fixed by building a newer version. However, this still showed the second problem. Therefore, while I have included a new version of ffmpeg (r21020) in SmallDVD 2.3, I have also reinstated the original version I was using (r8320) up until SmallDVD 2.0.

So, in SmallDVD 2.3, MPEG2 input video which does not require conversion will use the old ffmpeg. All other video which does require conversion will use the new ffmpeg (this includes MPEG2 files you have explicitly set to be converted).

The end result, hopefully, will be better compatibility with as many types of files as possible. Ideally, I would like to use just one ffmpeg, but until I can get the new version working as reliably on MPEG2 files as the old version did, I will retain both.





get_iplayer, rtmpdump and ffmpeg

ffmpeg  get_iplayer  iPlayer  rtmpdump 

Sunday, February 01, 2009

I've always got on very well with iplayer-dl as a means of downloading the iPhone versions of videos from BBC iPlayer. But I recently discovered get_iplayer, which does the same thing with several notable additions:

  1. It can download the higher resolution Flash streaming video, not just the iPhone version. The flash version is 640x360 whereas the iPhone version is 480x272.
  2. It can download ITV programmes.
  3. It can search schedules (so you can use it to find what to download, instead of the iPlayer web page).
  4. It feels a bit faster than iplayer-dl, at least for downloading the iPhone versions.

It's the first of these which is most interesting to me. But in order to get get_iplayer to download the Flash stream, you need two additional tools: rtmpdump and ffmpeg.

rtmpdump is used to capture the Flash stream. This is potentially rather handy for other things, so a useful tool to have around. I've compiled a version for Mac OS X 10.5 and put it on the download page.

ffmpeg is, of course, the video conversion tool used in SmallDVD and discussed in many articles on this site. get_iplayer uses it to convert the container format of the downloaded video from Flash to MP4 to make it easier to play (the actual video is H.264, so compatible with both containers).

I realised that the version of ffmpeg included in SmallDVD was actually compiled around two years ago, and is now a very long way from being up to date. So I've compiled a new one and put it on the download page. I also realised that this is the first time I've compiled one of the binaries for SmallDVD since I upgraded to 10.5, and that they are not downward-compatible with 10.4. So for the moment this version is only for Intel & Mac OS X 10.5.

It also made me realise how old many of the other packaged versions of ffmpeg included in other apps are. ffmpegX's version was compiled in April 2006; PunyVid's in September 2006. If you read the news and changelog for ffmpeg, you see that there have been a lot of new formats supported since then, such as the later versions of Flash and WMV. So if you are having trouble getting ffmpeg to read your file, try the latest version.





Essential free Mac apps for video editing and conversion

eyetv  ffmpeg  handbrake  MPEGStreamClip  mplayer/mencoder  vlc 

Tuesday, October 28, 2008

A quick summary of apps I find essential for editing and converting video.


  • EyeTV – for recording DVB broadcasts. OK this one isn’t free, but I’m not aware of any equivalent free app.

  • MPEGStreamClip – for editing, and a bit of conversion. It’s editor is much more accurate than EyeTV’s. (Windows version also available)

  • VLC – can play a wider range of video formats than anything other app I’ve found. It can also do conversion, and act as a streaming server… all of which requires a much more detailed post sometime. (Windows & Linux versions also available).

  • Handbrake – for ripping DVDs and converting to MP4 or DivX. (Windows version also available)

  • ffmpeg – general purpose video converter, covered in many of the examples on this site. Also ffmpegX, a Mac GUI for it, although I’ve never really got on very well with that – not sure why, just personal taste probably.

  • mplayer – another “play anything” player, and MPlayer OSX. This is one of the few tools which can play the horrible RealMedia format, and can capture Real streams from the web. The other thing I use it for is ripping individual titles from DVDs (more on that another time).





Quickly create a simple DVD from a single file

dvdauthor  ffmpeg 

Sunday, September 28, 2008

Here's a script I use for creating a DVD with no menu from a single MPEG file. It puts chapter marks every 10 minutes.

#! /bin/bash
rm -rf tmp.mpg dvdfiles
ffmpeg -i "$1.mpg" -target dvd -vcodec copy -acodec copy tmp.mpg
dvdauthor -t -c 0:0,10:0,20:0,30:0,40:0,50:0,60:0,70:0,80:0,90:0,100:0,110:0,120:0 tmp.mpg -o dvdfiles
dvdauthor -T -o dvdfiles
mkisofs -dvd-video -udf -o "$1.iso" -V "$1" 'dvdfiles'
rm tmp.mpg
rm -rf dvdfiles

I call it smallerdvd, and use it like this:

smallerdvd moviefile

Where

moviefile.mpg

is the input file (don't specify the .mpg), and it will create a DVD image called

moviefile.iso

.





Quickly put lots of small MPEG files into a DVD image

dvdauthor  ffmpeg 

Friday, September 26, 2008

I’ve got about 200Gb of cartoons for my children to watch, stored on a NAS drive. But when we go on holiday, I don’t take the NAS drive with me! So I wanted to dump a load of them (each file is only 5 or 10 minutes long) onto a DVD quickly.

Here’s a script to do that – it assumes the input files are MPEG2 (although could be changed to do conversion as well). And I think it probably requires the input filenames to not have any spaces in them.

#! /bin/bash

rm -rf /tmp/mkdvd
mkdir /tmp/mkdvd
pushd /tmp/mkdvd

echo '' > dvd.xml
echo '<titleset>' >> dvd.xml
echo '<titles>' >> dvd.xml
echo '' >> dvd.xml

let a=1
for f in $
do
ffmpeg -i "$f" -target dvd -vcodec copy -acodec copy $a.mpg
echo '' >> dvd.xml
let a=a+1
done

echo '
' >> dvd.xml
echo '</titles>' >> dvd.xml
echo '</titleset>' >> dvd.xml
echo '
' >> dvd.xml

dvdauthor -x dvd.xml
dvdauthor -T -o dvdfiles
popd
mkisofs -dvd-video -udf -o "dvd.iso" -V "dvd" '/tmp/mkdvd/dvdfiles'
rm –rf /tmp/mkdvd

Save it as

mkdvd

, then use it with a command line:

mkdvd /my/video/files/pingu.mpg

It will leave a DVD image file call

dvd.iso

in the current directory.





Using the command line utilities bundled with SmallDVD

dvdauthor  ffmpeg 

Thursday, September 25, 2008

SmallDVD includes precompiled utilities of several useful utilities. To use these directly from the command line, just add the directory to your path. So if you put SmallDVD in the Applications folder, do this:

export PATH=$PATH:/Applications/SmallDVD.app/Contents/Resources

Add this to your .profile file if you want it to happen every time you open a terminal window.

The utilities included are:


  • ffmpeg: video & audio conversion, and remultiplexing

  • dvdauthor: creates DVD folders from video files

  • mkisofs: creates an ISO disk image from the DVD folders

  • mplex: video/audio multiplexing (no longer used by SmallDVD)

  • bbdmux: demultiplexes video/audio (no longer used by SmallDVD)

And a few others used in the creation of DVD menus,

spumux

,

mpeg2enc

,

png2yuv





Unwidescreening

ffmpeg 

Tuesday, September 02, 2008

BBC Four often show old programmes (like Doctor Who and Batman) that are transmitted in widescreen, but with black borders down the sides to keep the original 4:3 aspect ratio of the main picture. As the screen on my Archos (and my phone) are 4:3, it seems silly to play the widescreen broadcast in letterbox, and leave the picture in a tiny box in the middle.
So this screen crops the borders off the side, thus converting a widescreen broadcast to a 4:3 DivX.
It also works for things that really are widescreen - when converting for a 4:3 display, it's sometimes more watchable to have a bigger image with the side of the picture missing, than being able to see the whole picture, smaller.
This does a two pass encode for better quality.

ffmpeg -i inputfile.mpg -vtag DIVX -f avi -vcodec mpeg4 -aspect 4:3 -cropleft 100 -cropright 100 -pass 1 -s 640x480 -b 1000k -acodec mp3 -ab 128000 -ar 48000 -ac 2 outputfile.avi

rm outputfile.avi

ffmpeg -i "$f" -vtag DIVX -f avi -vcodec mpeg4 -aspect 4:3 -cropleft 100 -cropright 100 -pass 2 -s 640x480 -b 1000k -acodec mp3 -ab 128000 -ar 48000 -ac 2 outputfile.avi

rm ffmpeg2pass*





More

Archives     Categories