FFmpeg: tee muxer fails on multiple outputs HLS and .mp4

Solution 1:

Without select for a given tee output, all output streams are sent to that tee output. So, the HLS muxer will expect var_stream_map to set mapping for all received streams. But your var_stream_map only handles the first three video and audio streams. So, add select=\'v:0,a:0,v:1,a:1,v:2,a:2\' for the HLS output.

P.S. when using tee, for output to MP4 or other formats with global headers, like FLV, you have to add -flags +global_header to satisfy players like Quicktime, which expect to read stream parameter sets only from the header.