Php 在laravel 5中加载带有guzzle的远程视频
我正在尝试使用guzzle加载和播放一个上传到子域(subdomain.domain.com)中的远程视频到主域(domain.com)中的一个位置 我发现很难播放视频 刀片文件中的视频播放器具有以下视频源urlPhp 在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
`<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"));
}
}