Я почти уверен, что вы не можете сделать это в C #.В последнее время я не занимался медиа-вещанием, но несколько лет назад вам приходилось выполнять все преобразования видео с использованием Media Foundation (MF) в C ++.
Media Foundation ProgrammingРуководство
Я пытался (и только наполовину преуспел) вернуть кодек MKV, когда его не было, и вот к чему я должен был обратиться.Эти кодеки в основном являются черными ящиками, и MF автоматически выберет кодек, необходимый для декодирования видео.
Чтобы написать собственный кодек (или заставить существующий кодек работать с MF), вам придется обратиться к этому учебнику .Проблема в том, что он использует WRL вместо более нового C ++ / WinRT.Но, ну, хорошо.
Кроме того, если вы хотите увидеть мою ужасную попытку сделать кодек MKV, посмотрите здесь: https://github.com/limefrogyank/MKVSource Я был / я новичок в C ++ и полныйнуб на MF тоже.Но это сработало ... вроде.
Отредактировано 2 февраля 2019
Просто чтобы быть уверенным, вы видели это?По-видимому, теперь вы можете гораздо проще перекодировать видео, используя встроенные инструменты: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/MediaTranscoding
Но чтобы встроить свой собственный кодек, вы можете следовать этому руководству, чтобы объединить то, что вы создаете с помощью MF, и UWP.https://docs.microsoft.com/en-us/cpp/windows/wrl/walkthrough-creating-a-windows-store-app-using-wrl-and-media-foundation?view=vs-2017