ZLMediaKit 各种推拉流

news2024/12/23 20:40:33

1 用ffmpeg 推音视频流

./ffmpeg -f dshow -i video="HP Wide Vision HD Camera" -f dshow -i audio="麦克风阵列 (Realtek High Definition Audio)" -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -s 1280x720 -preset ultrafast -r 30 -g 30  -profile:v baseline -level 3.0 -acodec aac -f flv rtmp://172.16.0.28:1935/live/test

命令中各个参数的含义解释:

- `-f dshow`: 指定音视频输入设备为DirectShow。
- `-i video="HP Wide Vision HD Camera"`: 指定视频输入设备为名为"HP Wide Vision HD Camera"的摄像头。
- `-f dshow`: 指定音频输入设备为DirectShow。
- `-i audio="麦克风阵列 (Realtek High Definition Audio)"`: 指定音频输入设备为名为"麦克风阵列 (Realtek High Definition Audio)"的麦克风。
- `-rtbufsize 100M`: 设置实时缓冲大小为100MB。
- `-max_delay 100`: 设置最大延迟为100毫秒。
- `-pix_fmt yuv420p`: 设置输出像素格式为yuv420p。
- `-tune zerolatency`: 优化编码设置以实现低延迟。
- `-c:v libx264`: 指定视频编码器为libx264。
- `-crf 18`: 设置视频质量,值越小质量越高。
- `-s 1280x720`: 设置输出视频分辨率为1280x720。
- `-preset ultrafast`: 设置编码速度为ultrafast,牺牲压缩效率以提高编码速度。
- `-r 30`: 设置输出视频的帧率为30帧/秒。
- `-g 30`: 设置关键帧间隔为30帧。
- `-profile:v baseline`: 设置视频编码器的profile为baseline。
- `-level 3.0`: 设置视频编码器的level为3.0。
- `-acodec aac`: 指定音频编码器为AAC。
- `-f flv`: 指定输出格式为FLV。
- `rtmp://172.16.0.28:1935/live/test`: 指定输出目标为RTMP服务器上的地址"rtmp://172.16.0.28:1935/live/test"。

2 用ffmpeg 推桌面流

 ./ffmpeg -f gdigrab -thread_queue_size 1024 -rtbufsize 10M  -framerate 30 -offset_x 0 -offset_y 0 -draw_mouse 1 -i desktop -rtbufsize 100M  -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -preset ultrafast -r 30 -g 30 -s 1280x720  -profile:v baseline -level 3.0   -acodec aac -f flv rtmp://172.16.0.28:1935/live/test2

各个参数的含义解释:

- `-f gdigrab`: 指定视频输入设备为GDI屏幕抓取。
- `-thread_queue_size 1024`: 设置线程队列的最大大小为1024。
- `-rtbufsize 10M`: 设置实时缓冲大小为10MB。
- `-framerate 30`: 设置输入帧率为30帧/秒。
- `-offset_x 0`: 设置屏幕捕捉的水平偏移量为0。
- `-offset_y 0`: 设置屏幕捕捉的垂直偏移量为0。
- `-draw_mouse 1`: 允许绘制鼠标光标。
- `-i desktop`: 指定屏幕捕捉作为输入。
- `-rtbufsize 100M`: 设置实时缓冲大小为100MB。
- `-max_delay 100`: 设置最大延迟为100毫秒。
- `-pix_fmt yuv420p`: 设置输出像素格式为yuv420p。
- `-tune zerolatency`: 优化编码设置以实现低延迟。
- `-c:v libx264`: 指定视频编码器为libx264。
- `-crf 18`: 设置视频质量,值越小质量越高。
- `-preset ultrafast`: 设置编码速度为ultrafast,牺牲压缩效率以提高编码速度。
- `-r 30`: 设置输出视频的帧率为30帧/秒。
- `-g 30`: 设置关键帧间隔为30帧。
- `-s 1280x720`: 设置输出视频分辨率为1280x720。
- `-profile:v baseline`: 设置视频编码器的profile为baseline。
- `-level 3.0`: 设置视频编码器的level为3.0。
- `-acodec aac`: 指定音频编码器为AAC。
- `-f flv`: 指定输出格式为FLV。
- `rtmp://172.16.0.28:1935/live/test2`: 指定输出目标为RTMP服务器上的地址"rtmp://172.16.0.28:1935/live/test2"。

