2014-12-27 93 views
0

我使用Media Foundation在一系列過濾器之後從輸入MP4中創建MP4(H264 + AAC)輸出文件。視頻的製作完美無瑕,視頻在本地無任何問題地再現。問題是,當遠程執行(通過網絡播放器甚至VLC)時,視頻在完全下載之前不會啓動。Media Foundation SinkWriter(MP4 FastStart)

我檢查並確認託管該文件的http網站支持Accepts-Ranges標頭字段,過了一段時間後我發現問題發生是因爲該文件尚未使用允許「快速啓動」標誌創建逐步下載視頻。

我試圖在線搜索解決方案,但我一直無法找到一種方法來將這個標誌與Media Foundation的Sinkwriter一起使用。任何想法? (我不能使用任何外部應用程序要做到這一點,因爲這代碼將Windows應用商店的環境中運行)

回答

2

漸進式下載需要moov箱前的MPEG-4文件mdat中,這通常需要額外的去文件生成時的工作量,以及哪些不是Media Foundation的默認行爲。

媒體基金會介紹MF_MPEG4SINK_MOOV_BEFORE_MDAT attribute來處理這個問題:

的MPEG4媒體宿的默認行爲是後 「的mdat」框寫「moov」邏輯。設置此屬性會導致生成的文件在'mdat'框之前寫入'moov' 。

爲了使mpeg4接收器使用此屬性,傳入的字節流 不得爲慢查找或遠程for。

此功能涉及一個額外的文件複製/ remuxing。

注意最低要求。或者,您需要後處理文件以將moov框移到開頭。

參見:

+0

謝謝,國旗不是在我的情況下工作,我最後寫MP4小解析器和手動MDAT之前移動MOOV(改變也是STCO的偏移) – feal87 2014-12-28 12:07:32

相關問題