有一个通过 HTTP 可用的 IIS 平滑流 (ISM) 格式的音频+视频流。该.ism/manifest
文件如下所示:
<?xml version="1.0" encoding="utf-16"?>
<SmoothStreamingMedia MajorVersion="2" MinorVersion="1" Duration="26571612076">
<StreamIndex Type="video" Name="video" Chunks="1329" QualityLevels="3"
MaxWidth="848" MaxHeight="480" DisplayWidth="853" DisplayHeight="480"
Url="QualityLevels({bitrate})/Fragments(video={start time})">
<QualityLevel Index="0" Bitrate="900000" FourCC="H264"
MaxWidth="848" MaxHeight="480" CodecPrivateData="..." />
<QualityLevel Index="1" Bitrate="735000" FourCC="H264"
MaxWidth="736" MaxHeight="416" CodecPrivateData="..." />
<QualityLevel Index="2" Bitrate="600000" FourCC="H264"
MaxWidth="624" MaxHeight="352" CodecPrivateData="..." />
<c d="20400971" /> <c d="20000000" /> ...
</StreamIndex>
<StreamIndex Type="audio" Index="0" Name="audio" Chunks="1329" QualityLevels="1"
Url="QualityLevels({bitrate})/Fragments(audio={start time})">
<QualityLevel FourCC="AACL" Bitrate="256000" SamplingRate="44100" Channels="2"
BitsPerSample="16" PacketSize="4" AudioTag="255"
CodecPrivateData="1210" />
<c d="20201360" /> <c d="19969161" /> ...
</StreamIndex>
<StreamIndex Type="text" Subtype="CHAP">
<Content>
<Marker Time="0" Value="Thumbnail" />
<Marker Time="664290000" Value="Thumbnail" /> ...
</Content>
</StreamIndex>
</SmoothStreamingMedia>
我需要 Linux 上的命令行工具(或库),它可以下载此流的各个音频和视频块,并将其多路复用为 AVI 或 MKV 文件。
实际上,下载很容易:使用Url=
清单文件中的值,我可以构造块的 URL,我可以使用例如wget或curl来下载块。因此,如果有一个工具可以将块多路复用到 AVI 或 MKV 文件,那对我来说已经足够了。
我知道同一作者的ISM 下载器和 RTL 下载器。它们是 .NET 应用程序而不是开源的。理想情况下,我正在寻找一个不需要 .NET 或 Java 的小型、独立的开源工具。我更喜欢 C、C++、Perl、Python、Ruby 程序。