🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.rec.videokamery
Article #134204

Re: O wyższości D8

#134204
From: Piotrne
Date: Mon, 14 Mar 2011 19:00
97 lines
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-mail
References: <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