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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

流媒体视频直播方案

發(fā)布時(shí)間:2025/7/25 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 流媒体视频直播方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

流媒體視頻直播方案

背景

在視頻直播領(lǐng)域,有不同的商家提供各種的商業(yè)解決方案,包括軟硬件設(shè)備,攝像機(jī),編碼器,流媒體服務(wù)器等。本文講解如何使用一系列免費(fèi)工具,打造一套視頻直播方案。

視頻直播方案的組成,可以分為4部分:

1)前端采集編碼設(shè)備:提供直播信號(hào)源的采集和編碼壓縮功能,并將信號(hào)推送到直播流媒體服務(wù)器上。?

2)直播流媒體服務(wù)器:負(fù)責(zé)直播流的發(fā)布和轉(zhuǎn)播分發(fā)功能。?

3)WEB服務(wù)器:實(shí)現(xiàn)直播節(jié)目在終端上的展現(xiàn)。

4)終端設(shè)備:包括PC和移動(dòng)終端。

本文的操作基于Mac系統(tǒng),由于使用的是跨平臺(tái)的工具,因此前端的數(shù)據(jù)采集和編碼操作在其他平臺(tái)上類(lèi)似。

編碼和協(xié)議?

1)網(wǎng)絡(luò)協(xié)議:主要有3種?

?? a. RTSP(Real Time Streaming Protocol)是用來(lái)控制聲音或影像的多媒體串流協(xié)議, 由Real Networks和Netscape共同提出的;?

?? b. RTMP(Real Time Messaging Protocol):實(shí)時(shí)消息傳送協(xié)議是Adobe公司為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸 開(kāi)發(fā)的開(kāi)放協(xié)議;?

?? c. HLS(HTTP Live Streaming):是蘋(píng)果公司(Apple Inc.)實(shí)現(xiàn)的基于HTTP的流媒體傳輸協(xié)議;?

2)視頻編碼: Mpeg4, H264等?

3)音頻編碼: Mp3, AAC等?

4)視頻分辨率: 標(biāo)清通常指的是640×480(或768×480);高清指的是1280×720;全高清指的是1920×1080;超高清3840×2160?

前端數(shù)據(jù)采集和編碼:
編碼器有很多選擇,如商業(yè)版的envivio, 免費(fèi)版的ffmpeg. 我們使用ffmpeg(Mac系統(tǒng)上內(nèi)置)從Mac筆記本攝像頭捕捉視頻,視頻編碼選擇h264, 音頻編碼選擇mp3,且將生成的傳輸流ts發(fā)布到服務(wù)器。 在mac終端下,執(zhí)行:?
?./ffmpeg -f avfoundation -i "0" -vcodec libx264 -preset ultrafast -acodec libmp3lame ?-f flv rtmp://192.168.1.100:1935/myapp/stream?
服務(wù)器地址:“rtmp://192.168.1.100:1935/myapp/stream”,我們接下來(lái)進(jìn)行搭建。
服務(wù)器
流媒體服務(wù)器也有諸多選擇,如商業(yè)版的Wowza。 我們選擇的是Nginx,它是優(yōu)秀的免費(fèi)Web服務(wù)器,通過(guò)擴(kuò)展的nginx-rtmp模塊,可以支持流媒體播放和管理。 nginx-rtmp模塊特點(diǎn)是: RTMP/HLS/MPEG-DASH live streaming RTMP Video on demand FLV/MP4, playing from local filesystem or HTTP Stream relay support for distributed streaming: push & pull models Recording streams in multiple FLVs H264/AAC support Online transcoding with FFmpeg HTTP callbacks (publish/play/record/update etc) Running external programs on certain events (exec) HTTP control module for recording audio/video and dropping clients Advanced buffering techniques to keep memory allocations at a minimum level for faster streaming and low memory footprint Proved to work with Wirecast, FMS, Wowza, JWPlayer, FlowPlayer, StrobeMediaPlayback, ffmpeg, avconv, rtmpdump, flvstreamer and many more Statistics in XML/XSL in machine- & human- readable form Linux/FreeBSD/MacOS/Windows 基于它對(duì)RTMP協(xié)議的良好支持,因此本文以RTMP協(xié)議為例,配置服務(wù)器環(huán)境。 服務(wù)器搭建主要步驟:?
?? ??
(1)下載與安裝?
cd /usr/build?
git clone git://github.com/arut/nginx-rtmp-module.git?
wget?http://nginx.org/download/nginx-1.2.4.tar.gz?tar xzf nginx-1.2.4.tar.gz?

cd nginx-1.2.4?
./configure --add-module=/usr/build/nginx-rtmp-module?
make?
make install?

(2)配置實(shí)時(shí)直播:?
要支持RTMP,需要在nginx.conf (PREFIX/conf/nginx.conf)中添加rtmp{} 部分,如下:?


復(fù)制代碼 rtmp {server {listen 1935;ping 30s;notify_method get;application myapp {live on; }} }
客戶(hù)端
使用VLC來(lái)訪問(wèn)視頻服務(wù)器,觀看視頻。 VLC也是跨平臺(tái)的軟件,在Mac, windows終端都有不同版本。?
選擇 File/Open Network, 播放地址: rtmp://192.168.1.100:1935/myapp/stream.
即可觀看實(shí)時(shí)視頻。 參考:?
?? ? ? Nginx官網(wǎng):?https://github.com/arut/nginx-rtmp-module/wiki/Getting-started-with-nginx-rtmp?


總結(jié)

以上是生活随笔為你收集整理的流媒体视频直播方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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