diff options
| author | Andrew Rabert <6550543+nvllsvm@users.noreply.github.com> | 2018-12-14 18:06:12 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-14 18:06:12 -0500 |
| commit | 81ba5acf7c9e0bfe30941476847571e09f022898 (patch) | |
| tree | a92f44659da2175a54b7afde688bf14b2d7f3b09 /MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs | |
| parent | 28a2774883ac522159c845cb16e60c53b1389f15 (diff) | |
| parent | 1d7d52ff9e42c3efb4bb2c65e82a4a82faf9decb (diff) | |
Merge pull request #154 from MatMaul/mediaencoding
Port MediaEncoding and Api.Playback
Diffstat (limited to 'MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs')
| -rw-r--r-- | MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs new file mode 100644 index 000000000..96c126923 --- /dev/null +++ b/MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs @@ -0,0 +1,66 @@ +using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.MediaEncoding; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Dlna; +using MediaBrowser.Model.IO; +using MediaBrowser.Model.Logging; +using System; +using System.IO; +using System.Threading.Tasks; +using MediaBrowser.Model.Diagnostics; + +namespace MediaBrowser.MediaEncoding.Encoder +{ + public class VideoEncoder : BaseEncoder + { + public VideoEncoder(MediaEncoder mediaEncoder, ILogger logger, IServerConfigurationManager configurationManager, IFileSystem fileSystem, IIsoManager isoManager, ILibraryManager libraryManager, ISessionManager sessionManager, ISubtitleEncoder subtitleEncoder, IMediaSourceManager mediaSourceManager, IProcessFactory processFactory) : base(mediaEncoder, logger, configurationManager, fileSystem, isoManager, libraryManager, sessionManager, subtitleEncoder, mediaSourceManager, processFactory) + { + } + + protected override string GetCommandLineArguments(EncodingJob state) + { + // Get the output codec name + var encodingOptions = GetEncodingOptions(); + + return EncodingHelper.GetProgressiveVideoFullCommandLine(state, encodingOptions, state.OutputFilePath, "superfast"); + } + + protected override string GetOutputFileExtension(EncodingJob state) + { + var ext = base.GetOutputFileExtension(state); + + if (!string.IsNullOrEmpty(ext)) + { + return ext; + } + + var videoCodec = state.Options.VideoCodec; + + if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase)) + { + return ".ts"; + } + if (string.Equals(videoCodec, "theora", StringComparison.OrdinalIgnoreCase)) + { + return ".ogv"; + } + if (string.Equals(videoCodec, "vpx", StringComparison.OrdinalIgnoreCase)) + { + return ".webm"; + } + if (string.Equals(videoCodec, "wmv", StringComparison.OrdinalIgnoreCase)) + { + return ".asf"; + } + + return null; + } + + protected override bool IsVideoEncoder + { + get { return true; } + } + + } +}
\ No newline at end of file |
