【问题标题】:video streaming serialization视频流序列化
【发布时间】:2015-03-09 21:58:51
【问题描述】:

我正在使用 C++ 开发视频流应用程序,我对数据包的序列化有疑问。我知道有许多来自 Google Protocol Buffers、Apache Thrift、Cereal 等的序列化框架。我认为数据包需要序列化是正确的,对吧?

由于任何一点点开销都会导致延迟,是否值得使用现有框架进行序列化?

是否值得我花时间尝试自己开发或坚持使用框架?

我知道大多数框架都会考虑大端和小端,这很好。

根据我所做的研究,我倾向于尝试使用 Google 协议缓冲区。这是一个很好的流应用程序的序列化库吗?

还有其他建议吗?

感谢您的意见和建议。

【问题讨论】:

    标签: c++ video serialization streaming


    【解决方案1】:

    该框架应该可以帮助您发送和检索数据包。用有效负载填充数据包是您的任务。

    如果您担心延迟并且不想通过等待数据包发送来延迟处理,您应该考虑为数据包使用单独的线程和缓冲区。

    例如,处理线程将创建或填充数据包并将其放入传出缓冲区(例如循环队列)。数据包发送线程将从缓冲区中获取数据包并将其发送出去。线程将休眠,直到数据包已发送或新数据包添加到队列中。

    这种技术会用数据包“炸毁”网络,而您可能不想这样做。如果你不断地爆炸数据包,其他人将无法发送数据包。这可能不是问题,取决于网络上的路由器和交换机以及您的数据包框架。

    【讨论】:

    • 好吧,我试图远离发送方的缓冲区,因为它是一个视频流应用程序。但这似乎是不可避免的。那你会推荐协议缓冲区吗?
    猜你喜欢
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2021-08-31
    • 1970-01-01
    • 2012-05-23
    相关资源
    最近更新 更多