目前我正在利用List-variable來存儲相機提供的BitmapSources,並藉助SharpAvi將它們保存爲AVI文件。在第二步中,我通過Nrecos ffmpeg wrapper編碼保存的文件以減小文件大小。最後,我刪除原始的AVI文件,只保留編碼的文件。將WPF BitmapSources另存爲h264編碼的視頻直接從內存中
對我來說,這似乎設計得不好,可能會導致應用程序運行在SSD上的有害寫週期(我可能會在未編碼視頻中每天創建高達TB的TB),這就是爲什麼我想改變它的原因到使用PC的RAM更集成的解決方案。然而,SharpAvi和Nreco都依賴創建和閱讀實際文件。 Nreco確實有接受流的ConvertLiveMedia方法 - 但是在我的實驗中,它並沒有創建文件,同時也沒有給出錯誤警告。
是否可以使用相機作爲NReco ffmpeg包裝的輸入源?如果相機可以作爲DirectShow設備訪問,或者流由URL提供,則可以這樣做。這將是轉碼視頻並保存到文件的最有效方式。 –
我不這麼認爲。特別是因爲我仍然需要能夠在Aforge中使用相機進行並行圖像分析併爲用戶提供實時預覽。通過我提供的解決方案,我認爲爲這個特定的用例提供了最好的選擇。 –
如果您在C#(位圖對象)中將幀作爲圖像,則還可以使用ConvertLiveMedia方法(使用特殊的「raw_video」格式)將它們直接推送到ffmpeg輸入。 –