1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Ffmpeg 无人机图传直播方案

Ffmpeg 无人机图传直播方案

时间:2023-12-17 13:32:40

相关推荐

Ffmpeg 无人机图传直播方案

无人机图传直播

一、本地安装ffmpeg二、ffmpeg基本操作三、Nginx服务安装四、推流到服务器

为实现无人机实时监控自动巡检,准备把图传数据通过电脑发送到服务器用到的工具 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-/2029162825821.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NjEwMzk4,size_16,color_FFFFFF,t_70)输出测试pixel_format yuyv422:```bashffmpeg -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 streamrecord all;record_path /tmp/av;record_max_size 1K;# append current timestamp to each flvrecord_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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。