There’s a lot of information on the web regarding the joining or concatenation of video files. While this works fine for a small number of clips the reality is that for most video formats the audio and video lengths vary. Be it a very small amount of time the fact is that if you are trying to concatenate hundreds of clips this will compound itself to a distinguishable audio shift as the clip plays through.
To cut a long story short, the objective I set upon myself was to create a sequence of clips found on a media card and create a serial timecode and include meta data regarding each clip. This involved using AviSynth a common frame serving tool and feeding the frames to FFMpeg for transcoding. All this was quite straight forward as AviSynth is a powerful tool and FFMpeg an excellent encoder. The output format was decided to be x264 512×288 clips at under 1Mb/s and natively compatible with all IOS, Web and modern desktop operating systems. The end product was intended to be a proxy clip, designed to reduce bandwidth on our network and allow for a clip small enough to upload or quickly copy to a memory stick for producers to shotlist.
It has taken several attempts to achieve this, I have tested various methods including audio delay, aligned splicing and encoding formats. *drum roll*
The solution my collegue and I found is:
- Convert all clips to DV codec
- Binary copy and concatenate the DV clips
- Transcode the joined.dv clip to x264
NOTE: This will drop your clip resolution to 720×576 SD but in the context of my needs this did not impact my objective. There are obviously methods that can use audio delays though this was outside the scope of my project.