日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

安裝ffmpeg:

下載FFmpeg和libx264的包ffmpeg-2.4.1.tar.bz2 last_x264.tar.bz2libx264需要yasm,所以先安裝yasm

  1. apt-get install yasm

然后安裝libx264

  1. aptitude install libx264-dev

也可以手動安裝libx264(原先libx264在ubuntu的軟件源里是沒有的只能手動安裝,現在有了就可以不用手動安裝了)解壓縮libx264

  1. tar -xjvf last_x264.tar.bz2

安裝libx264

./configure --enable-shared --enable-pic

make

make install

然后安裝ffmpeg,ffmpeg有許多依賴包,需要一個一個先安裝1. libfaac

aptitude install libfaac-dev

2. libmp3lame

aptitude install libmp3lame-dev

3. libtheora

aptitude install libtheora-dev

4. libvorbis

aptitude install libvorbis-dev

5. libxvid

aptitude install libxvidcore-dev

6. libxext

aptitude install libxext-dev

7. libxfixes

aptitude install libxfixes-dev

依賴包安裝完后,安裝ffmpeg先解壓縮ffmpeg

  1. tar -xjvf ffmpeg-2.4.1.tar.bz2

然后編譯安裝

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis

make

make install

Nginx+nginx-rtmp-module+ffmpeg搭建流媒體服務器

Nginx本身是一個非常出色的HTTP服務器,FFMPEG是非常好的音視頻解決方案.這兩個東西通過一個nginx的模塊nginx-rtmp-module,組合在一起即可以搭建一個功能相對比較完善的流媒體服務器.

這個流媒體服務器可以支持RTMP和HLS(Live Http Stream)

從安裝開始

Nginx的安裝參照我之前的這個: 
http://blog.csdn.net/redstarofsleep/article/details/45092127

不同的是在configure的時候需要增加nginx-rtmp-module的支持,下載好nginx-rtmp-module后解壓,然后nginx安裝時增加這個模塊(--add-module),其它都是一樣的.

./configure --prefix=/usr/local/nginx --with-pcre=/home/user/pcre/pcre-8.32 --with-zlib=/home/user/zlib/zlib-1.2.8 --with-openssl=/home/user/openssl/openssl-1.0.1i --add-module=/home/user/nginx-rtmp-module

FFMPEG的安裝參照上一篇: 
http://blog.csdn.net/redstarofsleep/article/details/45092145

nginx配合ffmpeg做流媒體服務器的原理是: nginx通過rtmp模塊提供rtmp服務, ffmpeg推送一個rtmp流到nginx, 然后客戶端通過訪問nginx來收看實時視頻流. HLS也是差不多的原理,只是最終客戶端是通過HTTP協(xié)議來訪問的,但是ffmpeg推送流仍然是rtmp的.

一篇文章帶你FFmpeg到流媒體服務器開發(fā)

 

安裝完成后,打開Nginx的配置文件nginx.conf進行配置

首先在里面加入rtmp的配置

rtmp {

server {

listen 1935;

 

Application myapp {

live on;

}

application hls {

live on;

hls on;

hls_path /tmp/hls;

}

}

}

然后,針對hls,還需要在http里面增加一個location配置

location /hls {

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

root /tmp;

add_header Cache-Control no-cache;

}

這是一個最簡單,最基礎的配置, rtmp監(jiān)聽1935端口,如果是hls的話用hls on開啟hls,并且為hls設置一個臨時文件目錄hls_path /tmp/hls; 其它更高級的配置可以參看nginx-rtmp-module的readme,里面有比較詳細的介紹其它的配置,并且它還提供了一個通過JWPlayer在網頁上播放的例子.

保存完配置文件后,啟動nginx,通過netstat -ltn命令可以看到增加了一個1935端口的監(jiān)聽.8080是nginx默認的http監(jiān)聽端口.

[JAVA] view plaincopy

# netstat -ltn

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:631 :::* LISTEN

然后用ffmpeg推流到nginx:

第一個是推到了上面配置的myapp上:

[java] view plaincopy

ffmpeg -re -i "D:downloadfilmaqgy2.mp4" -vcodec libx264 -vprofile baseline -acodec aac

-ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://server:1935/

myapp/test1

第二個推送到hls上:

[java] view plaincopy

ffmpeg -re -i "D:downloadfilmaqgy2.mp4" -vcodec libx264 -vprofile baseline -acodec aac

-ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://ip:1935/

hls/test2

現在我們的流媒體服務器有兩個實時流了,一個是rtmp的,另一個是hls的,用流媒體播放器播放一下,流媒體播放器可以用vlc也可以用ffmpeg帶的ffplay.手機也是可以播放的.

上面這兩個流的地址分別是:

第一個就是推送的地址: 
rtmp://serverIp:1935/myapp/test1

