mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Added option -o to pic2mpg
This commit is contained in:
		@@ -59,3 +59,7 @@ VDR Plugin 'pictures' Revision History
 | 
			
		||||
2011-11-02:
 | 
			
		||||
 | 
			
		||||
- Fixed handling images that are rotated by 180 degrees in pic2mpg.
 | 
			
		||||
 | 
			
		||||
2012-01-08:
 | 
			
		||||
 | 
			
		||||
- Added option -o to pic2mpg.
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
#
 | 
			
		||||
# See the README file for copyright information and how to reach the author.
 | 
			
		||||
#
 | 
			
		||||
# $Id: pic2mpg 2.3 2011/12/04 12:50:00 kls Exp $
 | 
			
		||||
# $Id: pic2mpg 2.4 2012/01/08 13:27:17 kls Exp $
 | 
			
		||||
 | 
			
		||||
use File::Path;
 | 
			
		||||
use File::Spec;
 | 
			
		||||
@@ -20,15 +20,17 @@ Usage: $0 [options] picture-dir mpeg-dir
 | 
			
		||||
 | 
			
		||||
Options: -f             Force conversion
 | 
			
		||||
         -h             print Help
 | 
			
		||||
         -o percent     overscan in percent
 | 
			
		||||
         -s size        Screen size (WIDTHxHEIGHT, default is 1920x1080)
 | 
			
		||||
         -v num         Verbose (0=none, 1=list files, 2=detailed)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
getopts("fhs:v:") || die $Usage;
 | 
			
		||||
getopts("fho:s:v:") || die $Usage;
 | 
			
		||||
 | 
			
		||||
die $Usage if $opt_h;
 | 
			
		||||
 | 
			
		||||
$Force     = $opt_f;
 | 
			
		||||
$Overscan  = $opt_o || 0;
 | 
			
		||||
$Size      = $opt_s || "1920x1080";
 | 
			
		||||
$Verbose   = $opt_v;
 | 
			
		||||
 | 
			
		||||
@@ -54,6 +56,15 @@ die "$0: missing parameter\n" unless $ARGV[0] && $ARGV[1];
 | 
			
		||||
die "$0: file or directory not found: $ARGV[0]\n" unless -e $ARGV[0];
 | 
			
		||||
die "$0: source and destination must be different\n" if $ARGV[0] eq $ARGV[1];
 | 
			
		||||
 | 
			
		||||
$Extent = $Size;
 | 
			
		||||
if ($Overscan > 0) {
 | 
			
		||||
   my ($x, $y) = $Size =~ /(.*)x(.*)/;
 | 
			
		||||
   my $r = (100 + $Overscan) / 100;
 | 
			
		||||
   $x = int($x * $r + 0.5);
 | 
			
		||||
   $y = int($y * $r + 0.5);
 | 
			
		||||
   $Extent = "${x}x$y";
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
# Convert a single file:
 | 
			
		||||
 | 
			
		||||
if (-f $ARGV[0]) {
 | 
			
		||||
@@ -130,7 +141,7 @@ sub ConvertFile
 | 
			
		||||
  $Pict = EscapeMeta($Pict);
 | 
			
		||||
  $Mpeg = EscapeMeta($Mpeg);
 | 
			
		||||
  print "$Pict -> $Mpeg $Rotate\n" if $ListFiles;
 | 
			
		||||
  my $Cmd = "convert $Pict -background '#000000' $Rotate -resize $Size -gravity center -extent $Size ppm:- | "
 | 
			
		||||
  my $Cmd = "convert $Pict -background '#000000' $Rotate -resize $Size -gravity center -extent $Extent ppm:- | "
 | 
			
		||||
          . "ffmpeg -f image2pipe -vcodec ppm -i pipe:0 -an -vcodec libx264 -vpre baseline -s $Size -qscale 2 -f mpegts -y $Mpeg "
 | 
			
		||||
          . ($Detailed ? "" : "2>/dev/null");
 | 
			
		||||
  !system($Cmd) || die "$Cmd: $!\n";
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user