Мы работаем над потоковым приложением для необработанного содержимого 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.