如何在Android OS中获取视频的帧率?

如何在Android OS中获取视频的帧率?,第1张

如何在Android OS中获取视频的帧率?
MediaExtractor extractor = new MediaExtractor();int frameRate = 24; //may be defaulttry {  //Adjust data source as per the requirement if file, URI, etc.  extractor.setDataSource(...);  int numTracks = extractor.getTrackCount();  for (int i = 0; i < numTracks; ++i) {    MediaFormat format = extractor.getTrackFormat(i);    String mime = format.getString(MediaFormat.KEY_MIME);    if (mime.startsWith("video/")) {    if (format.containsKey(MediaFormat.KEY_frame_RATE)) {        frameRate = format.getInteger(MediaFormat.KEY_frame_RATE);      }    }  }} catch (IOException e) {  e.printStackTrace();}finally {  //Release stuff  extractor.release();}

注意: 尝试在辅助线程中运行以上代码。

更新1 什么是 KEY_frame_RATE ,可能是 可选的

KEY_frame_RATE
在API级别16中添加字符串KEY_frame_RATE一个键,以帧/秒为单位描述视频格式的帧速率。当平台使用该值时,关联的值通常是整数,但是视频编解码器也接受浮点型配置值。具体而言,MediaExtractor提供一个与轨道的帧速率信息相对应的整数值(如果已指定),并且该值非零。
否则,此密钥不存在。
MediaCodec接受浮点和整数值。如果KEY_OPERATING_RATE不存在并且KEY_PRIORITY为0(实时),则这表示所需的工作帧速率。对于视频编码器,此值对应于预期的帧速率,尽管编码器应支持基于缓冲区时间戳的可变帧速率。MediaKeyc输入/输出格式或MediaMuxer均未使用此键。

恒定值:“帧速率”

*如果不存在KEY_frame_RATE,则 *更新2 代码检查是否用于NPE。往上看



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5002936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存