in reply to Re^2: awanti Perl not playing video with vlc plugin
in thread Perl not playing video with vlc plugin

static html page has no header..
  • Comment on Re^3: awanti Perl not playing video with vlc plugin

Replies are listed 'Best First'.
Re^4: awanti Perl not playing video with vlc plugin
by Anonymous Monk on Dec 29, 2015 at 20:18 UTC

    static html page has no header..

    every time you make a http request headers are sent before the content

    a static html page on your local harddrive does not test how http works

    Anyway, this works for me

    #!/usr/bin/perl -- use CGI::Carp qw/ fatalsToBrowser /; use strict; use warnings; use IO::Handle; use CGI; use autodie qw/ open /; Main( @ARGV ); exit( 0 ); sub Main { STDOUT->autoflush; my $cgi = CGI->new; PrintHeadersAndContent ( $cgi ); } sub PrintHeadersAndContent { use autodie qw/ open /; my( $cgi ) = @_; my $filename = q{/harcoded/path/to/one/file}; open my($fh),'<:raw', $filename; ## or die by autodie my $attachment = 'Juice.mp4'; my $size = -s $filename; my $begin = 0; my $end = $size; if( my $httprange = $cgi->http('range') ){ if( $httprange =~ /bytes=(\d+)(?:-(\d*))?/i ){ my $from = $1; my $to = $2; $from and $begin = $from; $to and $end = $to; } } my $range = "$begin-$size/$size"; print $cgi->header( -nph => 1, -type => "application/x-vlc-plugin", -attachment => $attachment, -Accept_Ranges => 'bytes', -Content_Length => $size, -Content_Range => $range, -Content_Transfer_Encoding => 'binary', ); my $numbytes = 1024*16;; seek $fh, $begin, 0; my $curr = $begin; while(not eof $fh) { my $readed = read $fh, my($data) , $numbytes; print STDOUT $data; $readed == $numbytes or warn "Only read($readed) but wanted($numbytes): $! ## $ +^E "; $curr += $numbytes; if( $curr + $numbytes > $size ){ $numbytes = $size - $curr; } } close $fh; } __END__
      Not working.. it is giving error like
      [Wed Dec 30 08:35:48.905876 2015] [cgid:error] [pid 1149:tid 303456544 +0] [client 127.0.0.1:51456] malformed header from script 'download.cg +i': Bad header: HTTP/1.1 200 OK
      i think the problem is with http headers.
        Whats the message in log before that one?