From 5a3b5a58a53cc5e976c856817534ed79de0c1714 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 3 Apr 2013 23:42:11 -0400 Subject: [PATCH] added mpeg4 as an available output codec --- MediaBrowser.Api/Playback/BaseStreamingService.cs | 4 ++++ MediaBrowser.Api/Playback/Progressive/VideoService.cs | 6 +++++- MediaBrowser.Api/Playback/StreamRequest.cs | 2 +- MediaBrowser.Model/DTO/StreamOptions.cs | 5 +++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index cbb98f0fe3..5ecff74f9f 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -428,6 +428,8 @@ namespace MediaBrowser.Api.Playback { return "wmav2"; } + + return codec.ToString().ToLower(); } return "copy"; @@ -460,6 +462,8 @@ namespace MediaBrowser.Api.Playback { return "libtheora"; } + + return codec.ToString().ToLower(); } return "copy"; diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs index 14ad454193..6c9cc8903d 100644 --- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs +++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs @@ -250,7 +250,11 @@ namespace MediaBrowser.Api.Playback.Progressive { args = "-preset superfast"; } - + else if (videoCodec.Equals("mpeg4", StringComparison.OrdinalIgnoreCase)) + { + args = "-mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -bf 2"; + } + if (request.VideoBitRate.HasValue) { args += " -b:v " + request.VideoBitRate; diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs index d4da11e3f3..07f9d31e94 100644 --- a/MediaBrowser.Api/Playback/StreamRequest.cs +++ b/MediaBrowser.Api/Playback/StreamRequest.cs @@ -70,7 +70,7 @@ namespace MediaBrowser.Api.Playback /// Gets or sets the video codec. /// /// The video codec. - [ApiMember(Name = "VideoCodec", Description = "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h264, theora, vpx, wmv.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + [ApiMember(Name = "VideoCodec", Description = "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h264, mpeg4, theora, vpx, wmv.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public VideoCodecs? VideoCodec { get; set; } /// diff --git a/MediaBrowser.Model/DTO/StreamOptions.cs b/MediaBrowser.Model/DTO/StreamOptions.cs index 79be9fb4b1..edb88a18f5 100644 --- a/MediaBrowser.Model/DTO/StreamOptions.cs +++ b/MediaBrowser.Model/DTO/StreamOptions.cs @@ -168,6 +168,11 @@ /// H264, + /// + /// The mpeg4 + /// + Mpeg4, + /// /// The theora ///