例えば、映像より音声の方が短いようなもを
ミックスして、ffmpegで1つの動画にします(mpg形式)。
そのような動画を2つを cat で結合します。
こうして作った動画ファイルは
元々、音声の長さが短かったため、
1つめの映像が終わる前に2つ目の音声が再生されてしまいます。

このようなことが起こらないために
うまいやり方はありますか?

-vsync とか -async とか -timestamp とか
そのへんのオプションが使えそうな気がするのですが、
マニュアルの記述があまりに貧相なので使い方が
わかりません。