2014年年初的時候,曾經受委託完成一個視頻網站,那時最大的技術障礙是一個大視頻好比500MB,在一個帶寬環境不怎麼快的服務器(好比1Mbps)上提供播放的問題。php
這裏會遇到兩種狀況,第一種狀況是客戶機加載完整個視頻,而後播放。第二種狀況是客戶機正在加載這個視頻,視頻卡在頁面上,沒法播放。正則表達式
因而,我就研究了一下目前幾大主流的視頻網站的播放技術,發覺絕大多數網站都使用了一種視頻切片的技術,把大視頻切成小片,而後分段加載進來。由於小片的視頻是徹底能夠在幾秒內所有加載的,因此若是用戶移動進度條,是能夠實現「移到哪裏就能夠立刻看哪裏」。數組
固然,後面由於實力有限,並無作視頻分片,而是用了Flash播放器把項目「馬馬虎虎」應付了,具體技術細節也並不清楚。bash
今天,我在網上看到了一個很好的視頻,用地址解析後發現視頻被分割成了300多片,因而我用PHP的正則表達式批量下載了連接地址服務器
$path="*"; $str=''; if(file_exists($path)){ $str=file_get_contents($path); } $a=[]; preg_match_all('/https:\S*.mp4/',$str,$a); var_dump($a);
這裏已經把連接地址都存放進了數組$a函數
而後使用file_put_contents函數下載這個URL資源工具
for($i=0;$i<count($a[0]);++$i){ $content = file_get_contents($a[0][$i]); file_put_contents('download/'.$i.'.mp4',$content); }
把視頻都下載到一個文件夾後,就開始合併,合併只須要用最簡單的命令行工具網站
copy /b *.mp4 new.mp4