void  SaveVideoFrameToFile(const webrtc::VideoFrame& frame, std::string file)	
{	
    rtc::scoped_refptr<webrtc::VideoFrameBuffer> vfb = frame.video_frame_buffer();
    static FILE *fp = fopen(file, "wb+");
    if (fp != NULL)	{
        fwrite(vfb.get()->GetI420()->DataY(), 1, frame.height() * frame.width(), fp);
        fwrite(vfb.get()->GetI420()->DataU(), 1, frame.height() * frame.width() / 4, fp); 
        fwrite(vfb.get()->GetI420()->DataV(), 1, frame.height() * frame.width() / 4, fp);
        fflush(fp);
    }
}

反复调用该函数可以将一系列的帧存入到文件中,然后使用YUVViewer等工具打开视频文件查看。

Logo

一站式 AI 云服务平台

更多推荐