zoukankan      html  css  js  c++  java
  • [转载]LivePlayer实现直播抓拍

    对于一个裸的RTSP URL,存放在播放列表上略显单调与枯燥。大家可以看到LivePlayer在播放完视频后会保存一帧图片到列表上。那么这个功能是如何做到的呢?
    如果自己实现解码的话,比如使用ffmpeg解码,这种情况下,将视频帧解码,再编码成jpeg保存下来,应该不是什么难事。相信大多数播放器都是这样处理的。但是如果我们用硬解码,很遗憾,安卓的硬解码并没有提供获取视频帧数据的功能,那又该如何实现呢?
    有两种方法可以实现硬解码截屏

    • 单独创建截屏用的软解码器
    • 直接获取TextureView的内容并保存

    第一种方法为常规的方法,没什么好说的。这里介绍下第二种方法。TextureView提供了一个getBitmap() 的方法,解释如下:

    Returns a Bitmap representation of the content of the associated surface texture.

    该方法提供了当前TextureView的渲染内容,作为一个Bitbmap对象返回。这样我们可以将这个Bitmap压缩成jpeg、png等格式并保存下来。Bitmap提供了compress 方法可以直接压缩。
    这里需要注意的是调用时机,一定要在TextureView创建之后,确切的说是当前画面显示之后调用。否则您保存的快照可能是纯黑色的。

     

  • 相关阅读:
    010-你觉得单元测试可行吗
    跳台阶
    斐波那契数列
    旋转数组的最小数字
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    二维数组中的查找
    Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/kumukim/p/11006675.html
Copyright © 2011-2022 走看看