AudioEncoder.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using MediaBrowser.Controller.Configuration;
  3. using MediaBrowser.Controller.Library;
  4. using MediaBrowser.Controller.MediaEncoding;
  5. using MediaBrowser.Controller.Session;
  6. using MediaBrowser.Model.Diagnostics;
  7. using MediaBrowser.Model.IO;
  8. using Microsoft.Extensions.Logging;
  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 => false;
  48. }
  49. }