rtmp改udp推流,并测试延时性能

简介: rtmp改udp推流,并测试延时性能

代码改动

先解释一下udp推流,就可以把它想象成一开始学习网络编程udp和tcp通信,这不过这次传输的数据是音视频信息而已,它不像rtmp有流媒体服务器,拉流推流端,只有发送端和接收端。

URL = "rtmp://192.168.100.75/live/livestream";
avformat_alloc_output_context2(&octx, 0, "flv", URL);
改为
URL = "udp://192.168.100.75:6016";
avformat_alloc_output_context2(&octx, 0, "mpegts", URL);

即可,其他相同。


性能和延时

先说下配置,编码器配置为

av_opt_set(pCodecCtx->priv_data, "preset", "ultrafast", 0);//superfast
av_opt_set(pCodecCtx->priv_data, "tune", "zerolatency", 0);


计算机为15年的老机,现在性能很拉跨,四核Intel® Core™ i5-4460 CPU @ 3.20GHz处理器。

用命令推流

ffmpeg -f decklink -i 88:25a7cda0:00000000 -pix_fmt yuv420p -ar 44100 -acodec libfdk_aac -vcodec h264 -preset ultrafast -tune zerolatency -b 5000k -r 25 -f mpegts udp://192.168.100.75:6016


top命令后id为56,并能稳定25帧推流,这里视频是1080i50。

用代码推流,id为55


在同一个局域网,过交换机,无论是用代码还是命令推流延时都非常小,不过还是能肉眼分辨出的,目测在300ms。

注意:

此外这里常见ffplay错误,可参考:ffmpeg udp推流bind failed: Address already in use


注意:ffplay命令为

ffplay -fflags nobuffer -analyzeduration 1000000 -i udp://127.0.0.1:6016


补充:用vlc播udp流时要加@,并且如果是127则需要换成具体的ip,如:

udp://@192.168.100.76:6017


这里 -fflags nobuffer非常关键,见:ffmpeg命令


搭建srs+rtmp的流媒体服务器,另一篇博客:srs搭建rtmp流媒体服务器

编译带h264编码和aac编码的ffmpeg库,另一篇文章:libfdk-aac和x264安装编译


用udp推流延时测试,见:rtmp改udp推流,并测试延时性能

srt流媒体搭建:srt流媒体搭建

ffmpeg编译配置srt模块:ffmpeg编译配置srt模块

srs+rtmp和nginx+rtmp推流延时比较

各部分所占延时:从采集到拉流各部分延时概述


相关文章
|
2月前
|
存储 监控 Cloud Native
如何通过持续测试和调整来提高OLAP系统的性能和可扩展性?
【5月更文挑战第14天】如何通过持续测试和调整来提高OLAP系统的性能和可扩展性?
32 2
|
12天前
|
SQL 安全 Java
探索软件测试的多维策略:从单元到集成,再到性能与安全
在软件开发过程中,测试是确保产品质量和用户满意度的关键步骤。本文将深入探讨软件测试的多维策略,包括单元测试、集成测试、性能测试和安全测试。我们将分析每种测试方法的优势和局限性,并讨论如何将这些策略整合到一个全面的测试计划中,以提高软件的可靠性和安全性。文章还将提供实用的例子和最佳实践,帮助读者更好地理解和应用这些测试技术。
|
2月前
|
消息中间件 监控 固态存储
性能工具之 Kafka 快速 BenchMark 测试示例
【5月更文挑战第24天】性能工具之 Kafka 快速 BenchMark 测试示例
62 1
性能工具之 Kafka 快速 BenchMark 测试示例
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
2024年5月大语言模型论文推荐:模型优化、缩放到推理、基准测试和增强性能
本文汇总了2024年5月发布的七篇重要大语言模型论文,涉及模型优化、缩放、推理及性能增强。
56 2
|
21天前
|
编译器 测试技术 Linux
技术洞察:循环语句细微差异下的性能探索(测试while(u--);和while(u)u--;的区别)
该文探讨了两种循环语句(`while(u--);` vs. `while(u) u--;`)在性能上的微妙差异。通过实验发现,后者比前者平均执行速度快约20%,原因在于循环条件检查的顺序影响了指令数量。尽管差异可能在多数情况下不显著,但在性能关键的代码中,选择合适的循环结构能优化执行效率。建议开发者在编写循环时考虑编译器优化和效率。未来研究可扩展到不同编译器、优化级别及硬件架构的影响。
|
21天前
|
算法 Linux 测试技术
Linux编程:测试-高效内存复制与随机数生成的性能
该文探讨了软件工程中的性能优化,重点关注内存复制和随机数生成。文章通过测试指出,`g_memmove`在内存复制中表现出显著优势,比简单for循环快约32倍。在随机数生成方面,`GRand`库在1000万次循环中的效率超过传统`rand()`。文中提供了测试代码和Makefile,建议在性能关键场景中使用`memcpy`、`g_memmove`以及高效的随机数生成库。
|
2月前
|
NoSQL 测试技术 MongoDB
【MongoDB 专栏】MongoDB 的性能基准测试与评估
【5月更文挑战第11天】MongoDB的性能基准测试对于优化至关重要,涉及数据读写速度、查询响应时间及吞吐量等指标。测试应明确目标和范围,选择合适的工具,考虑数据模型、索引、查询优化和系统配置等因素。性能评估需关注读写吞吐量、响应时间和资源利用率。通过多次测试、逐步增加负载和对比其他系统,识别性能瓶颈并持续优化。随着技术发展,测试方法和工具将持续创新,以应对复杂性能挑战。
【MongoDB 专栏】MongoDB 的性能基准测试与评估
|
28天前
|
网络协议 Linux Windows
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
42 0
|
2月前
|
运维 监控 测试技术
负载测试:系统性能护航
负载测试:系统性能护航
|
2月前
|
存储 弹性计算 网络协议
【阿里云弹性计算】ECS实例性能测试报告:阿里云实例性能横向评测
【5月更文挑战第27天】阿里云ECS性能横向评测对比了经济型e系列、计算型c7a系列实例的CPU、内存、网络和存储性能。使用SPEC CPU 2017、Stream、iperf和fio工具进行测试。结果显示,计算型c7a系列在CPU和网络性能上突出,经济型e系列性价比高。所有实例内存性能良好,ESSD云盘提供出色存储性能。用户应根据业务需求选择合适实例。
73 0