Android加入新的视频格式--媒体库扫描

需求:在mediaprovider数据库中加入.mov后缀格式的视频文件

能够使用工具MediaInfo_GUI_0.7.67_Windows.3243836749.exe 查看mov文件编码格式类型,能够到http://download.csdn.net/detail/deng0zhaotai/8767089下载。

概要
完整名称                                     : D:\好歌曲学员合.mov
文件格式                                     : MPEG-4
格式简单介绍                                     : QuickTime
编码设置ID                                   : qt
文件大小                                     : 83.8 MiB
长度                                       : 1分 2秒
平均混合码率                                   : 11.3 Mbps
编码日期                                     : UTC 2015-04-23 06:07:05
标记日期                                     : UTC 2015-04-23 06:08:38
编码函数库                                    : Apple QuickTime
㏕IM                                      : 00:00:00:00
㏕SC                                      : 25
㏕SZ                                      : 1

视频
ID                                       : 1
文件格式                                     : AVC
文件格式/信息                                  : Advanced Video Codec
格式简单介绍                                     : [email protected]
格式设置, CABAC                              : 否
格式设置, ReFrames                           : 2 frames
格式设置, GOP                                : M=1, N=50
编码设置ID                                   : avc1
编码设置ID/信息                                : Advanced Video Coding
长度                                       : 1分 2秒
码率                                       : 11.2 Mbps
画面宽度                                     : 1 920像素
画面高度                                     : 1 080像素
画面比例                                     : 16:9
帧率模式                                     : 恒定
帧率                                       : 25.000 fps
色彩空间                                     : YUV
色度抽样                                     : 4:2:0
位深度                                      : 8位
扫描方式                                     : 逐行扫描
bits/(pixel*frame)(数据密度)                 : 0.216
大小                                       : 82.8 MiB (99%)
标题                                       : 苹果视频媒体处理程序 / Apple 替身数据处理程序
语言                                       : English
编码日期                                     : UTC 2015-04-23 06:07:05
标记日期                                     : UTC 2015-04-23 06:08:38
颜色初选                                     : BT.709
传输特质                                     : BT.709
矩阵系数                                     : BT.709

音频
ID                                       : 2
文件格式                                     : AAC
文件格式/信息                                  : Advanced Audio Codec
格式简单介绍                                     : LC
编码设置ID                                   : 40
长度                                       : 1分 2秒
Source_Duration/String                   : 1分 2秒
码率模式                                     : CBR
码率                                       : 120 Kbps
额定码率                                     : 128 Kbps
声道                                       : 2声道
声道位置                                     : Front: L R
採样率                                      : 48.0 KHz
压缩模式                                     : 有损压缩
大小                                       : 909 KiB (1%)
Source_StreamSize/String                 : 909 KiB (1%)
标题                                       : 苹果声频媒体处理程序 / Apple 替身数据处理程序
语言                                       : English
编码日期                                     : UTC 2015-04-23 06:07:05
标记日期                                     : UTC 2015-04-23 06:08:38

其他
ID                                       : 3
Type                                     : Time code
文件格式                                     : QuickTime TC
长度                                       : 1分 2秒
TimeCode_FirstFrame                      : 00:00:00:00
TimeCode_Settings                        : Striped
标题                                       : 时间码媒体处理程序 / Apple 替身数据处理程序
语言                                       : English
编码日期                                     : UTC 2015-04-23 06:08:38
标记日期                                     : UTC 2015-04-23 06:08:38

能够看到两个实用的信息

文件格式 : MPEG-4

格式简单介绍 : QuickTime

须要改动的文件:frameworks/base/media/java/android/media/MediaFile.java,我们能够參考已有的视频格式加入

// Video file types
    public static final int FILE_TYPE_FLV     = 20;
    public static final int FILE_TYPE_MP4     = 21;
    public static final int FILE_TYPE_M4V     = 22;
    public static final int FILE_TYPE_3GPP    = 23;
    public static final int FILE_TYPE_3GPP2   = 24;
    public static final int FILE_TYPE_WMV     = 25;
    public static final int FILE_TYPE_ASF     = 26;
    public static final int FILE_TYPE_MKV     = 27;
    public static final int FILE_TYPE_MP2TS   = 28;
    public static final int FILE_TYPE_AVI     = 29;
    public static final int FILE_TYPE_WEBM    = 30;
    public static final int FILE_TYPE_MOV     = 52;
    private static final int FIRST_VIDEO_FILE_TYPE = FILE_TYPE_FLV;
    private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_WEBM;

