Если вы можете сделать это в фоновом режиме, и это не обязательно должно быть в режиме реального времени, я рекомендую указать это FFMPEG .
FFMPEG может очень легко справляться с такими задачами,и это не стоит головной боли, чтобы сделать это изначально в .NET, если вам не нужно.(Если бы вы были, вы бы хотели взглянуть на DirectX.)
Кажется, есть оболочка C # для .NET , но у меня нет опыта работы с ней.Следует также отметить, что FFMPEG поддерживает STDIN / OUT.