AudioEncoder.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using MediaBrowser.Controller.Configuration;
  2. using MediaBrowser.Controller.Library;
  3. using MediaBrowser.Controller.MediaEncoding;
  4. using MediaBrowser.Controller.Session;
  5. using MediaBrowser.Model.IO;
  6. using MediaBrowser.Model.Logging;
  7. using System;
  8. using MediaBrowser.Model.Diagnostics;
  9. namespace MediaBrowser.MediaEncoding.Encoder
  10. {
  11. public class AudioEncoder : BaseEncoder
  12. {
  13. public AudioEncoder(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)
  14. {
  15. }
  16. protected override string GetCommandLineArguments(EncodingJob state)
  17. {
  18. var encodingOptions = GetEncodingOptions();
  19. return EncodingHelper.GetProgressiveAudioFullCommandLine(state, encodingOptions, state.OutputFilePath);
  20. }
  21. protected override string GetOutputFileExtension(EncodingJob state)
  22. {
  23. var ext = base.GetOutputFileExtension(state);
  24. if (!string.IsNullOrEmpty(ext))
  25. {
  26. return ext;
  27. }
  28. var audioCodec = state.Options.AudioCodec;
  29. if (string.Equals("aac", audioCodec, StringComparison.OrdinalIgnoreCase))
  30. {
  31. return ".aac";
  32. }
  33. if (string.Equals("mp3", audioCodec, StringComparison.OrdinalIgnoreCase))
  34. {
  35. return ".mp3";
  36. }
  37. if (string.Equals("vorbis", audioCodec, StringComparison.OrdinalIgnoreCase))
  38. {
  39. return ".ogg";
  40. }
  41. if (string.Equals("wma", audioCodec, StringComparison.OrdinalIgnoreCase))
  42. {
  43. return ".wma";
  44. }
  45. return null;
  46. }
  47. protected override bool IsVideoEncoder
  48. {
  49. get { return false; }
  50. }
  51. }
  52. }