Php 从一台服务器到另一台服务器的流式视频

Php 从一台服务器到另一台服务器的流式视频,php,video,curl,Php,Video,Curl,我需要一个脚本的帮助,我花了很多时间来找出它有什么问题,但我找不到任何东西 基本上,在我的第一台服务器上,我包含视频文件,在我的第二台服务器上,我传输这些文件。要从第一台服务器获取文件,您必须从第二台服务器使用IP(基本上我只允许我的服务器与第一台服务器连接) 所以为了得到这些文件,我使用了cURL函数,因为所有的视频都会通过服务器2 我这样做: $url = "111.111.111.111/example.flv";

我需要一个脚本的帮助,我花了很多时间来找出它有什么问题,但我找不到任何东西

基本上,在我的第一台服务器上,我包含视频文件,在我的第二台服务器上,我传输这些文件。要从第一台服务器获取文件,您必须从第二台服务器使用IP(基本上我只允许我的服务器与第一台服务器连接)

所以为了得到这些文件,我使用了cURL函数,因为所有的视频都会通过服务器2

我这样做:

$url = "111.111.111.111/example.flv";

                                    $ch = curl_init();
                                    $timeout = 0;
                                    curl_setopt ($ch, CURLOPT_URL, $url);
                                    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

                                    $video = curl_exec($ch);
                                    curl_close($ch);
                                    // output to browser
                                    header("Content-type: video/x-flv");

                                   echo ' <a href="'.$video.'" style="display:block;width:920px;height:600px" id="player"> 
    </a> 
    <script>
        flowplayer("player", "flowplayer-3.2.16.swf");
    </script>';
$url=“111.111.111.111/example.flv”;
$ch=curl_init();
$timeout=0;
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$video=curl\u exec($ch);
卷曲关闭($ch);
//输出到浏览器
标题(“内容类型:视频/x-flv”);
回声'
flowplayer(“播放器”,“flowplayer-3.2.16.swf”);
';
所以我所做的是: 1.我有一个$url的视频链接 2.我使用cURL打开新连接 3.我从链接中获取数据。 4.然后我用$video保存这个视频 5.我试着打开它

但是它不起作用。。。当我打开此网站时,请显示以下内容:

FLV���  �����ÖY��������
onMetaData����metadatacreator�3Yet Another Metadata Injector for FLV - Version 1.8�hasKeyframes�hasVideo�hasAudio�hasMetadata�canSeekToEnd�duration�@Ļj◊
=p§�datasize�AĽ≥i����   videosize�A∂ąęZ���� framerate�@9�70Ō'�
videodatarate�@|<GłÕŰĢ�videocodecid�@�������width�@Ą�������height�@v@������ audiosize�AĒ8»,����
audiodatarate�@Xsöł¶@ű�audiocodecid�@$�������audiosamplerate�@�������audiosamplesize�?ū�������stereo�filesize�AĽ≥Óv����
lasttimestamp�@Ļj◊
=p§�lastkeyframetimestamp�@Ļj◊
=p§�lastkeyframelocation�AĽ≥Ób����  keyframes�
filepositions
FLV���  �����ÖY��������
关于元数据����元数据创建者�3 FLV的另一个元数据注入器-版本1.8�关键帧�哈斯维多�hasAudio�hasMetadata�看不见�期间�@Ļj◊
=p§�数据大小�AĽ≥我����   视频大小�A.∂ąęZ���� 帧速率�@9�70Ō'�

视频数据速率�@| 不能同时输出HTML和FLV数据。我建议使用以下代码创建一个单独的PHP文件:

$url = "111.111.111.111/example.flv";

header("Content-type: video/x-flv");
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_exec($ch);
curl_close($ch);
然后,您可以将播放器代码放在其他任何地方,如:

<a href="/path/to/first/file.php" style="display:block;width:920px;height:600px" id="player">


请发布输出FLV的完整代码。仅此而已。。。最后一行是网络播放器“echo”flowplayer(“player”,“flowplayer-3.2.16.swf”)的代码';谢谢,现在它工作了,但我有另一个问题…当我播放视频时,它是从一开始播放的,你不能更改时间线上的时间,你不能从3:10开始,你必须从一开始就观看。你知道我必须做什么才能在播放器中启用此功能吗?例如,启动w从中间而不是从一开始观看视频??可能与播放器有关。如果您将播放器指向“真实”FLV而不是读取一个FLV的PHP脚本,它是否工作?如果我将视频表单服务器一复制到服务器二,它确实工作如我所愿。是否有任何方法以FLV格式从服务器一输出视频?我添加了“标题”(“内容配置:附件;文件名=video.flv”);”到我的脚本,但它只是更改了格式,然后我尝试转到脚本页面。您认为.htaccess规则有帮助吗?例如“RewriteRule^(.*).flv$show.php?video=$1[L]”或者更复杂,我必须使用php中的一些函数来获取视频信息,例如logn等。我认为您可能需要更新cURL代码,以便在尝试在播放器中查找特定时间时传递浏览器发送的特殊标题。这是一个有点不同的主题,所以你可能应该发布一个单独的问题。