• 24-11-2010, 17:47:31
    #1
    Arkadaşlar captions eklentisini kurduğumda srt uzantılı altyazıları sorunsuz şekilde video ile gösterebiliyorum. Fakat xml uzantılı altyazı dosyalarında sorun yaşıyorum. Xml uzantılı altyazı dosyası şu şekildeyken sorunsuz çalışıyor:

    <tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
      <head>
        <layout/>
      </head>
      <body>
        <div xml:id="captions">
          <p begin="00:00:08" end="00:00:10">- Nothing is going on.</p>
          <p begin="00:00:10.5" end="00:00:12.5">You liar!</p>
          <p begin="00:00:13.5" end="00:00:15">Are you?</p>
          <p begin="00:00:17" end="00:00:20">Violet, please!<br/>- I am not your babe!</p>
          <p begin="00:00:24" end="00:00:29">You stupid cow,<br/>look what you gone and done now, ay.</p>
          <p begin="00:00:34" end="00:00:36">Vi, please.<br/>- Leave me alone!</p>
          <p begin="00:00:36" end="00:00:38.5">- We need to talk.<br/>- Jason, are you deaf?!</p>
          <p begin="00:00:41" end="00:00:43">What's going on?</p>
          <p begin="00:00:43" end="00:00:45">Get out there and try to salvage this!</p>
        </div>
      </body>
    </tt>
    Fakat bu şekilde kodlanmışsa jwplayer altyazıyı göstermiyor:
    <titles>
    	<title id="1">
    		<time start="00:00:00,846" end="00:00:05,466"/>
    		<text1><![CDATA[Zaman beni ayakta bekliyor.]]></text1>
    	</title>
    
    	<title id="2">
    		<time start="00:00:00,846" end="00:00:05,466"/>
    		<text1><![CDATA[Zaman beni ayakta bekliyor.]]></text1>
    	</title>
    
    	<title id="3">
    		<time start="00:00:05,903" end="00:00:11,000"/>
    		<text1><![CDATA[Ama yeni bir yolculuk başlamak üzere]]></text1>
    	</title>
    
    	<title id="4">
    		<time start="00:00:05,903" end="00:00:11,000"/>
    		<text1><![CDATA[Ama yeni bir yolculuk başlamak üzere]]></text1>
    	</title>
    
    </titles>
    Yaklaşık 3 haftadır bu sorunla uğraşıyorum yardımcı olursanız gerçekten çok sevinirim.
  • 25-11-2010, 04:19:13
    #2
    Sorduğunuz sorunun cevabını kendiniz vermişsiniz.
    Jw playerin alt yazı dosyasını okuyabilmesi için üstteki gibi kodlanmış bir xml dosyası kullanmanız gerekir. Alt yazı formatınızı üstteki şekle sokarsanız çalışacaktır.
    Kolay Gelsin
  • 25-11-2010, 11:43:35
    #3
    gfxcm adlı üyeden alıntı: mesajı görüntüle
    Sorduğunuz sorunun cevabını kendiniz vermişsiniz.
    Jw playerin alt yazı dosyasını okuyabilmesi için üstteki gibi kodlanmış bir xml dosyası kullanmanız gerekir. Alt yazı formatınızı üstteki şekle sokarsanız çalışacaktır.
    Kolay Gelsin
    Engin bilgileriniz ile aydınlattığınız için teşekkürler, adam nasıl yapacağını sormuş zaten.
  • 25-11-2010, 11:46:23
    #4
    gfxcm adlı üyeden alıntı: mesajı görüntüle
    Sorduğunuz sorunun cevabını kendiniz vermişsiniz.
    Jw playerin alt yazı dosyasını okuyabilmesi için üstteki gibi kodlanmış bir xml dosyası kullanmanız gerekir. Alt yazı formatınızı üstteki şekle sokarsanız çalışacaktır.
    Kolay Gelsin
    Öncelikle cevabınız için teşekkürler. Elimde yaklaşık 1000 tane 2.şekilde kodlanmış altyazı dosyası var bunları teker teker üstteki şekle sokmak aylarımı alacağı bu konuyu açtım.Yani tam olarka istediğim jwplayer'a 2.şekildeki altyazıyı okutmak..
  • 25-11-2010, 12:10:24
    #5
    ikinci altyazıyı jw ye okutamazsınız ancak php ile tüm altyazılarınızı jwnin okuduğu formata dönüştürebilirsiniz.
  • 25-11-2010, 17:41:03
    #6
    victories adlı üyeden alıntı: mesajı görüntüle
    ikinci altyazıyı jw ye okutamazsınız ancak php ile tüm altyazılarınızı jwnin okuduğu formata dönüştürebilirsiniz.
    Sistem nasıl olacak acaba?
  • 25-11-2010, 22:38:28
    #7
    CyberCocuk adlı üyeden alıntı: mesajı görüntüle
    Sistem nasıl olacak acaba?
    aşağıdaki örnek kodu kendi altyazılarına uyarlayabilirsiniz.

    <?php
    
    // script to convert srt caption files to new-format (02-05-08) tt XML caption files
    $use_cdata_tags = true;
    $debug_output = true;
    
    // the directory to write the new files in
    // it must exist, be writeable, and be outside of the directory that is being scanned
    $new_directory = '../temp/';
    
    ////////////////////////////////// no user configuraton below this /////////////////////////////
    
    // get name or scan directory if it's a directory
    $filename = (isset($_GET["filename"])) ? strval($_GET["filename"]) : "./";
    
    // read each file into an array
    $it = new RecursiveDirectoryIterator("$filename");
    
    foreach(new RecursiveIteratorIterator($it) as $file)
    {
    
    // debug('Filename', $file);
    // debug('Ext', substr(strtolower($file), (strlen($file) - 4), 4));// exit;
    
      // check for .srt extension
      if(substr(strtolower($file), (strlen($file) - 4), 4) == '.srt')
      {
        $ttxml = "";
        $next_line_is_text = false;
    
        if($file_array = file($file))
        {
          // write tt , head, and div elements for the new file
          $ttxml .= "<tt xml:lang='en' xmlns='http://www.w3.org/2006/10/ttaf1' xmlns:tts='http://www.w3.org/2006/10/ttaf1#style'>\n";
          $ttxml .= "  <head>\n";
          $ttxml .= "  </head>\n";
          $ttxml .= "  <body>\n";
          $ttxml .= "    <div xml:id=\"captions\">\n";
    
          foreach($file_array as $line)
          {
    
    // debug('Line', $line);
    
            // if the next line is text, write the paragraph
            if($next_line_is_text)
            {
              // write new paragraph
              //               <p begin="00:08:01.50" end="00:08:07.50">Nothing is going on.</p>
              if($use_cdata_tags)
              {
                $ttxml .= "      <p begin=\"" . $begin . "\" end=\"" . $end . "\"><![CDATA[" . rtrim($line) . "]]></p>\n";
              }
              else
              {
                $ttxml .= "      <p begin=\"" . $begin . "\" end=\"" . $end . "\">" . rtrim($line) . "</p>\n";
              }
              $next_line_is_text = false;
    
    // debug('Text', $line);
    // debug('ttxml', $ttxml); exit;
    
            }
    
            // get begin and end
            //                00  :  00  :  32  ,   000   -->   00  :  00  :  37  ,   000
            if(preg_match('/(\d\d):(\d\d):(\d\d),(\d\d\d) --> (\d\d):(\d\d):(\d\d),(\d\d\d)/', $line, $match))
            {
              $begin = $match[1] . ":" . $match[2] . ":" . $match[3] . "." . $match[4];
              $end   = $match[5] . ":" . $match[6] . ":" . $match[7] . "." . $match[8];
              $next_line_is_text = true;
            }
          }
    
          // write ending tags
          $ttxml .= "    </div>\n";
          $ttxml .= "  </body\n";
          $ttxml .= "</tt>\n";
    
          // write new file
          $new_file = $new_directory . substr($file, 0, (strlen($file) - 4)) . '.xml';
          $fh = fopen($new_file, 'w') or die('Can\'t open: ' . $new_file);
          fwrite($fh, $ttxml) or die('Can\'t write to: ' . $new_file);
          fclose($fh);
        }
      }
    }
    
    
    function debug($title, $value)
    {
      global $debug_output;
    
      if ($debug_output)
      {
        print "<pre>";
        if (is_array($value))
        {
          print $title . ":\n";
          print_r($value);
        }
        else
        {
          print $title . ": " . $value;
        }
        print "</pre>\n";
      }
    }
    
    ?>

    Çevrimden önceki altyazı

    Alıntı
    1
    00:00:16,000 --> 00:00:19,000
    <font size="12" face="Verdana">Your fingertips across my skin</font>

    2
    00:00:21,000 --> 00:00:24,000
    <font size="12" face="Verdana">The palm trees swaying in the wind</font>
    Çevrimden sonraki

    Alıntı
    <tt xml:lang='en' xmlns='http://www.w3.org/2006/10/ttaf1' xmlns:tts='http://www.w3.org/2006/10/ttaf1#style'>
    <head>
    </head>
    <body>
    <div xml:id="captions">
    <p begin="00:00:16.000" end="00:00:19.000"><![CDATA[<font size="12" face="Verdana">Your fingertips across my skin</font>]]></p>
    <p begin="00:00:21.000" end="00:00:24.000"><![CDATA[<font size="12" face="Verdana">The palm trees swaying in the wind</font>]]></p>
    ...
    </div>
    </body
    </tt>