Ticket #4644: streamhandler.diff

File streamhandler.diff, 1.7 KB (added by anonymous, 12 years ago)
  • (a) handler.pl.vr vs. (b) /var/www/localhost/htdocs/mythweb/modules/stream/handler.pl

    a b  
    157140        CORE::exit;
    158141    }
    159142    elsif ($ENV{'REQUEST_URI'} =~ /\.flv$/i) {
     143    # Find out the video dimensions (this is a quick hack)
     144        if (!open(FINFO,"$ffmpeg -y -i $filename -r 24 -f flv -ac 2 -ar 11025 -ab 64k -b 256k -vframes 1 -ss 65 /dev/null 2> /dev/stdout|")) {
     145            print header(),
     146                "Error: Can not get ffmpeg output for file $filename..\n";
     147            CORE::exit;
     148        }
     149
     150        my $horz;
     151        my $vert;
     152
     153        while (<FINFO>) {
     154            if (/Stream #0.0/) {
     155                ($horz, $vert) = /\s(\d+)x(\d+),/;
     156                last;
     157            }
     158        }
     159        $ratio = $vert / $horz;
     160        $newhorz = 320;
     161        $newvert = int($newhorz * $ratio);
     162
     163        $newvert += $newvert % 8; # make the new vert a multiple of 8
     164        if ( $newvert > 240 ) {
     165            $newvert = 240;
     166        }
     167
     168        close FINFO;
     169
    160170    # Print the movie
    161     $ffmpeg_pid = open(DATA, "$ffmpeg -y -i $filename -s ${width}x$height -r 24 -f flv -ac 2 -ar 11025 -ab ${abitrate}k -b ${vbitrate}k /dev/stdout 2>/dev/null |");
     171        $ffmpeg_pid = open(DATA, "$ffmpeg -y -i $filename -s " . $newhorz . "x" . $newvert . " -r 24 -f flv -ac 2 -ar 11025 -ab 64k -b 256k /dev/stdout 2>/dev/null |");
    162172        unless ($ffmpeg_pid) {
    163173            print header(),
    164174                  "Can't do ffmpeg:  $!";
     
    213223# Open the file for reading
    214224    unless (sysopen DATA, $filename, O_RDONLY) {
    215225        print header(),
    216               "Can't read $basname:  $!";
     226              "Can't read $basename:  $!";
    217227        CORE::exit;
    218228    }
    219229