有关silverlight4摄像头的数据捕获问题
2010-04-24 14:11
344 查看
首先在silverlight中式可以捕获摄像头的视频流的,我们可以自己建立一个类,然后继承自VideoSink类,VideoSink类是一个抽象类(位于System.Windows.Media命名空间下s),需要我们实现其中的4个方法
public abstract class VideoSink
{
public VideoSink();
public CaptureSource CaptureSource { get; set; }
protected abstract void OnCaptureStarted();
protected abstract void OnCaptureStopped();
protected abstract void OnFormatChange(VideoFormat videoFormat);
//sampleData就是每100纳秒捕获的数据
//这里可以将捕获的数据流存入适当的载体里面
//或者将数据流进行编码或压缩
protected abstract void OnSample(long sampleTimeInHundredNanoseconds, long frameDurationInHundredNanoseconds, byte[] sampleData);
}
然后将我们的CaptureSource赋给VideoSink中的CaptureSource ,这样VideoSink就会自动捕获摄像头中的数据了。
虽然可以捕获数据,事实上我确实捕获到了数据,但问题在于捕获的数据实在是太大了,我测试了下,每100纳秒捕获的数据能有1.2MB多,这么庞大的数据如果不经过处理可以想象下我们录几分钟的录像要产生多么庞大的数据啊!我也不会视频编码,而微软也没有在Silverlight中提供专门的编码工具,所以摄像头功能在目前来说也就是个好看不好用的东西!
其实这其中还有一个问题,就是这个VideoSink捕获数据的时候很不稳定,经常导致OnFormatChange发生,而一旦OnFormatChange发生那么数据捕获就会停止,我暂时还没有找到方法来解决这个问题,希望有高人能指点下!
public abstract class VideoSink
{
public VideoSink();
public CaptureSource CaptureSource { get; set; }
protected abstract void OnCaptureStarted();
protected abstract void OnCaptureStopped();
protected abstract void OnFormatChange(VideoFormat videoFormat);
//sampleData就是每100纳秒捕获的数据
//这里可以将捕获的数据流存入适当的载体里面
//或者将数据流进行编码或压缩
protected abstract void OnSample(long sampleTimeInHundredNanoseconds, long frameDurationInHundredNanoseconds, byte[] sampleData);
}
然后将我们的CaptureSource赋给VideoSink中的CaptureSource ,这样VideoSink就会自动捕获摄像头中的数据了。
虽然可以捕获数据,事实上我确实捕获到了数据,但问题在于捕获的数据实在是太大了,我测试了下,每100纳秒捕获的数据能有1.2MB多,这么庞大的数据如果不经过处理可以想象下我们录几分钟的录像要产生多么庞大的数据啊!我也不会视频编码,而微软也没有在Silverlight中提供专门的编码工具,所以摄像头功能在目前来说也就是个好看不好用的东西!
其实这其中还有一个问题,就是这个VideoSink捕获数据的时候很不稳定,经常导致OnFormatChange发生,而一旦OnFormatChange发生那么数据捕获就会停止,我暂时还没有找到方法来解决这个问题,希望有高人能指点下!
相关文章推荐
- VB如何实现摄像头数据的捕获与显示
- kkpager的改进,Ajax数据变化但是页码不变的有关问题
- 有关编程中数据的取值范围的问题
- 有关数据死锁问题的一篇好文章,一个好博客
- 有关数据库行锁的几个问题
- 有关ListView优化机制及滑动时数据错乱问题的讨论
- 有关linq to sql中数据类型转换问题
- 有关ListView优化机制及滑动时数据错乱问题的讨论
- Extjs TREE 数据格式有关问题
- ios学习--ios将摄像头捕获的视频数据转为jpeg格式 .
- ios将摄像头捕获的视频数据转为jpeg格式
- 有关数据挖掘的10个常见问题
- 关于rtsp客户端接收数据、解码、处理性能的有关问题
- 有关使用 GPS Intermediate Driver 无法获取到GPS数据的一个问题
- 有关powerdesinger中灰色数据无法修改的问题
- OpenCV 2.2.0 摄像头捕获视频问题的解决
- 使用dshow抓取摄像头数据时,回调函数时间为0的问题
- ios学习--ios将摄像头捕获的视频数据转为jpeg格式
- 有关数据输入的问题
- 有关数据库行、锁 的几个问题(rowlock)