【问题标题】:getting video duration with ffmpeg, php function使用 ffmpeg、php 函数获取视频时长
【发布时间】:2013-02-09 20:12:39
【问题描述】:

我安装了 FFMpeg,我知道它可以正常工作,但我正在尝试通过 PHP 从 flv 视频中获取持续时间,但是当我使用此代码时:

函数 mbmGetFLVDuration($file){

/*  
* Determine video duration with ffmpeg   
* ffmpeg should be installed on your server.  
*/  

//$time = 00:00:00.000 format   
$ffmpeg = "../ffmpeg/ffmpeg";

$time =  exec("$ffmpeg -i $file 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");   

$duration = explode(":",$time);   
$duration_in_seconds = $duration[0]*3600 + $duration[1]*60+ round($duration[2]);   

return $duration_in_seconds;   

}

和:

$duration = mbmGetFLVDuration('http://www.videoaddsite.com/videos/intro.flv'); 回声 $duration;

我得到 220 的输出。视频是 3:40。任何人都可以帮助我解决我做错了什么,或者我可以使用其他东西吗?

【问题讨论】:

  • 您将在几秒钟内获得输出.. 220 秒 = 3:40 分钟

标签: java php ffmpeg


【解决方案1】:

我看不出有什么问题。 220 秒是 3:40。

要获得分钟和秒,请使用此转换:

<?php
$seconds = 220;
$minutes = $seconds/60;
$real_minutes = floor($minutes);
$real_seconds = round(($minutes-$real_minutes)*60);
?>

$real_minutes 将是 3,$real_seconds 将是 40。

【讨论】:

  • 哈,我现在感觉很笨。我一直在工作这么多,我倾向于看小事情。还没试过,但非常感谢!
【解决方案2】:
$ffmpeg = "../ffmpeg/ffmpeg";

$time = exec("$ffmpeg -i $file 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");   

$duration = explode(":", $time);   
$duration_in_seconds = ($duration[0] * 3600) + ($duration[1] * 60) + round($duration[2]);   

return $duration_in_seconds;   

【讨论】:

    【解决方案3】:

    以下代码对我有用

    $file='http://techslides.com/demos/sample-videos/small.mp4';
    
    $dur = shell_exec("ffmpeg -i ".$file." 2>&1");
    if(preg_match("/: Invalid /", $dur)){
      return false;
    }
    preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration);
    if(!isset($duration[1])){
      return false;
    }
    $hours = $duration[1];
    $minutes = $duration[2];
    $seconds = $duration[3];
    
    echo $seconds + ($minutes*60) + ($hours*60*60);
    

    Reference

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2017-10-10
      • 2015-09-10
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 2011-04-28
      相关资源
      最近更新 更多