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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

局域网直播探索

發布時間:2023/12/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 局域网直播探索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 背景

校內有不少用于直播的場景,例如大劇場演出,在各個教室同步觀看;利用互聯網的直播方式,推送和播放端會走一次公網再回來,造成延遲與卡頓,因此考慮使用局域網直播的方式。

2. 技術選型

經調研,采用nginx的rtmp模塊,搭建rtmp的直播服務器,實現局域網內的直播。推送端可以直接使用obs推送,拉流的播放端,直接采用vlc播放器。此種選型的優點如下:

  • nginx rtmp模塊的性能較為穩定;
  • 所有部分都是開源方案,免費;
  • 3. 部署包含rtmp模塊的nignx

    本次部署在mac環境下,linux環境類似。

  • nginx官網下載nginx的官方安裝包,并解壓

    curl -OL https://nginx.org/download/nginx-1.20.1.tar.gz tar xzvf nginx-1.20.1.tar.gz && rm nginx-1.20.1.tar.gz
  • 準備pcre和openssl兩個包用于編譯

    curl -OL https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz tar xvzf pcre-8.41.tar.gz && rm pcre-8.41.tar.gz curl -OL https://www.openssl.org/source/openssl-1.1.0.tar.gz tar xvzf openssl-1.1.0.tar.gz && rm openssl-1.1.0.tar.gz
  • 下載nginx rtmp模塊源碼

    git clone https://github.com/arut/nginx-rtmp-module.git
  • 編譯并安裝nginx,參數指定pcre、openssl路徑并增加rtmp模塊

    cd nginx-1.20.1 ./configure --with-pcre=../pcre-8.41/ --with-http_ssl_module --with-openssl=../openssl-1.1.0 --add-module=../nginx-rtmp-module make sudo make install
  • 安裝完成后,nginx位于/usr/local/nginx/,在其conf目錄下,修改nginx.conf的配置文件,在原有的events配置下方增加rtmp的配置。如果不需要開啟默認的http服務,則可以注釋掉默認開啟的80端口的配置,即http配置下server的全部配置。去掉注釋的nginx.conf完整配置如下:

    worker_processes 1;events {worker_connections 1024; }rtmp {server {listen 1935;chunk_size 4000;application bndsly {live on;}} }http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;# 這里會從conf下的servers文件夾讀取http服務的配置,如有http服務,建議采用此種方式# include servers/*.conf; }
  • 啟動nginx即可

    sudo /usr/local/nginx/sbin/nginx
  • 4. 推流

  • 推流就是把一個視頻源推送到rtmp的服務器。

  • obs推流的配置可以參考,例如rtmp://192.168.50.9:1935/bndsly/test

  • 5. 播放

  • 打開vlc播放器,在文件菜單中選擇打開網絡串流即可,地址填入和推流相同的地址。
  • 6. 使用ffmpeg做局域網上課直播等場景

    在有攝像頭的電腦上,如果打算用當前桌面和攝像頭做一場直播分享。可以在電腦上安裝ffmpeg,以mac電腦為例。注意:推流還是建議使用obs,ffmpeg推流對電腦配置有一定的要求,否則會卡。

  • 安裝ffmpeg軟件

    brew install ffmpeg
  • 可使用下面的命令,將本地視頻推送的rtmp服務器

    ffmpeg -re -i /Volumes/龍樾電影派/電視劇/韓劇/機智醫生生活.Hospital.Playlist.EP01-EP12.2020.HD1080P/機智醫生生活.Hospital.Playlist.EP01.1080P.mp4 -vcodec libx264 -acodec aac -f flv rtmp://192.168.50.9:1935/bndsly/mp4
  • 使用下面命令,查看本地可用的設備

    ffmpeg -f avfoundation -list_devices true -i ""

    可能的輸出如下:

    ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developersbuilt with Apple clang version 12.0.5 (clang-1205.0.22.9)configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/4.4_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolboxlibavutil 56. 70.100 / 56. 70.100libavcodec 58.134.100 / 58.134.100libavformat 58. 76.100 / 58. 76.100libavdevice 58. 13.100 / 58. 13.100libavfilter 7.110.100 / 7.110.100libavresample 4. 0. 0 / 4. 0. 0libswscale 5. 9.100 / 5. 9.100libswresample 3. 9.100 / 3. 9.100libpostproc 55. 9.100 / 55. 9.100 [AVFoundation indev @ 0x14e72de60] AVFoundation video devices: [AVFoundation indev @ 0x14e72de60] [0] FaceTime HD Camera [AVFoundation indev @ 0x14e72de60] [1] Capture screen 0 [AVFoundation indev @ 0x14e72de60] [2] Capture screen 1 [AVFoundation indev @ 0x14e72de60] AVFoundation audio devices: [AVFoundation indev @ 0x14e72de60] [0] MacBook Pro麥克風
  • 可以使用如下命令,將本地桌面和麥克風推送到rtmp服務器

    ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -f flv rtmp://192.168.50.9:1935/bndsly/class
  • 如果要加上攝像頭,則可以使用如下命令(對推流的電腦有一定的配置要求,否則會卡):

    ffmpeg -f avfoundation -framerate 30 -i "1:0" \-f avfoundation -framerate 30 -video_size 640x480 -i "0" \-c:v libx264 -preset ultrafast \-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.50.9:1935/bndsly/class
  • 總結

    以上是生活随笔為你收集整理的局域网直播探索的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。