1. Для отправки видеороликов с использованием partial, необходимо использовать HTTP заголовок Range. В Laravel, вы можете использовать метод `response()` с указанием статуса 206 Partial Content и добавлением заголовка Content-Range. Ниже пример кода:
```php
$file = public_path('video/video.mp4');
$size = filesize($file);
$offset = 0;
$length = $size - 1;
if (isset($_SERVER['HTTP_RANGE'])) {
$range = $_SERVER['HTTP_RANGE'];
$matches = [];
preg_match('/\b(bytes=(\d+)?-(\d+)?\b/', $range, $matches);
$offset = intval($matches[1]);
$length = intval($matches[2]);
}
$headers = [
'Content-Type' => 'video/mp4',
'Content-Length' => $length - $offset + 1,
'Accept-Ranges' => 'bytes',
'Content-Range' => 'bytes ' . $offset . '-' . $length . '/' . $size,
'Content-Disposition' => 'inline',
];
return response()->file($file, $headers);
```
2. Чтобы передать общий размер файла на клиентскую сторону для отображения его в плеере, можно воспользоваться следующим методом:
```php
$file = public_path('video/video.mp4');
$size = filesize($file);
$headers = [
'Content-Type' => 'video/mp4',
'Content-Length' => $size,
'Accept-Ranges' => 'bytes',
];
return response()->file($file, $headers);
```
Этот код отправит файл видео с заголовком Content-Length, который указывает общий размер файла клиенту. Клиент может использовать эту информацию для корректного отображения информации о видео в плеере при стриминге содержимого.