本發(fā)明涉及視頻播放,尤其涉及一種基于hls的視頻播放方法、系統(tǒng)、終端及計算機可讀存儲介質。
背景技術:
1、國外很多http直播流(基于hls,http?live?streaming)網(wǎng)站tcp連接延遲過高,一次連接就有可能達到秒級,其http請求非常耗時,而且這些網(wǎng)站還同時支持多分辨率m3u8自適應碼率播放。目前ffmpeg以及其他主流軟件(如:gstreamer)針對自適應碼率的m3u8都是同時連接不同分辨率的url,從而達到自適應無縫動態(tài)切換的效果。但是,因為國外部分地區(qū)網(wǎng)絡服務器請求非常慢,導致這種同時請求不同分辨率的rul時使得啟播速度非常慢,即啟動播放直播視頻的速度很慢。
2、也就是說,現(xiàn)有技術不管網(wǎng)絡環(huán)境差與否,都會同時請求多個不同分辨率的url,這就會影響直播視頻的啟播速度,尤其是當網(wǎng)絡環(huán)境較差時,其啟播速度變得非常慢,嚴重影響用戶的觀感體驗。
3、因此,現(xiàn)有技術還有待于改進和發(fā)展。
技術實現(xiàn)思路
1、本發(fā)明的主要目的在于提供一種基于hls的視頻播放方法、系統(tǒng)、終端及計算機可讀存儲介質,旨在解決現(xiàn)有技術中同時請求不同分辨率的rul時,影響直播視頻的啟播速度,尤其是當網(wǎng)絡環(huán)境較差時,其啟播速度變得非常慢,嚴重影響用戶的觀感體驗的問題。
2、為實現(xiàn)上述目的,本發(fā)明提供一種基于hls的視頻播放方法,所述基于hls的視頻播放方法包括如下步驟:
3、當在瀏覽器中選擇并點擊目標hls直播視頻時,通過ffmpeg多媒體框架接收服務器下發(fā)的url,并檢測網(wǎng)絡狀態(tài),得到網(wǎng)絡狀態(tài)的檢測結果;
4、根據(jù)所述檢測結果,判斷當前網(wǎng)速是否低于預設網(wǎng)速閾值,若所述當前網(wǎng)速低于所述預設網(wǎng)速閾值,則取消高分辨率的url請求,并請求一個低分辨率的url;
5、當所述目標hls直播視頻顯示完第一幀時,將取消掉的高分辨率的url請求進行恢復處理,以使得所述ffmpeg多媒體框架監(jiān)控網(wǎng)絡情況,并根據(jù)網(wǎng)絡情況將所述目標hls直播視頻切換成不同分辨率的ts流進行播放。
6、可選地,所述的基于hls的視頻播放方法,其中,所述當在瀏覽器中選擇并點擊目標hls直播視頻時,通過ffmpeg多媒體框架接收服務器下發(fā)的url,并檢測網(wǎng)絡狀態(tài),得到網(wǎng)絡狀態(tài)的檢測結果,具體包括:
7、獲取用戶的選擇操作指令,根據(jù)所述選擇操作指令在瀏覽器中選擇并點擊目標hls直播視頻;
8、當用戶點擊瀏覽器時,通過瀏覽器向服務器發(fā)起請求,并通過ffmpeg多媒體框架接收服務器下發(fā)的url;
9、通過ffmpeg多媒體框架根據(jù)服務器下發(fā)的url檢測網(wǎng)絡狀態(tài),并得到網(wǎng)絡狀態(tài)的檢測結果。
10、可選地,所述的基于hls的視頻播放方法,其中,所述網(wǎng)絡狀態(tài)的檢測結果包括當前網(wǎng)速。
11、可選地,所述的基于hls的視頻播放方法,其中,所述根據(jù)所述檢測結果,判斷當前網(wǎng)速是否低于預設網(wǎng)速閾值,若所述當前網(wǎng)速低于所述預設網(wǎng)速閾值,則取消高分辨率的url請求,并請求一個低分辨率的url,具體包括:
12、根據(jù)預設命令預先獲取預設網(wǎng)速閾值,并獲取所述檢測結果中的當前網(wǎng)速;
13、將所述當前網(wǎng)速與所述預設網(wǎng)速閾值進行比較,判斷所述當前網(wǎng)速是否低于所述預設網(wǎng)速閾值;
14、若判斷出所述當前網(wǎng)速低于所述預設網(wǎng)速閾值,則取消多個不同分辨率的m3u8文件中的所有高分辨率的url請求,并只請求一個低分辨率的url。
15、可選地,所述的基于hls的視頻播放方法,其中,所述m3u8文件為基于http的媒體播放列表文件,包括多個媒體資源鏈接。
16、可選地,所述的基于hls的視頻播放方法,其中,所述當所述目標hls直播視頻顯示完第一幀時,將取消掉的高分辨率的url請求進行恢復處理,以使得所述ffmpeg多媒體框架監(jiān)控網(wǎng)絡情況,并根據(jù)網(wǎng)絡情況將所述目標hls直播視頻切換成不同分辨率的ts流進行播放,具體包括:
17、當所述目標hls直播視頻顯示完第一幀時,表示所述目標hls直播視頻完全啟動播放,將取消掉的高分辨率的url請求進行恢復處理;
18、通過所述ffmpeg多媒體框架向服務器請求高分辨率的ts流,并監(jiān)控網(wǎng)絡情況,根據(jù)網(wǎng)絡情況將所述目標hls直播視頻切換成不同分辨率的ts流進行播放,其中,所述ts流屬于所述目標hls直播視頻中的分片。
19、可選地,所述的基于hls的視頻播放方法,其中,所述目標hls直播視頻表示實時生成的hls流,并允許用戶觀看實時的視頻內容;所述ts流用于存儲編碼后的音視頻數(shù)據(jù)。
20、此外,為實現(xiàn)上述目的,本發(fā)明還提供一種基于hls的視頻播放系統(tǒng),其中,所述基于hls的視頻播放系統(tǒng)包括:
21、網(wǎng)絡狀態(tài)檢測模塊,用于當在瀏覽器中選擇并點擊目標hls直播視頻時,通過ffmpeg多媒體框架接收服務器下發(fā)的url,并檢測網(wǎng)絡狀態(tài),得到網(wǎng)絡狀態(tài)的檢測結果;
22、url請求處理模塊,用于根據(jù)所述檢測結果,判斷當前網(wǎng)速是否低于預設網(wǎng)速閾值,若所述當前網(wǎng)速低于所述預設網(wǎng)速閾值,則取消高分辨率的url請求,并請求一個低分辨率的url;
23、視頻播放控制模塊,用于當所述目標hls直播視頻顯示完第一幀時,將取消掉的高分辨率的url請求進行恢復處理,以使得所述ffmpeg多媒體框架監(jiān)控網(wǎng)絡情況,并根據(jù)網(wǎng)絡情況將所述目標hls直播視頻切換成不同分辨率的ts流進行播放。
24、此外,為實現(xiàn)上述目的,本發(fā)明還提供一種終端,其中,所述終端包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的基于hls的視頻播放程序,所述基于hls的視頻播放程序被所述處理器執(zhí)行時實現(xiàn)如上所述的基于hls的視頻播放方法的步驟。
25、此外,為實現(xiàn)上述目的,本發(fā)明還提供一種計算機可讀存儲介質,其中,所述計算機可讀存儲介質存儲有基于hls的視頻播放程序,所述基于hls的視頻播放程序被處理器執(zhí)行時實現(xiàn)如上所述的基于hls的視頻播放方法的步驟。
26、本發(fā)明中,當在瀏覽器中選擇并點擊目標hls直播視頻時,通過ffmpeg多媒體框架接收服務器下發(fā)的url,并檢測網(wǎng)絡狀態(tài),得到網(wǎng)絡狀態(tài)的檢測結果;根據(jù)所述檢測結果,判斷當前網(wǎng)速是否低于預設網(wǎng)速閾值,若所述當前網(wǎng)速低于所述預設網(wǎng)速閾值,則取消高分辨率的url請求,并請求一個低分辨率的url;當所述目標hls直播視頻顯示完第一幀時,將取消掉的高分辨率的url請求進行恢復處理,以使得所述ffmpeg多媒體框架監(jiān)控網(wǎng)絡情況,并根據(jù)網(wǎng)絡情況將所述目標hls直播視頻切換成不同分辨率的ts流進行播放。本發(fā)明能快速提升啟播速度,縮短用戶從點擊視頻到顯示第一幀視頻畫面的時間,不至于請求多個url導致卡很長時間,從而提升用戶觀看體驗。
1.一種基于hls的視頻播放方法,其特征在于,所述基于hls的視頻播放方法包括:
2.根據(jù)權利要求1所述的基于hls的視頻播放方法,其特征在于,所述當在瀏覽器中選擇并點擊目標hls直播視頻時,通過ffmpeg多媒體框架接收服務器下發(fā)的url,并檢測網(wǎng)絡狀態(tài),得到網(wǎng)絡狀態(tài)的檢測結果,具體包括:
3.根據(jù)權利要求2所述的基于hls的視頻播放方法,其特征在于,所述網(wǎng)絡狀態(tài)的檢測結果包括當前網(wǎng)速。
4.根據(jù)權利要求1所述的基于hls的視頻播放方法,其特征在于,所述根據(jù)所述檢測結果,判斷當前網(wǎng)速是否低于預設網(wǎng)速閾值,若所述當前網(wǎng)速低于所述預設網(wǎng)速閾值,則取消高分辨率的url請求,并請求一個低分辨率的url,具體包括:
5.根據(jù)權利要求4所述的基于hls的視頻播放方法,其特征在于,所述m3u8文件為基于http的媒體播放列表文件,包括多個媒體資源鏈接。
6.根據(jù)權利要求1所述的基于hls的視頻播放方法,其特征在于,所述當所述目標hls直播視頻顯示完第一幀時,將取消掉的高分辨率的url請求進行恢復處理,以使得所述ffmpeg多媒體框架監(jiān)控網(wǎng)絡情況,并根據(jù)網(wǎng)絡情況將所述目標hls直播視頻切換成不同分辨率的ts流進行播放,具體包括:
7.根據(jù)權利要求1或6所述的基于hls的視頻播放方法,其特征在于,所述目標hls直播視頻表示實時生成的hls流,并允許用戶觀看實時的視頻內容;所述ts流用于存儲編碼后的音視頻數(shù)據(jù)。
8.一種基于hls的視頻播放系統(tǒng),其特征在于,所述基于hls的視頻播放系統(tǒng)包括:
9.一種終端,其特征在于,所述終端包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的基于hls的視頻播放程序,所述基于hls的視頻播放程序被所述處理器執(zhí)行時實現(xiàn)如權利要求1-7任一項所述的基于hls的視頻播放方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有基于hls的視頻播放程序,所述基于hls的視頻播放程序被處理器執(zhí)行時實現(xiàn)如權利要求1-7任一項所述的基于hls的視頻播放方法的步驟。