加入:public static final int FILE_TYPE_MOV = 52;  这一行

addFileType("MPEG", FILE_TYPE_MP4, "video/mpeg", MtpConstants.FORMAT_MPEG);
        addFileType("MPG", FILE_TYPE_MP4, "video/mpeg", MtpConstants.FORMAT_MPEG);
        addFileType("MP4", FILE_TYPE_MP4, "video/mp4", MtpConstants.FORMAT_MPEG);
        addFileType("MOV", FILE_TYPE_MOV, "video/quicktime", MtpConstants.FORMAT_MPEG);
        addFileType("M4V", FILE_TYPE_M4V, "video/mp4", MtpConstants.FORMAT_MPEG);
        addFileType("3GP", FILE_TYPE_3GPP, "video/3gpp",  MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("3GPP", FILE_TYPE_3GPP, "video/3gpp", MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("3G2", FILE_TYPE_3GPP2, "video/3gpp2", MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("3GPP2", FILE_TYPE_3GPP2, "video/3gpp2", MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("MKV", FILE_TYPE_MKV, "video/x-matroska");
        addFileType("WEBM", FILE_TYPE_WEBM, "video/webm");
        addFileType("TS", FILE_TYPE_MP2TS, "video/mp2ts");
        addFileType("AVI", FILE_TYPE_AVI, "video/avi");
        addFileType("FLV", FILE_TYPE_FLV, "video/flv");

文件格式 : MPEG-4

格式简单介绍 : QuickTime

信息可知。加入一行:addFileType("MOV", FILE_TYPE_MOV, "video/quicktime", MtpConstants.FORMAT_MPEG);

还要改动一个函数:

public static boolean isVideoFileType(int fileType) {
        return (fileType >= FIRST_VIDEO_FILE_TYPE &&
                fileType <= LAST_VIDEO_FILE_TYPE)
            || (fileType >= FIRST_VIDEO_FILE_TYPE2 &&
                fileType <= LAST_VIDEO_FILE_TYPE2)
            || (fileType == FILE_TYPE_MOV);
    }

加入条件:fileType == FILE_TYPE_MOV

能够把数据库删除:rm -rf /data/data/com.android.providers.media/databases/

然后重新启动手机。就能够在video视图中找到.mov的视频

当然以上代码能够作下优化,

public static final int FILE_TYPE_WEBM = 30;
public static final int FILE_TYPE_MOV = 31;
private static final int FIRST_VIDEO_FILE_TYPE = FILE_TYPE_FLV;
private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_MOV;

那么涉及到后面就须要改动

// Image file types
    public static final int FILE_TYPE_JPEG    = 31;
    public static final int FILE_TYPE_GIF     = 32;
    public static final int FILE_TYPE_PNG     = 33;
    public static final int FILE_TYPE_BMP     = 34;
    public static final int FILE_TYPE_WBMP    = 35;
    public static final int FILE_TYPE_WEBP    = 36;
    private static final int FIRST_IMAGE_FILE_TYPE = FILE_TYPE_JPEG;
    private static final int LAST_IMAGE_FILE_TYPE = FILE_TYPE_WEBP;

    // Playlist file types
    public static final int FILE_TYPE_M3U      = 41;
    public static final int FILE_TYPE_PLS      = 42;
    public static final int FILE_TYPE_WPL      = 43;
    public static final int FILE_TYPE_HTTPLIVE = 44;
    public static final int FILE_TYPE_DASH     = 45;

    private static final int FIRST_PLAYLIST_FILE_TYPE = FILE_TYPE_M3U;
    private static final int LAST_PLAYLIST_FILE_TYPE = FILE_TYPE_DASH;

    // Drm file types
    public static final int FILE_TYPE_FL      = 51;

改动后的文件:http://download.csdn.net/detail/deng0zhaotai/8767221

时间: 2024-10-10 08:56:55

Android加入新的视频格式--媒体库扫描的相关文章

Android添加新的视频格式--媒体库扫描

需求:在mediaprovider数据库中添加.mov后缀格式的视频文件 可以使用工具MediaInfo_GUI_0.7.67_Windows.3243836749.exe 查看mov文件编码格式类型,可以到http://download.csdn.net/detail/deng0zhaotai/8767089下载. 概要 完整名称 : D:\好歌曲学员合.mov 文件格式 : MPEG-4 格式简介 : QuickTime 编码设置ID : qt 文件大小 : 83.8 MiB 长度 : 1分

常见的视频格式介绍

主要是编码的方式和算法不同以下是常见的格式MPEG/.MPG/.DAT MPEG是Motion Picture Experts Group 的缩写.这类格式包括了 MPEG-1, MPEG-2 和 MPEG-4在内的多种视频格式.MPEG-1相信是大家接触得最多的了,因为目前其正在被广泛地应用在 VCD 的制作和一些视频片段下载的网络应用上面,大部分的 VCD 都是用 MPEG1 格式压缩的 ( 刻录软件自动将MPEG1转为 .DAT格式 ) ,使用 MPEG-1 的压缩算法,可以把一部 120

如何扫描出Android系统媒体库中视频文件

Android系统启动时会去扫描系统文件,并将系统支持的视频文件(mp4,3gp,wmv)扫描到媒体库(MediaStore)中,下面代码演示如何获得这些文件的信息: publicstatic List<VideoInfo> sysVideoList = null;// 视频信息集合 sysVideoList = new ArrayList<VideoInfo>();   setVideoList(); privatevoid setVideoList() {   // Media

Android 之 向媒体库添加新媒体

在默认的情况下.由自己的程序创建,并存储在应用程序私有文件夹中的媒体文件,对其他应用程序来说是不可用的.要想这些媒体文件可以被其他应用程序使用.需要把他们添加到媒体库中,目前有两种方法可以实现. 第一种:使用媒体扫描仪添加到媒体库. /** * 扫描指定目录了的文件,添加到媒体库 * * @param filePath * 路径 */ private void scanMedia(final String filePath) { MediaScannerConnectionClient medi

【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库(转)

转载请注明出处: http://blog.csdn.net/zhaokaiqiang1992 今天一打开博客,发现一位朋友给我发了一封私信,请教下面的问题,所以特写此文章,为其解惑. 从这位朋友的提问中,我们需要了解下面的这些问题,才能给他很好的解答: (1)如何获取手机里所有歌曲的信息? (2)在歌曲文件发生改变,比如增删操作之后,如何及时的更新媒体库,从而获取到最新的歌曲信息? (3)在4.4版本之后,扫描sd卡,更新媒体库的操作发生变化了吗? 下面,我将就以上三个问题,进行解答. (1)如

Android media媒体库分析之:MediaProvider

在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvider: 该工程在系统源码的packages\providers目录下,提出并导入Eclipse,便于阅读: 图中可见都很多报错的,是滴,因为需要一些系统标准sdk之外的接口,不过不影响我们阅读代码. 二.工程结构及内部关系: 可以从上图看出包含4个文件: MediaScannerService.Ja

Android开发本地及网络Mp3音乐播放器(十九)通知媒体库更新刚下载的MP3

实现功能: 通知媒体库更新 纠结了几天,百度到一个方法,可以在安卓4.4,通知媒体库更新. 媒体库更新了,重新打开APP,就可以看到新的歌曲,但这样还是不完善. 后续将博文,将实现 下载音乐成功后,通更新媒体库后,更新本地音乐列表. 因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐.下载音乐.下载歌词)均无法保证时效性,建议,尽快下载和练习:如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码. 截止到目前的源码下载: http:/

主攻互动娱乐和视频自媒体,新浪SHOW是不是桩好生意?

对互联网互动服务平台而言,最近几年会是空前重要的发展阶段,首先,互联网行业的持续发展.网民数量的持续激增必然带动网络互动朝更普及的方向迈进,其市场规模也必然会呈极数增长:其次,互动娱乐.视频自媒体等业务模式也为网络互动注入了更多内涵,未来网民将在互动平台上体验到各种不同的玩法,这是行业做大做强的关键. 目前,国内互动领域的领头羊除欢聚时代之外,还有天鸽,其中天鸽集团拥有新浪SHOW和9158两大平台,以前者为例,最近笔者在新浪SHOW上推出了基于互联网.财经等话题的公开课,每期都吸引了大量网友的

最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版

本文记录另一个安卓平台下基于FFmpeg的视频解码器.与前一篇文章记录的解码器不同,本文记录的解码器不再使用libavcodec.so.libavformat.so等类库,而只使用了一个类库--libffmpeg.so.该视频解码器C语言的源代码来自于<最简单的基于FFMPEG+SDL的视频播放器>.相关的概念就不再重复记录了. FFmpeg类库的打包 记录一下FFmpeg类库打包的方法.Android平台下FFmpeg类库一共包含下面几个: libavformat-56.solibavcod