我目前正在制作一个 perl 脚本,它将文件转换为 webm/ogg/mp4 格式,然后将其发送回用户,但嵌入视频。除了我无法发送 EOF 之外,这一切都有效,因此 HTML5 视频播放器知道结尾是什么,因此他可以正确使用文件(比如转到特定时间,甚至知道文件何时结束(现在它只是停止但你不能再对视频做任何事情了。
开始代码:
elsif ($path =~ /^\/((\w|\d){11})\.webm$/ig) {
print "HTTP/1.0 200 OK\r\n";
$handler = \&resp_youtubemovie;
$handler->($cgi,$1);
发送webm文件的功能
sub resp_youtubemovie {
my $cgi = shift;
my $youtubeID = shift;
return if !ref $cgi;
open(movie,"<$youtubeID.webm");
local($/);
$movie = <movie>;
close(movie);
print "Content-type: movie/webm\n";
print $movie;
}
我已经尝试过使用 while 循环和缓冲区,但这也不起作用,我还尝试将 HTTP 状态代码更改为 206 Partial Content,因为我对其他一些视频流网站使用了它,但它没有事情。那么有人知道如何打开电影文件并正确流式传输吗?