You can convert an flv video into a wmv video using the command line:
ffmpeg -i test.flv test.wmv
Through the above command, the "test.flv" video file is converted to "test.wmv" video file.
Note that you need the file "ffmpeg.exe" in the folder from where you invoke the above command.
And you can dynamically calculate the length of an flv video, using the function below:
<?php
function GetFLVDuration($file){
// get contents of a file into a string
if (file_exists($file)){
$handle = fopen($file, "r");
$contents = fread($handle, filesize($file));
fclose($handle);
//
if (strlen($contents) > 3){
if (substr($contents,0,3) == "FLV"){
$taglen = hexdec(bin2hex(substr($contents,strlen($contents)-3)));
if (strlen($contents) > $taglen){
$duration = hexdec(bin2hex(substr($contents,strlen($contents)-$taglen,3))) ;
return secondsToWords($duration/1000);
}
}
}
}
return false;
}
?>
An example of invoking the function:
<?php
$duration = GetFLVDuration("test.flv");
echo $duration;
?>
Note that the duration of the video is returned in seconds, which is passed to another function (secondsToWords) to get the output in a readable form (in minutes and seconds).
<?php
function secondsToWords($seconds)
{
/*** return value ***/
$ret = "";
/*** get the hours ***/
$hours = intval(intval($seconds) / 3600);
if($hours > 0)
{
$ret .= "$hours hours ";
}
/*** get the minutes ***/
$minutes = bcmod((intval($seconds) / 60),60);
if($hours > 0 || $minutes > 0)
{
$ret .= "$minutes minutes ";
}
/*** get the seconds ***/
$seconds = bcmod(intval($seconds),60);
$ret .= "$seconds seconds";
return $ret;
}
?>
However you can also get the duration of a wmv-converted flv video using the command line:
ffmpeg -i test.wmv
When you run this, you get a list of details and from that list, you can get the duration from the line, starting with: "Duration: "
For ex, Duration: 00:03:45.2 (means 3 minutes, 45 seconds)
ffmpeg -i test.flv test.wmv
Through the above command, the "test.flv" video file is converted to "test.wmv" video file.
Note that you need the file "ffmpeg.exe" in the folder from where you invoke the above command.
And you can dynamically calculate the length of an flv video, using the function below:
<?php
function GetFLVDuration($file){
// get contents of a file into a string
if (file_exists($file)){
$handle = fopen($file, "r");
$contents = fread($handle, filesize($file));
fclose($handle);
//
if (strlen($contents) > 3){
if (substr($contents,0,3) == "FLV"){
$taglen = hexdec(bin2hex(substr($contents,strlen($contents)-3)));
if (strlen($contents) > $taglen){
$duration = hexdec(bin2hex(substr($contents,strlen($contents)-$taglen,3))) ;
return secondsToWords($duration/1000);
}
}
}
}
return false;
}
?>
An example of invoking the function:
<?php
$duration = GetFLVDuration("test.flv");
echo $duration;
?>
Note that the duration of the video is returned in seconds, which is passed to another function (secondsToWords) to get the output in a readable form (in minutes and seconds).
<?php
function secondsToWords($seconds)
{
/*** return value ***/
$ret = "";
/*** get the hours ***/
$hours = intval(intval($seconds) / 3600);
if($hours > 0)
{
$ret .= "$hours hours ";
}
/*** get the minutes ***/
$minutes = bcmod((intval($seconds) / 60),60);
if($hours > 0 || $minutes > 0)
{
$ret .= "$minutes minutes ";
}
/*** get the seconds ***/
$seconds = bcmod(intval($seconds),60);
$ret .= "$seconds seconds";
return $ret;
}
?>
However you can also get the duration of a wmv-converted flv video using the command line:
ffmpeg -i test.wmv
When you run this, you get a list of details and from that list, you can get the duration from the line, starting with: "Duration: "
For ex, Duration: 00:03:45.2 (means 3 minutes, 45 seconds)
Comments
Post a Comment