【问题标题】:WebRTC - Recording audio stream into file from within C++ applicationWebRTC - 从 C++ 应用程序中将音频流录制到文件中
【发布时间】:2014-05-08 15:44:28
【问题描述】:

我正在玩 WebRTC 的“..\trunk\talk\examples\peerconnection”示例。

我已修改“..\peerconnection\server\server_test.html”,因此它将音频流式传输到“peerconnection_client.exe”。这工作正常,以下功能:

int32_t Channel::ReceivedRTPPacket(const int8_t* data, int32_t length, const PacketTime& packet_time)

显示从 Chrome 发送的传入 RTP 数据包。

如何从接收端将此 RTP 数据包流保存到文件(.pcm 格式?)?

【问题讨论】:

  • 您是否愿意使用另一个库,例如 Gstreamer?您应该能够将每个新数据包推送到 gstreamer 的 appsrc 并以这种方式使用 rtp 流。
  • @bwtrent 感谢您的回复。问题是我无法直接访问来自 peerconnection_client 的数据包。这些数据包位于 WebRTC 堆栈的深处,我还没有弄清楚如何访问它们。

标签: javascript c++ webrtc rtp


【解决方案1】:

当您在 c++ 应用程序中获取远程流 (OnStreamAdded) 时,您可以将 AudioTrackSink 添加到音轨并写入原始 PCM 数据。

另见此处:Writing WebRTC (AudioTrackSinkInterface) raw audio to disc

(是的,这个问题很老,但是网络上缺少有关本机 webrtc 库的信息,所以我想补充一下)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2017-06-27
    • 2015-08-15
    • 2018-04-26
    相关资源
    最近更新 更多