|
| 1 | +# OpenMOQ Publisher |
| 2 | + |
| 3 | +[English](README.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [日本語](README.ja.md) | [Português](README.pt.md) | [中文](README.zh.md) |
| 4 | + |
| 5 | +`moqxr` è un publisher OpenMOQ in C++20 per Linux, macOS e Windows. |
| 6 | + |
| 7 | +Trasforma input MP4 in oggetti pubblicabili in stile CMSF, costruisce piani di pubblicazione MOQT consapevoli del draft e può ispezionare quei piani localmente oppure pubblicarli tramite percorsi Raw QUIC e WebTransport basati su picoquic. |
| 8 | + |
| 9 | +## Cosa Fa |
| 10 | + |
| 11 | +- Analizza input MP4 frammentati con `ftyp` + `moov` + `moof`/`mdat`. |
| 12 | +- Remuxa MP4 progressivi in oggetti media frammentati sintetizzati. |
| 13 | +- Estrae metadati delle tracce e identificatori codec RFC 6381. |
| 14 | +- Preserva la segnalazione HEVC e normalizza `hev1` in `hvc1` quando necessario. |
| 15 | +- Costruisce piani di pubblicazione con catalogo, metadati SAP opzionali e oggetti media. |
| 16 | +- Emette su disco gli oggetti generati e i metadati del catalogo per l'ispezione. |
| 17 | +- Supporta framing MOQT consapevole del draft per draft 14, 16 e 18. |
| 18 | +- Pubblica su Raw QUIC o WebTransport quando picoquic e picotls sono disponibili. |
| 19 | + |
| 20 | +## Avvio Rapido |
| 21 | + |
| 22 | +Compilare e testare: |
| 23 | + |
| 24 | +```bash |
| 25 | +cmake -S . -B build -DOPENMOQ_RUN_PICOQUIC_SMOKE_TESTS=OFF |
| 26 | +cmake --build build |
| 27 | +ctest --test-dir build --output-on-failure |
| 28 | +``` |
| 29 | + |
| 30 | +Ispezionare un piano di pubblicazione: |
| 31 | + |
| 32 | +```bash |
| 33 | +./build/openmoq-publisher --input sample.mp4 --dump-plan |
| 34 | +``` |
| 35 | + |
| 36 | +Emettere catalogo e oggetti media: |
| 37 | + |
| 38 | +```bash |
| 39 | +./build/openmoq-publisher --input sample.mp4 --emit-dir out/ |
| 40 | +``` |
| 41 | + |
| 42 | +Pubblicare verso un relay: |
| 43 | + |
| 44 | +```bash |
| 45 | +OPENMOQ_PICOQUIC_TRACE=1 ./build/openmoq-publisher \ |
| 46 | + --input sample.mp4 \ |
| 47 | + --endpoint moqt://relay.example.com:443/moq \ |
| 48 | + --namespace media \ |
| 49 | + --forward 0 \ |
| 50 | + --timeout 10 \ |
| 51 | + --paced |
| 52 | +``` |
| 53 | + |
| 54 | +Su Windows, sostituite `./build/openmoq-publisher` con `build\Release\openmoq-publisher.exe` o con il percorso corrispondente alla configurazione di build. |
| 55 | + |
| 56 | +## Documentazione |
| 57 | + |
| 58 | +| Argomento | Link | |
| 59 | +| --- | --- | |
| 60 | +| Build e dipendenze | [docs/build.md](docs/build.md) | |
| 61 | +| Avvio rapido CLI | [docs/quickstart.md](docs/quickstart.md) | |
| 62 | +| Test | [docs/testing.md](docs/testing.md) | |
| 63 | +| Panoramica del design | [docs/design.md](docs/design.md) | |
| 64 | +| Ricette input FFmpeg | [docs/ffmpeg.md](docs/ffmpeg.md) | |
| 65 | +| Interoperabilità relay | [docs/relay-interop.md](docs/relay-interop.md) | |
| 66 | +| API Publisher C++ | [docs/publisher-api.md](docs/publisher-api.md) | |
| 67 | +| Mappatura protocollo | [docs/protocol-mapping.md](docs/protocol-mapping.md) | |
| 68 | +| Conformità WebTransport | [docs/webtransport-compliance.md](docs/webtransport-compliance.md) | |
| 69 | +| Piano transport | [docs/transport-plan.md](docs/transport-plan.md) | |
| 70 | +| Stato e roadmap | [docs/status.md](docs/status.md) | |
| 71 | + |
| 72 | +Le guide localizzate dell'API Publisher sono disponibili in [spagnolo](docs/publisher-api.es.md), [francese](docs/publisher-api.fr.md), [italiano](docs/publisher-api.it.md), [giapponese](docs/publisher-api.ja.md), [portoghese](docs/publisher-api.pt.md) e [cinese](docs/publisher-api.zh.md). |
| 73 | + |
| 74 | +## Struttura del Repository |
| 75 | + |
| 76 | +- `include/openmoq/publisher`: header pubblici |
| 77 | +- `src`: implementazione di libreria e CLI |
| 78 | +- `tests`: copertura basata su CTest |
| 79 | +- `docs`: note di protocollo, guide di integrazione e riferimenti di design |
| 80 | +- `examples`: integrazioni publisher di esempio |
| 81 | +- `.github/workflows/ci.yml`: CI Linux, macOS e Windows |
| 82 | +- `.github/workflows/release.yml`: build degli artefatti di release |
| 83 | + |
| 84 | +## Stato Attuale |
| 85 | + |
| 86 | +Il publisher può generare piani di pubblicazione, emettere output ispezionabile e pubblicare su trasporti Raw QUIC e WebTransport basati su picoquic. Il draft 14 è il target principale, il draft 16 è mantenuto come profilo di compatibilità, e il supporto al draft 18 è implementato per selezione versione, percorsi codec di setup/request framing e correlazione delle risposte request-stream mentre continua l'hardening interop. |
| 87 | + |
| 88 | +Per la roadmap dettagliata, vedere [docs/status.md](docs/status.md). |
0 commit comments