Changeset 21335
- Timestamp:
- 2009-12-11T00:16:34+13:00 (14 years ago)
- Location:
- gs2-extensions/gsdl-video/trunk/perllib/plugins
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
gs2-extensions/gsdl-video/trunk/perllib/plugins/VideoConverter.pm
r20492 r21335 106 106 'deft' => "200k", 107 107 'reqd' => "no" }, 108 { 'name' => "extract keyframes",108 { 'name' => "extract_keyframes", 109 109 'desc' => "{VideoPlugin.extractkeyframes}", 110 110 'type' => "flag", 111 111 'deft' => "0", 112 'reqd' => "no" }, 113 { 'name' => "keep_keyframes", 114 'desc' => "{VideoPlugin.keep_keyframes}", 115 'type' => "string", 116 'deft' => "all", 112 117 'reqd' => "no" }, 113 118 { 'name' => "streamingsize", … … 590 595 my $ivideo_root = $self->{'cached_file_root'}; 591 596 597 ## my $cue_filename = &util::filename_cat($output_dir,"on_cue.xml"); 598 599 my $flvtool_cmd = "flvtool2 -vUP \"$oflash_filename\""; 600 601 return ($flvtool_cmd,$oflash_filename); 602 } 603 604 605 sub streamkeyframes_cmd 606 { 607 my $self = shift (@_); 608 my ($oflash_filename,$doc_obj,$section) = @_; 609 610 my $assocfilepath 611 = $doc_obj->get_metadata_element($section,"assocfilepath"); 612 613 my $output_dir = $self->{'cached_dir'}; 614 592 615 my $cue_filename = &util::filename_cat($output_dir,"on_cue.xml"); 593 594 my $flvtool_cmd = "flvtool2 -v UP\"$oflash_filename\"";616 617 my $flvtool_cmd = "flvtool2 -vAUtP \"$cue_filename\" \"$oflash_filename\""; 595 618 596 619 return ($flvtool_cmd,$oflash_filename); … … 598 621 599 622 600 sub streamkeyframes_cmd 623 sub streamkeyframes_cmd_old 601 624 { 602 625 my $self = shift (@_); … … 633 656 my $cue_filename = &util::filename_cat($output_dir,"on_cue.xml"); 634 657 635 my $video_server = $ENV{'GEXT_VIDEO_SERVER'};636 my $video_prefix = $ENV{'GEXT_VIDEO_PREFIX'};637 638 my $collect = $ENV{'GSDLCOLLECTION'};658 ##my $video_server = $ENV{'GEXT_VIDEO_SERVER'}; 659 ##my $video_prefix = $ENV{'GEXT_VIDEO_PREFIX'}; 660 661 ## my $collect = $ENV{'GSDLCOLLECTION'}; 639 662 640 663 ## my $thumbloc = "$video_server$video_prefix/collect/$collect"; … … 685 708 } 686 709 else { 687 # extract keyframe has either not been switched on, or else had710 # extract_keyframe has either not been switched on, or else had 688 711 # a problem when running 689 712 # => extract a from … … 770 793 my ($self) = shift(@_); 771 794 772 my ($doc_obj,$section) = @_; 773 774 my $output_dir = $self->{'cached_dir'}; 775 my $timeline = $self->{'keyframe_timeline'}; 795 my ($doc_obj,$section,$timeline) = @_; 796 797 my $output_dir = $self->{'cached_dir'}; 776 798 777 799 my $count = 1; … … 786 808 $section); 787 809 $doc_obj->add_utf8_metadata($section,"KeyframeTimestamp",$timestamp); 810 $doc_obj->add_utf8_metadata($section,"KeyframeFrameNum",$t); 788 811 789 812 $count++; 790 813 } 791 814 792 $doc_obj->add_utf8_metadata($section,"NumKeyframes",scalar(@{$self->{'keyframe_fnames'}})); 815 #### $doc_obj->add_utf8_metadata($section,"NumKeyframes",scalar(@{$self->{'keyframe_fnames'}})); 816 817 $doc_obj->add_utf8_metadata($section,"NumKeyframes",scalar(keys %$timeline)); 793 818 794 819 … … 933 958 my $flashheight = $video_height + 22; 934 959 935 if ($self->{'extract keyframes'}) {960 if ($self->{'extract_keyframes'}) { 936 961 $flashheight += 100; 937 962 } … … 1020 1045 my $flashheight = $video_height + 22; 1021 1046 1022 if ($self->{'extract keyframes'}) {1047 if ($self->{'extract_keyframes'}) { 1023 1048 $flashheight += 100; 1024 1049 } -
gs2-extensions/gsdl-video/trunk/perllib/plugins/VideoPlugin.pm
r20492 r21335 141 141 $self->run_cached_general_cmd($keyframe_cmd,$okeyframe_filename,$keyframe_options); 142 142 $self->parse_shot_xml(); 143 $self->associate_keyframes($doc_obj,$section); 143 144 my $keep_keyframe_timeline = $self->{'keep_keyframe_timeline'}; 145 $self->associate_keyframes($doc_obj,$section,$keep_keyframe_timeline); 146 144 147 } 145 148 … … 520 523 521 524 522 if ($self->{'extract keyframes'}) {525 if ($self->{'extract_keyframes'}) { 523 526 $self->extract_keyframes($doc_obj,$originalfilename,$filename); 524 527 } … … 573 576 574 577 575 if ($self->{'extract keyframes'}) {578 if ($self->{'extract_keyframes'}) { 576 579 $self->extract_keyframes_montage($doc_obj,$filename,$thumbnailtype); 577 580 } … … 628 631 } 629 632 630 if (($self->{'enablestreaming'}) && ($self->{'extractkeyframes'})) { 633 my $enable_streaming 634 = ($self->{'enable_flv_streaming'} || $self->{'enable_mp4_streaming'}) 635 ? 1 : 0; 636 637 if (($enable_streaming) && ($self->{'extract_keyframes'})) { 631 638 my $section = $doc_obj->get_top_section(); 632 639 my $oflash_filename = $self->{'oflash_filename'}; … … 663 670 my $num_total_frames = $self->{'num-total-frames'}; 664 671 665 my $frame_delta = $num_total_frames/$num_dist_frames; 672 my $keep_timeline = {}; 673 674 my $frame_delta; 675 if ($num_dist_frames eq "all") { 676 $frame_delta = undef; 677 } 678 else { 679 $frame_delta = $num_total_frames/$num_dist_frames; 680 } 666 681 667 682 my $closest_to = $frame_delta; … … 670 685 # print STDERR "*** num total frames = $num_total_frames\n"; 671 686 # print STDERR "*** frame delta = $frame_delta\n"; 687 688 my $keep_keyframe_num = 1; 672 689 673 690 foreach my $curr_t (sort { $a <=> $b } keys %$timeline) … … 675 692 # print STDERR "*** curr_t = $curr_t\n"; 676 693 677 if ($curr_t>$closest_to) { 694 my $timeline_rec = undef; 695 696 if (!defined $closest_to) { 697 $timeline_rec = $timeline->{$curr_t}; 698 $keep_timeline->{$curr_t} = $timeline_rec; 699 } 700 elsif ($curr_t>$closest_to) { 678 701 # decide if previous t (prev_t_ or current t (curr_t) is closest 679 680 my $timeline_rec;681 702 682 703 my $prev_t_dist = $closest_to - $prev_t; … … 685 706 if ($curr_t_dist <= $prev_t_dist) 686 707 { 687 $timeline_rec = $timeline->{$curr_t} 708 $timeline_rec = $timeline->{$curr_t}; 709 $keep_timeline->{$curr_t} = $timeline_rec; 710 688 711 } 689 712 else 690 713 { 691 $timeline_rec = $timeline->{$prev_t} 714 $timeline_rec = $timeline->{$prev_t}; 715 $keep_timeline->{$prev_t} = $timeline_rec; 692 716 } 717 718 $closest_to += $frame_delta; 719 } 720 721 if (defined $timeline_rec) { 693 722 694 723 my $name = $timeline_rec->{'name'}; 695 724 my $timestamp = $timeline_rec->{'timestamp'}; 696 725 my $thumb = $timeline_rec->{'thumb'}; 726 my $keyframe_num = $timeline_rec->{'keyframenum'}; 697 727 698 728 … … 702 732 print CUEOUT " <parameters>\n"; 703 733 print CUEOUT " <thumb>$thumb</thumb>\n"; 734 print CUEOUT " <keyframeNum>$keyframe_num</keyframeNum>\n"; 735 print CUEOUT " <keepKeyframeNum>$keep_keyframe_num</keepKeyframeNum>\n"; 704 736 print CUEOUT " </parameters>\n"; 705 737 print CUEOUT " <type>navigation</type>\n"; … … 718 750 # print CUEOUT " </metatag>\n"; 719 751 720 $closest_to += $frame_delta; 752 $keep_keyframe_num++; 753 721 754 } 722 755 $prev_t = $curr_t; 723 756 } 757 758 $self->{'keep_keyframe_timeline'} = $keep_timeline; 724 759 } 725 760 … … 839 874 'keyframeindex' => $keyframe_index, 840 875 'timestamp' => $time_msec, 841 'thumb' => $thumb_file }; 876 'thumb' => $thumb_file, 877 'keyframenum' => $keyframe_index}; 842 878 843 879 $self->{'keyframe_timeline'}->{$half_frame_num}=$timeline_rec; 844 845 880 } 846 881 … … 867 902 'keyframeindex' => $keyframe_index, 868 903 'timestamp' => $time_msec, 869 'thumb' => $thumb_file }; 904 'thumb' => $thumb_file, 905 'keyframenum' => $keyframe_index}; 870 906 871 907 $self->{'keyframe_timeline'}->{$avg_frame_num}=$timeline_rec; 872 873 908 874 909 # $self->{'flowplayer_thumblist'} .= "\\{ thumbNail: '$thumb_file', time: $time_sec \\},"; … … 884 919 if ($element eq "seg") { 885 920 886 $self->output_distributed_keyframes($self->{'keyframe_timeline'}, 6);921 $self->output_distributed_keyframes($self->{'keyframe_timeline'},$self->{'keep_keyframes'}); 887 922 888 923
Note:
See TracChangeset
for help on using the changeset viewer.