PHP Streaming very large video (gt; 4GB) problem(PHP流非常大的视频(gt;4 GB)问题)
本文介绍了PHP流非常大的视频(>;4 GB)问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用8MB块播放长视频(4 GB+),但它不起作用。直到2 GB大小的视频看起来一切都很好,但是对于非常大的视频大小就有问题了。我是否需要在PHP、Apache端进行优化,或者需要在下面的脚本中进行任何更新以支持非常大的视频?
<?php
require 'awss3/vendor/autoload.php';
use AwsS3S3Client;
use AwsExceptionAwsException;
$objectkey = '<VIDEO>.mp4';
$buffer = '';
$bucketname = '<BUCKETNAME>';
$key = '<KEY>';
$secret = '<SECRET_KEY>';
$region = '<REGION>';
$s3 = new S3Client([
'region' => $region,
'version' => 'latest',
'credentials' => [
'key' => $key,
'secret' => $secret,
]
]);
$s3->registerStreamWrapper();
$context = stream_context_create(array(
's3' => array(
'seekable' => true
)
));
// get the file's mime type to send the correct content type header
$path = "s3://$bucketname/$objectkey";
header('HTTP/1.0 200 OK');
header("Content-Type: video/mp4");
header('Accept-Ranges: bytes');
$options = array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false,
),
);
$context = stream_context_create($options);
$handle = fopen($path, 'rb', false, $context);
$chunkSize = 1024 * 1024 * 8;
$buffer = '';
ob_start();
while (!feof($handle)) {
$buffer = fread($handle, $chunkSize);
echo $buffer;
ob_flush();
flush();
}
fclose($handle);
exit;
php>推荐答案
不需要通过您的php应用程序代理此数据。
只需签署一个S3URL,并让您的客户端直接从S3加载数据即可。这样,您的服务器完全没有负载,也不会浪费带宽。这篇关于PHP流非常大的视频(>;4 GB)问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:PHP流非常大的视频(>;4 GB)问题
基础教程推荐
猜你喜欢
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01