我一直在尝试编写一个派生自Live555中FramedSource的类,它允许我将实时数据从我的D3D9应用程序传输到MP4或类似程序.
我每帧做的是将后备缓冲区作为纹理抓取到系统内存中,然后将其从RGB - > YUV420P转换,然后使用x264对其进行编码,然后理想地将NAL数据包传递到Live555.我创建了一个名为H264FramedSource的类,它基本上是通过复制DeviceSource文件从FramedSource派生的.我没有将输入作为输入文件,而是将其作为NAL数据包,我更新了每个帧.
我对编解码器和流媒体都很陌生,所以我可能做的一切都完全错了.在每个doGetNextFrame()中,我应该抓住NAL数据包并执行类似的操作
memcpy(fTo, nal->p_payload, nal->i_payload)
Run Code Online (Sandbox Code Playgroud)
我假设有效载荷是我的帧数据,以字节为单位?如果有人从FramedSource那里得到一个类的例子,它可能至少接近我想要做的事情,我很乐意看到它,这对我来说是全新的,并且弄清楚发生了什么有点棘手.Live555的文档几乎就是代码本身,这并不能让我很容易理解.