How can I set the first frame of a video to an I-frame and the rest to P-frames (preferably with ffmpeg)?
What you want is a very long GOP or I-frame interval. I believe the ffmpeg option -g nnnn will do that, where nnnn is the length of your video in frames. I don't know how to specify "no B-frames", and this will certainly all be codec-dependent. Give it a try.