terça-feira, 12 de junho de 2007

txt2srt: Texto -> Legenda

Este script PHP converte arquivos txt para o formato de legenda srt.
Cada linha no arquivo txt será uma nova legenda.
É possível selecionar o tempo da 1a legenda, a duração de cada uma, e o intervalo entre elas.

Script:


/*
**
** txt2srt.php
**
*/

if ($argc < 2)
{
$erro = "
+-----------------------------------------------------------------------------+
| txt2srt.php |
| # php txt2srt.php [inicio] [duracao] [espacamento] |
| |
| arquivo a ser formatado para legenda |
| [inicio] legenda inicia em (minutos) (auto=0) |
| [duracao] duracao de cada legenda (segundos) (auto=5) |
| [espacamento] distancia entre as legendas (segundos) (auto=5) |
+-----------------------------------------------------------------------------+
\n";
}

$origem = $argv[1];
$destino = $origem.".srt";

$inicio = $argv[2]; //
$duracao = $argv[3]; //
$espaco = $argv[4]; //

// ajusta início
if (!$inicio) { $inicio = 0; }
if (!is_numeric($inicio)) {
$erro = " deve ser um numero em (minutos)\n";
} else {
$s0 = $inicio*60;
}

if (!$duracao) { $duracao = 5; } else { $duracao = round($duracao); }

if (!$espaco) { $espaco = 5; } else { $espaco = round($espaco); }

// inicia os arquivos
if (!file_exists($origem))
{
echo "Arquivo $origem nao existe\n";
exit;
} else {
$conteudo = file($origem);
}

if (is_writable($destino))
{
// echo "arquivo $destino existe\n";
if (!$arquivo = fopen($destino,'w')) {
echo "Erro abrindo o arquivo $destino\n";
exit;
}
} else {
echo "Criando o arquivo '$destino'... ";
if (!$arquivo = fopen($destino,'w')) {
echo "(falhou)\n";
exit;
} else {
echo "(ok)\n";
}
}

if ($erro) {
echo $erro;
} else {
echo "Formatando as legendas:";
foreach ($conteudo as $numero => $linha)
{
echo ".";
// echo "so= $s0\n";
$tempo0 = date("H:i:s", mktime(0,0,$s0)); /*echo "tempo0 = $tempo0\n";*/
$s0 += $duracao; // atualiza s0

$tempo1 = date("H:i:s", mktime(0,0,$s0)); /*echo "tempo1 = $tempo1\n";*/
$s0 += $espaco; // atualiza s0

$novalinha =
"$numero\n".
"$tempo0,000 --> $tempo1,999\n".
"$linha\n";

// echo $novalinha;
fwrite($arquivo, $novalinha);
}
echo "\n";
echo "$numero legendas foram adicionadas ao arquivo '$destino' com sucesso.\n";
echo "Obrigado por Utilizar o script 'txt2srt'\n";
echo "Desenvolvido por Jarbas Araujo \n";
}
fclose($arquivo);

?>


Como usá-lo ?
você precisa do php instalado.
Digite o comando:

#php txt2str arquivotxt

Nenhum comentário: