Html5直播(2): 直播源的製作(以及Ubuntu安裝Ffmpeg)

直播源的製作對整個開發和調試很重要。

方式1: Nginx+ffmpeg(可擴展)

  1. 安裝Nginx
  2. 安裝ffmpeg
  3. 配置Nginx
  4. 準備視頻
  5. 利用ffmpeg推流

1.1 安裝nginx:

mac通過:brew install nginx-full --with-rtmp-module

windows通過:

 

剩下的命令:

 集成nginx-rmtp-module:windows有點麻煩,所以換成了ubuntu.(這裏看文末)

Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。 nginx-rmtp-module是Nginx服務器的流媒體插件。nginx通過rtmp模塊提供rtmp服務,ffmpeg推送一個rtmp流到nginx, 然後客戶端通過訪問nginx來收看實時視頻

1.2 安裝ffmpeg:

mac: brew install ffmpeg

windows:

 

添加到環境變量下:

 

 

1.3 配置Nginx:

mac:位於/usr/local/etc/nginx/下有個nginx.conf.

windows下:

 需要配置的是:

  • 配置服務rtmp hls http-flv

hls_path是分割文件存儲的位置.

還需要在http模塊中配置一下:

重啓nginx或者啓動nginx:

這樣看不出什麼, 

這時我們可以推流:

這是本地下載的mp4,這裏不再下載mp4,就把這個mp4當作源推就可以了,i相當於模擬了攝像頭的功能。

ffmpeg -re -i meimei.mp4 -vcodec libx264 -acodec aac -f flv rtmp://192.168.78.131:1935/rtmplive/rtmp

192.168.78.131是自己的電腦的ip

運行ffmpeg命令前爲了看到效果需要安裝VLC播放器:(普通的播放器是不能使用rtmp協議的)

 

然後再執行上面ffmpeg推流命令。

然後打開VLC:

就可以查看了。

將rtmplive改爲hls,就會發現穩定一點。


方式2:集成服務(不好擴展但是使用方便)

  1. 下載服務
  2. 安裝服務
  3. 準備源視頻
  4. 開啓服務
  5. 利用ffmpeg推流
ffmpeg -re -i meimei.mp4 -c copy -f flv rtmp://localhost:1935/live/自定義名

地址:
RTMP: rtmp://localhost:1935/live/自定義名
FLV: http://127.0.0.1:7001/live/自定義名.flv
HLS: http://127.0.0.1:7002/live/自定義名.m3u8

Ubuntu安裝Nginx:

1.下載並解壓:

 wget http://nginx.org/download/nginx-1.15.3.tar.gz
 tar xvf nginx-1.15.3.tar.gz

2.下載並解壓nginx rtmp模塊:

wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz

tar xvf nginx-rtmp-module-1.2.1.tar.gz

3.編譯安裝nginx所需的庫:

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

4.–add-module 指向rtmp模塊目錄(進入nginx的安裝目錄下執行這條命令)

 ./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1

5.編譯安裝在當前目錄的bin目錄下

make&&make install

 

 

 

啓動:

 

 

端口占用檢查: lsof -i:端口號


 Ubuntu下安裝ffmpeg:

方式1:直接安裝:

1.1 添加源:

sudo add-apt-repository ppa:djcj/hybrid

1.2 更新源:

sudo apt-get update

 1.3 下載安裝:

sudo apt-get install ffmpeg

方式2:編譯安裝:

2.1. 支持庫的安裝:

sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
apt install libavformat-dev
apt install libavcodec-dev
apt install libswresample-dev
apt install libswscale-dev
apt install libavutil-dev
apt install libsdl1.2-dev
sudo apt-get install yasm

2.2 x264:

gir clone https://github.com/qupai/x264
cd x264 
./configure --enable-shared --enable-pthread --enable-pic
make
make install

2.3 編譯:

tar -jxvf ffmpeg-4.1.tar.bz2
cd ffmpeg-4.1
./configure --enable-libx264 --enable-gpl --enable-shared  --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-pic
make
sudo make install
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
ldd ffmpeg

此時遇到的問題:

ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
  sudo find / -name libavdevice.so.58  # 找到文件對應地址
  sudo vim /etc/ld.so.conf # 文件尾添加一行 /usr/local/lib
  sudo ldconfig # 執行該句,使上面的文件生效

重新運行ffmpeg -encoders | grep x264就可以了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章