Воспроизведение видео с использованием MediaStreamSource, MediaElement на WP7 - PullRequest
2 голосов
/ 10 октября 2011

Мы работаем над потоковым приложением для необработанного содержимого H.264 и AAC.Мы используем MediaStreamSource для подачи сэмплов в MediaElement и не наблюдаем никаких проблем при использовании PC SilverLight (в IE9) для воспроизведения аудио / видео.Аудиопоток также отлично работает на WP7.Однако мы сталкиваемся со следующими проблемами с воспроизведением видео на WP7:

• Когда атрибут видеопотока для MediaStreamSource инициализируется без CodecPrivateData, обработчик события «Ошибка» MediaElement вызывается с кодом ошибки 3100. Атрибут Video Stream инициализируется как

    Dictionary<MediaStreamAttributeKeys, string> videoStreamAttributes = new Dictionary<MediaStreamAttributeKeys, string>();
    videoStreamAttributes[MediaStreamAttributeKeys.VideoFourCC] = "H264";
    this.videoStreamDescription = new MediaStreamDescription(MediaStreamType.Video, videoStreamAttributes);

• Когда атрибут видеопотока для MediaStreamSource инициализируется с помощью CodecPrivateData ([начальный код] [sps] [начальный код] [pps]), видео воспроизводится, но, кажется, воспроизводится с гораздо большей скоростью - 2в 3 раза больше указанного FPS.Атрибут Video Stream инициализируется как:

    Dictionary<MediaStreamAttributeKeys, string> videoStreamAttributes = new Dictionary<MediaStreamAttributeKeys, string>();
    videoStreamAttributes[MediaStreamAttributeKeys.VideoFourCC] = "H264";
    videoStreamAttributes[MediaStreamAttributeKeys.CodecPrivateData] = "000000012742000D96540A0FD8080F162EA00000000128CE060C88";
    this.videoStreamDescription = new MediaStreamDescription(MediaStreamType.Video, videoStreamAttributes);

Обратите внимание, что те же потоки прекрасно воспроизводятся на ПК SilverLight с CodecPrivateData и без нее, как с аудио, так и с видео.Что-то не так, в каком атрибуте видеопотока инициализируется?Что может быть причиной этой проблемы и как мы можем ее решить?

С уважением, NKS.

1 Ответ

1 голос
/ 29 ноября 2011

Проблема здесь заключалась в том, что часы использовались для отметки времени. Наше приложение использовалось для расчета отметки времени в соответствии с 90 кГц, ожидаемая отметка времени была в единицах 1 МГц. Таким образом, все кадры появились после того, как время истекло, и, следовательно, плеер будет воспроизводить кадры так быстро, как только мог (я видел что-то около 120 кадров в секунду). после фиксации часовых отметок часы работают нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...