CMTimeGetSeconds没有获得正确的视频时长

时间:2015-02-26 20:39:16

标签: ios iphone video ffmpeg

某些用户无法使用自己的设备获取正确的视频片段。有趣的是,其他人确实看到了它,使用相同的设备型号和操作系统版本。无论如何,我们在iPhone 5c 7.1.2和iPhone 5s 8.1.3中观察到它。

此代码适用于大多数用户,但并非全部:

ALAssetRepresentation *representation = [mediaObject.asset defaultRepresentation];
NSURL *url = [representation url];
NSDictionary *options = @{ AVURLAssetPreferPreciseDurationAndTimingKey : @YES };
AVAsset *avAsset = [AVURLAsset URLAssetWithURL:url options:options];
videoDurationTime = CMTimeGetSeconds(avAsset.duration);

我让他们发送输入视频,这是" ffmpeg -i"

的输出
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bug_duration1.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2015-02-23 08:30:01
    encoder         : 8.1.3
    encoder-eng     : 8.1.3
    date            : 2015-02-23T16:30:01+0800
    date-eng        : 2015-02-23T16:30:01+0800
    model           : iPhone 5s
    model-eng       : iPhone 5s
    make            : Apple
    make-eng        : Apple
  Duration: 00:00:03.67, start: 0.000000, bitrate: 16793 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 16719 kb/s, 29.99 fps, 29.97 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      creation_time   : 2015-02-23 08:30:01
      handler_name    : Core Media Data Handler
      encoder         : H.264
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 61 kb/s (default)
    Metadata:
      creation_time   : 2015-02-23 08:30:01
      handler_name    : Core Media Data Handler

检测视频的持续时间为几分钟。以前有人遇到过这个问题吗?

提前致谢。

0 个答案:

没有答案