ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

donut 是一款无需任何额外配置的桥梁工具,它能够将 SRT (MPEG-TS) 和 RTMP 格式的内容转换为 WebRTC 格式,该功能由 Pion 提供支持。

工作原理

sequenceDiagram
    actor User

    box Cornsilk
        participant browser
    end

    User->>+browser: input protocol, host, port, id, and opts
    User->>+browser: click on [Connect]
    
    Note over donut,browser: WebRTC connection setup
    
    browser->>+browser: create WebRTC browserOffer
    browser->>+donut: POST /doSignaling {browserOffer}

    donut->>+browser: reply WebRTC {serverOffer}

    Note over donut,browser: WebRTC connection setup

    loop Async streaming
        donut--)streaming server: fetchMedia
        donut--)donut: ffmpeg::libav demux/transcode
        donut--)browser: sendWebRTCMedia
        browser--)browser: render audio/video frames
        User--)browser: watch media
    end

donut docker-compose setup

ref: how donut works

快速入门

请确保您已安装ffmpeg 5.x.x。您必须配置 CGO 库路径,将其指向 ffmpeg 5

export CGO_LDFLAGS="-L/opt/homebrew/Cellar/ffmpeg@5/5.1.4_6/lib/"
export CGO_CFLAGS="-I/opt/homebrew/Cellar/ffmpeg@5/5.1.4_6/include/"
export PKG_CONFIG_PATH="/opt/homebrew/Cellar/ffmpeg@5/5.1.4_6/lib/pkgconfig"

现在你可以安装并运行它了:

go install github.com/flavioribeiro/donut@latest
donut

以下是在 MacOS上运行的具体说明]。

使用 DOCKER-COMPOSE 运行

或者,您也可以使用docker-compose来模拟SRT实时传输,并轻松地运行 donut

make run

打开 Web UI

打开 http://localhost:8080/demo]。你会看到两个文本框。在其中填入你的流媒体信息,然后点击“连接”。

donut docker-compose setup

常见问题

如果您遇到任何问题,请查看 FAQ]。