我们一直在开发一个用于原始H.264和AAC内容的流媒体应用程序。我们正在使用MediaStreamSource向MediaElement馈送样本,当我们使用PC SilverLight (在IE9上)进行音视频播放时,没有观察到任何问题。纯音频流在WP7上也能正常工作。然而,在WP7上播放视频时,我们会遇到以下问题:
·不带CodecPrivateData初始化MediaStreamSource的视频流属性时,调用MediaElement Failed事件处理,错误码为3100。视频流属性初始化为:
Dictionary<MediaStreamAttributeKeys, string> videoStreamAttributes = new Dictionary<MediaStreamAttributeKeys, string>();
videoStreamAttributes[MediaStreamAttributeKeys.VideoFourCC] = "H264";
this.videoStreamDescription = new MediaStreamDescription(MediaStreamType.Video, videoStreamAttributes);·当MediaStreamSource的视频流属性初始化为CodecPrivateData (起始码起始码)时,视频的播放速度似乎要快得多--是指定FPS的2到3倍。视频流属性初始化为:
Dictionary<MediaStreamAttributeKeys, string> videoStreamAttributes = new Dictionary<MediaStreamAttributeKeys, string>();
videoStreamAttributes[MediaStreamAttributeKeys.VideoFourCC] = "H264";
videoStreamAttributes[MediaStreamAttributeKeys.CodecPrivateData] = "000000012742000D96540A0FD8080F162EA00000000128CE060C88";
this.videoStreamDescription = new MediaStreamDescription(MediaStreamType.Video, videoStreamAttributes);请注意,相同的流可以在带有和不带有CodecPrivateData的PC SilverLight上正常播放,无论是音频还是视频。初始化视频流属性有问题吗?是什么导致了这个问题?我们如何解决它?
你好,NKS。
发布于 2011-11-29 17:10:37
这里的问题是用于时间戳的时钟。我们的应用程序过去按照90 Mhz计算时间戳,预期的时间戳是以1 Mhz为单位的。所以所有的帧都会在时间过去后出现,因此播放器会尽可能快地播放这些帧(我也看到了大约120fps)。修复了时间戳时钟之后,它工作得很好
https://stackoverflow.com/questions/7714338
复制相似问题