.tmp means file is being recorded at this moment
You have to stop publishing stream to finalize file.
mp4 header will be written into the beginning of file upon finalizing.
So you can play or convert stream after finalization only.
Usually, mp4.tmp is saved as mp4 after recording is stopped either via REST API or by stopping a stream itself. The saving may fail due to low disk space or if WCS was eventually stopped or restarted while recording. Anyway, mp4.tmp cannot be converted manually because it has no MP4 metadata and contains only raw mediadata.