日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

搭建HTTP Live Streaming直播系统

發(fā)布時(shí)間:2023/12/16 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建HTTP Live Streaming直播系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ??我的博客已轉(zhuǎn)移至 http://nmgfrank.com



? ? 最近,需要將蘋果的HTTP Live Streaming系統(tǒng)搭建起來。完全沒有頭緒,故第一步就是學(xué)習(xí)。

一、學(xué)習(xí)資料

官網(wǎng)資料

1.?http://developer.apple.com/resources/http-streaming/

具體的搭建方案

? ? ? ? 使用segmenter將現(xiàn)成的視頻文件分割,并生成列表文件。

1.?http://blog.csdn.net/zhoujunming/article/details/6694730

2.?http://blog.sina.com.cn/s/blog_6c13e14e0100r9b8.html

3.?http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/

二、使用Helix Universal Server和Helix Producer搭建直播系統(tǒng)

? ? ? ? ? ? ?1. http://scrolls.bokecc.com/?p=207? ?

? ? ? ? ? ? ? ? ? ? ““”

蘋果沒有官方的HLS直播服務(wù)器軟件和客戶端軟件。其它第三方公司的產(chǎn)品有: ·? TVersity ·? Helix Universal Server ·? Wowza Media Server ·? VLC Media Player version 1.2 我采用Helix Universal Server和Helix Producer(客戶端軟件)進(jìn)行了直播測試。 若要做針對(duì)iOS平臺(tái)的直播,目前來看,只能采用此種方式。

? ? ? ? ? ? ? ? ? ? ”“” ? ??

? ? ? ? ? ? ? ? ? ? ?因此我也選擇使用Helix Universal Server和Helix Producer來搭建直播系統(tǒng)。

? ? ? ? ? ? ? ?2. ?Helix Universal Server

? ? ? ? ? ? ? ? ? (1) ?下載與安裝

? ? ? ? ? ? ? ? ? ? ? ? ?http://www.realnetworks.com/helix/download-helix-products.aspx?

? ? ? ? ? ? ? ? ? ? ? ? ?在官方頁面下載Helix Universal Server與Helix Producer。

???????????????????????? Windows系統(tǒng)下,軟件的安裝過程會(huì)有詳細(xì)而明白的提示,十分方便,

???????????????????????? Linux操作系統(tǒng)中,

????????????????????????????? 將下載的tar.gz文件解壓得到bin文件。執(zhí)行bin文件。

????????????????????????????? 1. 輸入證書的路徑,如果證書有效,就可以不斷地按【enter】鍵將其讀完。

????????????????????????????? 2. 選擇accept剛才閱讀過的內(nèi)容。

????????????????????????????? 3. 然后程序會(huì)讓你填寫安裝路徑,默認(rèn)為bin文件所在的文件夾。第一次安裝時(shí),

?????????????????????????????? 由于enter點(diǎn)得太快,跳過了這一步。于是不得不再安裝一次!!

????????????????????????????? 4. 輸入用戶名和密碼。

????????????????????????????? 剩下就沒有太重要的內(nèi)容了,憑著感覺安裝即可。

????????????????????????????? 安裝結(jié)束后,進(jìn)入安裝目錄,

??????????????????????????????????? 輸入命令:sudo ./Bin/rmserver rmserver.cfg就可以將服務(wù)器運(yùn)行起來。

??????????????????????????????????? 打開配置文件rmserver.cfg,找到管理端口,在我這里是<Var AdminPort="25567"/>?

??????????????????????????????????? 輸入鏈接:http://localhost:25567/admin/index.html 就可以進(jìn)入系統(tǒng)的管理頁面。

? ? ? ? ? ? ? ? ? (2) ?官方文檔

? ? ? ? ? ? ? ? ? ? ? ??http://www.realnetworks.com/helix/download-helix-products.aspx

? ? ? ? ? ? ? ? ? ? ? ? 從上述鏈接對(duì)應(yīng)的文章中,我們可以了解到如何搭建基于Helix Universal Server的系統(tǒng),

? ? ? ? ? ? ? ? ? ? ? ? 其中,文章的第七章詳細(xì)介紹了如何將

? ? ? ? ? ? ? ? ? ? ? ? http://docs.real.com/docs/producer14/HelixProducer14.0.0_GettingStarted.pdf

? ? ? ? ? ? ? ? ? ? ? ? 上述鏈接對(duì)應(yīng)的文章介紹了Helix Producer的使用方法。

? ? ? ? ? ? ? ? ? 3. 利用Helix Universal Server和Helix Producer在一臺(tái)機(jī)器上搭建直播系統(tǒng)(winxp操作系統(tǒng))。

