Forum Replies Created

Viewing 9 replies - 1 through 9 (of 9 total)
  • I get the same problem using All in One SEO 1.4.7.4 under WP 2.7. “Use Categories for META keywords” is Unchecked still, I get my TAGS in Keywords Meta Field.

    ..do to make xmoov.php, wordtube and jw player.swf to work in harmony?
    jw player.swf expects xmoov.php to be in the same directory.

    Here’s xmoov.php script that works for me – it needs to be in the /plugins/wordtube directory:

    <?php
    
    //------------------------------------------------------------------------------------------
    // MEDIA PATH
    //------------------------------------------------------------------------------------------
    // you can configure these settings to point to video files outside the public html folder.
    //
    // points to server root
    define('XMOOV_PATH_ROOT', '');
    //
    // points to the folder containing the video files.
    //define('XMOOV_PATH_FILES', '../../uploads/videos/');
    define('XMOOV_PATH_FILES', '');
    
    //------------------------------------------------------------------------------------------
    // BEHAVIOR
    //------------------------------------------------------------------------------------------
    //
    //set to TRUE to use bandwidth limiting.
    define('XMOOV_CONF_LIMIT_BANDWIDTH', FALSE);
    //
    //set to FALSE to prohibit caching of video files.
    define('XMOOV_CONF_ALLOW_FILE_CACHE', TRUE);
    
    //------------------------------------------------------------------------------------------
    // BANDWIDTH SETTINGS
    //------------------------------------------------------------------------------------------
    // these settings are only needed when using bandwidth limiting.
    //
    // bandwidth is limited my sending a limited amount of video data(XMOOV_BW_PACKET_SIZE),
    // in specified time intervals(XMOOV_BW_PACKET_INTERVAL).
    // avoid time intervals over 1.5 seconds for best results.
    //
    // you can also control bandwidth limiting via http command using your video player.
    // the function getBandwidthLimit($part) holds three preconfigured presets(low, mid, high),
    // which can be changed to meet your needs
    //
    //set how many kilobytes will be sent per time interval
    define('XMOOV_BW_PACKET_SIZE', 90);
    //
    //set the time interval in which data packets will be sent in seconds.
    define('XMOOV_BW_PACKET_INTERVAL', 0.3);
    //
    //set to TRUE to control bandwidth externally via http.
    define('XMOOV_CONF_ALLOW_DYNAMIC_BANDWIDTH', TRUE);
    
    //------------------------------------------------------------------------------------------
    // INCOMING GET VARIABLES CONFIGURATION
    //------------------------------------------------------------------------------------------
    //
    // use these settings to configure how video files, seek position and bandwidth settings are
    // accessed by your player
    //
    define('XMOOV_GET_FILE', 'file');
    define('XMOOV_GET_POSITION', 'start');
    define('XMOOV_GET_AUTHENTICATION', 'key');
    define('XMOOV_GET_BANDWIDTH', 'bw');
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // END SCRIPT CONFIGURATION - do not change anything beyond this point if you do not know what you are doing //
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    //------------------------------------------------------------------------------------------
    // PROCESS FILE REQUEST
    //------------------------------------------------------------------------------------------
    
    if(isset($_GET[XMOOV_GET_FILE]))
    {
      // PROCESS VARIABLES
      // get seek position - JWMP doesn't send pos on the first request
      $seekPos = isset($_GET[XMOOV_GET_POSITION]) ? intval($_GET[XMOOV_GET_POSITION]) : 0;
      // get file name
      $fileName = htmlspecialchars($_GET[XMOOV_GET_FILE]);
      // assemble file path
      $file = XMOOV_PATH_ROOT . XMOOV_PATH_FILES . $fileName;
      // assemble packet interval
      $packet_interval = (XMOOV_CONF_ALLOW_DYNAMIC_BANDWIDTH && isset($_GET[XMOOV_GET_BANDWIDTH])) ? getBandwidthLimit('interval') : XMOOV_BW_PACKET_INTERVAL;
      // assemble packet size
      $packet_size = ((XMOOV_CONF_ALLOW_DYNAMIC_BANDWIDTH && isset($_GET[XMOOV_GET_BANDWIDTH])) ? getBandwidthLimit('size') : XMOOV_BW_PACKET_SIZE) * 1042;
    
      // security improved by by TRUI www.trui.net
      if (!file_exists($file))
      {
        print('<b>ERROR:</b> xmoov-php could not find (' . $fileName . ') please check your settings.');
        exit();
      }
    
      if(file_exists($file) && strrchr($fileName, '.') == '.flv' && strlen($fileName) > 2 && !eregi(basename($_SERVER['PHP_SELF']), $fileName) && ereg('^[^./][^/]*$', $fileName))
      {
        $fh = fopen($file, 'rb') or die ('<b>ERROR:</b> xmoov-php could not open (' . $fileName . ')');
    
        $fileSize = filesize($file) - (($seekPos > 0) ? $seekPos + 1 : 0);
    
        // SEND HEADERS
        if(!XMOOV_CONF_ALLOW_FILE_CACHE)
        {
          // prohibit caching (different methods for different clients)
          session_cache_limiter("nocache");
          header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
          header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
          header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
          header("Pragma: no-cache");
        }
    
        // content headers
        header("Content-Type: video/x-flv");
        // header("Content-Disposition: attachment; filename=\"" . $fileName . "\"");
        header("Content-Length: " . $fileSize);
    
        // FLV file format header
        if($seekPos != 0)
        {
          print('FLV');
          print(pack('C', 1));
          print(pack('C', 1));
          print(pack('N', 9));
          print(pack('N', 9));
        }
    
        // seek to requested file position
        fseek($fh, $seekPos);
    
        // output file
        while(!feof($fh))
        {
          // use bandwidth limiting - by Terry
          if(XMOOV_CONF_LIMIT_BANDWIDTH)
          {
            // get start time
            list($usec, $sec) = explode(' ', microtime());
            $time_start = ((float)$usec + (float)$sec);
            // output packet
            print(fread($fh, $packet_size));
            // get end time
            list($usec, $sec) = explode(' ', microtime());
            $time_stop = ((float)$usec + (float)$sec);
            // wait if output is slower than $packet_interval
            $time_difference = $time_stop - $time_start;
            if($time_difference < (float)$packet_interval)
            {
              usleep((float)$packet_interval * 1000000 - (float)$time_difference * 1000000);
            }
          }
          else
          {
            // output file without bandwidth limiting
            while (!feof($fh))
            {
              print(fread($fh, 16384));
            }
          }
        }
      }
    }
    
    //------------------------------------------------------------------------------------------
    // DYNAMIC BANDWIDTH CONTROL
    //------------------------------------------------------------------------------------------
    //
    function getBandwidthLimit($part)
    {
      switch($part)
      {
        case 'interval' :
          switch($_GET[XMOOV_GET_BANDWIDTH])
            {
              case 'low' :
                return 1;
                break;
              case 'mid' :
                return 0.5;
                break;
              case 'high' :
                return 0.3;
                break;
              default :
                return XMOOV_BW_PACKET_INTERVAL;
                break;
            }
          break;
        case 'size' :
          switch($_GET[XMOOV_GET_BANDWIDTH])
          {
            case 'low' :
              return 10;
              break;
            case 'mid' :
              return 40;
              break;
            case 'high' :
              return 90;
              break;
            default :
              return XMOOV_BW_PACKET_SIZE;
              break;
          }
        break;
      }
    }
    
    ?>

    wordTube generates this flashvar:

    flashvars : {
    file : "http%3A%2F%2Fmydomain.com%2Fwp-content%2Fuploads%2Fvideos%2Ftest.flv",
    }

    How can we make wordTube trim the full path to URL in the file flashvar to look like this:

    flashvars : {
    file : "test.flv",
    }

    What should I

    Great question! xmoov.php should be part of wordTube next release (suggestion). I am trying to solve this issue too, so far I managed to make it work in a very dirty way, by placing the media files and xmoov.php in the plugins/wordtube directory, where the player.swf is, then changing the embed code wordtube generates, manually, in each post.
    The problem is that wordtube generate full path to the media file where xmoov.php and expects something like: file=media.flv&streamer=xmoov.php
    there must be more elegant way to do this. JW player expects xmoov.php to be in the same directory.

    2-brains

    (@2-brains)

    I have the same problem: when I add a wordTube player to a post with a single mp3 file, the links to the mp3 file is showing in the RSS feed of my blog. Is there a way not to expose the direct link to the mp3 file in the RSS feed?

    Great question, answer anyone?

    Thread Starter 2-brains

    (@2-brains)

    That’s great! Don’t forget to include the options in the tinymce ??

    …and of course, in the long run we’d love to see an integration/link between each photo and an actual page.

    Great idea nirsound – simple solution for now can be:

    Modify the “Full Size” link in thickbox-pack.js (located in wp-content/plugins/nextgen-gallery/thickbox/)
    [a href='”+url+”‘ title=’Full Size’] to link each photo ID with a WordPress Pages ID somehow…

    Anyone has an idea how to do this?

Viewing 9 replies - 1 through 9 (of 9 total)