PHP Classes

File: examples/timecodes.php

Recommend this page to a friend!
  Classes of Oliver Lillie   PHP Video Toolkit   examples/timecodes.php   Download  
File: examples/timecodes.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Video Toolkit
Manipulate and convert videos with ffmpeg program
Author: By
Last change: added 360 timecode example #57
fixed issue with timecodes where the timecodes were not always correctly manipulated

Signed-off-by: Oliver Lillie <buggedcom@gmail.com>
added default namespace to examples as it makes them clearer
Date: 1 year ago
Size: 3,388 bytes
 

Contents

Class file image Download
<?php

   
namespace PHPVideoToolkit;

    include_once
'./includes/bootstrap.php';
   
    try
    {
        echo
'<h1>Timecodes</h1>';
        echo
'<hr />';
        echo
'<h2>Setting Timecode value via constructor</h2>';
       
$timecode = new Timecode(102.34);
        echo
'new Timecode(102.34); = '.$timecode.'<br />';
       
$timecode = new Timecode(102.34, Timecode::INPUT_FORMAT_SECONDS);
        echo
'new Timecode(102.34, Timecode::INPUT_FORMAT_SECONDS); = '.$timecode.'<br />';
       
$timecode = new Timecode(1.705666667, Timecode::INPUT_FORMAT_MINUTES);
        echo
'new Timecode(1.705666667, Timecode::INPUT_FORMAT_MINUTES); = '.$timecode.'<br />';
       
$timecode = new Timecode(.028427778, Timecode::INPUT_FORMAT_HOURS);
        echo
'new Timecode(.028427778, Timecode::INPUT_FORMAT_HOURS); = '.$timecode.'<br />';
       
$timecode = new Timecode('00:01:42.34', Timecode::INPUT_FORMAT_TIMECODE);
        echo
'new Timecode(\'00:01:42.34\', Timecode::INPUT_FORMAT_TIMECODE); = '.$timecode.'<br />';
       
$timecode = new Timecode(60);
        echo
'new Timecode(60); = '.$timecode.'<br />';
       
$timecode = new Timecode(360);
        echo
'new Timecode(360); = '.$timecode.'<br />';
       
        echo
'<hr />';
        echo
'<h2>Adjusting timecode values</h2>';
       
       
$timecode = new Timecode('00:01:42.34', Timecode::INPUT_FORMAT_TIMECODE, 24);
        echo
'$timecode = new Timecode(\'00:01:42.34\', Timecode::INPUT_FORMAT_TIMECODE); = '.$timecode.'<br />';
       
$adjustments = array(
            array(
15, 'hours', true),
            array(-
54102.34, 'seconds', true),
            array(-
99, 'milliseconds', true),
            array(
59, 'seconds', true),
            array(
1, 'seconds', false),
            array(
59, 'seconds', true),
            array(
999, 'milliseconds', true),
            array(
1, 'milliseconds', true),
            array(
48, 'frames', false),
            array(-
15, 'frames', true),
            array(-
1, 'seconds', true),
            array(-
375, 'milliseconds', true),
        );
        foreach (
$adjustments as $value)
        {
            if(
$value[2] === true)
            {
               
$timecode->{$value[1]} += $value[0];
                echo
'$timecode->'.$value[1].' += '.$value[0].'; // = '.$timecode->getTimecode('%hh:%mm:%ss:%ms').'<br />';
            }
            else
            {
                echo
'<Br />$timecode->reset();<br />';
               
$timecode->reset();
               
$timecode->{$value[1]} = $value[0];
                echo
'$timecode->'.$value[1].' = '.$value[0].'; // = '.$timecode->getTimecode('%hh:%mm:%ss:%ms').'<br />';
            }
        }
       
        echo
'<hr />';
        echo
'<h2>Setting a timecode value</h2>';

       
$timecode->setSeconds(193.7);
        echo
'$timecode->setSeconds(193.7); = '.$timecode.'<br />';

       
$timecode->setTimecode('12:45:39.01');
        echo
'<br /><strong>IMPORTANT: Notice the difference between total_seconds and seconds</strong><br />$timecode->setTimecode(\'12:45:39.01\'); <br />';
        echo
'$timecode->total_seconds = '.$timecode->total_seconds.'<br />';
        echo
'$timecode->seconds = '.$timecode->seconds.'<br />';
       
    }
    catch(
Exception $e)
    {
        echo
'<h1>Error</h1>';
       
Trace::vars($e->getMessage());
        echo
'<h2>Exception</h2>';
       
Trace::vars($e);
    }