? ? ? ? ? ? ? ? ? ? ? ?(1) 安裝 Helix Universal Server和Helix Producer,安裝時(shí)均使用默認(rèn)設(shè)置,另外 還要設(shè)置用戶名和密碼。

? ? ? ? ? ? ? ? ? ? ? ?(2) 運(yùn)行Server

      • 打開服務(wù)器自帶的管理頁面(Server Administrator)。
      • 選擇Content Management ?-> ?Media Segmentation, ?將Enable Segmentation的狀態(tài)改為yes? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ?(3) 運(yùn)行Helix Producer。

      • 選中input標(biāo)簽,設(shè)置輸入。選中USB/Capture Device,再選擇相應(yīng)的信號(hào)源。
      • 選中output標(biāo)簽,設(shè)置輸出。點(diǎn)擊面板上的加號(hào)(Add output),然后進(jìn)行對(duì)兩類參數(shù)進(jìn)行設(shè)置。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? encoding settings:設(shè)定相應(yīng)的格式以及視頻流的平均碼率,幀率等參數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? output servers:設(shè)定編碼后的數(shù)據(jù)發(fā)到哪個(gè)服務(wù)器上。主要有如下幾個(gè)參數(shù):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Server Type(可能是producer向服務(wù)器傳送數(shù)據(jù)的方式):Helix Push.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Stream Name(數(shù)據(jù)流的名稱,在客戶端,可以通過這個(gè)名稱向服務(wù)器請(qǐng)求相應(yīng)的數(shù)據(jù)流):test.mp4。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Server address(服務(wù)器地址,由于server在本地,我將這個(gè)值設(shè)定為127.0.0.1)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HTTP Server Port(服務(wù)器設(shè)定的HTTP端口,默認(rèn)為80):80.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Username,Password(Helix服務(wù)器在安裝之初設(shè)置的用戶名和密碼)。

      • 點(diǎn)擊“Start Job”, 如果start成功,說明producer已經(jīng)連接到服務(wù)器并且開始傳輸數(shù)據(jù)。

? ? ? ? ? ? ? ? 4. 觀察直播系統(tǒng)中的文件。

? ? ? ? ? ? ? ? ? ? ?(1) 通過鏈接http://127.0.0.1/m3ugen/broadcast/test.mp4可以獲得.m3u8文件(類似于index文件)。

? ? ? ? ? ? ? ? ? ? ?(2) 進(jìn)入服務(wù)器管理頁面,選擇Content Management -> Content Browsing, 點(diǎn)擊Browse Content鏈接,就可以看到服務(wù)器上

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?的掛載點(diǎn),以及掛載點(diǎn)下的資源。選擇iPhone掛載點(diǎn),進(jìn)入broadcast,,進(jìn)入test.mp4就可以看到ts格式的片段文件。


? ? ? ? ? ? ? ? 5. ?播放。

? ? ? ? ? ? ? ? ? ? ?(1) 在播放器(例如vlc)中輸入地址 ?rtsp://127.0.0.1:554/broadcast/test.mp4, 可以看到直播的視頻。

? ? ? ? ? ? ? ? ? ? ?(2) 播放HTTP Streaming,使用蘋果客戶端(iPhone)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?用safari運(yùn)行腳本:

<html>?

? ? <head>?

<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>

? ? ? ? ? ?</head> <body style="background-color:#FFFFFF; ">?

? ? <body>

? ? ? ? ? ? ? ? ? ? <center>?<video src="SERVER_ADD:SERVER_PORT/m3ugen/broadcast/test.mp4" controls autoplay ></video> </center>

? ? ?</body>?

</html>

三、使用免費(fèi)的產(chǎn)品搭建直播系統(tǒng)

? ? ?上述方案的不足就是Helix的產(chǎn)品只有試用版。想用正版就得花錢。

? ? ?1. 學(xué)習(xí)資料

? ? ? ?使用VLC+mediastreamsegmenter+apache搭建HTTP Live Streaming系統(tǒng):

? ? ? ? ? ? ? http://www.unmht.org/memo/en_ipod_stream.html

? ? ? ? ? ? ? ? ? ?http://jokru.org/apple-http-live-streaming-to-the-ipadiphone-w

? ? ? ? ?mediastreamsegmenter的使用方法:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/mediastreamsegmenter.1.html

? ? ? ? ?對(duì)于搭建HTTP Live Streaming系統(tǒng),官方的說明資料:http://developer.apple.com/library/ios/#technotes/tn2224/_index.html


? ? ?2.工具的選擇

