m3u8搭建伺服器
⑴ 搭建離線m3u8代理伺服器時,遇到播放器不播放問題
最終的原因是在ServerSocket接收到客戶端請求的Socket後沒有給客戶端Socket設置read超時時間,並且也沒有主動去關閉socket,所以就導致了客戶端以為沒有伺服器沒有輸出完數據,一直在等待中。。。
⑵ m3u8是什麼
m3u8是蘋果公司推出的視頻播放標准,是m3u的一種,只是編碼格式採用的是UTF-8。
m3u8准確來說是一種索引文件,使用m3u8文件實際上是通過它來解析對應的放在伺服器上的視頻網路地址,從而實現在線播放。使用m3u8格式文件主要因為可以實現多碼率視頻的適配,視頻網站可以根據用戶的網路帶寬情況,自動為客戶端匹配一個合適的碼率文件進行播放,從而保證視頻的流暢度。
M3U文件的特點:
M3U文件的大小很小,也就是因為它裡面沒有任何音頻數據。把M3U文件直接轉換為音頻文件是不可能的,除非你把它指向的音頻文件下載下來再作處理。
m3u格式的文件只是存儲多媒體播放列表,提供了一個指向其他位置的音頻視頻文件的索引,你播放的還是那些被指向的文件,用記事本打開m3u文件可以查看所指向文件的地址及文件的屬性,以選用合適播放器播放。
⑶ 虎牙直播源改m3u8流暢地址
找到源代碼更改。
打開直播間,在頁面空白處,右鍵選[查看源代碼]。在該頁面,Ctrl+F,輸入[sHlsUrl],回車。找到三個伺服器地址,也就是三條播放線路,都把它復制到記事本里,然後把轉義字元清理掉,得到。再次在該頁面,Ctrl+F,輸入[sStreamName],回車。找到三個相同的流名稱,換句話說,這個直播間它在三個伺服器上用的是同一個流名稱,把這個流名稱復制到記事本里,然後與伺服器地址拼接,最後加上.m3u8,得到這樣我們已經完成了提取直播間地址轉成直播源m3u8,接下來進行測試。測試播放器:PotPlayer64bit,VLCmediaplayer首先,打開PotPlayer,直接F6打開播放列表,然後Ctrl+U添加我們轉成的三個直播源。經過測試,PotPlayer中三個m3u8地址都可以播放。接下來,打開VLC,Ctrl+L打開播放列表,在右邊大空白區域,右鍵選高級打開,然後選擇網路,一次只能添加一條,重復三。經過測試,VLC中三個m3u8地址都可以播放,默認推流是最高畫質。經過測試,Video.js家的Videojs-http-streaming(VHS)只能播放第三個地址。
找到某人或某機關或與其通信的指定地點(如住處或營業所),在計算機中,標識寄存器、存儲單元和存儲設備的編號或名稱,個人居住或通信地點,團體所在或通信地點。
⑷ 如何將ffmpeg部署到伺服器里,讓其自動切片成m3u8文件
我們現在是把ffmpeg放在項目里,然後用java調用exe。
public void fileTom3u8(Video video){
//
video.setStatus(2);
videoService.update(video);
String fileName = String.valueOf(System.currentTimeMillis());
String dest = Configue.getUploadUrl()+ UploadUtil.getImagesUpladPath() + fileName + ".m3u8"; // 目標文件
// 調用bat文件轉換流化視頻
String batpath = "cmd /c start " + Configue.getFfmpegPath() + "ffmpeg.exe -i";
// 加參數
batpath += " " + Configue.getUploadUrl() + "/" + video.getPath();
batpath += " -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 ";
batpath += " " + Configue.getUploadPath() + UploadUtil.getImagesUpladPath() + fileName + ".m3u8";
CommonUtils.runbat(batpath);
video.setStreamingPath(UploadUtil.getImagesUpladPath() + fileName + ".m3u8");
video.setStatus(1);
videoService.update(video);
System.out.println(batpath);
}
⑸ centos 搭建SRS 流媒體服務
啟動 srs
3:生成 /etc/sysconfig/iptables
iptables -P INPUT ACCEPT
4:執行開放埠命令
/sbin/iptables -I INPUT -p tcp --dport 1935 -j ACCEPT
5:保存
iptables-save > /etc/sysconfig/iptables
在重啟之後,最好執行 ./etc/init.d/srs status ,如果顯示 SRS(pid 14203) is running. 則表示啟動成功,而不要只僅僅靠 ps -ef |grep srs 來判斷服務是否開啟
HLS是提供一個m3u8地址,Apple的Safari瀏覽器直接就能打開m3u8地址,譬如:
Android不能直接打開,需要使用html5的video標簽,然後在瀏覽器中打開這個頁面即可,譬如:
HLS的m3u8,是一個ts的列表,也就是告訴瀏覽器可以播放這些ts文件,譬如:
OBS Studio : 直播軟體
VLC media player ,可以播放任何格式的視頻
OBS-Studio版本的使用教程
選中視頻,點擊右鍵,選擇 交換(T) -> 比例適配屏幕(F)
VLC視頻源 - 這個可以選擇一個文件夾,但是 媒體源是只可以選擇一個文件的
當直播開始後,我的直播頁面不要刷新,否則密鑰流地址會變化,導致視頻播放失敗
一切准備就緒後,1.在 我的視頻 頁面點擊 OBS直播,會提示直播成功。這個頁面不能關閉,否則會導致流密鑰無效;
2.OBS軟體點擊 開始推流
⑹ HLS-m3u8播放列表和ts切片(2)
閑話不多說,正題coming...
1.1 先檢查是否安裝了Homebrew,在終端輸入命令:brew help。如圖說明安裝了,並且你也可以查看它的其他常用命令:
1.2 如果未安裝,則在終端輸入安裝命令:
在終端輸入命令:
下圖可清晰看到ffmpeg共47M(要耐心等待哦~),以及安裝在本地的路徑(usr/local/Cellar/ffmpeg/3.0.2)。
通過剛剛安裝的ffmpeg,在終端輸入命令(靈活變化):
首先在本地啟用Apache搭建好WebServer(這里不做介紹了),然後將<步驟3>中的 XXX.m3u8 放置於該伺服器下的共享目錄下,由此可得到m3u8的播放URL(http://localhost/richyleo/m3u8/war3.m3u8),Richy的真實切片命令共大家參考替換:
打開Safari瀏覽器,或者在App中載入播放視頻功能,傳入播放地址即可完成。