Вопрос или проблема
Я использую MS Expression Encoder в своем приложении на C#, чтобы конвертировать видеофайлы из одного формата в несколько других форматов, перекодировать исходные видеозаписи с более низким битрейтом и вырезать и перекодировать фрагменты исходного видеофайла.
Поскольку Microsoft прекратила поддержку Expression Encoder довольно давно, я ищу надежные коммерческие (не бесплатные, не с открытым исходным кодом) альтернативы.
Поверьте, я провел поиск в Google, и до сих пор не знаю, в каком направлении двигаться. Поиск показывает, что OBS и ffmpeg являются альтернативами, но эти продукты с открытым исходным кодом, не предлагают поддержку и не требуют покупки.
Если вы ищете коммерческий продукт, то LEADTOOLS SDK имеет несколько кодеков и компонентов для упрощения конвертации в другие форматы. У нас есть список форматов, в которые мы можем конвертировать и из которых на нашей странице продукта.
https://www.leadtools.com/sdk/formats/multimedia-formats
Можно указать конкретные выборки входного видео для кодирования. Выходной битрейт также может быть изменен в зависимости от кодера и параметров конвертации.
Вот фрагмент кода, показывающий, как SDK может конвертировать конкретный сегмент входного файла в новый целевой выходной формат с использованием определенных компрессоров:
public void ConvertExample(string inputFile, string outputFile)
{
try
{
ConvertCtrl _convertctrl = new ConvertCtrl();
// установить источник для конвертации
_convertctrl.SourceFile = inputFile;
// установить видео- и аудиокомпрессоры
_convertctrl.VideoCompressors.Mpeg2.Selected = true;
_convertctrl.AudioCompressors.AC3.Selected = true;
// установить целевой выходной файл и формат
_convertctrl.TargetFile = outputFile;
// установить целевой выходной формат
_convertctrl.TargetFormat = TargetFormatType.AVI;
// если у источника ненулевая продолжительность, конвертировать его
if (_convertctrl.Duration > 0)
{
// установить выбранную область для конвертации
_convertctrl.SelectionStart = 10;
_convertctrl.SelectionEnd = 20;
// начать процесс захвата
_convertctrl.StartConvert();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return;
}
}
Набор инструментов доступен для 60-дневной оценки на официальном сайте. Установочный пакет включает примеры программ, а также исходный код. Поддержка также доступна в течение оценки.
https://www.leadtools.com/downloads
Примечание: Я работаю в компании, которая производит этот продукт.
Ответ или решение
Когда речь идет о поиске коммерческой альтернативы MS Expression Encoder SDK для разработки на C#, на рынке представлено несколько качественных решений, которые могут удовлетворить ваши потребности в конвертации видеофайлов, перекодировании и редактировании.
1. LEADTOOLS SDK
Одним из наиболее рекомендуемых вариантов является LEADTOOLS SDK. Этот набор инструментов предлагает широкий спектр возможностей для работы с мультимедийными форматами, включая мощные функции для кодирования и конвертации видео.
-
Основные возможности:
- Поддержка множества форматов: SDK включает в себя широкий список форматов, с которыми вы можете работать. Вы можете ознакомиться с полным перечнем здесь.
- Гибкость в настройках: вы можете указать конкретные участки входного видео для кодирования, а также настроить выходной битрейт.
-
Пример кода:
public void ConvertExample(string inputFile, string outputFile) { try { ConvertCtrl _convertctrl = new ConvertCtrl(); // Установка источника для конвертации _convertctrl.SourceFile = inputFile; // Настройка видеокодека и аудиокодека _convertctrl.VideoCompressors.Mpeg2.Selected = true; _convertctrl.AudioCompressors.AC3.Selected = true; // Настройка выходного файла и формата _convertctrl.TargetFile = outputFile; _convertctrl.TargetFormat = TargetFormatType.AVI; // Если у источника есть ненулевая длительность, начинаем конвертацию if (_convertctrl.Duration > 0) { // Установка выбранной области для конвертации _convertctrl.SelectionStart = 10; _convertctrl.SelectionEnd = 20; // Запуск процесса конвертации _convertctrl.StartConvert(); } } catch (Exception ex) { Console.WriteLine(ex.Message); return; } }
-
Лицензирование и поддержка: LEADTOOLS предлагает 60-дневную пробную версию, а также полную техническую поддержку. Вы можете загрузить пробную версию здесь.
2. VLC Media Player SDK
Еще одним вариантом является VLC Media Player SDK, предоставляющий API для программирования на C#. Хотя это решение развивается на базе открытого кода, есть коммерческие варианты поддержки и лицензирования.
- Основные возможности:
- Поддержка множества форматов видео и аудио.
- Возможность потокового воспроизведения и конвертации медиафайлов.
3. ffmpeg.dll
Несмотря на то, что FFmpeg – это инструмент с открытым исходным кодом, есть коммерческие версии и сервисы, которые предлагают техническую поддержку и лицензирование для его использования в корпоративных приложениях. Некоторые компании, такие как Zencoder или другие поставщики, предлагают специализированные API на основе FFmpeg.
Заключение
Таким образом, если вам нужно качественное и надежное решение для конвертации видеофайлов в C#, настоятельно рекомендую обратить внимание на LEADTOOLS SDK. Это предложение сочетает в себе мощь, гибкость и хорошую поддержку, что делает его идеальным выбором для решения ваших задач.
Не забывайте при выборе альтернативы учитывать такие аспекты, как возможность масштабирования, поддержка нужных форматов и доступность технической поддержки.