第二個是HTTP地址: 
http://serverIp:8080/hls/test2.m3u8

最后貼上一段對于HLS這個比較特殊的流媒體協(xié)議的解釋:

  HTTP Live Streaming(HLS)是蘋果公司(Apple Inc.)實現的基于HTTP的流媒體傳輸協(xié)議,可實現流媒體的直播和點播,相對于常見的流媒體直播協(xié)議,例如RTMP協(xié)議、RTSP協(xié)議、MMS協(xié)議等,HLS直播最大的不同在于,直播客戶端獲取到的,并不是一個完整的數據流。HLS協(xié)議在服務器端將直播數據流存儲為連續(xù)的、很短時長的媒體文件(MPEG-TS格式),而客戶端則不斷的下載并播放這些小文件,因為服務器端總是會將最新的直播數據生成新的小文件,這樣客戶端只要不停的按順序播放從服務器獲取到的文件,就實現了直播。由此可見,基本上可以認為,HLS是以點播的技術方式來實現直播。由于數據通過HTTP協(xié)議傳輸,所以完全不用考慮防火墻或者代理的問題,而且分段文件的時長很短,客戶端可以很快的選擇和切換碼率,以適應不同帶寬條件下的播放。不過HLS的這種技術特點,決定了它的延遲一般總是會高于普通的流媒體直播協(xié)議

用開源nginx-rtmp-module搭建flash直播環(huán)境

1、將nginx和nginx-rtmp-module的源碼包解壓PS:nginx-rtmp-module網址
https://github.com/arut/nginx-rtmp-module

 

2、進入nginx的源代碼目錄,編譯./configure --add-module= 
--without-http_rewrite_modulemakemake install

3、寫一個測試配置文件#user nobody;worker_processes 1;

error_log logs/error.log debug;#error_log logs/error.log notice;#error_log logs/error.log info;

#pid logs/nginx.pid;

events {worker_connections 1024;}

rtmp {server {listen 1935;

chunk_size 4096;

application myapp {live on;}}}

http {server {listen 8080;

location /stat {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}

location /stat.xsl {root /home/arut-nginx-rtmp-module-e5d61f2/;}

location / {root /home/arut-nginx-rtmp-module-e5d61f2/test/rtmp-publisher;}}}

4、啟動
nginx/usr/local/nginx/sbin/nginx -c 
/home/arut-nginx-rtmp-module-e5d61f2/test/nginx.conf

5、用ffmpeg產生一個模擬直播源,向rtmp服務器推送ffmpeg -re -i ~/2012.flv -f flv 
rtmp://192.168.11.75/myapp/test1注意,源文件必須是H.264+AAC編碼的。192.168.11.75是運行nginx的服務器IP

6、訪問
http://192.168.11.75:8080/stat,可以看到統(tǒng)計情況

7、網頁播放測試,用nginx-rtmp-module自帶的一個例子修改,

8、HLS測試(2013-4-20更新)修改測試的配置文件

nginx-rtmp-module還有許多其他特性,例如支持FLV/MP4的點播、HLS直播、多worker工作模式、push and pull工作模式等,以后慢慢挖掘

Nginx-RTMP功能調研:

1. RTMP協(xié)議介紹...2

2.RTMP server.3

2.1當前的流媒體server.3

2.2Wowza功能...3

3.Nginx-based RTMP server.5

3.1 Nginx rtmp 功能點...5

3.2編譯nginx rtmp模塊...6

3.3配置以及功能介紹...6

3.4用nginx-rtmp-module搭建直播環(huán)境...8

3.5Nginx rtmp對于HLS支持...13

協(xié)議介紹

RTMP(Real Time Messaging Protocol)實時消息傳送協(xié)議是Adobe Systems公司為Flash播放器和服務器之間音頻、視頻和數據傳輸開發(fā)的私有協(xié)議。

它有三種變種:

1)工作在TCP之上的明文協(xié)議,使用端口1935;

2)RTMPT封裝在HTTP請求之中,可穿越防火墻;

3)RTMPS類似RTMPT,但使用的是HTTPS連接;需要可以后臺私信‘資料’

RTMP協(xié)議就像一個用來裝數據包的容器,這些數據可以是AMF格式的數據,也可以是FLV中的視/音頻數據。一個單一的連接可以通過不同的通道傳輸多路網絡流。這些通道中的包都是按照固定大小的包傳輸的。

一篇文章帶你FFmpeg到流媒體服務器開發(fā)

 

關注,私信【資料】免費獲取!
大廠C++面試題庫、BAT架構技術資料庫(關注小編,后臺私信【資料】)資料內容涵蓋BAT架構技術與面試真題,減少你到處搜索資料的時間,成體系的實戰(zhàn)技術知識,讓你面試、進階都更加容易!

分享到:
標簽:流媒體 服務器
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰(zhàn)2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定