将RTMPS推送到Facebook实时URI时,对等方重置套接字连接

时间:2019-07-19 09:28:23

标签: rtmps

我使用RTMPS协议将本地流推送到我的Facebook实时URL,发现了一些奇怪的问题。接受状态(“ NetStream.Publish.Start”)后,我开始将音频和视频数据连续推送到服务器,然后奇怪的事情开始了。经过一段不确定的时间(从几分钟到几小时),连接总是断开,而没有任何错误消息反馈给客户端。

我使用X264和AAC对输入的YUV / PCM图像/音频帧进行编码。我的X264参数的配置如下:

{
preset="veryfast";
tune="";
profile="high";
b_deterministic = false;
rc.i_vbv_max_bitrate = 1000;
rc.i_vbv_buffer_size = 1000;
rc.i_bitrate=1000;
rc.b_filler=1;
rc.rc_method=X264_RC_ABR;
rc.f_rf_constant=0.f;
b_vfr_input=false;
i_width=1280;
i_height=720;
i_fps_den=1;
i_fps_num=30;
i_timebase_den=1000;
i_timebase_num=1;
i_keyint_max=4 * 30;
i_keyint_min=2 * 30;
i_csp=X264_CSP_I420;
}

我的AAC编码器的配置:

{
samplerate=48000;
channels=2;
aacObjectType=LOW;
mpegVersion=4;
useTns=1;
shortctl=SHORTCTL_NORMAL;
useLfe=1;
allowMidside=1;
bitRate=0;
bandWidth=0;
quantqual=100;
outputFormat=1;
inputFormat=FAAC_INPUT_16BIT;
}

我还发现X264的编码参数对此现象有很大的影响。例如:

  1. 如果我将i_keyint_min / i_keyint_max修改为1/3,则当客户端收到对发布命令的确认(其状态为NetStream.Publish.Start)时,套接字连接将立即被对等方重置。我认为接下来应该发送元数据和视频/音频帧,但是,连接突然断开,没有任何错误消息反馈。唯一的信息显示该连接被对等方重置。
  2. 如果我将比特率修改为2000Kbps,则此问题会更频繁地发生。
  3. 如果我将预设修改为“慢/中”,则当客户端收到对发布命令的确认(状态为NetStream.Publish.Start)时,对等方将立即重置连接。

我以相同的方式将流推送到Youtube或腾讯/ QQ平台,发现推送的整个过程非常稳定,并维持了几个小时而没有任何中断。

我想Facebook对媒体源有严格的要求,包括编码器的参数。我希望有人可以告诉我什么地方可能出问题了,我们将提供任何帮助。

0 个答案:

没有答案