You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pixelfed/app/Models/LiveStream.php

45 lines
957 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Storage;
class LiveStream extends Model
{
use HasFactory;
public function getHlsUrl()
{
$path = Storage::url("live-hls/{$this->stream_id}/index.m3u8");
return url($path);
}
public function getStreamServer()
{
$proto = 'rtmp://';
$host = config('livestreaming.server.host');
$port = ':'.config('livestreaming.server.port');
$path = '/'.config('livestreaming.server.path');
return $proto.$host.$port.$path;
}
public function getStreamKeyUrl()
{
$path = $this->getStreamServer().'?';
$query = http_build_query([
'name' => $this->stream_key,
]);
return $path.$query;
}
public function getStreamRtmpUrl()
{
return $this->getStreamServer().'/'.$this->stream_id;
}
}