? ? ? ? ?(1)視頻信號(hào)的采集與編碼

?? ? ? ? ? ? ? ?mediastreamsegmenter能夠接收的數(shù)據(jù):視奧頻-》H264;音頻-》AAC, 封裝于ts流中,

? ? ? ? ? ?通過UDP傳輸(似乎是這些要求,具體細(xì)節(jié)我其實(shí)也不清楚)。

? ? ? ? ? ?下面開始尋找能夠滿足這個(gè)要求的工具。

? ? ? ? ? ? ? ? 1)quicktime broadcaster ??

? ? ? ? ? ? ? ? ? ? broadcaster的下載地址:http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?安裝這個(gè)軟件后,用它向mediastreamsegmenter喂數(shù)據(jù),segmenter報(bào)錯(cuò)。因此,我認(rèn)為(可能不對(duì)),

? ? ? ? ? ? ? ? ? ? ? ? ? ?這個(gè)工具不能滿足要求。

? ? ? ? ? ? ? ? ? ? ? ?2) VLC

? ? ? ? ? ? ? ? ? ? ? ? ? ?經(jīng)過試驗(yàn),使用VLC可以成功地向mediastreamsegmenter喂數(shù)據(jù)。因此我選擇VLC作為視頻、音頻流的處理工具。

? ? ? ? ? ? ? ? (2)視頻流的分片工具

? ? ? ? ? ? ? ? ? ? 使用蘋果的mediastreasegmenter

? ? ? ? ? ? ? ? ?( 3 ) 服務(wù)器

? ? ? ? ? ? ? ? ? ? ?apache

? ? ? ?3. 具體架設(shè)方案。

? ? ? ? ? ? ? ? (1) 視頻、音頻信號(hào)的采集與編碼,使用rtsp協(xié)議將視頻播放出去。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一臺(tái)PC(ip地址為192.168.1.101),裝備有攝像頭,麥克風(fēng),安裝有VLC.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1)打開vlc,,選擇 媒體->打開捕獲設(shè)備->捕獲設(shè)備。點(diǎn)擊播放。如果vlc能夠成功將攝像頭和麥克風(fēng)捕獲的信號(hào)顯示出來,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 就可以進(jìn)行下一步。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2)在VLC中選擇 媒體->串流->捕獲設(shè)備,點(diǎn)擊串流。接下來會(huì)彈出一個(gè)流輸出設(shè)置窗口。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在“目標(biāo)”中,選擇RTSP進(jìn)行添加,接著數(shù)據(jù)端口號(hào)(默認(rèn)5544)和路徑(我設(shè)置為 /test)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在轉(zhuǎn)碼選項(xiàng)中,在“激活轉(zhuǎn)碼前打鉤”,檔案中,保持默認(rèn)選項(xiàng)(Video-H264+AAC(MP4))。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 點(diǎn)擊“串流”,這時(shí),該P(yáng)C機(jī)的5544端口就開始提供rtsp直播服務(wù)了。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3) 驗(yàn)證rtsp服務(wù)是否可用。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 打開一個(gè)新的VLC,選擇 ?媒體->打開網(wǎng)絡(luò)串流。輸入rtsp://127.0.0.1:5544/test, 如果可以成功地看到攝像頭捕獲

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 的影像,就說明rtsp服務(wù)是可用的。

? ? ? ? ? ? ? ? ?(2)視頻流的轉(zhuǎn)碼

? ? ? ? ? ? ? ? ? ? ? ? ? ? 一臺(tái)mac(我測試用的的視頻服務(wù)器都部署在這里,IP:192.168.1.109),安裝有vlc.

? ? ? ? ? ? ? ? ? ? ? ? ? ? 由于mediastreamsegmenter不能直接讀入rtsp服務(wù)器傳來的數(shù)據(jù)流,所以我們需要對(duì)數(shù)據(jù)進(jìn)行一定的變換。

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1)找到應(yīng)用程序vlc的地址(一般默認(rèn)在/Applications/VLC.app/Contents/MacOS下),進(jìn)入文件夾。

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2)輸入命令:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ./VLC --intf=dummy rtsp://192.168.1.101:5544/test ?'--sout=#transcode{fps=25,vcodec=h264,venc=x264{aud,profile=baseline,level=30, keyint=30,bframes=0,ref=1,nocabac},acodec=mp3,ab=56,audio-sync,deinterlace}:duplicate{dst=udp{mux=ts,dst=127.0.0.1:8000,access=udp}}'

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 下面大致介紹一下這條命令:

        • ?--intf=dummy ? 表示不顯示VLC的窗口
        • ?rtsp://192.168.1.101:5544/test 是vlc輸入流的來源,也就是我們之前搭建的rtsp服務(wù)器。
        • ?--sout, 通過這個(gè)選項(xiàng) 對(duì)輸出進(jìn)行具體的設(shè)置。
        • ?ranscode{fps=25,vcodec=h264,venc=x264{aud,profile=baseline,level=30, keyint=30,bframes=0,ref=1,nocabac},acodec=mp3,ab=56,audio-sync,deinterlace} ? ?這一行命令對(duì)于視頻和音頻的轉(zhuǎn)碼格式進(jìn)行設(shè)置(視頻和264,音頻aac), 但一些參數(shù)還不是很明白。? ? ? ? ??
        • duplicate{dst=udp{mux=ts,dst=127.0.0.1:8000,access=udp}},將視頻、音頻流封裝為ts格式,使用udp傳輸,傳向本地服務(wù)器的8000端口。

