Article View: alt.pl.rec.videokamery
Article #134204Re: O wyższości D8
From: Piotrne
Date: Mon, 14 Mar 2011 19:00
Date: Mon, 14 Mar 2011 19:00
97 lines
4432 bytes
4432 bytes
rAniel pisze:
> Teraz - po przesiadce na kamerę SD z HDD - pracowicie dodaję ręcznie do
> początku każdej sceny tą samą informację i wzdycham za starą kamerą :(
>
> Czy jest jakiś sposób na zautomatyzowanie tego procesu?
Ja robię tak: mam nagrania w formacie .mp4, zgromadzone w jednym
katalogu. Jeden plik to jedno ujęcie, tak więc nie trzeba tu
niczego łączyć ani dzielić. Zakładam, że na początku każdego
ujęcia wyświetlę przez 2 sekundy datę i czas (od sekundy 1.0 do 3.0).
Najpierw używam skryptu w języku Perl do przejrzenia wszystkich
plików o nazwach *.mp4. Dla każdego takiego pliku odczytuję
datę i czas powstania i generuję odpowiedni plik .avs dla Avisyntha,
nakładający poleceniem Subtitle napis w lewym dolnym rogu.
Dodatkowo w tym skrypcie zapisane jest skalowanie obrazu
i inne operacje. Potem rekompresuję wszystkie .avs do xvid
albo innego formatu przy użyciu VirtualDub i zainstalowanych
kodeków.
Tak wygląda skrypt w Perlu:
===============================================
use warnings;
use strict;
use File::Basename;
use File::stat;
use Time::localtime;
use Time::Local;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst,$czas);
my $i;
my @files=glob("*.mp4"); # odczyt zawartości katalogu - tylko pliki mp4
my $fname;
foreach $fname (@files)
{
my $fileBaseName;
my $dirName;
my $fileExtension;
($fileBaseName, $dirName, $fileExtension) = fileparse($fname, ('\.[^.]+$') );
my $outfname = $dirName."g".$fileBaseName."_1080p60.avs";
print $outfname."\n";
my $datetime_string1;
my $datetime_string2;
my $ftime = stat($fname)->mtime; # czas utworzenia pliku w sekundach od roku 1970
# tutaj ewentualna korekta czasu w sekundach (gdyby zegar kamery był źle ustawiony):
$ftime += 15;
$datetime_string1 = prettyd2($ftime); # pierwsza sekunda filmu
$ftime++;
$datetime_string2 = prettyd2($ftime); # druga sekunda filmu
open FILE, ">", $outfname or die "Error opening ".$outfname." for writing\n";
print FILE "# oryginalny film: 60fps progressive\n";
print FILE "file = \"$dirName$fileBaseName.mp4\"\n";
print FILE "directshowsource(file)\n";
print FILE "Subtitle(\"$datetime_string1\",80,960,50,99,\"Arial\",60,\$ffffff)\n";
print FILE "Subtitle(\"$datetime_string2\",80,960,100,149,\"Arial\",60,\$ffffff)\n";
close FILE;
}
# usage: $string = prettydate( [$time_t] );
# omit parameter for current time/date
sub prettydate {
@_ = localtime(shift || time);
return(sprintf("%02d:%02d %02d/%02d/%04d", @_[2,1], $_[4]+1, $_[3], $_[5]+1900));
}
sub prettyd2 {
my $mtime = shift;
$czas = localtime($mtime);
$year = $czas->year() + 1900;
$mon = $czas->mon() + 1;
$mday = $czas->mday();
$sec = $czas->sec();
$min = $czas->min();
$hour = $czas->hour();
return sprintf("%4d-%02d-%02d %d:%02d:%02d",$year,$mon,$mday,$hour,$min,$sec);
}
===============================================
a tak wygenerowany przez niego jeden ze skryptów .avs:
===============================================
# oryginalny film: 60fps progressive
file = ".\SANY0325.mp4"
directshowsource(file)
Subtitle("2011-02-07 15:53:31",80,960,50,99,"Arial",60,$ffffff)
Subtitle("2011-02-07 15:53:32",80,960,100,149,"Arial",60,$ffffff)
===============================================
P.
Technical Details
Message-ID:
<illokv$hm5$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!news2.glorb.com!nx02.iad01.newshosting.com!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.onet.pl!.POSTED!not-for-mailReferences:
<4d75e9eb$0$2497$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!news2.glorb.com!nx02.iad01.newshosting.com!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.onet.pl!.POSTED!not-for-mail From: Piotrne <piotr23ne@poczta.onet.pl> Newsgroups: alt.pl.rec.videokamery Subject: Re: O wyższości D8 Date: Mon, 14 Mar 2011 20:00:47 +0100 Organization: http://onet.pl Lines: 97 Message-ID: <illokv$hm5$1@news.onet.pl> References: <4d75e9eb$0$2497$65785112@news.neostrada.pl> NNTP-Posting-Host: pc-nest02-68.sikornik.net Mime-Version: 1.0 X-Trace: news.onet.pl 1300129247 18117 91.123.219.68 (14 Mar 2011 19:00:47 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Mon, 14 Mar 2011 19:00:47 +0000 (UTC) User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) In-Reply-To: <4d75e9eb$0$2497$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit