Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel 5中加载带有guzzle的远程视频_Php_Video_Laravel 5.4_Guzzle6 - Fatal编程技术网

Php 在laravel 5中加载带有guzzle的远程视频

Php 在laravel 5中加载带有guzzle的远程视频,php,video,laravel-5.4,guzzle6,Php,Video,Laravel 5.4,Guzzle6,我正在尝试使用guzzle加载和播放一个上传到子域(subdomain.domain.com)中的远程视频到主域(domain.com)中的一个位置 我发现很难播放视频 刀片文件中的视频播放器具有以下视频源url `<source src="{{url('video/'.$token.'/'.$videoname)}}" type="{{$video_mime_type}}"> ` ` 源的路由指向具有以下代码的控制器 <?php namespace App\Http\C

我正在尝试使用guzzle加载和播放一个上传到子域(subdomain.domain.com)中的远程视频到主域(domain.com)中的一个位置

我发现很难播放视频

刀片文件中的视频播放器具有以下视频源url

`<source src="{{url('video/'.$token.'/'.$videoname)}}" type="{{$video_mime_type}}">
`
`

源的路由指向具有以下代码的控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Storage;
use Response;
use File;
use GuzzleHttp\Mimetypes;
use GuzzleHttp\Client;
use GuzzleHttp\Stream\Stream;
use GuzzleHttp\Stream\Utils;

class ResourceController extends Controller
{


public function show_video_api($videoname)
{       
    $client = new Client(['base_uri' => 'http://subdomain.domain.com/api/']);

    $resp = $client->request('GET',"video/".$videoname,['stream'=>true]);

    $body=$resp->getBody();
    echo $body;

   }

}

我认为在Laravel中,您必须返回
响应
,而不仅仅是将内容打印到标准输出(不确定是否缓冲)。创建一个
Response
对象,而不仅仅是
echo
ing内容

但是最好直接在cURL中查看并使用它输出响应,跳过PHP

但是。。。您可能不想以任何方式在PHP中实现它,因为这是一种非常缓慢的视频服务方式。看看nginx,它对于此类用例非常灵活和快速

<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Log;

class ServiceController extends Controller
{

public function video($videoname)
{

    return response()->file(storage_path("app/lesson-files/$videoname"));
}
}