Samstag, 22. Mai 2010

Openshot AVCHD ruckelt

Beim mir tritt beim Schneiden von AVCHD-Files meiner Videokamera auf meinem 2.4GHz Quadcore immer noch starkes Ruckeln bei der Vorschau auf, weshalb das Schneiden fast nicht möglich ist.
Durch Konvertierung des AVCHD-Files in ein 720p MP4-AVI File wird das Video praktisch ohne Verlust in ein verwendbares Format umgewandelt wo kein Ruckeln mehr auftritt.
Die Umwandlung mache ich auf einem Ubuntu 10.04LTS mit:

ffmpeg -i quelldatei.MTS -r 25 -s hd720 -b 5000k -acodec copy -vcodec mpeg4 zieldatei.avi 

Um die Sache zu Vereinfachen habe ich den Aufruf in einem Perl-Scripts verpackt, welches alle angegebenen MTS-Dateien konvertiert und leicht mit find automatisiert werden kann!

#!/usr/bin/perl

# kopiere das scripts nach /usr/bin und mach es ausführbar

# sudo cp mtsconv.pl /usr/bin/mtsconv.pl
# sudo chmod 755 /usr/bin/mtsconv.pl

# am einfachsten zu kombinieren mit find
# find . -name "*.MTS" -exec mtsconv.pl "{}" ";"

use strict;

my @dateiliste;
my $loeschen = 0;

sub help
{
print "
***************************************************************

Script wandelt alle angegebenen .MTS-Dateien in .avi Dateien um
damit bei Openshot beim Schneiden kein Ruckeln auftritt!

Aufruf: mtsconv.pl [parameter] Dateiname [Dateiname ...]

Parameter:
-d Quelldateien nach dem Konvertieren löschen


am einfachsten zu kombinieren mit find:
find . -name \"*.MTS\" -exec mtsconv.pl \"{}\" \";\"

**************************************************************
";
exit;
}

if ($#ARGV<0) { help(); }

foreach(@ARGV)
{
if ($_ eq '-d')
{
$loeschen=1;
} elsif ($_ eq "-h" || $_ eq "--help")
{
help();
} elsif ($_ =~ m/^-.*/)
{
print "Parameter $_ ist nicht definiert!\n";
exit;
} else {
push(@dateiliste,$_);
}
}

if ($#dateiliste<0) { help(); }

foreach(@dateiliste)
{
if (($_ =~ m/^(.*)\.[Mm][Tt][Ss]/) && (-f $_))
{
my $file = $1;
if (-f $file.'.avi') { `rm '$file.avi'`;}
my $bef = "ffmpeg -i '$_' -r 25 -s hd720 -b 5000k -acodec copy -vcodec mpeg4 '$file.avi'";
print "$bef\n";
`$bef`;
$bef = "touch -r '$_' '$file.avi'";
print "$bef\n";
`$bef`;
if ($loeschen) { `rm $_`; }
}
}

Dienstag, 11. Mai 2010

Debian-Server 5.04 Lenny

Debian in eine Aktive-Directory-Domain integrieren : howto