надо не AVI склеивать cat-ом, а MPEG2 TS
у FFmpeg на сайте есть пример такой склейки
тогда все нормально должно быть
можно еще через пайпы клеить тогда получится без промежуточных файлов
т.е. делаем два пайпа и указываем их в качестве источника несжатого звука и несжатого видео
для первой команды — форматы данных надо указывать явно — размер кадра, цветовой формат, частоту кадров, для звука аналогично
потом другими двумя командами декодируем видео и звук из первого файла в соответствующие пайпы форматы вывода должны совпадать
когда оно съест первый кусок
второй файл сливаем точно также в эти же пайпы