您现在的位置是:首页 >技术教程 >FFmpeg 中 RTSP推流桌面和Android设备延时测试网站首页技术教程

FFmpeg 中 RTSP推流桌面和Android设备延时测试

火山上的企鹅 2023-05-26 08:00:03
简介FFmpeg 中 RTSP推流桌面和Android设备延时测试

1. FFMPEG 推流:

1.1 FFmpeg 源码准备

官网,GitHub,CSDN中选一个就好:

● 官网:

Builds - CODEX FFMPEG @ gyan.dev

下载源码:选择一个就好

在这里插入图片描述
在这里插入图片描述

● GitHub

Releases · BtbN/FFmpeg-Builds (github.com)
在这里插入图片描述

● CSDN 已上传 ffmpeg 和 rtsp 服务器:

‍FFmpeg RTSP 推流桌面

1.2 RTSP 推流服务器

● GitHub

Releases · aler9/mediamtx (github.com)

在这里插入图片描述

2. 执行流程

​ 解压后:

在这里插入图片描述

2.1 启动服务器

● ​双击 运行 即可:

在这里插入图片描述

● ​弹出此界面:

在这里插入图片描述

2.2 执行桌面推流

● 在源码 bin 文件下打开终端:

在这里插入图片描述

● 运行指令:

ffmpeg -f gdigrab -i desktop -s 1280x720 -rtsp_transport tcp -preset ultrafast -acodec libfaac -f rtsp rtsp://127.0.0.1:8554/stream

参数说明:

-f gdigrab ​​ ,gdigrab基于Win32 GDI的屏幕捕获设备。可以捕获Windows桌面屏幕显示区域的画面图像

-i desktop​ : 指定输入文件。 desktop是指输入设备是桌面屏幕

-f rtsp rtsp://127.0.0.1:8554/stream​: 输出格式为rtsp流,地址为本机地址

● 开始推流

在这里插入图片描述

● 打开打开北京时间:

北京时间校准_北京时间在线校准显示毫秒 - 倒计时器 (daojishiqi.com)

2.3 播放

● vlc 播放流:

rtsp://127.0.0.1:8554/stream

在这里插入图片描述

● 显示:

可以看出vlc的延时相当大的:

在这里插入图片描述

3. 安卓测试

● ipconfig 查到window本机地址为 192.168.xx.xx

● 安卓端播放器输入地址 rtsp://192.168.xx.xx/stream

安卓采用 FFMPEG 4.4.1版本,使用 QVideoFrame 代替sws方案,VideoOutput 来刷新图片

在这里插入图片描述
在这里插入图片描述
加上图传再测试,约增加50~100ms延时

● 其它方式推流

  • 本文介绍的桌面推流:
    ​ffmpeg -f gdigrab -i desktop -s 1280x720 -rtsp_transport tcp -preset ultrafast -acodec libfaac -f rtsp rtsp://127.0.0.1:8554/stream

  • UDP推流:
    ffmpeg -re -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

  • TCP推流:
    ffmpeg -re -i input.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream

  • 循环推流:
    ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

      其中:
      -re 为以流的方式读取;
      -stream_loop 为循环读取视频源的次数,-1为无限循环;
      -i 为输入的文件;
      -f 为格式化输出到哪里
    
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。