3 用ffplay拉RTMP流

 .\ffplay.exe -fflags nobuffer rtmp://172.16.0.28:1935/live/test

参数的含义解释:

- `.\ffplay.exe`: 启动FFplay播放器。
- `-fflags nobuffer`: 禁用缓冲模式,即实时播放模式,播放器立即显示接收到的画面,而不是等待缓冲大量数据再播放。
- `rtmp://172.16.0.28:1935/live/test`: 指定RTMP服务器上的流地址为"rtmp://172.16.0.28:1935/live/test",即要播放的视频流的地址。

4 用ffplay拉RTSP 流

.\ffplay.exe -rtsp_transport tcp rtsp://172.16.0.28:8554/live/test
.\ffplay.exe -fflags nobuffer -rtsp_transport tcp rtsp://172.16.0.28:8554/live/test

各个参数的含义解释:

- `.\ffplay.exe`: 启动FFplay播放器。
- `-fflags nobuffer`: 禁用缓冲模式,即实时播放模式,播放器立即显示接收到的画面,而不是等待缓冲大量数据再播放。
- `-rtsp_transport tcp`: 指定RTSP传输协议为TCP。RTSP是一种用于流媒体传输的协议,通常使用UDP或TCP进行传输,此处通过TCP传输。
- `rtsp://172.16.0.28:8554/live/test`: 指定RTSP地址为"rtsp://172.16.0.28:8554/live/test",即要播放的RTSP流的地址。

5 用WebRTC播放视频流,延迟小

在浏览器上访问:

https://172.16.0.28:8443/webrtc/

用push表示推流,推流成功后,其他人可以用WebRTC播放,或者用vlc、ffplay播放

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/946764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java八股文面试[多线程]——synchronized锁升级过程

速记:偏向-轻量-重量 锁膨胀 上面讲到锁有四种状态,并且会因实际情况进行膨胀升级,其膨胀方向是:无锁——>偏向锁——>轻量级锁——>重量级锁,并且膨胀方向不可逆 一.锁升级理论. 在synchronized锁升级过程…

Kotlin学习之密封类

Kotlin中的密封类: kotlin中的密封类,用关键词Sealed修饰,且还有一个规定:Sealed类的子类应该是Sealed类的嵌套类,或者应该在与Sealed类相同的文件中声明。 当我们想定义一个有相同父类,但是有不同子类的时候&#xf…

面试中的系统设计:应对复杂问题的方法与技巧

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

巨人互动|游戏出海游戏出海的趋势如何

随着全球游戏市场的不断扩大和消费者需求的多元化,游戏出海作为游戏行业的重要战略之一,正面临着新的发展趋势。本文小编将讲讲游戏出海的趋势,探讨一下未来游戏出海的发展方向与前景。 巨人互动|游戏出海&2023国内游戏厂商加快“出海”发…

Linux命令查看CPU、内存、IO使用情况简单介绍

文章目录 1. CPU相关介绍1.1 物理CPU1.2 物理CPU内核1.3 逻辑CPU1.4 几核几线程1.5 CPU设计图 2. top 查看系统负载、CPU使用情况2.1 系统整体的统计信息2.2 进程信息2.3 top命令使用 3. lscpu 显示有关 CPU 架构的信息4. free 查看内存信息5. iostat 查看io信息 1. CPU相关介绍…

angular抛出 ExpressionChangedAfterItHasBeenCheckedError错误分析

当变更检测完成后又更改了表达式值时,Angular 就会抛出 ExpressionChangedAfterItHasBeenCheckedError 错误。Angular 只会在开发模式下抛出此错误。 在开发模式下,Angular 在每次变更检测运行后都会执行一次附加检查,以确保绑定没有更改。这…

