|  | @@ -61,6 +61,16 @@ namespace MediaBrowser.Controller.MediaEncoding
 | 
	
		
			
				|  |  |              "Main10"
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        private static readonly HashSet<string> _mp4ContainerNames = new(StringComparer.OrdinalIgnoreCase)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            "mp4",
 | 
	
		
			
				|  |  | +            "m4a",
 | 
	
		
			
				|  |  | +            "m4p",
 | 
	
		
			
				|  |  | +            "m4b",
 | 
	
		
			
				|  |  | +            "m4r",
 | 
	
		
			
				|  |  | +            "m4v",
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public EncodingHelper(
 | 
	
		
			
				|  |  |              IApplicationPaths appPaths,
 | 
	
		
			
				|  |  |              IMediaEncoder mediaEncoder,
 | 
	
	
		
			
				|  | @@ -5786,6 +5796,13 @@ namespace MediaBrowser.Controller.MediaEncoding
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            // Copy the movflags from GetProgressiveVideoFullCommandLine
 | 
	
		
			
				|  |  | +            // See #9248 and the associated PR for why this is needed
 | 
	
		
			
				|  |  | +            if (_mp4ContainerNames.Contains(state.OutputContainer))
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                audioTranscodeParams.Add("-movflags empty_moov+delay_moov");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              var threads = GetNumberOfThreads(state, encodingOptions, null);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              var inputModifier = GetInputModifier(state, encodingOptions, null);
 |