Ticket #8206: pseudostreaming.patch

File pseudostreaming.patch, 3.4 KB (added by Vitold <vitold.md@…>, 10 years ago)
  • modules/stream/handler.pl

    diff -ur /var/www/localhost/htdocs/mythweb_ori/modules/stream/handler.pl /var/www/localhost/htdocs/mythweb/modules/stream/handler.pl
    old new  
    3030    elsif ($ENV{'REQUEST_URI'} =~ /\.flvp$/i) {
    3131        require "modules/$Path[0]/stream_flvp.pl";
    3232    }
    33     elsif ($ENV{'REQUEST_URI'} =~ /\.flv$/i) {
     33    elsif ($ENV{'REQUEST_URI'} =~ /\.flv\?.+$/i) {
    3434        require "modules/$Path[0]/stream_flv.pl";
    3535    }
    3636# Mpeg4?
  • modules/stream/stream_flv.pl

    diff -ur /var/www/localhost/htdocs/mythweb_ori/modules/stream/stream_flv.pl /var/www/localhost/htdocs/mythweb/modules/stream/stream_flv.pl
    old new  
    6262    $vbitrate = 256 unless ($vbitrate && $vbitrate > 1);
    6363    $abitrate = 64  unless ($abitrate && $abitrate > 1);
    6464
     65
     66# approximation of the final size of the stream
     67    $sh = $dbh->prepare('SELECT unix_timestamp(endtime)-unix_timestamp(starttime) FROM  recorded WHERE chanid=? AND starttime=FROM_UNIXTIME(?)');
     68    $sh->execute($chanid,$starttime);
     69    $timelength = $sh->fetchrow_array;
     70    $length = ((($abitrate + $vbitrate)/8) * 1024 * $timelength );
     71
     72
     73    if ("$ENV{'REQUEST_URI'}" =~ /start\=(\d+)$/i) {
     74            $start = $1; }
     75    else {
     76            $start = 0; }
     77
    6578    my $ffmpeg_command = $ffmpeg
    6679                        .' -y'
     80                        .' -ss '.shell_escape("$start")
    6781                        .' -i '.shell_escape($filename)
    6882                        .' -s '.shell_escape("${width}x${height}")
    6983                        .' -g 30'
     
    8397                "Can't do ffmpeg: $!\n${ffmpeg_command}";
    8498        exit;
    8599    }
    86     print header(-type => 'video/x-flv');
     100
     101    print header(-type => 'video/x-flv', -Content_length => "${length}");
    87102    my $buffer;
    88103    while (read DATA, $buffer, 262144) {
    89104        print $buffer;
  • modules/tv/tmpl/default/detail.php

    diff -ur /var/www/localhost/htdocs/mythweb_ori/modules/tv/tmpl/default/detail.php /var/www/localhost/htdocs/mythweb/modules/tv/tmpl/default/detail.php
    old new  
    548548                            },
    549549                        // Then we have the video
    550550                        {
     551                            provider: 'pseudo',
    551552                            url: "<?php echo video_url($program, 'flv'); ?>",
    552553                            duration: <?php echo $program->length ?>,
    553554                            autoPlay: false,
     
    555556                            // waste bandwidth and CPU on the remote machine.
    556557                            autoBuffering: false
    557558                            }
    558                         ]}
     559                    ],
     560                    plugins: {
     561                        pseudo: {
     562                            url: 'flowplayer.mythpseudostreaming.swf'
     563                        }
     564                    }
     565                    }
    559566                    );
    560567            </script>
    561568<?php       } elseif (file_exists('modules/tv/MFPlayer.swf')) { ?>