Frage von mschuelbe:Ich habe ein Problem mit DaVinci Resolve. Wenn ich einen Ordner mit einer zusammenhängenden DNG-Sequenz als Medium importiere, erstellt das Programm keinen ebenfalls zusammenhängenden Clip, sondern mehrere - gleich lange, sehr kurze - Einzelclips. Diese sind nicht mal in der richtigen Reihenfolge, wenn ich sie in die Timeline ziehe, sondern ich muss sie mühsam ordnen, um den ursprünglich zusammenhängenden Shot wieder zusammenzufügen.
Das kann doch nicht im Sinne des Erfinders sein.
Antwort von mschuelbe:
Ach ja, und das Audio wird auch getrennt angezeigt. Witzig ist auch, dass der Import bei manchen Clips (aber selten) richtig funktioniert)
So sieht das dann aus:
Screenshot 2017-04-16 08.48.13.png
Links zwei richtig importierte Clips. Dann einmal Audio und vier zerhackstückelte Clips.
Antwort von cantsin:
Woher stammt Dein Cinema DNG-Material?
Für mich sieht das so aus, als ob es da bei der Aufnahme Framedrops (wegen eines zu langsamen Aufnahmemediums) gegeben hätte, weshalb Resolve keine zusammenhängenden Clips mehr importieren kann. Überprüfen kannst Du das, indem Du den betroffenen Clip-Ordner öffnest und nachsiehst, ob die Nummerierung der DNG-Einzeldateien Lücken hat.
Antwort von klusterdegenerierung:
Ja sehe ich auch so. Wenn es mit einem Shogun passiert ist, geht ja zb fasst nur die Sandisk Extreme Pro,
ansonsten passiert genau das was cantsin schreibt.
Sobald beim Shogun einmal das Kängeruh Symbol links erscheint, wars das.
Sehe Dir doch mal die Dateien in Bridge an und scroll sie mal wie ein film durch, dann kannst Du besser sehen ob frames fehlen.
Antwort von cantsin:
Falls sich die Framedrop-Diagnose bestätigen sollte, hätte ich noch ein (in Perl) selbstgeschriebenes Mini-Utility, das alle fehlenden Frames eines CinemaDNG-Clips durch Kopieren des vorhergehenden Frames ersetzt:
#!/usr/bin/perl
=head1 NAME
fixCinemaDNG - fixes CinemaDNG directories with dropped frames
=head1 SYNOPSIS
fixcinemadng <directory>
=head2 Examples
B<cd some_cinemadng_directory; fixcinemadng .>
Go into one CinemaDNG directory, fix all missing files.
=head1 DESCRIPTION
fixCinemaDNG scans a CinemaDNG directory for missing files/frames (according to the file numbering) and replaces each missing frame with the previous frame.
This will allow to open and process CinemaDNG in applications that only accpet CinemaDNG directories without missing DNG files, such as DaVinci Resolve.
=head1 AUTHOR
fcr <info@pleintekst.nl>
=head VERSION & LICENSE
v0.9, 2014
Public domain
=cut
use File::Copy qw(copy);
if (@ARGV) {$dir = $ARGV ; $dir =~ s/\|//g } else {$dir = '.'}
opendir (DIR, $dir) or die ("Could not access current directory.\n");
while ($file = readdir(DIR)) {
if ($file =~ /dng$/i) {
$frame_number = $file;
$frame_number =~ s/(.*_)(+)\.dng/\2/;
if ($counter == 0) {
$file_name_prefix = $1;
}
push @frames, $frame_number;
$counter++;
}
}
closedir (DIR);
$counter = 0;
@frames = sort {$a <=> $b} @frames;
foreach $frame_number(@frames) {
if ($counter > 0) {
$frame_diff = $frame_number-$frame_number_old;
if (($frame_diff) > 1) {
print "filling dropped frames between frame $frame_number_old & $frame_number...\n";
$old_file = $file_name_prefix . $frame_number_old . '.dng';
for ($x = ($frame_number_old+1); $x < $frame_number; $x++) {
$new_file = $file_name_prefix . sprintf("%06d", $x) . '.dng';
copy $old_file, $new_file;
}
}
}
$frame_number_old = $frame_number;
$counter++;
}
Das Script kann auch
hier heruntergeladen werden.
(Auf MacOS und Linux einfach sichern und auf der Kommandozeile mit "perl fixcinemadng <ordner>" ausführen. Kurzanleitung per "perldoc fixcinemadng". Bei Windows braucht man eine Perl- oder Cygwin-Installation, um das Script ausführen zu können.)
Antwort von mschuelbe:
Also Leute, vielen Dank, vor allem für das Script – das werde ich mal ausprobieren.
Dummer Anfängerfehler, ich hätte die Optionen "Stop Record if Card drops Frame" und "Record RAW on 2 Cards" auswählen müssen.
Natürlich habe ich mehrere SanDisk Extreme.
Antwort von mschuelbe:
Ich habe auf dem PC "Strawberry" und "Perl64" installiert, aber es funktioniert leider nicht. Ich meine, das Script startet überhaupt nicht.
Was mache ich falsch?
cantsin hat geschrieben:
Falls sich die Framedrop-Diagnose bestätigen sollte, hätte ich noch ein (in Perl) selbstgeschriebenes Mini-Utility, das alle fehlenden Frames eines CinemaDNG-Clips durch Kopieren des vorhergehenden Frames ersetzt:
#!/usr/bin/perl
=head1 NAME
fixCinemaDNG - fixes CinemaDNG directories with dropped frames
=head1 SYNOPSIS
fixcinemadng <directory>
=head2 Examples
B<cd some_cinemadng_directory; fixcinemadng .>
Go into one CinemaDNG directory, fix all missing files.
=head1 DESCRIPTION
fixCinemaDNG scans a CinemaDNG directory for missing files/frames (according to the file numbering) and replaces each missing frame with the previous frame.
This will allow to open and process CinemaDNG in applications that only accpet CinemaDNG directories without missing DNG files, such as DaVinci Resolve.
=head1 AUTHOR
fcr <info@pleintekst.nl>
=head VERSION & LICENSE
v0.9, 2014
Public domain
=cut
use File::Copy qw(copy);
if (@ARGV) {$dir = $ARGV ; $dir =~ s/\|//g } else {$dir = '.'}
opendir (DIR, $dir) or die ("Could not access current directory.\n");
while ($file = readdir(DIR)) {
if ($file =~ /dng$/i) {
$frame_number = $file;
$frame_number =~ s/(.*_)(+)\.dng/\2/;
if ($counter == 0) {
$file_name_prefix = $1;
}
push @frames, $frame_number;
$counter++;
}
}
closedir (DIR);
$counter = 0;
@frames = sort {$a <=> $b} @frames;
foreach $frame_number(@frames) {
if ($counter > 0) {
$frame_diff = $frame_number-$frame_number_old;
if (($frame_diff) > 1) {
print "filling dropped frames between frame $frame_number_old & $frame_number...\n";
$old_file = $file_name_prefix . $frame_number_old . '.dng';
for ($x = ($frame_number_old+1); $x < $frame_number; $x++) {
$new_file = $file_name_prefix . sprintf("%06d", $x) . '.dng';
copy $old_file, $new_file;
}
}
}
$frame_number_old = $frame_number;
$counter++;
}
Das Script kann auch hier heruntergeladen werden.
(Auf MacOS und Linux einfach sichern und auf der Kommandozeile mit "perl fixcinemadng <ordner>" ausführen. Kurzanleitung per "perldoc fixcinemadng". Bei Windows braucht man eine Perl- oder Cygwin-Installation, um das Script ausführen zu können.)
 |
Antwort von cantsin:
mschuelbe hat geschrieben:
Ich habe auf dem PC "Strawberry" und "Perl64" installiert, aber es funktioniert leider nicht. Ich meine, das Script startet überhaupt nicht.
Was mache ich falsch?
Perl-Scripts laufen nur in einer Terminal-Kommandozeilenumgebung wie dem Windows Command Prompt, der Windows Power Shell oder Cygwin. Du musst das Skript per Tastatureingabe im jeweiligen Terminal ausführen (und dabei auch die Grundbedienung der Kommandozeilenumgebung kennen).