rtsp推流给rtmp,到斗鱼解析不了;但是mpp推流给rtmp可以解析

问题遇到的现象和发生背景

我用RTSP 采集h264的视频流数据,然后转给RTMP,rtmp推给斗鱼播放
我在rtsp采集端和发送给rtmp之前都查看了当时的视频文件是正常的;在rtmp接受到之后也是正常的。为什么斗鱼就不能播放我的视频流呢

问题相关代码,请勿粘贴截图

这是rtmp接受和发出端的代码
FILE* fpSave0;
FILE* fpSave1;
fpSave0 = fopen("geth264_0.h264", "ab");
fpSave1 = fopen("geth264_1.h264", "ab");
while(1)
{
if(video_handle != NULL)
{
buf_temp = sdk_stream_ReadOneFrame((ST_HDL)video_handle);
if(buf_temp == NULL)
{
usleep(10*1000);

            continue;
        }
            
        h = (frame_head_t *)buf_temp;
        fwrite(buf_temp + sizeof(frame_head_t), 1, h->frame_size,fpSave0);

        memset(put_framer_buffer,0x0,nframerBufLen);
        if((h->frame_size + sizeof(frame_head_t)) > nframerBufLen)
        {
            printf("framer size %d > buf size:%d,gave up\n",h->frame_size + sizeof(frame_head_t),nframerBufLen);
            continue;
        }
        memcpy(put_framer_buffer,buf_temp,h->frame_size + sizeof(frame_head_t));

        h = (frame_head_t *)put_framer_buffer;
        
        fwrite(put_framer_buffer + sizeof(frame_head_t), 1, h->frame_size,fpSave1);
        if(h->frame_type == STREAM_I_FRAME_TYPE)
        {
            ret = RTMP264_Send(put_framer_buffer + sizeof(frame_head_t), h->frame_size, h->pts, 1);
        }
        else
        {
            ret = RTMP264_Send(put_framer_buffer + sizeof(frame_head_t), h->frame_size, h->pts, 0);
        }
    }
}
close(fpSave0);
close(fpSave1);

}

这是rtsp发出之前的代码

    if(frame_data[ch].frame_buf_index > 0)
    {
        frame_tmp.frame_no        = VFrameNum1 ++;
        frame_tmp.frame_size    = frame_data[ch].frame_buf_index;
        frame_tmp.pts           = pts;
        frame_tmp.sec           = tv.tv_sec;
        frame_tmp.usec          = tv.tv_usec; 
        frame_tmp.frame_type    = last_frame_type;
        // write packet to file here
        if(frame_tmp.frame_type == STREAM_I_FRAME_TYPE)
            printf("buf[0-4] = %x .%x .%x .%x .%x\r\n",frame_data[ch].frame_buf[0],frame_data[ch].frame_buf[1],frame_data[ch].frame_buf[2],\
                                    frame_data[ch].frame_buf[3],frame_data[ch].frame_buf[4]);
        
        fwrite(frame_data[ch].frame_buf, 1,  frame_data[ch].frame_buf_index,fpSave);
        for (int k = 0; k < sizeof(frame_tmp); k++)
            printf("%02x ", ((char*)&frame_tmp)[k]);
        printf("\r\n\r\n");
        sdk_stream_WriteOneFrameEx(0, 0, &frame_tmp, frame_data[ch].frame_buf);
        //rtsp_get_video_stream(frame_data[ch].frame_buf, frame_data[ch].frame_buf_index, pts);
    }
    last_frame_type = cur_frame_type;
    frame_data[ch].frame_buf_index = 0;
}

if(len > 0)
{
    memcpy(&frame_data[ch].frame_buf[frame_data[ch].frame_buf_index], buf, len);
    frame_data[ch].frame_buf_index+=len;
}
运行结果及报错内容

发出给斗鱼之前视频流都是可以正常打开的。发给斗鱼之后就不行了,但是我用mpp拉流,推流给rtmp,再转给斗鱼就可以。此时rtmp用的是相同的库

我的解答思路和尝试过的方法
我想要达到的结果