Ffmpeg 无人机图传直播方案


为实现无人机实时监控自动巡检,准备把图传数据通过电脑发送到服务器用到的工具 Nginx+Ffmpeg
在这里插入图片描述

一、本地安装ffmpeg

这里我测试的是在本地笔记本电脑Win10系统
下载FFMPEG
在这里插入图片描述
解压到D盘,修改环境变量
在这里插入图片描述
计算机右键->属性->高级系统设置
在这里插入图片描述
添加环境变量后确定
在这里插入图片描述
Win+R cmd 查看测试
在这里插入图片描述

二、ffmpeg基本操作

1. 列出直播输入设备的示例:查看摄像头名称、麦克风名称

ffmpeg -list_devices true -f dshow -i dummy

在这里插入图片描述

2. 使用dshow设备作为输入的示例:

ffmpeg -f dshow -i video=“摄像头名称” out.mp4

这里我的摄像有名称是"HD Webcam"麦克风名称是"麦克风 (Realtek High Definition Audio)"
3. 使用音频和视频dshow设备作为输入的示例:

ffmpeg -f dshow -i video="HD Webcam":audio="麦克风 (Realtek High Definition Audio)" out.mp4

注意空格位置不要自己添加,如下报错
在这里插入图片描述
[dshow @ 000001848accc800] Malformed dshow input string.
video: I/O error
在这里插入图片描述
4.您还可以传递设备所需的某些参数
例如,网络摄像头可能允许您以最高5 fps的速率以1024x768捕获设备,或者允许您以30 fps的速率以640x480捕获设备。打印所选设备的选项列表的示例:

ffmpeg -f dshow -list_options true -i video="HD Webcam"
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20200629162825821.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NjEwMzk4,size_16,color_FFFFFF,t_70)

输出测试pixel_format yuyv422:

```bash
ffmpeg -f dshow -video_size 640x480 -framerate 30 -pixel_format yuyv422 -i video="HD Webcam" out.avi

输出测试vcodec mjpeg:

ffmpeg -f dshow -video_size 1280x720 -framerate 30 -vcodec mjpeg -i video="HD Webcam" out.avi

5.本地推流(注意需要部署Nginx为前提)

ffmpeg -f dshow -i video="HD Webcam" -vcodec libx264 -f flv rtmp://127.0.0.1:1935/live/home

VLC打开网络媒体rtmp:// 127.0.0.1:1935/live/home
在这里插入图片描述
127.0.0.1是本地nginx部署的服务,推流到服务器改IP即可

三、Nginx服务安装

1.下载 nginx
地址
下载完成后解压, 将解压后的目录命名为nginx
在这里插入图片描述
2.下载服务器状态检查程序
nginx-rtmp-module
在这里插入图片描述
3. 配置 conf\nginx-win-rtmp.conf
在文件添加这块代码

rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        application live {
             live on;
 
             # record first 1K of stream
             record all;
             record_path /tmp/av;
             record_max_size 1K;
 
             # append current timestamp to each flv
             record_unique on;
 
             deny publish all;
        }
    }
}

在这里插入图片描述
双击启动即可
4.查看nginx是否部署完成
在这里插入图片描述

四、推流到服务器

1.视频文件推流测试

ffmpeg -re -i 1.mp4 -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv rtmp://47.115.178.208:1935/live/home

-i :这个参数表示输入 ,后面/home/lee/video.mp4 就是输入文件。
-vcodec copy : -vcodec表示使用的视频编解码器 ,前缀v表示video。后面紧跟的copy 表示复制使用源文件的视频编解码器,比如原文件的编解码器(codec)是h264,则这里就使用h264。
-acodec copy : -acodec表示使用的音频编解码器,前缀a表示audio。后面的copy 表示使用源文件的音频编解码器。
-b:v 800k : -b:v表示视频的比特率(bitrate) ,为800k。
-b:a 32k : 表示音频的比特率为32k。
-f flv : -f表示format ,就是强制输出格式为flv,这一步其实也叫封装(mux),封装要做的事就是把视频和音频混合在一起,进行同步。紧跟在后面的rtmp://localhost/videotest
表示输出的"文件名",这个文件名可以是一个本地的文件,也可以指定为rtmp流媒体地址。指定为rtmp流媒体地址后,则ffmpeg就可以进行推流

2.完整视频推流命令

ffmpeg -f dshow -video_size 640x480 -framerate 10 -vcodec mjpeg -i video="USB2.0 PC CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://47.115.178.208:1935/live/home

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dy6667188

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值