2012-02-24 60 views
0

我一直在寻找从视频流抓取YUV框架的不同方式,但大部分我看到依靠从previewSize获取宽度和高度。但是,手机可以拍摄720p的视频,但很多手机只能以较低的分辨率(即800x480)显示,因此可以抓取更接近1920x1080的屏幕快照(如果视频以720p拍摄)?或者我是否被迫使用预览分辨率(某些手机上是800x400)?从Android中的视频抓取框架

谢谢

回答

-1

是的,你可以。 *

*条件申请 -

  • 您需要访问中间层,mediaframe工作更加精确
  • 没有,也不能仅仅通过应用程序,如果你做了现在

想在媒体框架工作级别执行此处的步骤 -

  • 假设您正在使用Froyo和以上,使用默认mediaframe工作怯场
  • 在怯场转到方法onVideoEvent缓冲区从mVideoSource读取后使用mVideoBuffer在其原始分辨率

与应用程序链接此访问视频帧 -

  • 您需要在应用程序中的按钮,表示屏幕捕获
  • 一旦用户按下此按钮,然后你看上面,然后中提到的位置的视频帧将此缓冲区返回到Java层
  • 从这里您可以使用JPEG编码器将原始视频帧转换为图像。

编辑: 重新阅读你的问题,你问的录制过程中屏幕捕获或相机路径。即使这样,在应用程序中也无法实现这一点,您将不得不做类似的事情,但您需要在StageFright框架中访问CameraSource

+0

我在谈论录制视频时的屏幕截图。我无法在mVideoSource和mVideoBuffer上找到资源,并且无法获得有关该主题的更多信息的任何建议。谢谢 – Saad 2012-02-24 22:07:00

+0

它位于java层以下的媒体框架工作级别。如果你有Android源代码,那么它位于这个项目/android/frameworks/base/media/libstagefright/AwesomePlayer.cpp – bluefalcon 2012-02-25 03:31:30

+0

如果我修改了android的框架词,这并不意味着需要运行我的应用程序的客户端将需要有相同版本的 – Saad 2012-02-25 04:32:50