@@ -318,8 +318,10 @@ public static void getVideoInfo(String path, Promise promise, ReactApplicationCo
318
318
int width = Integer .parseInt (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_VIDEO_WIDTH ));
319
319
int height = Integer .parseInt (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_VIDEO_HEIGHT ));
320
320
int orientation = Integer .parseInt (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_VIDEO_ROTATION ));
321
- int frameRate = Integer .parseInt (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_FRAMERATE ));
322
- int bitrate = Integer .parseInt (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_VARIANT_BITRATE ));
321
+ // METADATA_KEY_FRAMERATE returns a float or int or might not exist
322
+ Integer frameRate = VideoEdit .getIntFromString (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_FRAMERATE ));
323
+ // METADATA_KEY_VARIANT_BITRATE returns a int or might not exist
324
+ Integer bitrate = VideoEdit .getIntFromString (mmr .extractMetadata (FFmpegMediaMetadataRetriever .METADATA_KEY_VARIANT_BITRATE ));
323
325
if (orientation == 90 || orientation == 270 ) {
324
326
width = width + height ;
325
327
height = width - height ;
@@ -335,8 +337,16 @@ public static void getVideoInfo(String path, Promise promise, ReactApplicationCo
335
337
event .putMap (Events .SIZE , size );
336
338
event .putInt (Events .DURATION , duration / 1000 );
337
339
event .putInt (Events .ORIENTATION , orientation );
338
- event .putInt (Events .FRAMERATE , frameRate );
339
- event .putInt (Events .BITRATE , bitrate );
340
+ if (frameRate != null ) {
341
+ event .putInt (Events .FRAMERATE , frameRate );
342
+ } else {
343
+ event .putNull (Events .FRAMERATE );
344
+ }
345
+ if (bitrate != null ) {
346
+ event .putInt (Events .BITRATE , bitrate );
347
+ } else {
348
+ event .putNull (Events .BITRATE );
349
+ }
340
350
341
351
promise .resolve (event );
342
352
0 commit comments