Hallo Liste Ich hab auf meinem SuSE8.1 System die notwendigen Pakete zu dvdrip und das Programm dvdrip selbst von http://packman.links2linux.de/ geladen. Das rippen der DVD klappt auch wunderbar. Aber beim encodieren mit transcode gibt es folgende Fehlermeldung: --------------------schnipp------------------------- An internal exception was thrown! The error message was: can't write /home/doitux/tmp/unnamed/avi/001/unnamed-001.dvdrip-info at /usr/lib/perl5/site_perl/5.8.0/Video/DVDRip/InfoFile.pm line 259. ------------------schnapp-------------------------- in der Datei /usr/lib/perl5/site_perl/5.8.0/Video/DVDRip/InfoFile.pm steht bei Zeile 259 folgendes -------------------schnipp---------------------------- sub write_fields { my $self = shift; my $filename = $self->filename; my $fh = FileHandle->new; open ($fh, "> $filename") or die "can't write $filename"; print $fh "# Movie information file. Generated by dvd::rip; http://www.exit1.org/dvdrip\n"; -----------------schnapp-------------------------- kann mir jemand sagen wie dieses Problem zu lösen ist? gruß felix _________________________________ mailto:f.hammer@web.de ~ NO HTML http://www.das-duo.net.tc - veni, vidi, linux - _________________________________
Hi all, Am Freitag, 6. Dezember 2002 17:40 schrieb Felix Hammer:
Ich hab auf meinem SuSE8.1 System die notwendigen Pakete zu dvdrip und das Programm dvdrip selbst von http://packman.links2linux.de/ geladen.
Das kenne ich nicht, aber kenne ein wenig Perl... [...]
can't write /* $filename ???? */
"Kann nicht schreiben", aber weißt Du schon selber :)
/home/doitux/tmp/unnamed/avi/001/unnamed-001.dvdrip-info at /usr/lib/perl5/site_perl/5.8.0/Video/DVDRip/InfoFile.pm line 259. ------------------schnapp--------------------------
in der Datei /usr/lib/perl5/site_perl/5.8.0/Video/DVDRip/InfoFile.pm steht bei Zeile 259 folgendes
-------------------schnipp---------------------------- sub write_fields { my $self = shift;
my $filename = $self->filename;
my $fh = FileHandle->new; open ($fh, "> $filename") or die "can't write $filename"; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ist der Dateiname gesetzt? Das ist die obige Fehlermeldung, sollte den Dateinamen auch ausgeben!
print $fh "# Movie information file. Generated by dvd::rip; http://www.exit1.org/dvdrip\n"; -----------------schnapp--------------------------
kann mir jemand sagen wie dieses Problem zu lösen ist?
Ich denke, daß das Modul irgendwo $filename setzen muß, frag mich nicht wo das initilisiert wird, aber IMHO fehlt das. Kannst Du $filename auf der Kommandozeile übergeben, oder im script irgendwo setzen? bYe Andre
Am Freitag, 6. Dezember 2002 18:26 schrieb Andre Heine:
Kannst Du $filename auf der Kommandozeile übergeben, oder im script irgendwo setzen?
also im script wird $filename schon definiert aber so genau sehe ich da auch nicht durch. Hier ist das Script ich werd die Zeile 259 nochmal hervorheben ------------------------------------------------------------------------------------------------------------------ package Video::DVDRip::InfoFile; use base Video::DVDRip::Base; use Carp; use strict; use FileHandle; sub title { shift->{title} } sub filename { shift->{filename} } sub fields { shift->{fields} } sub max_name_length { shift->{max_name_length} } sub set_title { shift->{title} = $_[1] } sub set_filename { shift->{filename} = $_[1] } sub set_fields { shift->{fields} = $_[1] } sub set_max_name_length { shift->{max_name_length} = $_[1] } sub new { my $class = shift; my %par = @_; my ($title, $filename) = @par{'title','filename'}; croak "title must be set" if not $title; $filename ||= $title->info_file; my $self = { title => $title, filename => $filename, fh => undef, fields => [], }; return bless $self, $class; } sub write { my $self = shift; my $title = $self->title; $self->init_fields; # General ---------------------------------------------------- $self->add_head ( name => "General", ); $self->add_field ( name => "Title", value => $title->project->name, ); $self->add_field ( name => "Data source", value => "DVD", ); $self->add_field ( name => "DVD title number", value => $title->nr, ); $self->add_field ( name => "Runtime", value => $self->format_time ( time => int ($title->get_transcode_frame_cnt / $title->tc_video_framerate) ), ); # Video ------------------------------------------------------ $self->add_head ( name => "Video", ); $self->add_field ( name => "Video format", value => uc($title->video_mode), ); $self->add_field ( name => "FPS", value => $title->tc_video_framerate, ); $self->add_field ( name => "Size", value => sprintf ( "%d x %d", $title->get_transcoded_video_width_height ) ); $self->add_field ( name => "Video bitrate (kbps)", value => $title->tc_video_bitrate, ); $self->add_field ( name => "Video codec", value => $title->tc_video_codec ); $self->add_field ( name => "AF6 codec", value => $title->tc_video_af6_codec ) if $title->tc_video_af6_codec; $self->add_field ( name => "2-pass-encoded", value => $title->tc_multipass ? "yes" : "no", ); $self->add_field ( name => "Fast resizing", value => $title->tc_fast_resize ? "yes" : "no", ); $self->add_field ( name => "Deinterlacer filter", value => $Video::DVDRip::deinterlace_filters{$title->tc_deinterlace}, ); $self->add_field ( name => "Antialiasing filter", value => $Video::DVDRip::antialias_filters{$title->tc_anti_alias}, ); # Subtitles -------------------------------------------------- my $sub_id = 1; if ( $title->subtitles ) { foreach my $sub ( sort { $a->id <=> $b->id } values %{$title->subtitles} ) { next if not $sub->tc_vobsub and not $sub->tc_render; $self->add_head ( name => "Subtitle $sub_id" ); $self->add_field ( name => "Id", value => $sub->id, ); $self->add_field ( name => "Language", value => $sub->lang, ); $self->add_field ( name => "Type", value => ($sub->tc_render ? "rendered" : "vobsub") ); ++$sub_id; } } # Audio ------------------------------------------------------ foreach my $audio ( sort { $a->tc_target_track <=> $b->tc_target_track } @{$title->tc_audio_tracks} ) { next if $audio->tc_target_track < 0; $self->add_head ( name => "Audio ".($audio->tc_target_track+1) ); my $codec = $audio->tc_audio_codec; my $probe = $title->audio_tracks->[$audio->tc_nr]; $self->add_field ( name => "DVD audio track id", value => $audio->tc_nr, ); $self->add_field ( name => "Language", value => $probe->lang, ); $self->add_field ( name => "Audio codec", value => $codec eq 'ogg' ? 'vorbis' : $codec, ); $self->add_field ( name => "MP3 quality", value => $audio->tc_mp3_quality, ) if $codec eq "mp3"; $self->add_field ( name => "Channels", value => $codec eq "ac3" ? $probe->channels : 2, ); $self->add_field ( name => "Sample rate", value => $probe->sample_rate, ); my $bitrate_method = "tc_${codec}_bitrate"; $self->add_field ( name => "Audio bitrate (kbps)", value => $audio->$bitrate_method(), ); if ( $codec ne 'ac3' and $codec ne 'pcm' ) { $self->add_field ( name => "Volume rescaling", value => ($audio->tc_volume_rescale || "none"), ); $self->add_field ( name => "Audio filter", value => $Video::DVDRip::audio_filters{$audio->tc_audio_filter}, ); } } $self->add_head ( name => "Programs" ); $self->add_field ( name => "dvd::rip version", value => $Video::DVDRip::VERSION, ); $self->add_field ( name => "transcode version", value => $TC::ORIG_VERSION, ); $self->write_fields; 1; } sub init_fields { my $self = shift; $self->set_fields([]); $self->set_max_name_length(0); 1; } sub add_head { my $self = shift; my %par = @_; my ($name) = @par{'name'}; push @{$self->fields}, { head => $name }; 1; } sub add_field { my $self = shift; my %par = @_; my ($name, $value) = @par{'name','value'}; push @{$self->fields}, { name => $name, value => $value }; $self->set_max_name_length ( length($name) ) if length($name) > $self->max_name_length; 1; } sub write_fields { my $self = shift; my $filename = $self->filename; my $fh = FileHandle->new; ___________________________________________________________________________________ open ($fh, "> $filename") or die "can't write $filename"; ___________________________________________________________________________________ print $fh "# Movie information file. Generated by dvd::rip; http://www.exit1.org/dvdrip\n"; my $len = $self->max_name_length + 1; foreach my $field ( @{$self->fields} ) { if ( $field->{head} ) { print $fh "\n[$field->{head}]\n"; next; } printf $fh "%-${len}s %s\n", $field->{name}.":", $field->{value}; } close $fh; 1; } sub read { my $self = shift; $self->init_fields; my $filename = $self->filename; my $fh = FileHandle->new; open ($fh, $filename) or die "can't read $filename"; while (<$fh>) { next if /^\s*#/; next if !/\S/; if ( /\[([^\]]+)/ ) { $self->add_head ( name => $1 ); next; } if ( /^\s*([^:]+):\s*(.*)/ ) { $self->add_field ( name => $1, value => $2 ); } } close $fh; 1; } sub add_files_section { my $self = shift; my %par = @_; my ($files_lref) = @par{'files_lref'}; my $nr = 0; foreach my $file ( @{$files_lref} ) { $self->add_head ( name => "File $nr" ); $self->add_field ( name => "Name", value => $file->{name}, ); $self->add_field ( name => "Size (MB)", value => $file->{size}, ); $self->add_field ( name => "Frames", value => $file->{frames}, ); ++$nr; } 1; } sub get_value { my $self = shift; my %par = @_; my ($head, $field) = @par{'head','field'}; $head = lc($head); $field = lc($field); my $in_head = 0; foreach my $field ( @{$self->fields} ) { if ( lc($field->{head}) eq $head ) { $in_head = 1; next; } if ( $in_head and lc($field->{name}) eq $field ) { return $field->{value}; } } croak "Can't find field '$field' in section '$head'"; } 1; vielleicht kannst du da etwas mit anfangen gruß felix _________________________________ mailto:f.hammer@web.de ~ NO HTML http://www.das-duo.net.tc - veni, vidi, linux - _________________________________
Am Freitag, 6. Dezember 2002 17:40 schrieb Felix Hammer:
can't write /home/doitux/tmp/unnamed/avi/001/unnamed-001.dvdrip-info
Inwieweit existiert das Verzeichnis hier oben und wie sehen die Rechte aus? Ist noch Platz auf der Partition? Interessant wäre auch die Versionen. Gerade von VideoDVD-Rip hab ich die letzten Tage mehrere Versionen hochgeladen. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Am Freitag, 6. Dezember 2002 22:42 schrieb Manfred Tremmel:
Am Freitag, 6. Dezember 2002 17:40 schrieb Felix Hammer:
can't write /home/doitux/tmp/unnamed/avi/001/unnamed-001.dvdrip-info
Inwieweit existiert das Verzeichnis hier oben und wie sehen die Rechte aus? Ist noch Platz auf der Partition?
jetzt gehts... der fehler war folgendes: das verzeichnis /home/doitux/tmp/unnamed/avi/ existierte das ../001/ musste man nur noch per hand hinzufügen dann geht es ist das in der neuen version auch schon debuged? _________________________________ mailto:f.hammer@web.de ~ NO HTML http://www.das-duo.net.tc - veni, vidi, linux - _________________________________
Am Samstag, 7. Dezember 2002 00:50 schrieb Felix Hammer:
jetzt gehts... der fehler war folgendes: das verzeichnis /home/doitux/tmp/unnamed/avi/ existierte das ../001/ musste man nur noch per hand hinzufügen dann geht es ist das in der neuen version auch schon debuged?
Probiers aus, ich denke schon. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
participants (3)
-
Andre Heine
-
Felix Hammer
-
Manfred Tremmel