Как сохранить файл опуса, используя байты в Golang? - PullRequest
0 голосов
/ 30 мая 2019

Мы используем библиотеку pion / webrtc, и у нас есть входящая звуковая дорожка из RTCPeerConnection

Нам необходимо сохранить аудиофайл opus из RTCPacket.Raw (список байтов).Мы пытались использовать их OpusWriter, но это не сработало, звук записан, но не воспроизводится.

Итак, вопрос в том, как сохранить аудиофайл Opus из байтов?

Код:

        for {
          rtpPacket, err := remoteTrack.ReadRTP()
          b := rtpPacket.Raw

          if ivfFile != nil {
            if err := ivfFile.WriteRTP(rtpPacket); err != nil {
              log.Println(err)
            }
          }

          checkError(err)
          videoTrackLock.RLock()
          _, err = videoTrack.Write(b)
          videoTrackLock.RUnlock()

          if err != io.ErrClosedPipe {
            checkError(err)
          }
        }

1 Ответ

0 голосов
/ 31 мая 2019

Не работает ли пример save-to-disk ?Это демонстрирует сохранение VP8 / Opus на диск.

Если вы хотите, чтобы аудио было напрямую из * RTP.Packet , вам следует использовать поле Payload, а не Raw.Raw содержит заголовки RTP, а Payload будет содержать только носитель.

Спасибо за использование Pion!Я с радостью помогу здесь или на Slack

...