我使用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的编码参数对此现象有很大的影响。例如:
我以相同的方式将流推送到Youtube或腾讯/ QQ平台,发现推送的整个过程非常稳定,并维持了几个小时而没有任何中断。
我想Facebook对媒体源有严格的要求,包括编码器的参数。我希望有人可以告诉我什么地方可能出问题了,我们将提供任何帮助。