Wednesday 21 September 2016

Introducing Shift Media Project

Although I haven't commented much on it in this blog, but I have been slowly working away on a project surrounding FFmpeg on Windows. This first meant creating custom Visual Studio projects for FFmpeg which was mentioned in earlier blog posts. Then was building up a collection of dependencies that also have custom VS project files and have been successfully converted to compile and run on Windows. All these new projects could then be built into FFmpeg itself. This collection of additional libraries has grown to almost 50 at time of writing!

The next step was to provide pre-compiled releases for these libraries so that people can download them directly from the web without needing source code or compilation time. This was completed several months ago and now almost all the projects have downloadable development libraries compiled in both Visual Studio 2013 and 2015, in static or dynamic (dll) libraries and with 32bit and 64bit versions. Each release even contains '.pdb' files for easy debugging of the libs themselves which uses GitLink to link directly to the source code hosted on GitHub so that the libraries can be debugged in when used in your own application without actually needing the libs source code. Each of the maintained projects is being constantly updated as new versions come out so that each new release contains the latest features (older releases are still also available on the site)

Now all of that is done then the final step was creating a web site so that people can easily find and easily download everything. And that is what this post is all about. Today I'm introducing the Shift Media Project web page that can be used to access all the above stuff.

For those who want to get straight in and check it out then here it is:

FFmpeg 

From the site you can grab development libraries for FFmpeg which includes all the useful FFmpeg libs such as libavcodec, libavformat etc. These libraries are built using a host of additional libraries for increased functionality which includes all the possible items from the complete project list below.

FFmpeg VS Project Generator

You can also download portable binaries of my FFmpeg VS Project generator program which can be used to create a custom Visual Studio project within a FFmpeg source code distribution. This program allows for the created Visual Studio project to be customised using virtually any of the options supported by FFmpegs default configure script. This allows for selecting which dependency libraries and codec/format support should be built into the created project file. With the output project FFmpeg libraries and programs can be built and debugged directly within Visual Studio. This program is what is used to build the default project file found in the above FFmpeg source directory and I might write a more detailed post on that at a later stage

Complete Project List

The site currently includes pre-built development libraries built using both Visual Studio 2013 and 2015, in static or dynamic (dll) libraries with 32bit and 64bit versions for the following projects:
  • FFmpeg
  • FFmpeg VS Project Generator
  • bzip2 
  • enca 
  • fdk-aac 
  • fontconfig 
  • freetype2 
  • fribidi
  • game-music-emu (or gme)
  • gmp 
  • gnutls 
  • harfbuzz 
  • lame (or lame mp3)
  • libass 
  • libbluray 
  • libcdio 
  • libcdio-paranoia 
  • libgcrypt 
  • libgpg-error 
  • libiconv 
  • libilbc 
  • liblzma 
  • libssh 
  • libvpx 
  • libxml2 
  • mfx_dispatch 
  • modplug 
  • nettle 
  • ogg 
  • openssl 
  • opus 
  • rtmpdump 
  • SDL 
  • soxr 
  • speex 
  • theora 
  • vorbis 
  • x264
  • x265 
  • xvid 
  • zlib 
Due to some potential licensing issues not all projects have a pre-compiled binary to download but the following projects still come with a custom Visual Studio project (like all the projects do) that allows anyone to compile their own version using the supplied source code:
  • libaacs 
  • libbdplus 
  • libdvdcss 
  • libdvdnav 
  • libdvdread
This list may grow in the future as new dependency libraries get incorporated into FFmpeg and a complete list of current and old projects will always be available on the web site.

Currently the web site is in its first version and hopefully with time permitting I will gradually add new features to it.
Hopefully for those in media application development on Windows may just find this new site somewhat useful.