如何在 WMP 上通过 RTSP 运行 H.264?

Posted

技术标签:

【中文标题】如何在 WMP 上通过 RTSP 运行 H.264?【英文标题】:How to run H.264 through RTSP on WMP? 【发布时间】:2012-06-22 19:30:54 【问题描述】:

我听说 Windows Media Player 在尝试通过 RTSP 播放 H.264 视频时遇到问题。我刚刚全新安装了 Windows 7,它声称原生支持 H.264(实际上播放来自http://www.h264info.com/clips.html 的辛普森一家样本确实没问题)。但是当我尝试查看通过 RTSP 流式传输的同一个文件时,它会抱怨并且不播放视频说:

“Windows Media Player 无法播放该文件。无法找到播放该文件所需的一个或多个编解码器。”

它怎么能抱怨编解码器完全能够解码同一个文件?

我正在使用 Unreal Media Server 流式传输此文件并从同一台计算机连接。

如何让 Win 7 上的 WMP 通过 RTSP 播放 H264?

【问题讨论】:

也许只有我一个人,但这里看不到编程问题。 @crashmstr:这是或可能是一个编程问题。 WMP 可嵌入到应用程序中,但问题是您无法在 [在您的应用程序中] 显示某些视频源... 是的,问题是如何使用 MF 对象在 RTSP 上处理 H264... 【参考方案1】:

虽然 Media Foundation 支持 RTSP,但我认为不支持 H.264 RTP Payload。

见http://social.msdn.microsoft.com/Forums/da/mediafoundationdevelopment/thread/4ac87f5f-b8c5-471a-a424-55c0fff04eac

另一个问题是 RTSP 源只支持少量的 RTP 有效负载格式——ASF、MP3 和 LPCM。如果您的相机流式传输 MPEG4、MJPEG 或其他格式,RTSP 源将无法处理 它。

【讨论】:

这个话题有点老了(2010),还没有新的东西出现吗?!该死的WMP! 它是媒体基础 API,它没有为 RTSP 提供良好的覆盖。也许您最好使用 DirectShow 和第三方源过滤器来接收 RTSP 流。 您知道是否有某种记录可以确认根本原因吗?我相信这与有效载荷格式有关。 您可以使用Wireshark等网络嗅探器记录RTSP转换。至于媒体基金会对 H.264 的支持,我没有手边的文档确认链接,但我相信支持范围在文档的某个地方。 是的,我已经尝试过捕获 RTSP 流量,但这在 Windows 下的 localhost 中很困难……我将尝试通过一些 repo pc 获取此流量。再次感谢。

以上是关于如何在 WMP 上通过 RTSP 运行 H.264?的主要内容,如果未能解决你的问题,请参考以下文章

来自RTSP流的H.264解码错误日志

RTSP实时音视频(H264/H265/AAC)开发实战项目

如何在 Java 环境中解码 H.264 视频帧

来自 RTSP 流的 H.264 解码错误日志

为啥在使用 Android MediaPlayer 读取 H.264 编码的 rtsp 流时出现“不支持的格式”错误?

低延时高RTSP兼容的EasyPlayer-RTSP-win解决H.264一帧多个nal单元录像花屏问题方案