一台服务器上部署 Redis 伪集群

哈喽大家好,我是咸鱼 今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从) redis-trib.rb 是一个基于 Ruby 编写的脚本,其功能涵盖了创建、管…

经纬恒润荣获吉利汽车“最佳价值贡献”奖

8月18日,以“全面向新 共创共赢”为主题,吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现,获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一,吉利汽车积极推…

从Matrix-ResourceCanary看内存泄漏监控

作者:小海编码日记 不同于LeakCanary,在Matrix中,主要是通过Resource Canary来监控内存泄漏问题的,且监听的泄漏对象只支持Activity,官方说明如下: 结合分析LeakCanary的经验可知,要实现Activit…

BananaPi BPI-6202工业控制板全志科技A40i、24V DC输入、RS485接口

Banana Pi BPI-6202“嵌入式单板计算机”采用工业级全志A40i四核Cortex-A7处理器,工业温度范围和长生命周期,2GB DDR3,8GB eMMC闪存,M.2 SATA插槽等。 这是自 Banana Pi去年推出Banana Pi BPI-M2 Ultra SBC 和BPI-M2 Berry以来&am…

机械臂+2d相机实现复合机器人定位抓取

硬件参数 机械臂:艾利特 相机:海康相机 2d识别库:lindmod,github可以搜到 光源:磐鑫光源 软件参数 系统:windows / Linux 开发平台:Qt 开发语言:C 开发视觉库:OpenCV …

[C/C++]天天酷跑游戏超详细教程-上篇

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

maven推包The environment variable JAVA_HOME is not correctly set

解决办法: 打开idea查看jdk安装位置 1.在/etc下面创建(如果存在就是更新)launchd.conf。里面添加一行: setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home #JAVA_HOME后面是我的java安装路径…

OK3588应用之——人脸和人脸关键点的检测(十四)

一、主机模型转换 采用FastDeploy来部署应用深度学习模型到OK3588板卡上 进入主机Ubuntu的虚拟环境 conda activate ok3588 主机环境搭建可以参考上一篇 《OK3588板卡实现人像抠图(十二)》 转换成RKNN模型 cd FastDeploy wget https://bj.bcebos.co…

CDL基础原理

一、CDL简介 CDL(全称Change Data Loader)是一个基于Kafka Connect框架的实时数据集成服务。 CDL服务能够从各种OLTP数据库中捕获数据库的Data Change事件,并推送到kafka,再由sink connector推送到大数据生态系统中。 CDL目前支…

计算机竞赛 基于机器视觉的停车位识别检测

简介 你是不是经常在停车场周围转来转去寻找停车位。如果你的车辆能准确地告诉你最近的停车位在哪里,那是不是很爽?事实证明,基于深度学习和OpenCV解决这个问题相对容易,只需获取停车场的实时视频即可。 该项目较为新颖&#xf…

python matlab 画柱状图

函数: bar(x, height, width0.8, bottomNone, *, aligncenter,dataNone, **kwargs) 设置坐标的刻度(ticks),轴的标签和标题 在数据分析的很多时候,我们各个柱下面通常不是x刻度值,而是有实际意义的字符串,那么这个时…

ClickHouse进阶(三):ClickHouse 索引

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

最简单vue获取当前地区天气--高德开放平台实现

目录 前言 一、注册成为高德平台开发者 二、注册天气key 1.点击首页右上角打开控制台 2.创建新应用 三、vue项目使用 1.打开vue项目找到public下的index.html,如果是vue3的话直接在主目录打开index.html文件就行,主要就是打开出口文件 ​编辑 2.根据高德…

电缆厂 3D 可视化管控系统 | 图扑数字孪生

近年来,我国各类器材制造业已经开始向数字化生产转型,使得生产流程变得更加精准高效。通过应用智能设备、物联网和大数据分析等技术,企业可以更好地监控生产线上的运行和质量情况,及时发现和解决问题,从而提高生产效率…