? ? ? ? ? ? ? ? (3) 獲取ts流并進(jìn)行分片

? ? ? ? ? ? ? ? ? ? ? ? ? ?1)medianstreamsegmenter

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 這個(gè)小程序一般默認(rèn)安裝在mac的/usr/bin下。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 具體使用方法:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/mediastreamsegmenter.1.html

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2)使用命令

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/bin/mediastreamsegmenter ?-s 3 -t 5 -D -f /usr/frank/stream 127.0.0.1:8000

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 判斷是否成功分片:如果終端顯示 : Finalized 存儲(chǔ)路徑 file Sequencex.ts,則說明分片成功了。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明:?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-s 3 ?設(shè)定index文件中記錄幾個(gè)分片。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-t ?5 設(shè)定多長時(shí)間(秒)產(chǎn)生一個(gè)分片,默認(rèn)為10秒。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-D 刪除過期的分片文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-f?/usr/frank/stream設(shè)置存儲(chǔ)分片文件和index文件的文件夾

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?127.0.0.1:8000 設(shè)置獲取ts流的地址

? ? ? ? ? ? ? ? (4)使用apache提供服務(wù).

? ? ? ? ? ? ? ? ? ? ? ? ? 第一次在mac下使用apache,難免會(huì)感到一絲生疏。學(xué)習(xí)資料:http://hi.baidu.com/hsbd2005/blog/item/7393a84f0017b5c7d1c86ad4.html

? ? ? ? ? ? ? ? ? ? ? ? ? mac自帶apache.

? ? ? ? ? ? ? ? ? ? ? ? ? 1) 啟動(dòng)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用命令:sudo apachectl start, 然后在瀏覽器中數(shù)據(jù)localhost進(jìn)行查看,如果看到It works,說明apache可以正常工作。

? ? ? ? ? ? ? ? ? ? ? ? ? 2) 配置文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 配置文件默認(rèn)路徑為 /etc/apache2/httpd.conf(對(duì)于文本的編輯,可以用 (vi 文件路徑),也可以用(sudo open -a TextEdit.app 文件路徑)).

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可以看到 DocumentRoot ?"/Library/WebServer/Documents",也就是說,這是存放資源的默認(rèn)路徑。

? ? ? ? ? ? ? ? ? ? ? ? ? ?3) 進(jìn)入 /Library/WebServer/Documents, 建立文件夾httpstream,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?將mediastreamsegmenter的輸出指向這里: ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/usr/bin/mediastreamsegmenter ?-s 3 -D -f /Library/WebServer/Documents/httpstream 127.0.0.1:8000

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在瀏覽器中輸入localhost/httpstream/prog_index.m3u8,如果能夠看到分片文件的列表,就說明成功了一半。 ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?4) 寫腳本文件,在Library/WebServer/Documents/下創(chuàng)建一個(gè)index.html文件,具體內(nèi)容如下:

<html>?

? ? <head>?

<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>

? ? ? ? ? ?</head> <body style="background-color:#FFFFFF; ">?

? ? <body>

? ? ? ? ? ? ? ? ? ? <center>?<video src="192.168.1.109/httpstream/prog_index.m3u8" controls autoplay ></video> </center>

? ? ?</body>?

</html>

(5) 直播效果

? ? ? ? ? ?在safari中輸入鏈接http://192.168.1.109/index.html,觀看直播。 ??

? ? ? ? ? ? 畫質(zhì)很差,可能是一些參數(shù)設(shè)得不夠好。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ?















?

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??




? ? ? ? ? ? ? ??







總結(jié)

以上是生活随笔為你收集整理的搭建HTTP Live Streaming直播系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。