count(); foreach ($meme_medias_with_no_duration as $key => $meme_media) { $current = $key + 1; dump("Processing {$current}/{$total}: {$meme_media->webm_url}"); $meme_media->duration = self::getDurationUsingFfmpeg($meme_media); $meme_media->save(); } } public static function getDurationUsingFfmpeg($meme_media) { $duration_milliseconds = FFMpeg::openUrl($meme_media->webm_url)->getDurationInMiliseconds(); $duration_seconds = ($duration_milliseconds / 1000); return $duration_seconds; } private static function getMemeMediasWithNoDuration() { return MemeMedia::whereNull('duration')->get(); } }