• 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
    格式简单介绍                                     : Main@L4.0
    格式设置, 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

  • 相关阅读:
    AD转化器分类及特点和选用
    采样频率 、采样率
    RGBA alpha 透明度混合算法
    SDRAM中数据掩码的作用
    Allegro---层叠结构设置
    PCB主线布线规范—高速线之DDR2
    Allegro 反射仿真--拓扑结构的提取提取及波形分析
    Allegro 反射仿真--仿真设置
    Allegro 反射仿真--IBIS模型转化
    SigXplorer设置延时及Local_Global
  • 原文地址:https://www.cnblogs.com/llguanli/p/6820337.html
Copyright © 2020-2023  润新知