English | Español | Français | Italiano | 日本語 | Português | 中文
moqxr é um publisher OpenMOQ em C++20 para Linux, macOS e Windows.
Ele transforma entrada MP4 em objetos publicáveis no estilo CMSF, cria planos de publicação MOQT conscientes do draft e pode inspecionar esses planos localmente ou publicá-los por caminhos Raw QUIC e WebTransport baseados em picoquic.
- Analisa entrada MP4 fragmentada com
ftyp+moov+moof/mdat. - Remuxa MP4 progressivo em objetos de mídia fragmentados sintetizados.
- Extrai metadados de tracks e identificadores de codec RFC 6381.
- Preserva a sinalização HEVC e normaliza
hev1parahvc1quando necessário. - Cria planos de publicação com catálogo, metadados opcionais de timeline SAP e objetos de mídia.
- Emite objetos gerados e metadados de catálogo no disco para inspeção.
- Suporta framing MOQT consciente do draft para os drafts 14, 16 e 18.
- Publica sobre Raw QUIC ou WebTransport quando picoquic e picotls estão disponíveis.
Compilar e testar:
cmake -S . -B build -DOPENMOQ_RUN_PICOQUIC_SMOKE_TESTS=OFF
cmake --build build
ctest --test-dir build --output-on-failureO build padrão cria tanto o executável openmoq-publisher quanto a biblioteca estática do publisher: build/libopenmoq_publisher.a no Linux/macOS, ou build\<config>\openmoq_publisher.lib com geradores Visual Studio no Windows.
Inspecionar um plano de publicação:
./build/openmoq-publisher --input sample.mp4 --dump-planEmitir catálogo e objetos de mídia:
./build/openmoq-publisher --input sample.mp4 --emit-dir out/Publicar para um relay:
OPENMOQ_PICOQUIC_TRACE=1 ./build/openmoq-publisher \
--input sample.mp4 \
--endpoint moqt://relay.example.com:443/moq \
--namespace media \
--forward 0 \
--timeout 10 \
--pacedNo Windows, substitua ./build/openmoq-publisher por build\Release\openmoq-publisher.exe ou pelo caminho correspondente à configuração de build.
| Tópico | Link |
|---|---|
| Build e dependências | docs/build.md |
| Início rápido da CLI | docs/quickstart.md |
| Testes | docs/testing.md |
| Visão geral de design | docs/design.md |
| Receitas de entrada FFmpeg | docs/ffmpeg.md |
| Interoperabilidade com relays | docs/relay-interop.md |
| API Publisher C++ | docs/publisher-api.md |
| Mapeamento de protocolo | docs/protocol-mapping.md |
| Conformidade WebTransport | docs/webtransport-compliance.md |
| Plano de transporte | docs/transport-plan.md |
| Status e roadmap | docs/status.md |
Guias localizados da API Publisher estão disponíveis em espanhol, francês, italiano, japonês, português e chinês.
include/openmoq/publisher: headers públicossrc: implementação da biblioteca estática e da CLItests: cobertura baseada em CTestdocs: notas de protocolo, guias de integração e referências de designexamples: integrações de publisher de exemplo.github/workflows/ci.yml: CI para Linux, macOS e Windows.github/workflows/release.yml: builds de artefatos de release para a CLI, headers e biblioteca estática
O publisher pode gerar planos de publicação, emitir saída inspecionável e publicar sobre transportes Raw QUIC e WebTransport baseados em picoquic. O draft 14 é o alvo principal, o draft 16 é mantido como perfil de compatibilidade, e o suporte ao draft 18 está implementado para seleção de versão, caminhos de codec de setup/request framing e correlação de respostas request-stream enquanto o endurecimento de interoperabilidade continua.
Para o roadmap detalhado, consulte docs/status.md.