Changeset 22486 for gs2-extensions
- Timestamp:
- 2010-07-23T00:38:48+12:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gs2-extensions/video/trunk/perllib/plugins/VideoConverter.pm
r22432 r22486 82 82 'desc' => "{ImageConverter.screenviewsize}", 83 83 'type' => "int", 84 'deft' => " 576",84 'deft' => "720", 85 85 'range' => "1,", 86 86 'reqd' => "no" }, … … 136 136 'desc' => "{VideoPlugin.streamingsize}", 137 137 'type' => "int", 138 'deft' => " 576",138 'deft' => "720", 139 139 'reqd' => "no" }, 140 140 { 'name' => "streamingHQVideoBitrate", 141 141 'desc' => "{VideoPlugin.streamingbitrate}", 142 142 'type' => "int", 143 'deft' => "4 32",143 'deft' => "496", 144 144 'reqd' => "no" }, 145 145 { 'name' => "streamingHQAudioBitrate", … … 147 147 'type' => "int", 148 148 'deft' => "80", 149 'reqd' => "no" }, 150 { 'name' => "videoDeinterlacingFilter", 151 'desc' => "Activate a deinterlacing filter to increase the quality of TV footage", 152 'type' => "enum", 153 'list' => [{'name' => "true", 'desc' => "{common.true}"}, 154 {'name' => "false", 'desc' => "{common.false}"}], 155 'deft' => "false", 156 'reqd' => "no" }, 157 { 'name' => "getMaximumMetadata", 158 'desc' => "Extract the maximum technical information of each video", 159 'type' => "enum", 160 'list' => [{'name' => "true", 'desc' => "{common.true}"}, 161 {'name' => "false", 'desc' => "{common.false}"}], 162 'deft' => "false", 149 163 'reqd' => "no" }, 150 164 … … 245 259 246 260 $metadata_table->{"mi.${type}Fields"}= join(",",@fieldlist); 247 248 261 } 249 262 250 263 return $metadata_table; 264 265 while (@parts) { 266 my $type = shift(@parts); 267 my $vals = shift(@parts); 268 my @fieldlist=(); 269 while ($vals =~ s/<(.*?)>(.*?)<\/\1>//) { 270 my $metaname = $1; 271 my $metaval = $2; 272 my $fullmetaname = "mi.$type\^$metaname"; 273 if($metaname ne "Complete_name") #ignore this field as it is pointing to the cache directory 274 { 275 $metadata_table->{$fullmetaname}= $metaval; 276 push(@fieldlist,$fullmetaname); 277 } 278 } 279 $metadata_table->{"mi.${type}Fields"}= join(",",@fieldlist); 280 } 281 return $metadata_table; 251 282 252 283 } … … 282 313 283 314 my $xmlTxt = mediaInfo_XML_Cmd ($video,$outhandle,0); 284 285 315 my $metadata_table = mediaInfo_parse_XML($xmlTxt,$outhandle,0); 286 316 … … 537 567 } 538 568 569 # Generate the command to use with Handbrake to recompress a video using h264/aac compatible with Flash Player 10 539 570 sub stream_mp4_video_cmd 540 571 { … … 543 574 $streaming_HQ_AudioBitrate) = @_; 544 575 545 546 576 my $output_dir = $self->{'cached_dir'}; 547 577 my $ivideo_root = $self->{'cached_file_root'}; … … 554 584 #my $t_opt = (defined $exp_duration) ? "-t $exp_duration" : ""; 555 585 556 557 558 my $size; 559 # Looks for empty string as well as fullsize string 586 my $deinterlace = $self->{'videoDeinterlacingFilter'}; 587 my $video_processing_parameters; 588 # Use specific resizing algorythms depending if we need to downsize the video resolution or not 560 589 if(!$streaming_HQ_size || $streaming_HQ_size eq "fullsize") { 561 $ size= "--strict-anamorphic";590 $video_processing_parameters = "--strict-anamorphic"; 562 591 } else { 563 $size = "-w $streaming_HQ_size --loose-anamorphic"; 564 } 565 592 $video_processing_parameters = "-w $streaming_HQ_size --loose-anamorphic"; 593 } 594 # Use the deinterlace video filter if enabled in the plugin 595 if ($deinterlace eq "true") 596 { 597 $video_processing_parameters .= " --decomb"; 598 } 566 599 567 600 my $ivideo_filename_gsdlenv = $self->gsdlhome_independent($ivideo_filename); 568 601 my $omp4_filename_gsdlenv = $self->gsdlhome_independent($omp4_filename); 569 602 570 #my $pre_opts = "--decomb -t 1 -c 1"; 571 #my $post_opts = "-f mp4 $size -O -e x264 -b $streaming_HQ_VideoBitrate -a 1 -E faac -6 dpl2 -B $streaming_HQ_AudioBitrate -D 0.0 -x ref=2:bframes=2:me-umh -v 1"; 572 603 # Generate the pre and post video parameters for Handbrake v0.9.4 573 604 my $pre_opts = "-t 1 -c 1"; 574 my $post_opts = "-f mp4 -O $ size --decomb-e x264 -b $streaming_HQ_VideoBitrate -a 1 -E faac -6 dpl2 -R Auto -B $streaming_HQ_AudioBitrate -D 0.0 -x ref=2:bframes=2:subq=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0";605 my $post_opts = "-f mp4 -O $video_processing_parameters -e x264 -b $streaming_HQ_VideoBitrate -a 1 -E faac -6 dpl2 -R Auto -B $streaming_HQ_AudioBitrate -D 0.0 -x ref=2:bframes=2:subq=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0"; 575 606 576 607 my $handbrake_cmd = "HandbrakeCLI.exe -i \"$ivideo_filename_gsdlenv\" $pre_opts -o \"$omp4_filename_gsdlenv\" $post_opts"; 577 608 578 609 #print STDERR "****\nHandbrake command: $handbrake_cmd\n****\n"; 610 579 611 return ($handbrake_cmd,$omp4_filename,$omp4_file); 580 612 } … … 1187 1219 1188 1220 my ($vtype, $width, $height, $duration, $durationDisplay, $vsize, 1189 $vcodec,$vrate,$fps,$atype,$afreq,$achan,$arate,$metadata_table) = identify ($oflash_filename,$outhandle,0);1190 1221 $vcodec,$vrate,$fps,$atype,$afreq,$achan,$arate,$metadata_table) = identifyMI($oflash_filename,$outhandle,0); 1222 #Add the most common metadata extracted by MediaInfo from the streamable video file 1191 1223 $doc_obj->add_utf8_metadata ($section, "tv.HQStreamingVideoFormat", $vtype); 1192 1224 $doc_obj->add_utf8_metadata ($section, "tv.HQStreamingVideoFileSize", $vsize); … … 1201 1233 $doc_obj->add_utf8_metadata ($section, "tv.HQStreamingFileBitrate", $vrate + $arate); 1202 1234 1203 foreach my $metaname(keys %$metadata_table) 1204 { 1205 my $metaval = $metadata_table->{$metaname}; 1206 1207 $doc_obj->add_utf8_metadata ($section, $metaname, $metaval); 1235 my $get_max_metadata = $self->{'getMaximumMetadata'}; 1236 if ($get_max_metadata eq "true"){ 1237 foreach my $metaname(keys %$metadata_table) 1238 { 1239 my $metaval = $metadata_table->{$metaname}; 1240 $doc_obj->add_utf8_metadata ($section, $metaname, $metaval); 1241 } 1208 1242 } 1209 1243
Note:
See TracChangeset
for help on using the changeset viewer.