drslump / flv4php

Automatically exported from code.google.com/p/flv4php
0 stars 0 forks source link

Really long flash videos don't work #2

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
As it is right now with play.php and test2.php, you can't use a really long 
flash video with the 
toolset, because you're doing number_format on the timestamps.  This is fine up 
until you reach 
999, but as soon as you go over 1000 and php starts injecting a comma (1,000) 
playback gets all 
screwy. 

Original issue reported on code.google.com by cmcfad...@gmail.com on 16 Jul 2007 at 3:13

GoogleCodeExporter commented 9 years ago
What version are you using ?, and are you talking about the number in the array 
? or
the timestamp ?, also is it the "times" or "filepositions" ? this is two 
seperat thing'

Since your talking about test2.php, i asume your talking about the one in 
trunk. the
php 5 version. but personaly i have only been working on the php 4 version you 
find
in branch. this version is much more up to date and has alot more features. can 
find
doc and some tutorials on fanno.dk . since i dont have access to php 5 i cant 
change
the php 5 version. and i cant realy know 4 sure if there is an error.

However i will be happy to do anything i cant to help you.

"times" is the time in seconds, eg : 2.384 2 seconds and 384
"filepositions" is the location inside the file eg 105392 -- > off 2.384

This format is not something we made up, this is how macromedia set it up.. way 
back.
you can play a video without any keyframes, you just cant seek. metadata 
keyframe
array is used to seek. 

      ["keyframes"]=>
      array(2) {
        ["times"]=>
        array(88) {
          [0]=>
          float(0)
          [1]=>
          float(2.384)
........
        }
        ["filepositions"]=>
        array(88) {
          [0]=>
          float(1924)
          [1]=>
          float(105392)
....
        }
      }
    }

I hope that this was of help to you, and would like to know if you find out 
anytihng.

Original comment by fan...@gmail.com on 16 Jul 2007 at 2:57

GoogleCodeExporter commented 9 years ago
I was indeed using the php5 version.  I've taken a look at the php4 branch now 
(php4 is preferable to me 
anyways).  Am I missing something, or does it not currently inject all the 
keyframe info necessary for seeking 
within a stream?  

The issue I was referring to was line 39 (or thereabouts) of test2.php, $ts = 
number_format($tag-
>timestamp/1000, 3);.  That'll make keyframes that flash doesn't seem to like 
(because of the comma) when 
timestamp goes over 1000.

Original comment by cmcfad...@gmail.com on 16 Jul 2007 at 5:41

GoogleCodeExporter commented 9 years ago
at default it wont change the metadata other than changing.
        $buffMetaData['metadatacreator'] = 'FLV Editor for PHP '.FLV_VERSION.' (Project:
Flv4php)';
        $buffMetaData['creator'] = 'FLV Editor for PHP '.FLV_VERSION." (Project: Flv4php)";
        $buffMetaData['metadatadate'] = gmdate('Y-m-d\TH:i:s') . '.000Z';

if the metadata keyframes are not correct you will have to make version of the
metadata and tell it to make it with new metadata like so:

  function playFlv($limitSpeed = 0,$seekat = 0,$newMetaData = false,$merge = true)...
$newMetaData would be an array with the new metadata. That can have whatever 
you want
in it, correct list of the keyframes and such. getMetaData() would give you the
original metadata.

NOTE: you CAN'T just tell the flv that you want a frame to be keyframe by 
changing
the metadata. so if the flv has no keyframes you CANT seek. first frame is 
ALWAYS a
keyframe.

let me know if your still havinf problems, of so i can fix something if ts 
broken and
such =)

Original comment by fan...@gmail.com on 16 Jul 2007 at 7:43