首页 文章 精选 留言 我的

精选列表

搜索[开源媒体服务器],共10018篇文章
优秀的个人博客,低调大师

Ant Media Server 2.3.1 发布,开源媒体服务器

Ant Media Server 旨在为直播视频流技术基础架构提供超低延迟(WebRTC)和低延迟(HLS,CMAF 在 v2.2 + 中可用)。它可以用于将任何类型的实时或点播视频流传输到任何设备,包括手机、PC 或 IPTV 盒子。 Ant Media Server 2.3.1 正式发布,本次更新内容如下: 6072c288修复发送统计信息中的应用程序投放问题; 7684ab46为 macOS 添加本机库; 1f905b52通过修复 rtp 时间戳比例来构建本机库; 7a2f2fa5创建用于访问工作者队列大小的公共方法; 2d0cf893使结果处理程序为空; c84659d5默认 CPU 限制更改为 75%; 8daf2ab4使用 http11nio2 协议而不是 apr; bf31ae86检查 CMAF 超时和错误值; 92e93b07修复集群中的应用删除; 0cfa3016恢复为 librtmp style live = 1; ecf3e757通过群集通知程序更新应用程序设置; 916afc84在 ChunkTransferServlet 中更改日志级别; f3544afb使用 librtmp 方式修复实时播放; 76a4b101将最大工作时间延长至10秒; 38d668a2增加 tomcat 中的线程数; bae7aff3使用 sudo 运行 create app 脚本; 75fc3af7改善 rtmp 摄取分析持续时间测试; c13de97a修复测试的安装位置; 10dddb8a修复参数问题和写入测试; 1e3584e2删除冗余测试; 59cdec76调整测试代码并添加新的测试代码; …… 更多详情可查看:https://github.com/ant-media/Ant-Media-Server/releases/tag/ams-v2.3.1

优秀的个人博客,低调大师

Monibuca v4.7.2 发布 —— 开源 go 语言流媒体服务器

发布摘要 新增av1和opus轨道类型 支持接受OBS 30.0+的WHIP(webrtc)推流,(h264+opus) 支持ffmpeg 6.1+以及OBS通过rtmp扩展协议的h265以及av1推拉流 修复若干bug 引擎和插件版本 engine v4.14.3 hls v4.3.7 hdl v4.1.10 rtsp v4.3.3 rtmp v4.2.9 webrtc v4.2.3 record v4.4.5 ps v4.1.4 详细说明 使用OBS的WHIP推流 OBS 30.0正式支持WHIP推流方式,因此需要先安装OBS 30.0以上版本。 OBS配置 注意事项 OBS目前只支持udp推流方式,因此需要配置webrtc插件为udp端口方式。 webrtc: port:udp:9000-10000 OBS目前音频轨道在WHIP中只能使用opus编码。由于rtmp协议不支持opus编码格式,因此在播放含有opus编码的流的时候,只能使用webrtc方式,或者rtsp协议。 使用OBS推送av1视频 OBS的av1格式可以通过rtmp扩展协议推送 OBS配置 经过测试如果关键帧间隔设置为0,会导致只有开头有关键帧,因此这里可以设置为1s。 ffmpeg推送h265/av1 ffmpeg 6.1以上支持rtmp扩展协议,下面是命令行示例(其中xxx代表视频源,即视频文件地址或者远程流地址) ffmpeg-ixxx-c:vh265-c:aaac-fflvrtmp://localhost/live/test ffmpeg-ixxx-c:vav1-c:aaac-fflvrtmp://localhost/live/test 播放av1视频 通过OBS、ffmpeg 6.1推送后,目前支持的播放方式: webrtc ffplay 6.1以上通过rtmp/rtsp协议播放

优秀的个人博客,低调大师

Monibuca v4.6.5 发布 —— 开源 Go 语言流媒体服务器

发布摘要 启动工程增加对流的发布订阅的单元测试和基准测试 修复发布和订阅并发创建流产生的panic 修复IdleTimeout无效问题 修复订阅者阻塞导致读写并发问题 preview插件修复https默认端口 gb28181插件PR合并 升级模块 升级后版本 engine 4.13.5 gb28181 4.3.6 hls 4.3.1 preview 4.1.2 record 4.3.7 详细说明 单元测试和基准测试 测试用例所在目录:github.com/langhuihui/monibuca工程下的test目录 推荐使用vscode打开工程,方便一键测试单个用例,也可以通过vscode侧边栏里的单元测试栏目管理。 TestPubAndSub funcTestPubAndSub(t*testing.T){ t.Cleanup(FreeEngine) UseEngine() t.Run("publish",func(t*testing.T){ t.Parallel() varpubUnitTestPublisher unitTestPlugin.Publish("test/001",&pub) }) t.Run("subscribe",func(t*testing.T){ t.Parallel() varsubUnitTestSubsciber sub.TB=t err:=unitTestPlugin.Subscribe("test/001",&sub) iferr!=nil{ t.Fatal(err) }else{ sub.PlayRaw() } }) } 该用例会启动一个发布者和一个订阅者,发布者将会写入假数据,订阅者读取后会校验数据是否正确。 BenchmarkPubAndSub funcBenchmarkPubAndSub(b*testing.B){ b.Cleanup(FreeEngine) UseEngine() fori:=0;i<10;i++{ i:=i gofunc(iint){ varpubUnitTestPublisher unitTestPlugin.Publish(fmt.Sprintf("testb/%d",i),&pub) }(i) gob.RunParallel(func(pb*testing.PB){ varsubUnitTestSubsciber sub.TB=b err:=unitTestPlugin.Subscribe(fmt.Sprintf("testb/%d",i),&sub) iferr!=nil{ //b.Fatal(err) }else{ sub.PlayRaw() } }) } time.Sleep(time.Second*10) } 该用例为基准测试,启动10个发布者,每个流会批量订阅,以测试并发性能以及稳定性。 TestSlowSubscriber funcTestSlowSubscriber(t*testing.T){ t.Cleanup(FreeEngine) UseEngine() varpubUnitTestPublisher unitTestPlugin.Publish("test/slow",&pub) varsuberSlowSubsciber unitTestPlugin.Subscribe("test/slow",&suber) suber.PlayRaw() } 这个用例会模拟一个订阅者被阻塞(sleep)后导致发布者写入的位置追上,此时engine通过标记这个写入点废弃来避免并发读写问题,废弃后订阅者如果被唤醒就会自动停止订阅。 通常出现这种情况是订阅者进行了某种耗时操作,比如写文件,或者网络阻塞等。 其他修复问题 并发创建流 修复如下: funcfindOrCreateStream(streamPathstring,waitTimeouttime.Duration)(s*Stream,createdbool){ p:=strings.Split(streamPath,"/") iflen(p)<2{ log.Warn(Red("StreamPathFormatError:"),streamPath) returnnil,false } actual,loaded:=Streams.LoadOrStore(streamPath,&Stream{ Path:streamPath, AppName:p[0], StreamName:strings.Join(p[1:],"/"), StartTime:time.Now(), +Logger:log.LocaleLogger.With(zap.String("stream",streamPath)), +timeout:time.NewTimer(waitTimeout), }) ifs:=actual.(*Stream);loaded{ s.Debug("StreamFound") returns,false }else{ -s.timeout=time.NewTimer(waitTimeout) s.Subscribers.Init() -s.Logger=log.LocaleLogger.With(zap.String("stream",streamPath)) -s.Info("created") s.actionChan.Init(1) +s.Info("created") gos.run() returns,true } } 原理:当并发调用findOrCreateStream函数时,前者尚未来得及对Logger赋值,后者就调用了s.Debug导致空指针错误。 修复读写并发问题 这个问题在前面的单元测试中已经提到,就是订阅者阻塞引起的。 订阅者阻塞后,读取点移动很慢或者不移动,导致写入点追上 由于RingBuffer是由链表结构实现,因此很容易将节点剥离主环 废弃后,这个订阅者将无法再读取主环内容,也将遭到抛弃 抛弃 https默认端口 默认https端口已经设置为8443,preview插件在选择WebTransport的时候跳转错了端口号。 https证书已经嵌入到程序里面,可以直接设置host文件127.0.0.1 local.monibuca.com访问https://local.monibuca.com:8443/preview/ gb28181 合并PR #95 本次PR主要修改了定时任务相关功能,包括: 定时删除超时设备 修改注册有效期配置默认值为3600s 设备状态变更处理 具体可以看代码变动

优秀的个人博客,低调大师

GStreamer 1.28.5 发布,开源多媒体框架

GStreamer 1.28.5 现已发布,此版本包含错误修复和一些安全修复。具体更新内容如下: 修复了多个安全问题和播放问题 修复 AMD GPU上使用 VA 解码器时字幕出现 green flickering的问题 appsrc:统一处理推送的 EOS 事件 audio-resampler-neon 无法为带有 neon 但没有 thumb 的目标构建 avtp:从 avtp 时间戳正确生成 ptime gldownload:修复导致 R/B 声道互换的错误 DRM 格式协商。 gdkpixbufdec:将 rank 降至 NONE 并处理分辨率/格式更改 gopbuffer:添加对 H.266/VVC 的支持 mp4mux:修复 AC-3 template caps,使复用器能够接受来自 ac3parse 的输入 mpegtsmux:在 CBR 模式下始终将 PTS 分配给输出缓冲区 mpegtsmux:仅包含 PCR 比特率填充包的输出缓冲区具有错误的 PTS rtcpbuffer:修复 SR+SDES 复合数据包的解析问题(安全修复导致的回归问题) rtspsrc2:允许禁用 SRTP/SRTCP 加密和 SRTP 身份验证 tsdemux:改进ignore-pcr 模式下的 PTS rollover 处理,修复 YouTube HLS 流的间歇性损坏问题 textaccumulate:输出合并后的单个缓冲区,并将列表添加为元数据 threadshare:添加 ts-clocksync webrtcsink:negotiation 修复和改进 修复了各种错误、build修复、内存泄漏问题,并提高了稳定性和可靠性。 有关更多详细信息,可参阅GStreamer 1.28.5 发行说明。 Android、iOS、Mac OS X 和 Windows 的二进制文件即将推出,并将发布在下载页面上。

优秀的个人博客,低调大师

GStreamer 1.26.10 发布,开源多媒体框架

GStreamer 1.26.10 现已发布,此版本仅包含错误修复。具体更新内容如下: curlhttpsrc 的修复和改进 decklinkvideosink:修复firmware14.3 及更高版本中的 rame completion callbacks flac:修复 6.1 和 7.1 channel layouts,并支持 32 位音频的编码和解码 glimagesink:修复对奇数高度缓冲区的处理 matroskademux:将允许的最大块大小设置得足够大,以支持 4K 无压缩视频。 mxf:添加对自定义 Sony XDCAM 视频变体的支持 opusenc:多声道和环绕声处理改进 playbin3:改进了 HLS/DASH 流选择处理,修复了使用 adaptivedemux2 时禁用和重新启用音频/视频流的问题。 qtmux:针对以时间戳偏移量开头的流,改进了稳健的录制模式剩余空间估算。 splitmuxsrc seeking 改进 在 DASH 清单中支持 FLAC 音频。 Python bindings:修复了 pad probe callbacks 中缓冲区不再可写的问题 Cerbero:为 GstApp 添加 Python 绑定;Windows 安装程序改进 修复了各种错误、版本问题、内存泄漏问题,并提高了稳定性和可靠性。 有关更多详细信息,可参阅GStreamer 1.26.10 发行说明。 Android、iOS、Mac OS X 和 Windows 的二进制文件即将推出,并将发布在下载页面上。

优秀的个人博客,低调大师

GStreamer 1.26.7 发布,开源多媒体框架

GStreamer 1.26.7 现已发布,此版本仅包含错误修复。具体更新内容如下: cea608overlay:改进非系统内存的处理 cuda:修复 CUDA 13.0 环境下的运行时内核编译 d3d12:修复转换器中的 crop meta 支持和 deinterlacer 中的 passthrough handling fallbacksrc:源处理改进;no-more-pads signal for streams-unaware parents inter:添加属性来微调内部元素 qtdemux:GoPro 视频的环绕声通道布局处理修复和性能改进 rtp:添加线性音频(L8、L16、L24)RTP payloaders / depayloaders rtspsrc:以 TCP/interleaved 模式发送 RTSP keepalive rtpamrpay2:帧质量指示器标志相关修复 rtpbasepay2:尽可能重用最后一个 PTS,以解决 NVIDIA Jetson AV1 编码器的问题 mpegtsmux、tsdemux:Opus 音频处理修复 threadshare:与延迟相关的改进和许多其他修复 matroskamux、tsmux、flvmux、cea608mux:修复 EOS 状态下的最佳缓冲区确定机制 视频速率未知缓冲区持续时间断言失败,帧速率可变 editing services:使 GESTimeline 遵守“SELECT_ELEMENT_TRACK”signal discard decision;修复内存泄漏 gobject-introspection 注释修复 cerbero:将 meson 更新至 1.9.0 以实现 Xcode 26 兼容性 各种错误修复、构建修复、内存泄漏修复以及其他稳定性和可靠性改进 有关更多详细信息, 可参阅GStreamer 1.26.7 发行说明。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册