流程:配置nginx服務(wù)器--->打開服務(wù)器---->配置無人機(jī)rtmp地址,將無人機(jī)畫面推流到服務(wù)器上---->運(yùn)行vlc從服務(wù)器上拉取視頻流播放。
學(xué)習(xí)視頻鏈接(可借鑒):https://www.youtube.com/watch?v=QNEjTGQL7wc
一、在linux服務(wù)器中(ubuntu18.04)下載安裝docker容器,docker分為docker engine 和 docker desktop
我們安裝docker engine就可以了。
官網(wǎng)鏈接:
https://www.docker.com/
二、 下載docker鏡像,可以參考下面github
GitHub - TareqAlqutami/rtmp-hls-server: a docker file to create a streaming server that supports RTMP, HLS and DASH content based on nginx and nginx-rtmp-module.
sudo docker pull?alqutami/rtmp-hls? ? # pull拉取,??alqutami/rtmp-hlsdocker鏡像
配置文件, 創(chuàng)建一個文件,名為nginx.conf? 將下述代碼復(fù)制進(jìn)去。保存
#user ?nobody;
worker_processes ?1;#error_log ?logs/error.log;
#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 4000;
? ? ? ? application live {
? ? ? ? ? ? ?live on;
? ? ? ? }
? ? }
}
http {
? ? include ? ? ? mime.types;
? ? default_type ?application/octet-stream;? ? #log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '
? ? # ? ? ? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" '
? ? # ? ? ? ? ? ? ? ? ?'"$http_user_agent" "$http_x_forwarded_for"';? ? #access_log ?logs/access.log ?main;
? ? sendfile ? ? ? ?on;
? ? #tcp_nopush ? ? on;? ? #keepalive_timeout ?0;
? ? keepalive_timeout ?65;? ? #gzip ?on;
? ? server {
? ? ? ? listen ? ? ? 80;
? ? ? ? server_name ?localhost;? ? ? ? #charset koi8-r;
? ? ? ? #access_log ?logs/host.access.log ?main;
? ? ? ? location / {
? ? ? ? ? ? root ? html;
? ? ? ? ? ? index ?index.html index.htm;
? ? ? ? }? ? ? ? #error_page ?404 ? ? ? ? ? ? ?/404.html;
? ? ? ? # redirect server error pages to the static page /50x.html
? ? ? ? #
? ? ? ? error_page ? 500 502 503 504 ?/50x.html;
? ? ? ? location = /50x.html {
? ? ? ? ? ? root ? html;
? ? ? ? }? ? ? ? # proxy the PHP scripts to Apache listening on 127.0.0.1:80
? ? ? ? #
? ? ? ? #location ~ \.php$ {
? ? ? ? # ? ?proxy_pass ? http://127.0.0.1;
? ? ? ? #}? ? ? ? # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
? ? ? ? #
? ? ? ? #location ~ \.php$ {
? ? ? ? # ? ?root ? ? ? ? ? html;
? ? ? ? # ? ?fastcgi_pass ? 127.0.0.1:9000;
? ? ? ? # ? ?fastcgi_index ?index.php;
? ? ? ? # ? ?fastcgi_param ?SCRIPT_FILENAME ?/scripts$fastcgi_script_name;
? ? ? ? # ? ?include ? ? ? ?fastcgi_params;
? ? ? ? #}? ? ? ? # deny access to .htaccess files, if Apache's document root
? ? ? ? # concurs with nginx's one
? ? ? ? #
? ? ? ? #location ~ /\.ht {
? ? ? ? # ? ?deny ?all;
? ? ? ? #}
? ? }
? ? # another virtual host using mix of IP-, name-, and port-based configuration
? ? #
? ? #server {
? ? # ? ?listen ? ? ? 8000;
? ? # ? ?listen ? ? ? somename:8080;
? ? # ? ?server_name ?somename ?alias ?another.alias;? ? # ? ?location / {
? ? # ? ? ? ?root ? html;
? ? # ? ? ? ?index ?index.html index.htm;
? ? # ? ?}
? ? #}
? ? # HTTPS server
? ? #
? ? #server {
? ? # ? ?listen ? ? ? 443 ssl;
? ? # ? ?server_name ?localhost;? ? # ? ?ssl_certificate ? ? ?cert.pem;
? ? # ? ?ssl_certificate_key ?cert.key;? ? # ? ?ssl_session_cache ? ?shared:SSL:1m;
? ? # ? ?ssl_session_timeout ?5m;? ? # ? ?ssl_ciphers ?HIGH:!aNULL:!MD5;
? ? # ? ?ssl_prefer_server_ciphers ?on;? ? # ? ?location / {
? ? # ? ? ? ?root ? html;
? ? # ? ? ? ?index ?index.html index.htm;
? ? # ? ?}
? ? #}}
?
或者去下載nginx軟件包:??nginx news
在nginx-1.8.0\conf\nginx.conf文件中增加關(guān)于rtmp的設(shè)置rtmp { server { listen 1935; chunk_size 4000; application live { live on; } } }
listen:?1935是監(jiān)聽端口號, application中?(live)是自己定義,在后面推流的時候用到。
?上述操作完成后執(zhí)行下述代碼,開啟服務(wù)器。其中?/home/wby/nginx.conf是文件保存的路徑
sudo docker run -d -p 1935:1935 -p 8080:8080 -v?/home/wby/nginx.conf:/etc/nginx/nginx.conf alqutami/rtmp-hls
問題一:
出現(xiàn)如下報(bào)錯:?
?可能是虛擬機(jī)容器id占用,輸入如下代碼查看
sudo docker ps -a? ? # 查看docker容器中運(yùn)行的虛擬機(jī)
?如上:確實(shí)是虛擬機(jī)容器id占用,由于第一個4b5bf0ad35ca沒有創(chuàng)建成功,可以直接刪除虛擬機(jī)
sudo docker rm 虛擬機(jī)容器id
?第二個e9262d003c92是創(chuàng)建成功并處于運(yùn)行狀態(tài),所以不能直接刪除,如下是直接刪除報(bào)錯。
?此時需要先停止運(yùn)行,
?然后再刪除上面的容器id??
sudo docker rm e9262d003c92
打開服務(wù)器:
sudo docker run -d -p 1935:1935 -p 8080:8080 -v /home/wby/nginx.conf:/etc/nginx/nginx.conf alqutami/rtmp-hls
現(xiàn)在nginx服務(wù)器已經(jīng)打開。??
三、配置無人機(jī)?? ? ? ? ? ?
打開大疆無人機(jī)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? rtmp地址:192.168.X.XXX? 是本機(jī)服務(wù)器的ip地址。? ? ? ?
rtmp://192.168.X.XXX:1935/live/home? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?點(diǎn)擊開始,此時大疆無人機(jī)可以向nginx服務(wù)器推流。
四、在電腦端下載安裝VLC(https://www.videolan.org/vlc/)
點(diǎn)擊vlc.exe --->媒體--->打開網(wǎng)絡(luò)串流---->選擇網(wǎng)絡(luò)
??
?輸入網(wǎng)絡(luò)串流,注意ip地址和上面無人機(jī)設(shè)置的一致。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?播放效果如下:
?上面是無人機(jī)的推流過程。?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 五、如果想通過rtmp推流播放本地視頻進(jìn)行測試。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 需要多一步操作,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 上面第一步和第二步不變,安裝docker下載docker鏡像,然后打開nginx服務(wù)器。
? ? 在本地下載ffmpeg推流工具,下載鏈接如下:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Download FFmpeg
選擇一個合適的版本 ,下載并解壓
?
?nginx服務(wù)器打開后,打開cmd進(jìn)入ffmpeg.exe存放的文件夾輸入:ffmpeg.exe -re -i 使用nginx-rtmp打造簡易直播系統(tǒng).mp4 -vcodec libx264 -acodec copy -f flv rtmp:/192.168.3.72/live/home
如上,則表示推流成功。
然后執(zhí)行上面第四步,打開vlc播放器。??文章來源:http://www.zghlxwxcb.cn/news/detail-448668.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-448668.html
到了這里,關(guān)于大疆無人機(jī)基于RTMP服務(wù)推流直播的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!