I believe building against FFmpeg 3.4.x also requires these, so having them as dependencies of `ffmpeg4` is at best a partial stopgap solution, and it doesn't feel right semantically. I think for now I'll settle for adding some build instructions/FAQs to the wiki.
Hey, the problem is you disabled the "mandatory" features `codec` and `format`.
cargo build --no-default-features --features ffmpeg42,codec,format
should be fine.
These features were inherited from meh/rust-ffmpeg, without digging into the history I suspect they were initially optional but got intertwined into the build process at some point, but no one noticed since those were default features. I then bolted on the `ffmpegxy` feature flags when I took over to maintain compatibility with multiple FFmpeg versions, which in hindsight isn't a well thought-out decision, so here we are, having to disable the default features to build against a non-latest FFmpeg version. This exposed the fact that `codec` and `format` are really mandatory by the point I forked.
I should probably fix this some day, but until then, you have to reenable those features to keep the build going.