@ -63,7 +63,8 @@ namespace MediaBrowser.Api.Playback.Hls
public class DynamicHlsService : BaseHlsService
public class DynamicHlsService : BaseHlsService
{
{
public DynamicHlsService ( IServerConfigurationManager serverConfig , IUserManager userManager , ILibraryManager libraryManager , IIsoManager isoManager , IMediaEncoder mediaEncoder , IFileSystem fileSystem , ILiveTvManager liveTvManager , IDlnaManager dlnaManager , ISubtitleEncoder subtitleEncoder , IDeviceManager deviceManager , IProcessManager processManager , IMediaSourceManager mediaSourceManager , INetworkManager networkManager ) : base ( serverConfig , userManager , libraryManager , isoManager , mediaEncoder , fileSystem , liveTvManager , dlnaManager , subtitleEncoder , deviceManager , processManager , mediaSourceManager )
public DynamicHlsService ( IServerConfigurationManager serverConfig , IUserManager userManager , ILibraryManager libraryManager , IIsoManager isoManager , IMediaEncoder mediaEncoder , IFileSystem fileSystem , ILiveTvManager liveTvManager , IDlnaManager dlnaManager , ISubtitleEncoder subtitleEncoder , IDeviceManager deviceManager , IProcessManager processManager , IMediaSourceManager mediaSourceManager , INetworkManager networkManager )
: base ( serverConfig , userManager , libraryManager , isoManager , mediaEncoder , fileSystem , liveTvManager , dlnaManager , subtitleEncoder , deviceManager , processManager , mediaSourceManager )
{
{
NetworkManager = networkManager ;
NetworkManager = networkManager ;
}
}
@ -676,9 +677,11 @@ namespace MediaBrowser.Api.Playback.Hls
// If isEncoding is true we're actually starting ffmpeg
// If isEncoding is true we're actually starting ffmpeg
var startNumberParam = isEncoding ? GetStartNumber ( state ) . ToString ( UsCulture ) : "0" ;
var startNumberParam = isEncoding ? GetStartNumber ( state ) . ToString ( UsCulture ) : "0" ;
if ( state . EnableGenericHlsSegmenter )
{
var outputTsArg = Path . Combine ( Path . GetDirectoryName ( outputPath ) , Path . GetFileNameWithoutExtension ( outputPath ) ) + "%d.ts" ;
var outputTsArg = Path . Combine ( Path . GetDirectoryName ( outputPath ) , Path . GetFileNameWithoutExtension ( outputPath ) ) + "%d.ts" ;
var args = string . Format ( "{0} {1} -map_metadata -1 -threads {2} {3} {4} -copyts -flags -global_header {5} -f segment -segment_time {6} -segment_start_number {7} -segment_list \"{8}\" -y \"{9}\"" ,
return string . Format ( "{0} {1} -map_metadata -1 -threads {2} {3} {4} -copyts -flags -global_header {5} -f segment -segment_time {6} -segment_start_number {7} -segment_list \"{8}\" -y \"{9}\"" ,
inputModifier ,
inputModifier ,
GetInputArgument ( transcodingJobId , state ) ,
GetInputArgument ( transcodingJobId , state ) ,
threads ,
threads ,
@ -690,8 +693,20 @@ namespace MediaBrowser.Api.Playback.Hls
outputPath ,
outputPath ,
outputTsArg
outputTsArg
) . Trim ( ) ;
) . Trim ( ) ;
}
return args ;
return string . Format ( "{0} {1} -map_metadata -1 -threads {2} {3} {4} -copyts -flags -global_header {5} -hls_time {6} -start_number {7} -hls_list_size {8} -y \"{9}\"" ,
inputModifier ,
GetInputArgument ( transcodingJobId , state ) ,
threads ,
GetMapArgs ( state ) ,
GetVideoArguments ( state ) ,
GetAudioArguments ( state ) ,
state . SegmentLength . ToString ( UsCulture ) ,
startNumberParam ,
state . HlsListSize . ToString ( UsCulture ) ,
outputPath
) . Trim ( ) ;
}
}
/// <summary>
/// <summary>