簡體   English   中英

是否可以使用Apache獲得文件傳輸的速度?

[英]Is it possible to get the speed of a file transfer using Apache?

我正在開發360度視頻流應用。 我目前正在通過Apache代理將S3的HLS片段傳遞給客戶端,以解決iOS錯誤,在該錯誤中不檢查CORS標頭是否包含視頻紋理。 我想監視正在發送給用戶的數據量,以便可以向用戶提供有關何時可以開始視頻播放的反饋。

假設用戶加載了/video.php,它對/video/video1.ts進行了XHR調用,大小為20mb。 是否可以在PHP或命令行中甚至通過IP地址匹配兩個請求,以便將進度消息傳遞回用戶? 我希望能夠說“下載的5mb / 20mb”,即使仍無法准確預測HLS播放何時開始。

據我所知,無法得知已經取得了多少進展或何時開始HLS播放-我使用的是Delight VR,但他們表示無法從瀏覽器訪問這些數據。

感謝您的任何想法!

看來唯一的方法是使用PHP腳本代理文件並將進度存儲在會話變量中。

這是https://coolcodings.wordpress.com/2014/08/27/track-file-downloading-progress-with-javascript/中的一種方法的摘要

$file = @fopen("SET YOUR DOWNLOADING FILE PATH HERE","rb");
$fileSize = filesize("SET YOUR DOWNLOADING FILE PATH HERE");
$fileName = "SET FILE NAME";

header('Content-Type: SET YOUR MIME TYPE');
header("Content-Disposition: attachment; filename=".$fileName);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Length: '.$fileSize); 
while(!feof($file)) {
        echo fread($file, 1024*8);
        ob_flush();
        flush();     
        $downloadedBytes+= (1024 * 8);


        session_start();
        $_SESSION['current_file_downloaded_bytes'] = $downloadedBytes;
        session_commit();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM