You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

浏览器WEBM摄像头流转码至RTMP Restreamer的问题排查

浏览器摄像头流转RTMP推Restreamer的报错解决办法

问题根源拆解

  • 推流时的HandShake警告、av_interleaved_write_frame操作不允许:本质是RTMP对音视频编码、封装格式要求严格,WEBM原生格式不符合RTMP推流标准,就算转码后,流的时序、头信息不匹配也会触发报错。
  • “Larger timestamp than 24-bit”警告:FLV/RTMP的时间戳仅支持24位,浏览器采集的流运行时间久了,时间戳会累积超出上限,从而触发该警告。

具体解决步骤

1. 调整FFmpeg转码参数,贴合RTMP规范

在原有参数基础上补充关键配置,完整命令示例:

ffmpeg -i input.webm -c:v libx264 -preset ultrafast -tune zerolatency -flags:v +global_header -r 25 -c:a aac -ac 2 -b:a 128k -f flv -flvflags no_duration_filesize rtmp://你的Restreamer地址/live/流密钥

参数说明:

  • -preset ultrafast -tune zerolatency:拉满编码速度,降低推流延迟,适配实时摄像头流场景
  • -r 25:强制固定帧率为25,避免时间戳跳变
  • -flvflags no_duration_filesize:跳过FLV封装时的时长、文件大小校验,适配实时流无固定时长的特性
  • -b:a 128k:指定音频比特率,符合RTMP音频规范

2. 解决时间戳超限警告

添加滤镜重置时间戳,让时间戳从流起始点重新计数,避免超出24位限制,命令修改为:

ffmpeg -i input.webm -c:v libx264 -preset ultrafast -tune zerolatency -flags:v +global_header -r 25 -c:a aac -ac 2 -b:a 128k -f flv -flvflags no_duration_filesize -filter_complex "[0:v]setpts=PTS-STARTPTS[v];[0:a]asetpts=PTS-STARTPTS[a]" -map "[v]" -map "[a]" rtmp://你的Restreamer地址/live/流密钥
  • -filter_complex配置:将视频、音频的时间戳都从流开始时刻重新计算,避免时间戳累积超标

3. 浏览器采集端提前优化

使用MediaStream Recording API采集时,直接配置贴近RTMP要求的参数,减少转码压力:

  • 视频设置videoBitsPerSecond为2000000(约2Mbps),帧率设为25或30
  • 音频设置audioBitsPerSecond为128000,采样率44100Hz

4. 排查Restreamer服务配置

  • 确认Restreamer的默认RTMP端口(1935)已开放,流密钥配置正确
  • 先用OBS推流测试服务端是否正常,排除服务端本身的问题

内容的提问来源于stack exchange,提问作者Justin White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:05:35