Update
This commit is contained in:
38
app/Helpers/FirstParty/Maintenance/MemeMediaMaintenance.php
Normal file
38
app/Helpers/FirstParty/Maintenance/MemeMediaMaintenance.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers\FirstParty\Maintenance;
|
||||
|
||||
use App\Models\MemeMedia;
|
||||
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;
|
||||
|
||||
class MemeMediaMaintenance
|
||||
{
|
||||
public static function populateDurations()
|
||||
{
|
||||
|
||||
$meme_medias_with_no_duration = self::getMemeMediasWithNoDuration();
|
||||
|
||||
$total = $meme_medias_with_no_duration->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();
|
||||
}
|
||||
}
|
||||
|
||||
private 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();
|
||||
}
|
||||
}
|
||||
@@ -8,4 +8,9 @@ public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function populateDuration()
|
||||
{
|
||||
\App\Helpers\FirstParty\Maintenance\MemeMediaMaintenance::populateDurations();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user