首页 > 解决方案 > 将 mpeg2-ts 帧从套接字解码到 RGB 缓冲区

问题描述

我正在尝试制作一个在我的电脑上记录我的手机屏幕的程序。为此,我制作了一个简单的客户端/服务器套接字 TCP。我的 Android 手机记录屏幕并将 H.264/AAC 数据封装在 MPEG2/TS 中并通过套接字连续发送。

PC端,我正在使用QT,我在这个函数上接收流:

void Server::processBinaryMessage() {
    QTcpSocket *pClient = qobject_cast<QTcpSocket *>(sender());
    QByteArray byteArrayReceived = pClient->readAll();

    QFile f("record.ts");
    if (f.open(QIODevice::WriteOnly | QIODevice::Append)) {
      f.write(byteArrayReceived);
      f.close();
    }
}

我将每个 QbyteArray 写入 File 以查看它是否正确并与 VLC 一起使用,效果很好。但我想使用 avformat 从内存中解码这些帧。

我使用的是带有 msvc2017_64 编译器的 QT 5.12.1。

感谢帮助。

标签: qtffmpeglibavcodecmpeg2-tslibavformat

解决方案


推荐阅读