2012-03-11 39 views
4

通過HTTP可以獲得IIS平滑流式(ISM)格式的音頻+視頻流。該.ism/manifest文件看起來像:如何將IIS平滑流式傳輸(ISM)作爲MKV或AVI下載?

<?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捲曲下載塊。因此,如果有一種工具可以將大塊數據複合到AVI或MKV文件中,那對我來說就夠了。

我知道關於ISM Downloader和RTL Downloader由同一作者。他們是.NET應用程序,而不是開源的。理想情況下,我正在尋找一款不需要.NET或Java的小型自包含開源工具。我更喜歡C,C++,Perl,Python,Ruby程序。

+1

你有沒有辦法做到這一點? – 2013-02-06 05:34:44

回答

4

您也可以嘗試smoothget:https://github.com/pinglossy/smoothget,它是用C#編寫

+0

很多人都喜歡便攜式解決方案,即不是Window專用的東西 – 2015-04-21 08:46:02

+0

@ErikAlapää:X平臺便攜式通過Mono框架 – evandrix 2015-04-25 03:37:46

+0

那麼,如果你接受Mono作爲解決方案,那麼是的,但我對Mono有懷疑 – 2015-04-26 09:23:41

1

您可以嘗試使用smooth-dl:http://git.ao2.it/smooth-dl.git/,但它具有有限的功能,它只准備用於muxing的流,然後可以使用ffmpeg(或Windows上的VirtualDub?)執行此操作。歡迎修補程序使其更加可用。

另外也libsmth:https://github.com/satufk/libsmth

+3

「你可以用ffmpeg做到這一點」<---如何? – Zibri 2012-05-28 17:57:58

+0

Smooth-dl連接塊的方式並不會爲我生成有效的視頻流:( – 2013-09-05 03:12:32

1

您可以嘗試smthplayer:http://sourceforge.net/projects/smthplayer/,但你必須做一些修補程序的源代碼,因爲:

  1. 這只是一個球員,所以它會產生一個.264或.vc1視頻文件以及.aac或.wav文件,稍後您必須將其複製;

  2. 從版本0.4開始,作者增加了一個功能,可以影響視頻文件以避免錄製。

修改它只是供個人使用(所以不要發佈修改後的版本),因爲限制是出於法律原因...

5

VLC Media Player支持IIS平滑流式處理。轉到媒體,轉換/保存,網絡選項卡,將鏈接粘貼到清單文件,點擊轉換/保存,選擇一種格式,然後按開始。

+0

奇怪的是,流暢的流媒體並未在VLC網站上列出:http://www.videolan.org/vlc/features.php?cat=input但是你是對的,視頻作品。就我個人而言,我有音頻問題。 – 2014-08-28 14:44:22