心得:大疆无人机RTMP推流直播(Windows版本已成功)

这篇具有很好参考价值的文章主要介绍了心得:大疆无人机RTMP推流直播(Windows版本已成功)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、所需资源

1、nginx的Gryphon版本,它内部已经集成了rtmp的推流编译(nginx-Gryphon)
2、服务器状态检查程序stat.xsl(nginx-rtmp-module)
3、ffmpeg(ffmpeg)
4、VLC(VLC)

二、安装

1、将下载好的nginx 1.7.11.3 Gryphon解压修改文件名为nginx-1.7.11.3-Gryphon,绝对路径中不能有中文,必须全为英文!
2、在根目录中的conf文件夹中,若有nginx.conf文件,直接进入修改;若无,则创建一个。
3、在nginx文件中,将以下内容粘贴。


#user  nobody;
# multiple workers works !
worker_processes  2;

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

#pid        logs/nginx.pid;


events {
    worker_connections  8192;
    # max value 32768, nginx recycling connections+registry optimization = 
    #   this.value * 20 = max concurrent connections currently tested with one worker
    #   C1000K should be possible depending there is enough ram/cpu power
    # multi_accept on;
}

rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        application live {
             live on;
        }
    }
}

http {
    #include      /nginx/conf/naxsi_core.rules;
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr:$remote_port - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

#     # loadbalancing PHP
#     upstream myLoadBalancer {
#         server 127.0.0.1:9001 weight=1 fail_timeout=5;
#         server 127.0.0.1:9002 weight=1 fail_timeout=5;
#         server 127.0.0.1:9003 weight=1 fail_timeout=5;
#         server 127.0.0.1:9004 weight=1 fail_timeout=5;
#         server 127.0.0.1:9005 weight=1 fail_timeout=5;
#         server 127.0.0.1:9006 weight=1 fail_timeout=5;
#         server 127.0.0.1:9007 weight=1 fail_timeout=5;
#         server 127.0.0.1:9008 weight=1 fail_timeout=5;
#         server 127.0.0.1:9009 weight=1 fail_timeout=5;
#         server 127.0.0.1:9010 weight=1 fail_timeout=5;
#         least_conn;
#     }

    sendfile        off;
    #tcp_nopush     on;

    server_names_hash_bucket_size 128;

## Start: Timeouts ##
    client_body_timeout   10;
    client_header_timeout 10;
    keepalive_timeout     30;
    send_timeout          10;
    keepalive_requests    10;
## End: Timeouts ##

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        ## Caching Static Files, put before first location
        #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        #    expires 14d;
        #    add_header Vary Accept-Encoding;
        #}

# For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode
        location / {
            #include    /nginx/conf/mysite.rules; # see also http block naxsi include line
            ##SecRulesEnabled;
        	  ##DeniedUrl "/RequestDenied";
	          ##CheckRule "$SQL >= 8" BLOCK;
	          ##CheckRule "$RFI >= 8" BLOCK;
	          ##CheckRule "$TRAVERSAL >= 4" BLOCK;
	          ##CheckRule "$XSS >= 8" BLOCK;
            root   html;
            index  index.html index.htm;
        }

# For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi
        ##location /RequestDenied {
        ##    return 412;
        ##}

## Lua examples !
#         location /robots.txt {
#           rewrite_by_lua '
#             if ngx.var.http_host ~= "localhost" then
#               return ngx.exec("/robots_disallow.txt");
#             end
#           ';
#         }

        #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; # single backend process
        #    fastcgi_pass   myLoadBalancer; # or multiple, see example above
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  $document_root$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 spdy;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_prefer_server_ciphers On;
    #    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    #    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

注:rtmp中的“application live” ,application+空格+live,live即使访问路径,如localhost:1935/live。
4、在nginx.exe所在的目录,即根目录下,进入cmd窗口,输入nginx.exe或.\nginx.exe,启动nginx。
5、可以直接浏览器输入localhost验证是否启动nginx,若出现nginx的主页面,则成功。
6、将服务器状态检查程序解压,放到nginx根目录下。
心得:大疆无人机RTMP推流直播(Windows版本已成功)
7、将ffmpeg解压后,将其bin目录添加环境变量。
8、安装VLC

三、ffmpeg推流

ffmpeg推流是为了确定nginx的1935端口已打开并运行rtmp推流功能,以排除故障等问题。
1、在测试视频所在文件夹打开cmd窗口,输入指令 ffmpeg.exe -re -i .\视频名.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/live
2、若出现以下画面则推流失败,是因为nginx的1935端口未开启,或是rtmp未推流。

心得:大疆无人机RTMP推流直播(Windows版本已成功)
3、若出现以下画面,则成功,frame, fps等信息会不断地变化。
心得:大疆无人机RTMP推流直播(Windows版本已成功)

4、打开VLC,在左上角媒体中选择 打开网络串流 ,在网络URL中输入rtmp://127.0.0.1:1935/live,点击播放。
心得:大疆无人机RTMP推流直播(Windows版本已成功)
5、若是显示出视频,则成功。

四、无人机rtmp推流

1、保证电脑和无人机遥控器(或遥控器连接的手机)在同一局域网中(即同一路由器或热点)。
2、电脑确认ip地址,打开cmd窗口输入命令ipconfig,确定电脑ip地址。
3、无人机进入自定义直播功能中,输入地址,一般为 rtmp://192.168.x.x:1935/live 或 rtmp://10.0.x.x:1935/live。
4、打开VLC,在左上角媒体中选择 打开网络串流 ,在网络URL中输入与 3 中同样的ip地址,点击播放。
心得:大疆无人机RTMP推流直播(Windows版本已成功)
5、若显示出无人机画面,则成功,一般延迟在 3~10s 内。(我是成功了,哈哈哈哈哈!)
注:若无人机无法传输视频,那么把Windows系统的防火墙关闭再试一试。文章来源地址https://www.toymoban.com/news/detail-439094.html

五、Python获取无人机实时视频

import cv2
import time

if __name__ == '__main__':
    # 无人机rtmp视频流url
    video_path = "rtmp://192.168.x.x:1935/live"

    # opencv获取视频流
    capture = cv2.VideoCapture(video_path)

    while True:
        fps = 0.0

        t1 = time.time()
        # 读取某一帧
        ref, frame = capture.read()
        fps = (fps + (1. / (time.time() - t1))) / 2
        print("fps= %.2f" % (fps))
        frame = cv2.putText(frame, "fps= %.2f" % (fps), (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)

        cv2.imshow("video", frame)

        c = cv2.waitKey(1) & 0xff
        if c == 27:
            capture.release()
            break
    print("Video Detection Done!")
    capture.release()
    cv2.destroyAllWindows()

到了这里,关于心得:大疆无人机RTMP推流直播(Windows版本已成功)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大疆飞卡30运载无人机技术分享

    大疆飞卡30是大疆公司面向运输领域推出的一款专业运载无人机。它采用了优秀的设计,装备了多种先进传感器,以解决运输中的难题。以下我们来了解一下其主要特点: 【应用领域】 飞卡30适用于山地救灾、农业化肥施用、工程材料运送等交通不便的山区应用,也适用于海岛联通

    2024年02月12日
    浏览(48)
  • 大疆无人机空三建模干货分享(大疆智图集群建模超详细教程)

    Part 01 大疆无人机空三建模干货分享(大疆智图集群建模超详细教程) 大疆智图集群简介 大疆在今年5月推出的智图3.0.0及以上版本中加入了集群功能,有集群版许可的用户可以使用此功能。智图集群是由一台主节点分配任务控制多台同局域网内子节点设备进行空三和建模。集群

    2024年02月09日
    浏览(64)
  • 大疆精灵4无人机航测数据内业处理流程(Photoscan)

    使用Photoscan进行空三处理。 1.打开Agisoft Metashape Professional (64 bit),也称作Photoscan。点击工具栏的“工作流程”,导入航测的照片数据,如果文件较多,也可以直接导入存放照片的文件夹。 2.打开相机校准,配置参数,一般用软件会自动识别,用默认的参数就行。然后点击ok。

    2024年02月07日
    浏览(50)
  • 获取大疆无人机的飞控记录数据并绘制曲线

    机型M350RTK,其飞行记录文件为加密的,我的完善代码如下 git@github.com:huashu996/DJFlightRecordParsing2TXT.git 飞行记录文件在打开【我的电脑】,进入遥控器内存, 文件路径:此电脑 pm430 内部共享存储空间 DJI com.dji.industry.pilot FlightRecord  网址如下DJI Developer 注册完之后新建APP获得密

    2024年02月16日
    浏览(59)
  • 大疆无人机视频删了怎么恢复?尝试这些恢复技巧

    无人机拍摄的视频已经成为许多飞行爱好者和专业人士珍贵的记忆与资料。然而,误删视频是许多人都可能遇到的问题。当您不慎删除了大疆无人机中的视频时,不必过于焦虑。本文将为您详细介绍如何恢复这些误删的视频,帮助您找回宝贵的回忆。 图片来源于网络,如有侵

    2024年04月15日
    浏览(52)
  • ROS环境下大疆tello无人机源码安装&驱动代码解读

            大疆tello无人机是一款微小型无人机,可以支持多种开发模式。这里用的是ROS1的kinetic版本进行开发。参考文档来自http://wiki.ros.org/tello_driver         打开终端,键入以下命令进行二进制文件安装:         然后进入到ros工作空间,下载tello驱动源码         返回

    2024年02月13日
    浏览(69)
  • 大疆无人机 MobileSDK(遥控器/手机端)开发 v4版<1>

    刚刚结束了项目交付,趁热打铁分享一下这次遇到的新东西。首先了解一下大疆的无人机,它大致可以分为三级。 入门级 :适合新手,没事干在野外飞一飞拍拍风景啥的。操作也简单,基本上看飞行教程都能懂,也不需要太高的专业性,飞机也相对较小安全系数相对较高。

    2024年02月06日
    浏览(45)
  • 大疆无人机 MobileSDK(遥控器/手机端)开发 v5版<2>

    v5.x版本的功能与v4.x基本相同,都是获取飞机的姿态信息、获取无人机多媒体文件、操作多媒体文件、航线规划等。不过在上一章节中也大致说了一些两个版本的中API的差别,下面是根据一些API使用所完成的一些功能,因为项目原因只能提供部分代码供参考,后续如果有这方

    2024年02月14日
    浏览(48)
  • 新款解读:业内最小大疆御3无人机机场/机巢/机库功能技术解析

    复亚智能推出全新的S20小型无人机自动机场,具备一体化设计、快速部署、无人值守、快速起飞、高效作业能力,适配DJI Mavic 3行业版无人机,专为中低频巡检巡逻和应急场景量身打造。 S20具备卓越的可靠性和灵活的业务适应性,配置全新的软件系统、丰富的挂载、全流程安

    2024年02月06日
    浏览(83)
  • Webots实现大疆Mavic2pro无人机定点飞行

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 由于项目要求,现在需要做一个能够实现无人机根据事先给定的点位实现定点飞行,这里由于webots的跨平台性,考虑使用webots进行仿真 由于无人机有pitch、yaw、roll三个属性,分别对应前后运动、左右偏

    2024年02月03日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包