Skip to main content

Convert & Calculate the length of an flv video

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)

Comments

Popular posts from this blog

Joomla validate chrono forms using jquery

It is a common practice to use Chrono forms in our joomla site to setup various forms in the site, be it a contact us form, submit a ticket form, or whatever. I have set the option "validate form" to "No" under chronoform settings in admin panel, and also preferred to not include any js or css files. For validating the chrono forms, i prefer jquery. So first lets add jquery support in our joomla. It is quite simple: 1. Download jquery.js and jquery_min.js (1.4.2 version is enough) and place them in media/system/js folder of your joomla. 2. Edit libraries->joomla->html->html->behavior.php, and add the following function below the mootools() function: function jQuery($debug = null)     {         static $loaded;         global $mainframe;         // Only load once         if ($loaded) {    ...

Differences between php4 and php5

These are some of the differences i know between php4 and php5: 1. PHP5 supports more oops concepts like access specifiers and inheritance 2. we can pass objects by reference in php5 (using clone keyword) 3. Exception class included in PHP5 (try and catch) 4. More XML related functions like SimpleXML were included in PHP5 for easy  processing of XML data 5. PHP4 uses Zend engine 1.0 as a parser.PHP5 uses Zend engine 2.0 6. php 5 has improvements in design, security and stablity 7. Magic methods have been included in php5 8. Unified Constructors and Destructors in php5 9. There is a new error level defined as E_STRICT in php5  (notifies deprecated code) 10. Final keyword in php5 indicates that a method cannot be overridden by a  child Note: It is said that PHP5 has Backward compatibility issues with php4.

php loop images in a folder, display them

This code will loop all the images inside "images" folder and display them. For every 7 images, a new row is added. <table> <tr> <?php $photo_dir = "images"; $files = glob($photo_dir."/*.*"); for ($i=0; $i<count($files); $i++) { $j = $i+1; ?> <td height="25" align="center"> <?php $num = $files[$i]; $img_name = explode(".", basename($num)); echo '<a href="'.$num.'"> <img src="'.$num.'" width="120" height="120" style="border:4px solid #FFF;"></a>'; // .$img_name[0]; ?> </td> <?php if($j % 7 == 0) echo '</tr><tr>'; } ?> </tr> </table>