2017-05-11 2 views
1

Wenn ich versuche, die Dauer eines Videos mit dem php-ffmpeg Wrapper und ffprobe zu erhalten, bekomme ich ein riesiges Objekt statt nur die Dauer.php-ffmpeg Videodauer erhalten

$ffprobe = FFMpeg\FFProbe::create(); 
    $ffprobe->format($this->videoFile) 
      ->get('duration'); 

$ this-> videofile ist /home/admin/........./5422346433.mp4

So verweist er auf richtige Datei und die Dauer wird in dem riesigen Objekt aufgelistet in

[[-show_format-/home/admin/web/admin.simplewebevents.com/public_html/cron/649652027.mp4][1]] => Array 
        (
         [0] => FFMpeg\FFProbe\DataMapping\Format Object 
          (
           [properties:FFMpeg\FFProbe\DataMapping\AbstractData:private] => Array 
            (
             [filename] => /home/admin/web/admin.simplewebevents.com/public_html/cron/649652027.mp4 
             [nb_streams] => 2 
             [nb_programs] => 0 
             [format_name] => mov,mp4,m4a,3gp,3g2,mj2 
             [format_long_name] => QuickTime/MOV 
             [start_time] => 0.000000 
             [duration] => 5736.833333 
             [size] => 668381267 
             [bit_rate] => 932056 
             [probe_score] => 100 
             [tags] => Array 
              (
               [major_brand] => mp42 
               [minor_version] => 0 
               [compatible_brands] => mp42mp41isomavc1 
               [creation_time] => 2016-12-04 18:25:58 
              ) 

            ) 

          ) 

         [1] => 
        ) 

      ) 

Aber anscheinend -> get ('duration') gibt nicht die Dauer zurück.

Ich habe auch versucht, mit

$ffprobe 
->streams($this->videoFile) // extracts streams informations 
->videos()      // filters video streams 
->first()      // returns the first video stream 
->get('duration'); 

Antwort

2
$ffprobe 
    ->streams($this->videoFile) 
    ->videos()     
    ->first()     
    ->get('duration'); 

die Dauer RETURNS. Also muss ich diesen Befehl in einer Variablen speichern. Der richtige Weg, um die Dauer zu erhalten ist:

$duration = $ffprobe 
      ->streams($this->videoFile) 
      ->videos()     
      ->first()     
      ->get('duration');