relocate more ffmpeg params. add channel delay
This commit is contained in:
parent
3d697cdab2
commit
cf1dac60f6
|
@ -622,7 +622,7 @@ namespace MediaBrowser.Api.Playback
|
||||||
/// <param name="videoType">Type of the video.</param>
|
/// <param name="videoType">Type of the video.</param>
|
||||||
/// <param name="isoType">Type of the iso.</param>
|
/// <param name="isoType">Type of the iso.</param>
|
||||||
/// <returns>System.String.</returns>
|
/// <returns>System.String.</returns>
|
||||||
protected string GetProbeSizeArgument(string mediaPath, bool isVideo, VideoType? videoType, IsoType? isoType)
|
private string GetProbeSizeArgument(string mediaPath, bool isVideo, VideoType? videoType, IsoType? isoType)
|
||||||
{
|
{
|
||||||
var type = !isVideo ? MediaEncoderHelpers.GetInputType(null, null) :
|
var type = !isVideo ? MediaEncoderHelpers.GetInputType(null, null) :
|
||||||
MediaEncoderHelpers.GetInputType(videoType, isoType);
|
MediaEncoderHelpers.GetInputType(videoType, isoType);
|
||||||
|
@ -918,7 +918,7 @@ namespace MediaBrowser.Api.Playback
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="path">The path.</param>
|
/// <param name="path">The path.</param>
|
||||||
/// <returns>System.String.</returns>
|
/// <returns>System.String.</returns>
|
||||||
protected string GetUserAgentParam(string path)
|
private string GetUserAgentParam(string path)
|
||||||
{
|
{
|
||||||
var useragent = GetUserAgent(path);
|
var useragent = GetUserAgent(path);
|
||||||
|
|
||||||
|
@ -1092,6 +1092,8 @@ namespace MediaBrowser.Api.Playback
|
||||||
state.AudioSync = 1000;
|
state.AudioSync = 1000;
|
||||||
state.DeInterlace = true;
|
state.DeInterlace = true;
|
||||||
state.InputFormat = "mpegts";
|
state.InputFormat = "mpegts";
|
||||||
|
|
||||||
|
await Task.Delay(1000, cancellationToken).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1147,6 +1149,21 @@ namespace MediaBrowser.Api.Playback
|
||||||
{
|
{
|
||||||
var inputModifier = string.Empty;
|
var inputModifier = string.Empty;
|
||||||
|
|
||||||
|
var probeSize = GetProbeSizeArgument(state.MediaPath, state.IsInputVideo, state.VideoType, state.IsoType);
|
||||||
|
inputModifier += " " + probeSize;
|
||||||
|
inputModifier = inputModifier.Trim();
|
||||||
|
|
||||||
|
inputModifier += " " + GetUserAgentParam(state.MediaPath);
|
||||||
|
inputModifier = inputModifier.Trim();
|
||||||
|
|
||||||
|
inputModifier += " " + GetFastSeekCommandLineParameter(state.Request);
|
||||||
|
inputModifier = inputModifier.Trim();
|
||||||
|
|
||||||
|
if (state.VideoRequest != null)
|
||||||
|
{
|
||||||
|
inputModifier += " -fflags genpts";
|
||||||
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(state.InputFormat))
|
if (!string.IsNullOrEmpty(state.InputFormat))
|
||||||
{
|
{
|
||||||
inputModifier += " -f " + state.InputFormat;
|
inputModifier += " -f " + state.InputFormat;
|
||||||
|
@ -1161,7 +1178,7 @@ namespace MediaBrowser.Api.Playback
|
||||||
{
|
{
|
||||||
inputModifier += " -acodec " + state.InputAudioCodec;
|
inputModifier += " -acodec " + state.InputAudioCodec;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.ReadInputAtNativeFramerate)
|
if (state.ReadInputAtNativeFramerate)
|
||||||
{
|
{
|
||||||
inputModifier += " -re";
|
inputModifier += " -re";
|
||||||
|
|
|
@ -262,8 +262,6 @@ namespace MediaBrowser.Api.Playback.Hls
|
||||||
/// <returns>System.String.</returns>
|
/// <returns>System.String.</returns>
|
||||||
protected override string GetCommandLineArguments(string outputPath, StreamState state, bool performSubtitleConversions)
|
protected override string GetCommandLineArguments(string outputPath, StreamState state, bool performSubtitleConversions)
|
||||||
{
|
{
|
||||||
var probeSize = GetProbeSizeArgument(state.MediaPath, state.IsInputVideo, state.VideoType, state.IsoType);
|
|
||||||
|
|
||||||
var hlsVideoRequest = state.VideoRequest as GetHlsVideoStream;
|
var hlsVideoRequest = state.VideoRequest as GetHlsVideoStream;
|
||||||
|
|
||||||
var itsOffsetMs = hlsVideoRequest == null
|
var itsOffsetMs = hlsVideoRequest == null
|
||||||
|
@ -276,11 +274,8 @@ namespace MediaBrowser.Api.Playback.Hls
|
||||||
|
|
||||||
var inputModifier = GetInputModifier(state);
|
var inputModifier = GetInputModifier(state);
|
||||||
|
|
||||||
var args = string.Format("{0}{1} {2} {3} -fflags genpts{4} -i {5}{6} -map_metadata -1 -threads {7} {8} {9} -sc_threshold 0 {10} -hls_time {11} -start_number 0 -hls_list_size 1440 \"{12}\"",
|
var args = string.Format("{0} {1} -i {2}{3} -map_metadata -1 -threads {4} {5} {6} -sc_threshold 0 {7} -hls_time {8} -start_number 0 -hls_list_size 1440 \"{9}\"",
|
||||||
itsOffset,
|
itsOffset,
|
||||||
probeSize,
|
|
||||||
GetUserAgentParam(state.MediaPath),
|
|
||||||
GetFastSeekCommandLineParameter(state.Request),
|
|
||||||
inputModifier,
|
inputModifier,
|
||||||
GetInputArgument(state),
|
GetInputArgument(state),
|
||||||
GetSlowSeekCommandLineParameter(state.Request),
|
GetSlowSeekCommandLineParameter(state.Request),
|
||||||
|
|
|
@ -106,8 +106,7 @@ namespace MediaBrowser.Api.Playback.Progressive
|
||||||
|
|
||||||
var inputModifier = GetInputModifier(state);
|
var inputModifier = GetInputModifier(state);
|
||||||
|
|
||||||
return string.Format("{0}{1} -i {2}{3} -threads {4}{5} {6} -id3v2_version 3 -write_id3v1 1 \"{7}\"",
|
return string.Format("{0} -i {1}{2} -threads {3}{4} {5} -id3v2_version 3 -write_id3v1 1 \"{6}\"",
|
||||||
GetFastSeekCommandLineParameter(request),
|
|
||||||
inputModifier,
|
inputModifier,
|
||||||
GetInputArgument(state),
|
GetInputArgument(state),
|
||||||
GetSlowSeekCommandLineParameter(request),
|
GetSlowSeekCommandLineParameter(request),
|
||||||
|
|
|
@ -91,8 +91,6 @@ namespace MediaBrowser.Api.Playback.Progressive
|
||||||
/// <returns>System.String.</returns>
|
/// <returns>System.String.</returns>
|
||||||
protected override string GetCommandLineArguments(string outputPath, StreamState state, bool performSubtitleConversions)
|
protected override string GetCommandLineArguments(string outputPath, StreamState state, bool performSubtitleConversions)
|
||||||
{
|
{
|
||||||
var probeSize = GetProbeSizeArgument(state.MediaPath, state.IsInputVideo, state.VideoType, state.IsoType);
|
|
||||||
|
|
||||||
// Get the output codec name
|
// Get the output codec name
|
||||||
var videoCodec = GetVideoCodec(state.VideoRequest);
|
var videoCodec = GetVideoCodec(state.VideoRequest);
|
||||||
|
|
||||||
|
@ -108,10 +106,7 @@ namespace MediaBrowser.Api.Playback.Progressive
|
||||||
|
|
||||||
var inputModifier = GetInputModifier(state);
|
var inputModifier = GetInputModifier(state);
|
||||||
|
|
||||||
return string.Format("{0} {1} {2} -fflags genpts{3} -i {4}{5}{6} {7} {8} -map_metadata -1 -threads {9} {10}{11} \"{12}\"",
|
return string.Format("{0} -i {1}{2}{3} {4} {5} -map_metadata -1 -threads {6} {7}{8} \"{9}\"",
|
||||||
probeSize,
|
|
||||||
GetUserAgentParam(state.MediaPath),
|
|
||||||
GetFastSeekCommandLineParameter(state.Request),
|
|
||||||
inputModifier,
|
inputModifier,
|
||||||
GetInputArgument(state),
|
GetInputArgument(state),
|
||||||
GetSlowSeekCommandLineParameter(state.Request),
|
GetSlowSeekCommandLineParameter(state.Request),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user