Procesar video
Comprar curso

49. Procesar video


2 comentarios

Inicia sesión para comentar

Comentarios:

  • Agustin Aguero

    Agustin Aguero hace 3 semanas

    Saludos victor, estoy presentando un problema
    This version of ffprobe is too old and does not support `-show_streams` option, please upgrade

    descargue todo correctamente, pero a la hora de hacer la prueba me presenta ese error, busco y busco pero no veo cual seria el motivo, estoy usando laravel 12

  • Victor Arana Flores

    Victor Arana Flores hace 10 meses

    $lesson = Lesson::find(5)
    
    
    if ($lesson->platform == 1) {
        $media = FFMpeg::open($lesson->video_path);
    
        $lesson->duration = $media->getDurationInSeconds();
        $lesson->image_path = "courses/lessons/posters/{$lesson->slug}.jpg";
    
        $media->getFrameFromSeconds(10)
            ->export()
            ->save($lesson->image_path);
    
        $lesson->is_processed = true;
    
        $lesson->save();
    } else {
        $patron = '%^(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com/(?:embed/|v/|watch\?v=))([\w-]{10,12})%';
        preg_match($patron, $lesson->video_original_name, $matches);
    
        $lesson->video_path = $matches[1];
    
        $video_info = Http::get('https://www.googleapis.com/youtube/v3/videos?id=' . $lesson->video_path . '&key=' . config('services.youtube.key') . '&part=snippet,contentDetails,statistics,status')->json();
    
        $duration = $video_info['items'][0]['contentDetails']['duration'];
        $patron = "%^PT(\d+H)?(\d+M)?(\d+S)?$%";
        preg_match($patron, $duration, $matches);
    
        $horas = isset($matches[1]) ? (int)substr($matches[1], 0, -1) : 0;
        $minutos = isset($matches[2]) ? (int)substr($matches[2], 0, -1) : 0;
        $segundos = isset($matches[3]) ? (int)substr($matches[3], 0, -1) : 0;
    
        $lesson->duration = ($horas * 3600) + ($minutos * 60) + $segundos;
        $lesson->image_path = 'https://img.youtube.com/vi/' . $lesson->video_path . '/0.jpg';
    
        $lesson->is_processed = true;
        $lesson->save();
    }