【问题标题】:How to capture ASX streaming video data如何捕获 ASX 流视频数据
【发布时间】:2011-04-01 16:14:00
【问题描述】:

给定一个 ASX 视频源(例如here - 加载可能需要一些时间)。如何捕获流以便我可以以编程方式访问帧?

【问题讨论】:

    标签: video video-streaming video-capture video-processing asx


    【解决方案1】:

    您可以使用以下架构(假设代码示例需要在 Windows 上实现任务并使用 MFC,但相同的架构可用于其他条件):

    1) 获取 ASX 文件(例如使用 CHttpConnection、CHttpFile 等)。对于您的示例 ASX 文件是:

    [Reference]
    Ref1=http://149.136.20.28/d3-Exposition-51?MSWMExt=.asf
    Ref2=http://149.136.20.28:80/d3-Exposition-51?MSWMExt=.asf
    

    2) 解析 ASX 文件。 ASX 文件通常是 XML 文件。但有时真正的 ASX 文件实际上并不是有效的 XML 文件(您的示例也是如此)。因此,您可能需要处理此类情况。解析 ASX 后,您将获得一组 URL。 URL 通常是相同传输的替代方案。

    3) 使用 Windows Media Format SDK (WMF SDK) 读取由 URL 表示的流。见Reading ASF Data Over a Network

    【讨论】:

    • 我没有意识到 ASX 文件是一个 XML 播放列表,它引用了一个视频流,而不仅仅是一个视频流。正如 VitalyVal 所说,底层视频是 WMF。使用 ffmpeg 导入并不难。
    • 不知道ffmpeg如何处理各种音视频格式的ASF流。但似乎您可能会遇到一些音频和视频格式的问题(如 WMA 语音编解码器、WMA 9 Professional、WMV 9...)。如果您开发 Windows 应用程序,我认为使用 WMF SDK 是更好的选择。
    猜你喜欢
    • 2014-01-29
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2013-03-02
    • 2012-07-20
    • 2013-03-18
    • 1970-01-01
    相关资源
    最近更新 更多