UWP: как я могу сделать H.264 кодирование необработанных видеокадров и получить закодированные кадры - PullRequest
0 голосов
/ 06 февраля 2019

Привет, я новичок в UWP программировании.У нас есть приложение для видеовызовов, которое мы портируем для Windows в UWP.Наша существующая система спроектирована таким образом, что необработанные кадры камеры (кадры YUV), поданные в видеокодер (H.264 ИЛИ H.263) и закодированные видеоданные, будут упакованы и отправлены в сеть.

Для получения YUVданные камеры, я использую MediaCapture и MediaFrameReader , как описано в https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/process-media-frames-with-mediaframereader

Но я не могу найти API, кодировать эти видеокадры и получитьзакодированные видеокадры.

Пожалуйста, помогите мне, как я могу получить закодированные видеокадры в UWP

1 Ответ

0 голосов
/ 07 февраля 2019

Я почти уверен, что вы не можете сделать это в 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

...