目前我正在利用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输入。 –