I think you may be able to just remux without a decoder and encoder in there. ffmpeg will let you use the copy
codec to do this as well. I used to use it on a Pi Zero to remux video streams and it only used about ~10% cpu (and no gpu) for 1080p30 h264 rtsp streams. Just try:
sudo apt install ffmpeg
ffmpeg -i video.mov -c:av copy video.mp4
If the video within is h264 or h265 this should work. Often no need for encoding at all if you’re just changing containers.
In gstreamer I think it would be something like:
gst-launch-1.0 filesrc location=video.mov ! qtdemux ! qtmux ! filesink location=filename.mp4 -e
I just tested that and it seems to work fine on a sample. I think you also might be able to just rename the .mov to .mp4 since the containers are the same, internally, @DaneLLL is this correct?
Edit: You can remux webm or matroska or webm like this:
gst-launch-1.0 filesrc location=big-buck-bunny_trailer.webm ! matroskademux ! qtmux ! filesink location=bbb.mp4 -e
Since vp8 and vp9 are supported by the .mp4 container. You can probably follow that chart to convert quite a bit of stuff without ever needing to re-encode.