A while ago you may remember that I wrote an article about video conversion for RISC OS, and near the end raised the topic of video conversion on RISC OS using a port of ffmpeg. Although the version of ffmpeg I originally tried on RISC OS was old and broken, Christopher Martin obviously thinks there's some merit to this approach, as he has recently produced !FFmpeg, a working port of ffmpeg for RISC OS.

Once more in the interests of SCIENCE, I threw a few test videos at !FFmpeg and measured its performance against that of a similar version of ffmpeg running on my Windows PC.

Test one: DVB-T

Since my first article was largely concerned with converting recorded DVB-T (aka Freeview) TV programmes for watching on RISC OS, I figured the logical place to start would be with testing that. I copied a short clip over to my Iyonix and attempted to convert it to a suitable resolution for playback (416x312x25fps MPEG 1 @ 850kbps). The conversion rate was about as bad as I was expecting - 3fps. But at least it did work, and the resulting file was played back through !KinoAMP without any problems.

Of course since there's currently no software/hardware available to record DVB-T on RISC OS, there's little point in transferring multi-gigabyte files over to a RISC OS machine in order to encode them - you might as well use the PC that recorded the programme in the first place. In my case, my 2.6GHz PC was able to re-encode the test clip at a much more acceptable 235fps.

Test two: YouTube

For this test I saved a .flv file from YouTube and converted it for playback. Since the video resolution was only 320x240, I decided to keep things simple and just used the !FFmpeg WIMP frontend to handle the conversion for me (more on that later).

End result: My Iyonix achieved a conversion rate of 11fps. Since the !FFmpeg frontend used the -sameq option, the quality of the video did not degrade due to the transcoding, but the output file was 3 times the size of the input. Nevertheless, KinoAMP was able to play it back without any problems.

Performing the same conversion on my PC resulted in a conversion rate of 1080fps - so still about 100 times faster than what RISC OS can offer.

Test three: YouTube on a RiscPC

Since the conversion rate on the Iyonix was nearly acceptable (or at least in the double-digit range) I decided I might as well try converting the same .flv video to MPEG on my StrongARM RiscPC, with the right settings for RiscPC playback (288x216x25fps video @ 250kbps, same 64kbps mp3 audio as source). The conversion ran at a less than stellar 2-3 fps, but once more the output was watchable when played back through KinoAMP, and the video quality hadn't degraded too much.

The !FFmpeg frontend

As mentioned earlier, !FFmpeg comes with a RISC OS frontend, which can simplify the task of converting many videos. However it doesn't allow you to specify the output resolution, so if you're converting a high resolution video, or one for playback on a RiscPC, you'll have to run ffmpeg from the command line for the best results. Unfortunately that isn't as easy as it sounds, as ffmpeg seems to have trouble finding files unless you give it the full pathname or remove the filename extensions (which could make life even more difficult since you'll have to specify the output container format manually).

Conclusion

Video conversion on RISC OS - it's now possible, but the poor performance of converting even low-resolution videos like those on YouTube means that it still isn't something you'd really want to do unless you have no better alternative available. However it is worth noting that the current version seems to have been compiled against GCC 3.4.6, which means it's missing out on the soft-float support available in the GCC 4.1.1 pre-release. Soft-float support could result in a significant performance boost, even if it still doesn't result in better-than-realtime conversion.

If you really do want to watch YouTube on RISC OS, you might want to have a look at Murnong, an ffmpeg-based solution again created by Christopher Martin. The transcoding performance isn't likely to be any better, but at least it will simplify the number of steps you need to go through to get a video downloaded and converted.