小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何利用VLC或FFMPEG將HTTP的串流(非HLS或DASH)轉(zhuǎn)換成RTMP

 看見(jiàn)就非常 2013-08-26


這個(gè)應(yīng)用主要是將HTTP的串流(非HLS或DASH)轉(zhuǎn)換成RTMP協(xié)議傳送到Adobe Flash Media Server或Wowza Media Server的媒體服務(wù)器。

根據(jù)維基百科: “Real Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server. Macromedia is now owned by Adobe, which has released an incomplete version of the specification of the protocol for public use.”

RTMP的協(xié)議有以下的參數(shù):

  • RTMP: 其原始采用TCP port 1935
  • RTMPS: 將RTMP加載到SSL的安全機(jī)制,就類(lèi)似HTTPS。
  • RTMPE: 采用Adobe所提供給RTMP所發(fā)展的加密版本。
  • RTMPT: 在RTMP上加掛he RTMP protocol 封裝在HTTP請(qǐng)求中,可以穿越防火牆。這是一個(gè)很不錯(cuò)的協(xié)議,使用TCP端口80和443繞過(guò)公司對(duì)防火牆。封裝的會(huì)話可能攜帶純RTMP,RTMPS或RTMPE包內(nèi)。

RTMP 串流

VLC 在 2.0.x版本里可以支持RTMP協(xié)議。不過(guò),有些環(huán)境卻沒(méi)法執(zhí)行,例如2.0.2, 2.0.3, 2.0.4, 2.0.6在Windows 2008 Server 64的服務(wù)器上確實(shí)沒(méi)法執(zhí)行??梢蚤_(kāi)啟VLC然后開(kāi)啟網(wǎng)絡(luò)串流,如“RTMP://aaa.bbb.com:1935/live/串流源“,看看可否開(kāi) 啟。主要是VLC 2.0.x采用 ffmpeg/libav的程序庫(kù),但是, 有的包裝卻沒(méi)法支持。所以必須先做確認(rèn)。當(dāng) librtmp 的支持被啟動(dòng)于 ffmpeg/libav 則RTMPS才可以有功用。

VLC和RTMP的情形主要是用來(lái)捕獲和轉(zhuǎn)碼應(yīng)用程序生成一個(gè)單一的流。是通過(guò)另一個(gè)應(yīng)用程序分配給多個(gè)客戶(hù)端。這在Wowza是非常重要的。雖然,Wowza也支持VLC采用UDP/RTP/RTSP方式接收串流,但是,很多情況下是很不穩(wěn)定的。

LC直接連接到一個(gè)的RTMP串流,如WOWZA,不聽(tīng)傳入的請(qǐng)求。因此,它是不可能的,以查看的RTMP流直接從VLC。您需要連接到WOWZA,觀看流。這是可以用VLC做到的:

$ vlc rtmp://rtmp.server.com:1935/path/to/stream

有件事必須提醒的。從VLC將RTMP串流傳送給Wowza服務(wù)器并不是都很穩(wěn)定的。有一些時(shí)間關(guān)系的“蟲(chóng)”會(huì)造成Wowza關(guān)閉連線。 這樣的問(wèn)題都是與“音頻”與”視頻“時(shí)間戳(Timestamp)有關(guān)系的。采用“audio-desync” 選項(xiàng)來(lái)整合RTMP也不是個(gè)好點(diǎn)子,但是, 可以不斷調(diào)整與修改。

Webcam RTMP streaming

以下是有關(guān)webcam的應(yīng)用。其他的有采集裝置、設(shè)備、視頻文檔等應(yīng)用。

Windows 的范例

在windows的采集裝置都是利用DirectShow這個(gè)界面的。在VLC的模塊也是用這樣的界面,成為“DirectShow“或”dshow”。以下是范例:

$ vlc dshow://"" --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'

DirectShow選項(xiàng)也可在QT界面里采用

Linux 的范例

通常在Linux的採(cǎi)集裝置上都是採(cǎi)用“video for linux” (v4l2)這個(gè)界面。使用指令方式來(lái)采集webcam裝置(或稱(chēng)為”v4l2 裝置”)送出RTMP串流的范例如下:

$ vlc v4l2:// --v4l2-fps=25 --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'

這個(gè)例子可以自動(dòng)偵測(cè) v4l2 裝置并且選擇第一個(gè)裝置來(lái)采集訊號(hào)。其他的參數(shù)選項(xiàng)如視頻標(biāo)準(zhǔn)(PAL, NTSC)、Chroma、寬度、長(zhǎng)度等等可以自行設(shè)置。必須要注意的是,這些參數(shù)設(shè)置跟本身的設(shè)備有關(guān)。 當(dāng)我門(mén)使用debug模式 (-vvv),VLC自身的video for linux (v4l2) 模塊會(huì)顯示出執(zhí)行時(shí)所出現(xiàn)的數(shù)值訊息。v4l2 模塊提供以下可作為優(yōu)化的選項(xiàng):

  • –v4l2-dev=: 指定所要采集的特定裝置
  • –v4l2-standard=: 使用哪種視頻標(biāo)準(zhǔn),例如: SECAM, PAL, NTSC and more
  • –v4l2-width=: 視頻呈現(xiàn)的寬度(in pixels)
  • –v4l2-height=: 視頻呈現(xiàn)的長(zhǎng)度度(in pixels)

以上是描述有關(guān)v4l2的參數(shù)選項(xiàng)。完整的v4l2模塊訊息,可以利用下面的指令查詢(xún)。

$ vlc -H -p v4l2 --advanced

以下是另一個(gè)將http串流轉(zhuǎn)碼(transcode)到RTMP給Adobe Flash Media Server或Wowza Media Server等視頻服務(wù)器

cvlc -I dummy http://orginalstreamIPaddress:50014 --sout-mux-caching=5000 --sout='#transcode{venc=x264{keyint=60},vcodec=h264,vb=800}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://destinationIPaddress:1935/live/StreamFile}}' &

這是用ffmpeg的方法:

ffmpeg -i http://OriginalIPAddress:50010 -vcodec libx264 -vb 800k -acodec libfaac -ab 64k -f flv rtmp://DestinationIPAddress:1935/live/StreamFile

有關(guān)更詳細(xì)的訊息,可以參考這些網(wǎng)站:www., Ubuntu FFMPEG Discussion, and Zeranoe Build website

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多