LINUX.ORG.RU

автоопределение кодировки субтитров в mplayer.

 , , , ,


1

0

В общем давно меня заботил вопрос об автоматическом определении кодировок для сабов к аниме :) В итоге пришлось написать небольшой кoстылек:

#!/usr/bin/perl

use strict;
use Encode::Detect::Detector;

my %SUB = ("ass" => ["-ass"], "srt" => []);
my %ENC = ('utf-8' => 'utf8', 'windows-1251' => 'cp1251');
my $DEFAULT_ENC = "utf8";

foreach (@ARGV) {
	my ($sname, $e, $t) = /^(.*)\.\w+$/;
	foreach (keys %SUB) {
		my $sfile = $sname . "." . $_;
		if ( -f $sfile) {
			my %enc;
			$t = $_;
			open SFH, $sfile;
			while (<SFH>) {
				my $e = Encode::Detect::Detector::detect($_);
				$enc{$e}++ if defined $ENC{$e};
			}
			$e = $ENC{lc((sort {$enc{$b} <=> $enc{$a}} keys %enc)[0])};
			last;
		}
	}
	system  "mplayer", (defined $SUB{$t} ? @{$SUB{$t}} : @{[]}), "-subcp", $e || $DEFAULT_ENC, $_; 
}

в доках к mplayer ничего про автоопределение кодировок я не нашел, интересно кто и как решает такие проблемы...

★★★★

Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от insfel

ну вот, походу как я и подозревал :)

спасибо

Drolyk ★★★★
() автор топика

Поставь aegisub, можно и кодировку, и особо творчески сделанные стили когда нужно поправить.

Worron ★★★
()
Ответ на: комментарий от Worron

да я из аниме ток наруто и кусок смотрю, кроме них что-то ооочень редко :)

Drolyk ★★★★
() автор топика
2 сентября 2012 г.
Ответ на: комментарий от insfel

а использовать это или чуть переделав в аудио\видеоплеерах можно? чтобы теги правильно отображались, и в андроид плеерах вообще проблема(

anonymous
()
Ответ на: комментарий от anonymous

У меня нет адроида :(

чуть переделав

Дак переделай, если можешь.

insfel
()
Ответ на: комментарий от anonymous

> и в андроид плеерах вообще проблема(

в смысле аудиоплеерах? есть такое. единственный плеер (из опробованных), который детектит теги, как бы криво они не были записаны — MortPlayer, только интерфейс у него не очень…

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.